diff --git a/__resource.lua b/__resource.lua index 5c75f5d..ad95aa3 100644 --- a/__resource.lua +++ b/__resource.lua @@ -1,6 +1,6 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' -version '3.1.1' +version '3.2.0' server_script 'mysql-async.js' client_script 'mysql-async-client.js' diff --git a/mysql-async.js b/mysql-async.js index 176c44b..2a6c37c 100644 --- a/mysql-async.js +++ b/mysql-async.js @@ -194,7 +194,6 @@ var Util = __webpack_require__(0); var EventEmitter = __webpack_require__(4).EventEmitter; var Packets = __webpack_require__(2); var ErrorConstants = __webpack_require__(66); -var Timer = __webpack_require__(67); // istanbul ignore next: Node.js < 0.10 not covered var listenerCount = EventEmitter.listenerCount @@ -218,7 +217,13 @@ function Sequence(options, callback) { this._callSite = null; this._ended = false; this._timeout = options.timeout; - this._timer = new Timer(this); + + // For Timers + this._idleNext = null; + this._idlePrev = null; + this._idleStart = null; + this._idleTimeout = -1; + this._repeat = null; } Sequence.determinePacket = function(byte) { @@ -358,7 +363,7 @@ module.exports = require("events"); /**/ -var pna = __webpack_require__(11); +var processNextTick = __webpack_require__(11); /**/ /**/ @@ -382,13 +387,10 @@ var Writable = __webpack_require__(24); util.inherits(Duplex, Readable); -{ - // avoid scope creep, the keys array can then be collected - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } +var keys = objectKeys(Writable.prototype); +for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } function Duplex(options) { @@ -407,16 +409,6 @@ function Duplex(options) { this.once('end', onend); } -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - // the no-half-open enforcer function onend() { // if we allow half-open state, or if the writable side ended, @@ -425,7 +417,7 @@ function onend() { // no more data can be written. // But allow more writes to happen in this tick. - pna.nextTick(onEndNT, this); + processNextTick(onEndNT, this); } function onEndNT(self) { @@ -457,9 +449,15 @@ Duplex.prototype._destroy = function (err, cb) { this.push(null); this.end(); - pna.nextTick(cb, err); + processNextTick(cb, err); }; +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + /***/ }), /* 6 */ /***/ (function(module, exports) { @@ -582,7 +580,7 @@ try { if (typeof util.inherits !== 'function') throw ''; module.exports = util.inherits; } catch (e) { - module.exports = __webpack_require__(75); + module.exports = __webpack_require__(73); } @@ -614,16 +612,28 @@ function Connection(options) { this.threadId = null; } +function bindToCurrentDomain(callback) { + if (!callback) { + return undefined; + } + + var domain = process.domain; + + return domain + ? domain.bind(callback) + : callback; +} + Connection.createQuery = function createQuery(sql, values, callback) { if (sql instanceof Query) { return sql; } - var cb = wrapCallbackInDomain(null, callback); + var cb = bindToCurrentDomain(callback); var options = {}; if (typeof sql === 'function') { - cb = wrapCallbackInDomain(null, sql); + cb = bindToCurrentDomain(sql); return new Query(options, cb); } @@ -633,7 +643,7 @@ Connection.createQuery = function createQuery(sql, values, callback) { } if (typeof values === 'function') { - cb = wrapCallbackInDomain(null, values); + cb = bindToCurrentDomain(values); } else if (values !== undefined) { options.values = values; } @@ -645,7 +655,7 @@ Connection.createQuery = function createQuery(sql, values, callback) { options.values = values; if (typeof values === 'function') { - cb = wrapCallbackInDomain(null, values); + cb = bindToCurrentDomain(values); options.values = undefined; } @@ -679,20 +689,19 @@ Connection.prototype.connect = function connect(options, callback) { this._protocol.on('data', function(data) { connection._socket.write(data); }); - this._socket.on('data', wrapToDomain(connection, function (data) { + this._socket.on('data', function(data) { connection._protocol.write(data); - })); + }); this._protocol.on('end', function() { connection._socket.end(); }); - this._socket.on('end', wrapToDomain(connection, function () { + this._socket.on('end', function() { connection._protocol.end(); - })); + }); this._socket.on('error', this._handleNetworkError.bind(this)); this._socket.on('connect', this._handleProtocolConnect.bind(this)); this._protocol.on('handshake', this._handleProtocolHandshake.bind(this)); - this._protocol.on('initialize', this._handleProtocolInitialize.bind(this)); this._protocol.on('unhandledError', this._handleProtocolError.bind(this)); this._protocol.on('drain', this._handleProtocolDrain.bind(this)); this._protocol.on('end', this._handleProtocolEnd.bind(this)); @@ -708,7 +717,7 @@ Connection.prototype.connect = function connect(options, callback) { } } - this._protocol.handshake(options, wrapCallbackInDomain(this, callback)); + this._protocol.handshake(options, bindToCurrentDomain(callback)); }; Connection.prototype.changeUser = function changeUser(options, callback) { @@ -730,7 +739,7 @@ Connection.prototype.changeUser = function changeUser(options, callback) { timeout : options.timeout, charsetNumber : charsetNumber, currentConfig : this.config - }, wrapCallbackInDomain(this, callback)); + }, bindToCurrentDomain(callback)); }; Connection.prototype.beginTransaction = function beginTransaction(options, callback) { @@ -784,10 +793,6 @@ Connection.prototype.query = function query(sql, values, cb) { query.sql = this.format(query.sql, query.values); } - if (query._callback) { - query._callback = wrapCallbackInDomain(this, query._callback); - } - this._implyConnect(); return this._protocol._enqueue(query); @@ -800,7 +805,7 @@ Connection.prototype.ping = function ping(options, callback) { } this._implyConnect(); - this._protocol.ping(options, wrapCallbackInDomain(this, callback)); + this._protocol.ping(options, bindToCurrentDomain(callback)); }; Connection.prototype.statistics = function statistics(options, callback) { @@ -810,7 +815,7 @@ Connection.prototype.statistics = function statistics(options, callback) { } this._implyConnect(); - this._protocol.stats(options, wrapCallbackInDomain(this, callback)); + this._protocol.stats(options, bindToCurrentDomain(callback)); }; Connection.prototype.end = function end(options, callback) { @@ -831,7 +836,7 @@ Connection.prototype.end = function end(options, callback) { } this._implyConnect(); - this._protocol.quit(opts, wrapCallbackInDomain(this, cb)); + this._protocol.quit(opts, bindToCurrentDomain(cb)); }; Connection.prototype.destroy = function() { @@ -869,52 +874,52 @@ Connection.prototype.format = function(sql, values) { if (tls.TLSSocket) { // 0.11+ environment Connection.prototype._startTLS = function _startTLS(onSecure) { - var connection = this; - - createSecureContext(this.config, function (err, secureContext) { - if (err) { - onSecure(err); - return; - } + var connection = this; + var secureContext = tls.createSecureContext({ + ca : this.config.ssl.ca, + cert : this.config.ssl.cert, + ciphers : this.config.ssl.ciphers, + key : this.config.ssl.key, + passphrase : this.config.ssl.passphrase + }); - // "unpipe" - connection._socket.removeAllListeners('data'); - connection._protocol.removeAllListeners('data'); - - // socket <-> encrypted - var rejectUnauthorized = connection.config.ssl.rejectUnauthorized; - var secureEstablished = false; - var secureSocket = new tls.TLSSocket(connection._socket, { - rejectUnauthorized : rejectUnauthorized, - requestCert : true, - secureContext : secureContext, - isServer : false - }); + // "unpipe" + this._socket.removeAllListeners('data'); + this._protocol.removeAllListeners('data'); - // error handler for secure socket - secureSocket.on('_tlsError', function(err) { - if (secureEstablished) { - connection._handleNetworkError(err); - } else { - onSecure(err); - } - }); + // socket <-> encrypted + var rejectUnauthorized = this.config.ssl.rejectUnauthorized; + var secureEstablished = false; + var secureSocket = new tls.TLSSocket(this._socket, { + rejectUnauthorized : rejectUnauthorized, + requestCert : true, + secureContext : secureContext, + isServer : false + }); - // cleartext <-> protocol - secureSocket.pipe(connection._protocol); - connection._protocol.on('data', function(data) { - secureSocket.write(data); - }); + // error handler for secure socket + secureSocket.on('_tlsError', function(err) { + if (secureEstablished) { + connection._handleNetworkError(err); + } else { + onSecure(err); + } + }); - secureSocket.on('secure', function() { - secureEstablished = true; + // cleartext <-> protocol + secureSocket.pipe(this._protocol); + this._protocol.on('data', function(data) { + secureSocket.write(data); + }); - onSecure(rejectUnauthorized ? this.ssl.verifyError() : null); - }); + secureSocket.on('secure', function() { + secureEstablished = true; - // start TLS communications - secureSocket._start(); + onSecure(rejectUnauthorized ? this.ssl.verifyError() : null); }); + + // start TLS communications + secureSocket._start(); }; } else { // pre-0.11 environment @@ -1027,11 +1032,8 @@ Connection.prototype._handleProtocolConnect = function() { this.emit('connect'); }; -Connection.prototype._handleProtocolHandshake = function _handleProtocolHandshake() { - this.state = 'authenticated'; -}; - -Connection.prototype._handleProtocolInitialize = function _handleProtocolInitialize(packet) { +Connection.prototype._handleProtocolHandshake = function _handleProtocolHandshake(packet) { + this.state = 'authenticated'; this.threadId = packet.threadId; }; @@ -1050,75 +1052,6 @@ Connection.prototype._implyConnect = function() { } }; -function createSecureContext (config, cb) { - var context = null; - var error = null; - - try { - context = tls.createSecureContext({ - ca : config.ssl.ca, - cert : config.ssl.cert, - ciphers : config.ssl.ciphers, - key : config.ssl.key, - passphrase : config.ssl.passphrase - }); - } catch (err) { - error = err; - } - - cb(error, context); -} - -function unwrapFromDomain(fn) { - return function () { - var domains = []; - var ret; - - while (process.domain) { - domains.shift(process.domain); - process.domain.exit(); - } - - try { - ret = fn.apply(this, arguments); - } finally { - for (var i = 0; i < domains.length; i++) { - domains[i].enter(); - } - } - - return ret; - }; -} - -function wrapCallbackInDomain(ee, fn) { - if (typeof fn !== 'function' || fn.domain) { - return fn; - } - - var domain = process.domain; - - if (domain) { - return domain.bind(fn); - } else if (ee) { - return unwrapFromDomain(wrapToDomain(ee, fn)); - } else { - return fn; - } -} - -function wrapToDomain(ee, fn) { - return function () { - if (Events.usingDomains && ee.domain) { - ee.domain.enter(); - fn.apply(this, arguments); - ee.domain.exit(); - } else { - fn.apply(this, arguments); - } - }; -} - /***/ }), /* 9 */ @@ -1369,9 +1302,9 @@ exports.CLIENT_REMEMBER_OPTIONS = 2147483648; if (!process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = { nextTick: nextTick }; + module.exports = nextTick; } else { - module.exports = process + module.exports = process.nextTick; } function nextTick(fn, arg1, arg2, arg3) { @@ -1409,7 +1342,6 @@ function nextTick(fn, arg1, arg2, arg3) { } - /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { @@ -1555,7 +1487,7 @@ function loadClass(className) { Class = __webpack_require__(28); break; case 'PoolCluster': - Class = __webpack_require__(85); + Class = __webpack_require__(84); break; case 'PoolConfig': Class = __webpack_require__(29); @@ -1581,78 +1513,39 @@ function loadClass(className) { /* 13 */ /***/ (function(module, exports) { -/** - * MySQL type constants - * - * Extracted from version 5.7.19 - * - * !! Generated by generate-type-constants.js, do not modify by hand !! - */ - -exports.DECIMAL = 0; -exports.TINY = 1; -exports.SHORT = 2; -exports.LONG = 3; -exports.FLOAT = 4; -exports.DOUBLE = 5; -exports.NULL = 6; -exports.TIMESTAMP = 7; -exports.LONGLONG = 8; -exports.INT24 = 9; -exports.DATE = 10; -exports.TIME = 11; -exports.DATETIME = 12; -exports.YEAR = 13; -exports.NEWDATE = 14; -exports.VARCHAR = 15; -exports.BIT = 16; -exports.TIMESTAMP2 = 17; -exports.DATETIME2 = 18; -exports.TIME2 = 19; -exports.JSON = 245; -exports.NEWDECIMAL = 246; -exports.ENUM = 247; -exports.SET = 248; -exports.TINY_BLOB = 249; -exports.MEDIUM_BLOB = 250; -exports.LONG_BLOB = 251; -exports.BLOB = 252; -exports.VAR_STRING = 253; -exports.STRING = 254; -exports.GEOMETRY = 255; - -// Lookup-by-number table -exports[0] = 'DECIMAL'; -exports[1] = 'TINY'; -exports[2] = 'SHORT'; -exports[3] = 'LONG'; -exports[4] = 'FLOAT'; -exports[5] = 'DOUBLE'; -exports[6] = 'NULL'; -exports[7] = 'TIMESTAMP'; -exports[8] = 'LONGLONG'; -exports[9] = 'INT24'; -exports[10] = 'DATE'; -exports[11] = 'TIME'; -exports[12] = 'DATETIME'; -exports[13] = 'YEAR'; -exports[14] = 'NEWDATE'; -exports[15] = 'VARCHAR'; -exports[16] = 'BIT'; -exports[17] = 'TIMESTAMP2'; -exports[18] = 'DATETIME2'; -exports[19] = 'TIME2'; -exports[245] = 'JSON'; -exports[246] = 'NEWDECIMAL'; -exports[247] = 'ENUM'; -exports[248] = 'SET'; -exports[249] = 'TINY_BLOB'; -exports[250] = 'MEDIUM_BLOB'; -exports[251] = 'LONG_BLOB'; -exports[252] = 'BLOB'; -exports[253] = 'VAR_STRING'; -exports[254] = 'STRING'; -exports[255] = 'GEOMETRY'; +// Manually extracted from mysql-5.7.9/include/mysql.h.pp +// some more info here: http://dev.mysql.com/doc/refman/5.5/en/c-api-prepared-statement-type-codes.html +exports.DECIMAL = 0x00; // aka DECIMAL (http://dev.mysql.com/doc/refman/5.0/en/precision-math-decimal-changes.html) +exports.TINY = 0x01; // aka TINYINT, 1 byte +exports.SHORT = 0x02; // aka SMALLINT, 2 bytes +exports.LONG = 0x03; // aka INT, 4 bytes +exports.FLOAT = 0x04; // aka FLOAT, 4-8 bytes +exports.DOUBLE = 0x05; // aka DOUBLE, 8 bytes +exports.NULL = 0x06; // NULL (used for prepared statements, I think) +exports.TIMESTAMP = 0x07; // aka TIMESTAMP +exports.LONGLONG = 0x08; // aka BIGINT, 8 bytes +exports.INT24 = 0x09; // aka MEDIUMINT, 3 bytes +exports.DATE = 0x0a; // aka DATE +exports.TIME = 0x0b; // aka TIME +exports.DATETIME = 0x0c; // aka DATETIME +exports.YEAR = 0x0d; // aka YEAR, 1 byte (don't ask) +exports.NEWDATE = 0x0e; // aka ? +exports.VARCHAR = 0x0f; // aka VARCHAR (?) +exports.BIT = 0x10; // aka BIT, 1-8 byte +exports.TIMESTAMP2 = 0x11; // aka TIMESTAMP with fractional seconds +exports.DATETIME2 = 0x12; // aka DATETIME with fractional seconds +exports.TIME2 = 0x13; // aka TIME with fractional seconds +exports.JSON = 0xf5; // aka JSON +exports.NEWDECIMAL = 0xf6; // aka DECIMAL +exports.ENUM = 0xf7; // aka ENUM +exports.SET = 0xf8; // aka SET +exports.TINY_BLOB = 0xf9; // aka TINYBLOB, TINYTEXT +exports.MEDIUM_BLOB = 0xfa; // aka MEDIUMBLOB, MEDIUMTEXT +exports.LONG_BLOB = 0xfb; // aka LONGBLOG, LONGTEXT +exports.BLOB = 0xfc; // aka BLOB, TEXT +exports.VAR_STRING = 0xfd; // aka VARCHAR, VARBINARY +exports.STRING = 0xfe; // aka CHAR, BINARY +exports.GEOMETRY = 0xff; // aka GEOMETRY /***/ }), @@ -1950,7 +1843,7 @@ function Field(options) { this.db = options.packet.db; this.table = options.packet.table; this.name = options.packet.name; - this.type = Types[options.packet.type]; + this.type = typeToString(options.packet.type); this.length = options.packet.length; } @@ -1966,6 +1859,14 @@ Field.prototype.geometry = function () { return this.parser.parseGeometryValue(); }; +function typeToString(t) { + for (var k in Types) { + if (Types[k] === t) return k; + } + + return undefined; +} + /***/ }), /* 18 */ @@ -1975,18 +1876,6 @@ var Buffer = __webpack_require__(1).Buffer; var Crypto = __webpack_require__(15); var Auth = exports; -function auth(name, data, options) { - options = options || {}; - - switch (name) { - case 'mysql_native_password': - return Auth.token(options.password, data.slice(0, 20)); - default: - return undefined; - } -} -Auth.auth = auth; - function sha1(msg) { var hash = Crypto.createHash('sha1'); hash.update(msg, 'binary'); @@ -2020,10 +1909,10 @@ Auth.token = function(password, scramble) { // This is a port of sql/password.c:hash_password which needs to be used for // pre-4.1 passwords. Auth.hashPassword = function(password) { - var nr = [0x5030, 0x5735]; - var add = 7; - var nr2 = [0x1234, 0x5671]; - var result = Buffer.alloc(8); + var nr = [0x5030, 0x5735], + add = 7, + nr2 = [0x1234, 0x5671], + result = Buffer.alloc(8); if (typeof password === 'string'){ password = Buffer.from(password); @@ -2071,16 +1960,12 @@ Auth.myRnd = function(r){ }; Auth.scramble323 = function(message, password) { - if (!password) { - return Buffer.alloc(0); - } - - var to = Buffer.allocUnsafe(8); - var hashPass = this.hashPassword(password); - var hashMessage = this.hashPassword(message.slice(0, 8)); - var seed1 = this.int32Read(hashPass, 0) ^ this.int32Read(hashMessage, 0); - var seed2 = this.int32Read(hashPass, 4) ^ this.int32Read(hashMessage, 4); - var r = this.randomInit(seed1, seed2); + var to = Buffer.allocUnsafe(8), + hashPass = this.hashPassword(password), + hashMessage = this.hashPassword(message.slice(0, 8)), + seed1 = this.int32Read(hashPass, 0) ^ this.int32Read(hashMessage, 0), + seed2 = this.int32Read(hashPass, 4) ^ this.int32Read(hashMessage, 4), + r = this.randomInit(seed1, seed2); for (var i = 0; i < 8; i++){ to[i] = Math.floor(this.myRnd(r) * 31) + 64; @@ -2099,8 +1984,8 @@ Auth.xor32 = function(a, b){ }; Auth.add32 = function(a, b){ - var w1 = a[1] + b[1]; - var w2 = a[0] + b[0] + ((w1 & 0xFFFF0000) >> 16); + var w1 = a[1] + b[1], + w2 = a[0] + b[0] + ((w1 & 0xFFFF0000) >> 16); return [w2 & 0xFFFF, w1 & 0xFFFF]; }; @@ -2108,8 +1993,8 @@ Auth.add32 = function(a, b){ Auth.mul32 = function(a, b){ // based on this example of multiplying 32b ints using 16b // http://www.dsprelated.com/showmessage/89790/1.php - var w1 = a[1] * b[1]; - var w2 = (((a[1] * b[1]) >> 16) & 0xFFFF) + ((a[0] * b[1]) & 0xFFFF) + (a[1] * b[0] & 0xFFFF); + var w1 = a[1] * b[1], + w2 = (((a[1] * b[1]) >> 16) & 0xFFFF) + ((a[0] * b[1]) & 0xFFFF) + (a[1] * b[0] & 0xFFFF); return [w2 & 0xFFFF, w1 & 0xFFFF]; }; @@ -2120,8 +2005,8 @@ Auth.and32 = function(a, b){ Auth.shl32 = function(a, b){ // assume b is 16 or less - var w1 = a[1] << b; - var w2 = (a[0] << b) | ((w1 & 0xFFFF0000) >> 16); + var w1 = a[1] << b, + w2 = (a[0] << b) | ((w1 & 0xFFFF0000) >> 16); return [w2 & 0xFFFF, w1 & 0xFFFF]; }; @@ -2148,10 +2033,10 @@ Auth.int32Read = function(buffer, offset){ var Sequence = __webpack_require__(3); var Util = __webpack_require__(0); var Packets = __webpack_require__(2); -var ResultSet = __webpack_require__(71); -var ServerStatus = __webpack_require__(72); +var ResultSet = __webpack_require__(69); +var ServerStatus = __webpack_require__(70); var fs = __webpack_require__(20); -var Readable = __webpack_require__(73); +var Readable = __webpack_require__(71); module.exports = Query; Util.inherits(Query, Sequence); @@ -2327,12 +2212,12 @@ Query.prototype._sendLocalDataFile = function(path) { }; Query.prototype.stream = function(options) { - var self = this; + var self = this, + stream; options = options || {}; options.objectMode = true; - - var stream = new Readable(options); + stream = new Readable(options); stream._read = function() { self._connection && self._connection.resume(); @@ -2401,13 +2286,13 @@ module.exports = require("fs"); /**/ -var pna = __webpack_require__(11); +var processNextTick = __webpack_require__(11); /**/ module.exports = Readable; /**/ -var isArray = __webpack_require__(74); +var isArray = __webpack_require__(72); /**/ /**/ @@ -2428,8 +2313,9 @@ var EElistenerCount = function (emitter, type) { var Stream = __webpack_require__(22); /**/ +// TODO(bmeurer): Change this back to const once hole checks are +// properly optimized away early in Ignition+TurboFan. /**/ - var Buffer = __webpack_require__(1).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { @@ -2438,7 +2324,6 @@ function _uint8ArrayToBuffer(chunk) { function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - /**/ /**/ @@ -2456,7 +2341,7 @@ if (debugUtil && debugUtil.debuglog) { } /**/ -var BufferList = __webpack_require__(76); +var BufferList = __webpack_require__(74); var destroyImpl = __webpack_require__(23); var StringDecoder; @@ -2467,13 +2352,15 @@ var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; + if (typeof emitter.prependListener === 'function') { + return emitter.prependListener(event, fn); + } else { + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; + } } function ReadableState(options, stream) { @@ -2481,26 +2368,17 @@ function ReadableState(options, stream) { options = options || {}; - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" var hwm = options.highWaterMark; - var readableHwm = options.readableHighWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); @@ -2873,7 +2751,7 @@ function emitReadable(stream) { if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; - if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); + if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); } } @@ -2892,7 +2770,7 @@ function emitReadable_(stream) { function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; - pna.nextTick(maybeReadMore_, stream, state); + processNextTick(maybeReadMore_, stream, state); } } @@ -2937,7 +2815,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) { var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); + if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); function onunpipe(readable, unpipeInfo) { @@ -3127,7 +3005,7 @@ Readable.prototype.on = function (ev, fn) { state.readableListening = state.needReadable = true; state.emittedReadable = false; if (!state.reading) { - pna.nextTick(nReadingNextTick, this); + processNextTick(nReadingNextTick, this); } else if (state.length) { emitReadable(this); } @@ -3158,7 +3036,7 @@ Readable.prototype.resume = function () { function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; - pna.nextTick(resume_, stream, state); + processNextTick(resume_, stream, state); } } @@ -3195,19 +3073,18 @@ function flow(stream) { // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; var paused = false; + var self = this; stream.on('end', function () { debug('wrapped end'); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); + if (chunk && chunk.length) self.push(chunk); } - _this.push(null); + self.push(null); }); stream.on('data', function (chunk) { @@ -3217,7 +3094,7 @@ Readable.prototype.wrap = function (stream) { // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); + var ret = self.push(chunk); if (!ret) { paused = true; stream.pause(); @@ -3238,12 +3115,12 @@ Readable.prototype.wrap = function (stream) { // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); } // when we try to consume some more bytes, simply unpause the // underlying stream. - this._read = function (n) { + self._read = function (n) { debug('wrapped _read', n); if (paused) { paused = false; @@ -3251,19 +3128,9 @@ Readable.prototype.wrap = function (stream) { } }; - return this; + return self; }; -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._readableState.highWaterMark; - } -}); - // exposed for testing purposes only. Readable._fromList = fromList; @@ -3376,7 +3243,7 @@ function endReadable(stream) { if (!state.endEmitted) { state.ended = true; - pna.nextTick(endReadableNT, state, stream); + processNextTick(endReadableNT, state, stream); } } @@ -3389,6 +3256,12 @@ function endReadableNT(state, stream) { } } +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; @@ -3412,7 +3285,7 @@ module.exports = __webpack_require__(14); /**/ -var pna = __webpack_require__(11); +var processNextTick = __webpack_require__(11); /**/ // undocumented cb() API, needed for core, not for public API @@ -3426,9 +3299,9 @@ function destroy(err, cb) { if (cb) { cb(err); } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - pna.nextTick(emitErrorNT, this, err); + processNextTick(emitErrorNT, this, err); } - return this; + return; } // we set destroyed to true before firing error callbacks in order @@ -3445,7 +3318,7 @@ function destroy(err, cb) { this._destroy(err || null, function (err) { if (!cb && err) { - pna.nextTick(emitErrorNT, _this, err); + processNextTick(emitErrorNT, _this, err); if (_this._writableState) { _this._writableState.errorEmitted = true; } @@ -3453,8 +3326,6 @@ function destroy(err, cb) { cb(err); } }); - - return this; } function undestroy() { @@ -3517,7 +3388,7 @@ module.exports = { /**/ -var pna = __webpack_require__(11); +var processNextTick = __webpack_require__(11); /**/ module.exports = Writable; @@ -3544,7 +3415,7 @@ function CorkedRequest(state) { /* */ /**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; /**/ /**/ @@ -3560,7 +3431,7 @@ util.inherits = __webpack_require__(7); /**/ var internalUtil = { - deprecate: __webpack_require__(77) + deprecate: __webpack_require__(75) }; /**/ @@ -3569,7 +3440,6 @@ var Stream = __webpack_require__(22); /**/ /**/ - var Buffer = __webpack_require__(1).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { @@ -3578,7 +3448,6 @@ function _uint8ArrayToBuffer(chunk) { function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - /**/ var destroyImpl = __webpack_require__(23); @@ -3592,27 +3461,18 @@ function WritableState(options, stream) { options = options || {}; - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - // object stream flag to indicate whether or not this stream // contains buffers or objects. this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() var hwm = options.highWaterMark; - var writableHwm = options.writableHighWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); @@ -3726,7 +3586,6 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; return object && object._writableState instanceof WritableState; } @@ -3778,7 +3637,7 @@ function writeAfterEnd(stream, cb) { var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb stream.emit('error', er); - pna.nextTick(cb, er); + processNextTick(cb, er); } // Checks that a user-supplied chunk is valid, especially for the particular @@ -3795,7 +3654,7 @@ function validChunk(stream, state, chunk, cb) { } if (er) { stream.emit('error', er); - pna.nextTick(cb, er); + processNextTick(cb, er); valid = false; } return valid; @@ -3804,7 +3663,7 @@ function validChunk(stream, state, chunk, cb) { Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); + var isBuf = _isUint8Array(chunk) && !state.objectMode; if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); @@ -3858,16 +3717,6 @@ function decodeChunk(state, chunk, encoding) { return chunk; } -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. @@ -3925,10 +3774,10 @@ function onwriteError(stream, state, sync, er, cb) { if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack - pna.nextTick(cb, er); + processNextTick(cb, er); // this can emit finish, and it will always happen // after error - pna.nextTick(finishMaybe, stream, state); + processNextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; stream.emit('error', er); } else { @@ -4026,7 +3875,6 @@ function clearBuffer(stream, state) { } else { state.corkedRequestsFree = new CorkedRequest(state); } - state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one while (entry) { @@ -4037,7 +3885,6 @@ function clearBuffer(stream, state) { doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently @@ -4050,6 +3897,7 @@ function clearBuffer(stream, state) { if (entry === null) state.lastBufferedRequest = null; } + state.bufferedRequestCount = 0; state.bufferedRequest = entry; state.bufferProcessing = false; } @@ -4103,7 +3951,7 @@ function prefinish(stream, state) { if (typeof stream._final === 'function') { state.pendingcb++; state.finalCalled = true; - pna.nextTick(callFinal, stream, state); + processNextTick(callFinal, stream, state); } else { state.prefinished = true; stream.emit('prefinish'); @@ -4127,7 +3975,7 @@ function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); if (cb) { - if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); + if (state.finished) processNextTick(cb);else stream.once('finish', cb); } state.ended = true; stream.writable = false; @@ -4181,33 +4029,9 @@ Writable.prototype._destroy = function (err, cb) { /***/ (function(module, exports, __webpack_require__) { "use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -/**/ - var Buffer = __webpack_require__(1).Buffer; -/**/ var isEncoding = Buffer.isEncoding || function (encoding) { encoding = '' + encoding; @@ -4319,10 +4143,10 @@ StringDecoder.prototype.fillLast = function (buf) { }; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. +// continuation byte. function utf8CheckByte(byte) { if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; + return -1; } // Checks at most 3 bytes at the end of a Buffer in order to detect an @@ -4336,13 +4160,13 @@ function utf8CheckIncomplete(self, buf, i) { if (nb > 0) self.lastNeed = nb - 1; return nb; } - if (--j < i || nb === -2) return 0; + if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) self.lastNeed = nb - 2; return nb; } - if (--j < i || nb === -2) return 0; + if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) { @@ -4356,7 +4180,7 @@ function utf8CheckIncomplete(self, buf, i) { // Validates as many continuation bytes for a multi-byte UTF-8 character as // needed or are available. If we see a non-continuation byte where we expect // one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding // behavior. The continuation byte check is included three times in the case // where all of the continuation bytes for a character exist in the same buffer. // It is also done this way as a slight performance increase instead of using a @@ -4364,17 +4188,17 @@ function utf8CheckIncomplete(self, buf, i) { function utf8CheckExtraBytes(self, buf, p) { if ((buf[0] & 0xC0) !== 0x80) { self.lastNeed = 0; - return '\ufffd'; + return '\ufffd'.repeat(p); } if (self.lastNeed > 1 && buf.length > 1) { if ((buf[1] & 0xC0) !== 0x80) { self.lastNeed = 1; - return '\ufffd'; + return '\ufffd'.repeat(p + 1); } if (self.lastNeed > 2 && buf.length > 2) { if ((buf[2] & 0xC0) !== 0x80) { self.lastNeed = 2; - return '\ufffd'; + return '\ufffd'.repeat(p + 2); } } } @@ -4405,11 +4229,11 @@ function utf8Text(buf, i) { return buf.toString('utf8', i, end); } -// For UTF-8, a replacement character is added when ending on a partial -// character. +// For UTF-8, a replacement character for each buffered byte of a (partial) +// character needs to be added to the output. function utf8End(buf) { var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; + if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed); return r; } @@ -4559,28 +4383,39 @@ util.inherits = __webpack_require__(7); util.inherits(Transform, Duplex); -function afterTransform(er, data) { - var ts = this._transformState; +function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; +} + +function afterTransform(stream, er, data) { + var ts = stream._transformState; ts.transforming = false; var cb = ts.writecb; if (!cb) { - return this.emit('error', new Error('write callback called multiple times')); + return stream.emit('error', new Error('write callback called multiple times')); } ts.writechunk = null; ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); + if (data !== null && data !== undefined) stream.push(data); cb(er); - var rs = this._readableState; + var rs = stream._readableState; rs.reading = false; if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); + stream._read(rs.highWaterMark); } } @@ -4589,14 +4424,9 @@ function Transform(options) { Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; + this._transformState = new TransformState(this); + + var stream = this; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; @@ -4613,19 +4443,11 @@ function Transform(options) { } // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} - -function prefinish() { - var _this = this; - - if (typeof this._flush === 'function') { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er, data) { + done(stream, er, data); + });else done(stream); + }); } Transform.prototype.push = function (chunk, encoding) { @@ -4675,25 +4497,27 @@ Transform.prototype._read = function (n) { }; Transform.prototype._destroy = function (err, cb) { - var _this2 = this; + var _this = this; Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); - _this2.emit('close'); + _this.emit('close'); }); }; function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); + if (data !== null && data !== undefined) stream.push(data); // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); + var ws = stream._writableState; + var ts = stream._transformState; + + if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + if (ts.transforming) throw new Error('Calling transform done when still transforming'); return stream.push(null); } @@ -4702,7 +4526,7 @@ function done(stream, er, data) { /* 27 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(82); +module.exports = __webpack_require__(81); /***/ }), @@ -4713,7 +4537,7 @@ var mysql = __webpack_require__(12); var Connection = __webpack_require__(8); var EventEmitter = __webpack_require__(4).EventEmitter; var Util = __webpack_require__(0); -var PoolConnection = __webpack_require__(84); +var PoolConnection = __webpack_require__(83); module.exports = Pool; @@ -5085,10 +4909,12 @@ PoolSelector.ORDER = function PoolSelectorOrder() { /***/ (function(module, exports, __webpack_require__) { const MySQL = __webpack_require__(32); -const Logger = __webpack_require__(87); -const Profiler = __webpack_require__(88); -const parseSettings = __webpack_require__(89); -const { prepareQuery, typeCast, safeInvoke } = __webpack_require__(90); +const Logger = __webpack_require__(86); +const Profiler = __webpack_require__(87); +const parseSettings = __webpack_require__(88); +const { + prepareQuery, typeCast, safeInvoke, sanitizeTransactionInput, +} = __webpack_require__(89); let logger = null; let profiler = null; @@ -5100,7 +4926,8 @@ global.exports('mysql_execute', (query, parameters, callback) => { const sql = prepareQuery(query, parameters); mysql.execute({ sql, typeCast }, invokingResource).then((result) => { safeInvoke(callback, (result) ? result.affectedRows : 0); - }).catch(() => {}); + return true; + }).catch(() => false); }); global.exports('mysql_fetch_all', (query, parameters, callback) => { @@ -5108,7 +4935,8 @@ global.exports('mysql_fetch_all', (query, parameters, callback) => { const sql = prepareQuery(query, parameters); mysql.execute({ sql, typeCast }, invokingResource).then((result) => { safeInvoke(callback, result); - }).catch(() => {}); + return true; + }).catch(() => false); }); global.exports('mysql_fetch_scalar', (query, parameters, callback) => { @@ -5116,7 +4944,8 @@ global.exports('mysql_fetch_scalar', (query, parameters, callback) => { const sql = prepareQuery(query, parameters); mysql.execute({ sql, typeCast }, invokingResource).then((result) => { safeInvoke(callback, (result && result[0]) ? Object.values(result[0])[0] : null); - }).catch(() => {}); + return true; + }).catch(() => false); }); global.exports('mysql_insert', (query, parameters, callback) => { @@ -5124,7 +4953,25 @@ global.exports('mysql_insert', (query, parameters, callback) => { const sql = prepareQuery(query, parameters); mysql.execute({ sql, typeCast }, invokingResource).then((result) => { safeInvoke(callback, (result) ? result.insertId : 0); - }).catch(() => {}); + return true; + }).catch(() => false); +}); + +global.exports('mysql_transaction', (querys, values, callback) => { + const invokingResource = global.GetInvokingResource(); + let sqls = []; + let cb = callback; + [sqls, cb] = sanitizeTransactionInput(querys, values, cb); + mysql.beginTransaction((connection) => { + if (!connection) safeInvoke(cb, false); + const promises = []; + sqls.forEach((sql) => { + promises.push(mysql.execute({ sql }, invokingResource, connection)); + }); + mysql.commitTransaction(promises, connection, (result) => { + safeInvoke(cb, result); + }); + }); }); let isReady = false; @@ -5168,6 +5015,15 @@ global.onNet('mysql-async:request-data', () => { const mysql = __webpack_require__(12); +function formatVersion(versionString) { + let versionPrefix = 'MariaDB'; + const version = versionString; + if (version[0] === '5' || version[0] === '8') { + versionPrefix = 'MySQL'; + } + return { versionPrefix, version }; +} + class MySQL { constructor(mysqlConfig, logger, profiler) { this.pool = null; @@ -5180,12 +5036,8 @@ class MySQL { } this.pool.query('SELECT VERSION()', (error, result) => { - let versionPrefix = 'MariaDB'; if (!error) { - const version = result[0]['VERSION()']; - if (version[0] === '5' || version[0] === '8') { - versionPrefix = 'MySQL'; - } + const { versionPrefix, version } = formatVersion(result[0]['VERSION()']); profiler.setVersion(`${versionPrefix}:${version}`); logger.log('\x1b[32m[mysql-async]\x1b[0m Database server connection established.'); } else { @@ -5227,6 +5079,39 @@ class MySQL { return queryPromise; } + + onTransactionError(error, connection, callback) { + connection.rollback(() => { + this.logger.error(error.message); + callback(false); + }); + } + + beginTransaction(callback) { + this.pool.getConnection((connectionError, connection) => { + if (connectionError) { + this.logger.error(connectionError.message); + callback(false); + return; + } + connection.beginTransaction((transactionError) => { + if (transactionError) this.onTransactionError(transactionError, connection, callback); + else callback(connection); + }); + }); + } + + commitTransaction(promises, connection, callback) { + Promise.all(promises).then(() => { + connection.commit((commitError) => { + if (commitError) this.onTransactionError(commitError, connection, callback); + else callback(true); + }); + // Otherwise catch the error from the execution + }).catch((executeError) => { + this.onTransactionError(executeError, connection, callback); + }); + } } module.exports = MySQL; @@ -5734,43 +5619,6 @@ exports['Amazon RDS'] = { + 'igXx7B5GgP+IHb6DTjPJAi0=\n' + '-----END CERTIFICATE-----\n', - /** - * Amazon RDS us-east-2 certificate CA 2016 to 2020 - * - * CN = Amazon RDS us-east-2 CA - * OU = Amazon RDS - * O = Amazon Web Services, Inc. - * L = Seattle - * ST = Washington - * C = US - * P = 2016-08-11T19:58:45Z/2020-03-05T19:58:45Z - * F = 9B:78:E3:64:7F:74:BC:B2:52:18:CF:13:C3:62:B8:35:9D:3D:5F:B6 - */ - '-----BEGIN CERTIFICATE-----\n' - + 'MIID/DCCAuSgAwIBAgIBTjANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' - + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' - + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' - + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA4MTExOTU4NDVaFw0y\n' - + 'MDAzMDUxOTU4NDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' - + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' - + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' - + 'UyB1cy1lYXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp\n' - + 'WnnUX7wM0zzstccX+4iXKJa9GR0a2PpvB1paEX4QRCgfhEdQWDaSqyrWNgdVCKkt\n' - + '1aQkWu5j6VAC2XIG7kKoonm1ZdBVyBLqW5lXNywlaiU9yhJkwo8BR+/OqgE+PLt/\n' - + 'EO1mlN0PQudja/XkExCXTO29TG2j7F/O7hox6vTyHNHc0H88zS21uPuBE+jivViS\n' - + 'yzj/BkyoQ85hnkues3f9R6gCGdc+J51JbZnmgzUkvXjAEuKhAm9JksVOxcOKUYe5\n' - + 'ERhn0U9zjzpfbAITIkul97VVa5IxskFFTHIPJbvRKHJkiF6wTJww/tc9wm+fSCJ1\n' - + '+DbQTGZgkQ3bJrqRN29/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' - + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBSAHQzUYYZbepwKEMvGdHp8wzHnfDAfBgNV\n' - + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n' - + 'MbaEzSYZ+aZeTBxf8yi0ta8K4RdwEJsEmP6IhFFQHYUtva2Cynl4Q9tZg3RMsybT\n' - + '9mlnSQQlbN/wqIIXbkrcgFcHoXG9Odm/bDtUwwwDaiEhXVfeQom3G77QHOWMTCGK\n' - + 'qadwuh5msrb17JdXZoXr4PYHDKP7j0ONfAyFNER2+uecblHfRSpVq5UeF3L6ZJb8\n' - + 'fSw/GtAV6an+/0r+Qm+PiI2H5XuZ4GmRJYnGMhqWhBYrY7p3jtVnKcsh39wgfUnW\n' - + 'AvZEZG/yhFyAZW0Essa39LiL5VSq14Y1DOj0wgnhSY/9WHxaAo1HB1T9OeZknYbD\n' - + 'fl/EGSZ0TEvZkENrXcPlVA==\n' - + '-----END CERTIFICATE-----\n', - /** * Amazon RDS ca-central-1 certificate CA 2016 to 2020 * @@ -5843,157 +5691,9 @@ exports['Amazon RDS'] = { + 'JesWxBMXXGoDC1rIYTFO7szwDyOHlCcVXJDNsTJhc32oDWYdeIbW7o/5I+aQsrXZ\n' + 'C96HykZcgWzz6sElrQxUaT3IoMw/5nmw4uWKKnZnxgI9bY4fpQwMeBZ96iHfFxvH\n' + 'mqfEEuC7uUoPofXdBp2ObQ==\n' - + '-----END CERTIFICATE-----\n', - - /** - * Amazon RDS us-gov-west-1 CA 2017 to 2022 - * - * CN = Amazon RDS us-gov-west-1 CA - * OU = Amazon RDS - * O = Amazon Web Services, Inc. - * L = Seattle - * ST = Washington - * C = US - * P = 2017-05-19T22:31:19Z/2022-05-18T12:00:00Z - * F = 77:55:8C:C4:5E:71:1F:1B:57:E3:DA:6E:5B:74:27:12:4E:E8:69:E8 - */ - '-----BEGIN CERTIFICATE-----\n' - + 'MIIECjCCAvKgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZMxCzAJBgNVBAYTAlVT\n' - + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' - + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' - + 'MSQwIgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwHhcNMTcwNTE5\n' - + 'MjIzMTE5WhcNMjIwNTE4MTIwMDAwWjCBkzELMAkGA1UEBhMCVVMxEzARBgNVBAgM\n' - + 'Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBX\n' - + 'ZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJDAiBgNVBAMM\n' - + 'G0FtYXpvbiBSRFMgdXMtZ292LXdlc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n' - + 'ggEPADCCAQoCggEBAM8YZLKAzzOdNnoi7Klih26Zkj+OCpDfwx4ZYB6f8L8UoQi5\n' - + '8z9ZtIwMjiJ/kO08P1yl4gfc7YZcNFvhGruQZNat3YNpxwUpQcr4mszjuffbL4uz\n' - + '+/8FBxALdqCVOJ5Q0EVSfz3d9Bd1pUPL7ARtSpy7bn/tUPyQeI+lODYO906C0TQ3\n' - + 'b9bjOsgAdBKkHfjLdsknsOZYYIzYWOJyFJJa0B11XjDUNBy/3IuC0KvDl6At0V5b\n' - + '8M6cWcKhte2hgjwTYepV+/GTadeube1z5z6mWsN5arOAQUtYDLH6Aztq9mCJzLHm\n' - + 'RccBugnGl3fRLJ2VjioN8PoGoN9l9hFBy5fnFgsCAwEAAaNmMGQwDgYDVR0PAQH/\n' - + 'BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEG7+br8KkvwPd5g\n' - + '71Rvh2stclJbMB8GA1UdIwQYMBaAFEkQz6S4NS5lOYKcDjBSuCcVpdzjMA0GCSqG\n' - + 'SIb3DQEBCwUAA4IBAQBMA327u5ABmhX+aPxljoIbxnydmAFWxW6wNp5+rZrvPig8\n' - + 'zDRqGQWWr7wWOIjfcWugSElYtf/m9KZHG/Z6+NG7nAoUrdcd1h/IQhb+lFQ2b5g9\n' - + 'sVzQv/H2JNkfZA8fL/Ko/Tm/f9tcqe0zrGCtT+5u0Nvz35Wl8CEUKLloS5xEb3k5\n' - + '7D9IhG3fsE3vHWlWrGCk1cKry3j12wdPG5cUsug0vt34u6rdhP+FsM0tHI15Kjch\n' - + 'RuUCvyQecy2ZFNAa3jmd5ycNdL63RWe8oayRBpQBxPPCbHfILxGZEdJbCH9aJ2D/\n' - + 'l8oHIDnvOLdv7/cBjyYuvmprgPtu3QEkbre5Hln/\n' - + '-----END CERTIFICATE-----\n', - - /** - * Amazon RDS eu-west-3 certificate CA 2017 to 2020 - * - * CN = Amazon RDS eu-west-3 CA - * OU = Amazon RDS - * O = Amazon Web Services, Inc. - * L = Seattle - * ST = Washington - * C = US - * P = 2017-08-25T21:39:26Z/2020-03-05T21:39:26Z - * F = FD:35:A7:84:60:68:98:00:12:54:ED:34:26:8C:66:0F:72:DD:B2:F4 - */ - '-----BEGIN CERTIFICATE-----\n' - + 'MIID/DCCAuSgAwIBAgIBUTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' - + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' - + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' - + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzA4MjUyMTM5MjZaFw0y\n' - + 'MDAzMDUyMTM5MjZaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' - + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' - + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' - + 'UyBldS13ZXN0LTMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+\n' - + 'xmlEC/3a4cJH+UPwXCE02lC7Zq5NHd0dn6peMeLN8agb6jW4VfSY0NydjRj2DJZ8\n' - + 'K7wV6sub5NUGT1NuFmvSmdbNR2T59KX0p2dVvxmXHHtIpQ9Y8Aq3ZfhmC5q5Bqgw\n' - + 'tMA1xayDi7HmoPX3R8kk9ktAZQf6lDeksCvok8idjTu9tiSpDiMwds5BjMsWfyjZ\n' - + 'd13PTGGNHYVdP692BSyXzSP1Vj84nJKnciW8tAqwIiadreJt5oXyrCXi8ekUMs80\n' - + 'cUTuGm3aA3Q7PB5ljJMPqz0eVddaiIvmTJ9O3Ez3Du/HpImyMzXjkFaf+oNXf/Hx\n' - + '/EW5jCRR6vEiXJcDRDS7AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' - + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBRZ9mRtS5fHk3ZKhG20Oack4cAqMTAfBgNV\n' - + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n' - + 'F/u/9L6ExQwD73F/bhCw7PWcwwqsK1mypIdrjdIsu0JSgwWwGCXmrIspA3n3Dqxq\n' - + 'sMhAJD88s9Em7337t+naar2VyLO63MGwjj+vA4mtvQRKq8ScIpiEc7xN6g8HUMsd\n' - + 'gPG9lBGfNjuAZsrGJflrko4HyuSM7zHExMjXLH+CXcv/m3lWOZwnIvlVMa4x0Tz0\n' - + 'A4fklaawryngzeEjuW6zOiYCzjZtPlP8Fw0SpzppJ8VpQfrZ751RDo4yudmPqoPK\n' - + '5EUe36L8U+oYBXnC5TlYs9bpVv9o5wJQI5qA9oQE2eFWxF1E0AyZ4V5sgGUBStaX\n' - + 'BjDDWul0wSo7rt1Tq7XpnA==\n' - + '-----END CERTIFICATE-----\n', - - /** - * Amazon RDS ap-northeast-3 certificate CA 2017 to 2020 - * - * CN = Amazon RDS ap-northeast-3 CA - * OU = Amazon RDS - * O = Amazon Web Services, Inc. - * L = Seattle - * ST = Washington - * C = US - * P = 2017-12-01T00:55:42Z/2020-03-05T00:55:42Z - * F = C0:C7:D4:B3:91:40:A0:77:43:28:BF:AF:77:57:DF:FD:98:FB:10:3F - */ - '-----BEGIN CERTIFICATE-----\n' - + 'MIIEATCCAumgAwIBAgIBTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' - + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' - + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' - + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzEyMDEwMDU1NDJaFw0y\n' - + 'MDAzMDUwMDU1NDJaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' - + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' - + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' - + 'UyBhcC1ub3J0aGVhc3QtMyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' - + 'ggEBAMZtQNnm/XT19mTa10ftHLzg5UhajoI65JHv4TQNdGXdsv+CQdGYU49BJ9Eu\n' - + '3bYgiEtTzR2lQe9zGMvtuJobLhOWuavzp7IixoIQcHkFHN6wJ1CvqrxgvJfBq6Hy\n' - + 'EuCDCiU+PPDLUNA6XM6Qx3IpHd1wrJkjRB80dhmMSpxmRmx849uFafhN+P1QybsM\n' - + 'TI0o48VON2+vj+mNuQTyLMMP8D4odSQHjaoG+zyJfJGZeAyqQyoOUOFEyQaHC3TT\n' - + '3IDSNCQlpxb9LerbCoKu79WFBBq3CS5cYpg8/fsnV2CniRBFFUumBt5z4dhw9RJU\n' - + 'qlUXXO1ZyzpGd+c5v6FtrfXtnIUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' - + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFETv7ELNplYy/xTeIOInl6nzeiHg\n' - + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' - + 'A4IBAQCpKxOQcd0tEKb3OtsOY8q/MPwTyustGk2Rt7t9G68idADp8IytB7M0SDRo\n' - + 'wWZqynEq7orQVKdVOanhEWksNDzGp0+FPAf/KpVvdYCd7ru3+iI+V4ZEp2JFdjuZ\n' - + 'Zz0PIjS6AgsZqE5Ri1J+NmfmjGZCPhsHnGZiBaenX6K5VRwwwmLN6xtoqrrfR5zL\n' - + 'QfBeeZNJG6KiM3R/DxJ5rAa6Fz+acrhJ60L7HprhB7SFtj1RCijau3+ZwiGmUOMr\n' - + 'yKlMv+VgmzSw7o4Hbxy1WVrA6zQsTHHSGf+vkQn2PHvnFMUEu/ZLbTDYFNmTLK91\n' - + 'K6o4nMsEvhBKgo4z7H1EqqxXhvN2\n' - + '-----END CERTIFICATE-----\n', - - /** - * Amazon RDS GovCloud Root CA 2017 to 2022 - * - * CN = Amazon RDS GovCloud Root CA - * OU = Amazon RDS - * O = Amazon Web Services, Inc. - * L = Seattle - * ST = Washington - * C = US - * P = 2017-05-19T22:29:11Z/2022-05-18T22:29:11Z - * F = A3:61:F9:C9:A2:5B:91:FE:73:A6:52:E3:59:14:8E:CE:35:12:0F:FD - */ - '-----BEGIN CERTIFICATE-----\n' - + 'MIIEDjCCAvagAwIBAgIJAMM61RQn3/kdMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD\n' - + 'VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n' - + 'MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n' - + 'em9uIFJEUzEkMCIGA1UEAwwbQW1hem9uIFJEUyBHb3ZDbG91ZCBSb290IENBMB4X\n' - + 'DTE3MDUxOTIyMjkxMVoXDTIyMDUxODIyMjkxMVowgZMxCzAJBgNVBAYTAlVTMRAw\n' - + 'DgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQKDBlB\n' - + 'bWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSQw\n' - + 'IgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwggEiMA0GCSqGSIb3\n' - + 'DQEBAQUAA4IBDwAwggEKAoIBAQDGS9bh1FGiJPT+GRb3C5aKypJVDC1H2gbh6n3u\n' - + 'j8cUiyMXfmm+ak402zdLpSYMaxiQ7oL/B3wEmumIpRDAsQrSp3B/qEeY7ipQGOfh\n' - + 'q2TXjXGIUjiJ/FaoGqkymHRLG+XkNNBtb7MRItsjlMVNELXECwSiMa3nJL2/YyHW\n' - + 'nTr1+11/weeZEKgVbCUrOugFkMXnfZIBSn40j6EnRlO2u/NFU5ksK5ak2+j8raZ7\n' - + 'xW7VXp9S1Tgf1IsWHjGZZZguwCkkh1tHOlHC9gVA3p63WecjrIzcrR/V27atul4m\n' - + 'tn56s5NwFvYPUIx1dbC8IajLUrepVm6XOwdQCfd02DmOyjWJAgMBAAGjYzBhMA4G\n' - + 'A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRJEM+kuDUu\n' - + 'ZTmCnA4wUrgnFaXc4zAfBgNVHSMEGDAWgBRJEM+kuDUuZTmCnA4wUrgnFaXc4zAN\n' - + 'BgkqhkiG9w0BAQsFAAOCAQEAcfA7uirXsNZyI2j4AJFVtOTKOZlQwqbyNducnmlg\n' - + '/5nug9fAkwM4AgvF5bBOD1Hw6khdsccMwIj+1S7wpL+EYb/nSc8G0qe1p/9lZ/mZ\n' - + 'ff5g4JOa26lLuCrZDqAk4TzYnt6sQKfa5ZXVUUn0BK3okhiXS0i+NloMyaBCL7vk\n' - + 'kDwkHwEqflRKfZ9/oFTcCfoiHPA7AdBtaPVr0/Kj9L7k+ouz122huqG5KqX0Zpo8\n' - + 'S0IGvcd2FZjNSNPttNAK7YuBVsZ0m2nIH1SLp//00v7yAHIgytQwwB17PBcp4NXD\n' - + 'pCfTa27ng9mMMC2YLqWQpW4TkqjDin2ZC+5X/mbrjzTvVg==\n' - + '-----END CERTIFICATE-----\n' - ] -}; + + '-----END CERTIFICATE-----\n' + ] +}; /***/ }), @@ -6003,9 +5703,10 @@ exports['Amazon RDS'] = { var Parser = __webpack_require__(38); var Sequences = __webpack_require__(43); var Packets = __webpack_require__(2); +var Timers = __webpack_require__(79); var Stream = __webpack_require__(14).Stream; var Util = __webpack_require__(0); -var PacketWriter = __webpack_require__(81); +var PacketWriter = __webpack_require__(80); module.exports = Protocol; Util.inherits(Protocol, Stream); @@ -6155,9 +5856,12 @@ Protocol.prototype._enqueue = function(sequence) { self._delegateError(err, sequence); }) .on('packet', function(packet) { - sequence._timer.active(); + Timers.active(sequence); self._emitPacket(packet); }) + .on('end', function() { + self._dequeue(sequence); + }) .on('timeout', function() { var err = new Error(sequence.constructor.name + ' inactivity timeout'); @@ -6166,11 +5870,9 @@ Protocol.prototype._enqueue = function(sequence) { err.timeout = sequence._timeout; self._delegateError(err, sequence); - }); - - if (sequence.constructor === Sequences.Handshake) { - sequence.on('start-tls', function () { - sequence._timer.active(); + }) + .on('start-tls', function() { + Timers.active(sequence); self._connection._startTLS(function(err) { if (err) { // SSL negotiation error are fatal @@ -6180,24 +5882,11 @@ Protocol.prototype._enqueue = function(sequence) { return; } - sequence._timer.active(); + Timers.active(sequence); sequence._tlsUpgradeCompleteHandler(); }); }); - sequence.on('end', function () { - self._handshaked = true; - - if (!self._fatalError) { - self.emit('handshake', self._handshakeInitializationPacket); - } - }); - } - - sequence.on('end', function () { - self._dequeue(sequence); - }); - if (this._queue.length === 1) { this._parser.resetPacketNumber(); this._startSequence(sequence); @@ -6276,10 +5965,9 @@ Protocol.prototype._parsePacket = function() { if (Packet === Packets.HandshakeInitializationPacket) { this._handshakeInitializationPacket = packet; - this.emit('initialize', packet); } - sequence._timer.active(); + Timers.active(sequence); if (!sequence[packetName]) { var err = new Error('Received packet in the wrong sequence.'); @@ -6322,7 +6010,12 @@ Protocol.prototype._determinePacket = function(sequence) { } switch (firstByte) { - case 0x00: return Packets.OkPacket; + case 0x00: + if (!this._handshaked) { + this._handshaked = true; + this.emit('handshake', this._handshakeInitializationPacket); + } + return Packets.OkPacket; case 0xfe: return Packets.EofPacket; case 0xff: return Packets.ErrorPacket; } @@ -6331,7 +6024,7 @@ Protocol.prototype._determinePacket = function(sequence) { }; Protocol.prototype._dequeue = function(sequence) { - sequence._timer.stop(); + Timers.unenroll(sequence); // No point in advancing the queue, we are dead if (this._fatalError) { @@ -6353,7 +6046,8 @@ Protocol.prototype._dequeue = function(sequence) { Protocol.prototype._startSequence = function(sequence) { if (sequence._timeout > 0 && isFinite(sequence._timeout)) { - sequence._timer.start(sequence._timeout); + Timers.enroll(sequence, sequence._timeout); + Timers.active(sequence); } if (sequence.constructor === Sequences.ChangeUser) { @@ -6445,23 +6139,20 @@ Protocol.prototype.destroy = function() { }; Protocol.prototype._debugPacket = function(incoming, packet) { - var connection = this._connection; - var direction = incoming - ? '<--' - : '-->'; - var packetName = packet.constructor.name; - var threadId = connection && connection.threadId !== null - ? ' (' + connection.threadId + ')' - : ''; + var headline = (incoming) + ? '<-- ' + : '--> '; + + headline = headline + packet.constructor.name; // check for debug packet restriction - if (Array.isArray(this._config.debug) && this._config.debug.indexOf(packetName) === -1) { + if (Array.isArray(this._config.debug) && this._config.debug.indexOf(packet.constructor.name) === -1) { return; } - var packetPayload = Util.inspect(packet).replace(/^[^{]+/, ''); - - console.log('%s%s %s %s\n', direction, threadId, packetName, packetPayload); + console.log(headline); + console.log(packet); + console.log(''); }; @@ -6469,14 +6160,12 @@ Protocol.prototype._debugPacket = function(incoming, packet) { /* 38 */ /***/ (function(module, exports, __webpack_require__) { -var PacketHeader = __webpack_require__(39); -var BigNumber = __webpack_require__(40); -var Buffer = __webpack_require__(1).Buffer; -var BufferList = __webpack_require__(42); - -var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; -var MUL_32BIT = Math.pow(2, 32); -var PACKET_HEADER_LENGTH = 4; +var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; +var MUL_32BIT = Math.pow(2, 32); +var PacketHeader = __webpack_require__(39); +var BigNumber = __webpack_require__(40); +var Buffer = __webpack_require__(1).Buffer; +var BufferList = __webpack_require__(42); module.exports = Parser; function Parser(options) { @@ -6501,17 +6190,71 @@ Parser.prototype.write = function write(chunk) { this._nextBuffers.push(chunk); while (!this._paused) { - var packetHeader = this._tryReadPacketHeader(); + if (!this._packetHeader) { + if (!this._combineNextBuffers(4)) { + break; + } - if (!packetHeader) { - break; + this._packetHeader = new PacketHeader( + this.parseUnsignedNumber(3), + this.parseUnsignedNumber(1) + ); + + if (this._packetHeader.number !== this._nextPacketNumber) { + var err = new Error( + 'Packets out of order. Got: ' + this._packetHeader.number + ' ' + + 'Expected: ' + this._nextPacketNumber + ); + + err.code = 'PROTOCOL_PACKETS_OUT_OF_ORDER'; + err.fatal = true; + + this._onError(err); + } + + this.incrementPacketNumber(); } - if (!this._combineNextBuffers(packetHeader.length)) { + if (!this._combineNextBuffers(this._packetHeader.length)) { break; } - this._parsePacket(packetHeader); + this._packetEnd = this._offset + this._packetHeader.length; + this._packetOffset = this._offset; + + if (this._packetHeader.length === MAX_PACKET_LENGTH) { + this._longPacketBuffers.push(this._buffer.slice(this._packetOffset, this._packetEnd)); + + this._advanceToNextPacket(); + continue; + } + + this._combineLongPacketBuffers(); + + // Try...finally to ensure exception safety. Unfortunately this is costing + // us up to ~10% performance in some benchmarks. + var hadException = true; + try { + this._onPacket(this._packetHeader); + hadException = false; + } catch (err) { + if (!err || typeof err.code !== 'string' || err.code.substr(0, 7) !== 'PARSER_') { + throw err; // Rethrow non-MySQL errors + } + + // Pass down parser errors + this._onError(err); + hadException = false; + } finally { + this._advanceToNextPacket(); + + // If we had an exception, the parser while loop will be broken out + // of after the finally block. So we need to make sure to re-enter it + // to continue parsing any bytes that may already have been received. + if (hadException) { + process.nextTick(this.write.bind(this)); + } + } } }; @@ -6586,8 +6329,8 @@ Parser.prototype.resume = function() { process.nextTick(this.write.bind(this)); }; -Parser.prototype.peak = function peak(offset) { - return this._buffer[this._offset + (offset >>> 0)]; +Parser.prototype.peak = function() { + return this._buffer[this._offset]; }; Parser.prototype.parseUnsignedNumber = function parseUnsignedNumber(bytes) { @@ -6671,7 +6414,7 @@ Parser.prototype.parseLengthCodedNumber = function parseLengthCodedNumber() { var value; if (high >>> 21) { - value = BigNumber(MUL_32BIT).times(high).plus(low).toString(); + value = (new BigNumber(low)).plus((new BigNumber(MUL_32BIT)).times(high)).toString(); if (this._supportBigNumbers) { return value; @@ -6887,73 +6630,6 @@ Parser.prototype._combineLongPacketBuffers = function _combineLongPacketBuffers( this._packetOffset = 0; }; -Parser.prototype._parsePacket = function _parsePacket(packetHeader) { - this._packetEnd = this._offset + packetHeader.length; - this._packetOffset = this._offset; - - if (packetHeader.length === MAX_PACKET_LENGTH) { - this._longPacketBuffers.push(this._buffer.slice(this._packetOffset, this._packetEnd)); - this._advanceToNextPacket(); - return; - } - - this._combineLongPacketBuffers(); - - var hadException = true; - try { - this._onPacket(packetHeader); - hadException = false; - } catch (err) { - if (!err || typeof err.code !== 'string' || err.code.substr(0, 7) !== 'PARSER_') { - throw err; // Rethrow non-MySQL errors - } - - // Pass down parser errors - this._onError(err); - hadException = false; - } finally { - this._advanceToNextPacket(); - - // If there was an exception, the parser while loop will be broken out - // of after the finally block. So schedule a blank write to re-enter it - // to continue parsing any bytes that may already have been received. - if (hadException) { - process.nextTick(this.write.bind(this)); - } - } -}; - -Parser.prototype._tryReadPacketHeader = function _tryReadPacketHeader() { - if (this._packetHeader) { - return this._packetHeader; - } - - if (!this._combineNextBuffers(PACKET_HEADER_LENGTH)) { - return null; - } - - this._packetHeader = new PacketHeader( - this.parseUnsignedNumber(3), - this.parseUnsignedNumber(1) - ); - - if (this._packetHeader.number !== this._nextPacketNumber) { - var err = new Error( - 'Packets out of order. Got: ' + this._packetHeader.number + ' ' + - 'Expected: ' + this._nextPacketNumber - ); - - err.code = 'PROTOCOL_PACKETS_OUT_OF_ORDER'; - err.fatal = true; - - this._onError(err); - } - - this.incrementPacketNumber(); - - return this._packetHeader; -}; - Parser.prototype._advanceToNextPacket = function() { this._offset = this._packetEnd; this._packetHeader = null; @@ -6975,2804 +6651,2736 @@ function PacketHeader(length, number) { /***/ }), /* 40 */ -/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BigNumber", function() { return BigNumber; }); -/* - * bignumber.js v7.2.1 - * A JavaScript library for arbitrary-precision arithmetic. - * https://github.com/MikeMcl/bignumber.js - * Copyright (c) 2018 Michael Mclaughlin - * MIT Licensed. - * - * BigNumber.prototype methods | BigNumber methods - * | - * absoluteValue abs | clone - * comparedTo | config set - * decimalPlaces dp | DECIMAL_PLACES - * dividedBy div | ROUNDING_MODE - * dividedToIntegerBy idiv | EXPONENTIAL_AT - * exponentiatedBy pow | RANGE - * integerValue | CRYPTO - * isEqualTo eq | MODULO_MODE - * isFinite | POW_PRECISION - * isGreaterThan gt | FORMAT - * isGreaterThanOrEqualTo gte | ALPHABET - * isInteger | isBigNumber - * isLessThan lt | maximum max - * isLessThanOrEqualTo lte | minimum min - * isNaN | random - * isNegative | - * isPositive | - * isZero | - * minus | - * modulo mod | - * multipliedBy times | - * negated | - * plus | - * precision sd | - * shiftedBy | - * squareRoot sqrt | - * toExponential | - * toFixed | - * toFormat | - * toFraction | - * toJSON | - * toNumber | - * toPrecision | - * toString | - * valueOf | - * - */ +/***/ (function(module, exports, __webpack_require__) { +var __WEBPACK_AMD_DEFINE_RESULT__;/*! bignumber.js v4.0.4 https://github.com/MikeMcl/bignumber.js/LICENCE */ -var isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, +;(function (globalObj) { + 'use strict'; - mathceil = Math.ceil, - mathfloor = Math.floor, + /* + bignumber.js v4.0.4 + A JavaScript library for arbitrary-precision arithmetic. + https://github.com/MikeMcl/bignumber.js + Copyright (c) 2017 Michael Mclaughlin + MIT Expat Licence + */ + + + var BigNumber, + isNumeric = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, + mathceil = Math.ceil, + mathfloor = Math.floor, + notBool = ' not a boolean or binary digit', + roundingMode = 'rounding mode', + tooManyDigits = 'number type has more than 15 significant digits', + ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_', + BASE = 1e14, + LOG_BASE = 14, + MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1 + // MAX_INT32 = 0x7fffffff, // 2^31 - 1 + POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], + SQRT_BASE = 1e7, + + /* + * The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and + * the arguments to toExponential, toFixed, toFormat, and toPrecision, beyond which an + * exception is thrown (if ERRORS is true). + */ + MAX = 1E9; // 0 to MAX_INT32 - bignumberError = '[BigNumber Error] ', - tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ', - BASE = 1e14, - LOG_BASE = 14, - MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1 - // MAX_INT32 = 0x7fffffff, // 2^31 - 1 - POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], - SQRT_BASE = 1e7, + /* + * Create and return a BigNumber constructor. + */ + function constructorFactory(config) { + var div, parseNumeric, + + // id tracks the caller function, so its name can be included in error messages. + id = 0, + P = BigNumber.prototype, + ONE = new BigNumber(1), + + + /********************************* EDITABLE DEFAULTS **********************************/ + + + /* + * The default values below must be integers within the inclusive ranges stated. + * The values can also be changed at run-time using BigNumber.config. + */ + + // The maximum number of decimal places for operations involving division. + DECIMAL_PLACES = 20, // 0 to MAX + + /* + * The rounding mode used when rounding to the above decimal places, and when using + * toExponential, toFixed, toFormat and toPrecision, and round (default value). + * UP 0 Away from zero. + * DOWN 1 Towards zero. + * CEIL 2 Towards +Infinity. + * FLOOR 3 Towards -Infinity. + * HALF_UP 4 Towards nearest neighbour. If equidistant, up. + * HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. + * HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. + * HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. + * HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. + */ + ROUNDING_MODE = 4, // 0 to 8 + + // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS] + + // The exponent value at and beneath which toString returns exponential notation. + // Number type: -7 + TO_EXP_NEG = -7, // 0 to -MAX + + // The exponent value at and above which toString returns exponential notation. + // Number type: 21 + TO_EXP_POS = 21, // 0 to MAX + + // RANGE : [MIN_EXP, MAX_EXP] + + // The minimum exponent value, beneath which underflow to zero occurs. + // Number type: -324 (5e-324) + MIN_EXP = -1e7, // -1 to -MAX + + // The maximum exponent value, above which overflow to Infinity occurs. + // Number type: 308 (1.7976931348623157e+308) + // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow. + MAX_EXP = 1e7, // 1 to MAX + + // Whether BigNumber Errors are ever thrown. + ERRORS = true, // true or false + + // Change to intValidatorNoErrors if ERRORS is false. + isValidInt = intValidatorWithErrors, // intValidatorWithErrors/intValidatorNoErrors + + // Whether to use cryptographically-secure random number generation, if available. + CRYPTO = false, // true or false + + /* + * The modulo mode used when calculating the modulus: a mod n. + * The quotient (q = a / n) is calculated according to the corresponding rounding mode. + * The remainder (r) is calculated as: r = a - n * q. + * + * UP 0 The remainder is positive if the dividend is negative, else is negative. + * DOWN 1 The remainder has the same sign as the dividend. + * This modulo mode is commonly known as 'truncated division' and is + * equivalent to (a % n) in JavaScript. + * FLOOR 3 The remainder has the same sign as the divisor (Python %). + * HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function. + * EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). + * The remainder is always positive. + * + * The truncated division, floored division, Euclidian division and IEEE 754 remainder + * modes are commonly used for the modulus operation. + * Although the other rounding modes can also be used, they may not give useful results. + */ + MODULO_MODE = 1, // 0 to 9 + + // The maximum number of significant digits of the result of the toPower operation. + // If POW_PRECISION is 0, there will be unlimited significant digits. + POW_PRECISION = 0, // 0 to MAX + + // The format specification used by the BigNumber.prototype.toFormat method. + FORMAT = { + decimalSeparator: '.', + groupSeparator: ',', + groupSize: 3, + secondaryGroupSize: 0, + fractionGroupSeparator: '\xA0', // non-breaking space + fractionGroupSize: 0 + }; + + + /******************************************************************************************/ + + + // CONSTRUCTOR + + + /* + * The BigNumber constructor and exported function. + * Create and return a new instance of a BigNumber object. + * + * n {number|string|BigNumber} A numeric value. + * [b] {number} The base of n. Integer, 2 to 64 inclusive. + */ + function BigNumber( n, b ) { + var c, e, i, num, len, str, + x = this; + + // Enable constructor usage without new. + if ( !( x instanceof BigNumber ) ) { + + // 'BigNumber() constructor call without new: {n}' + if (ERRORS) raise( 26, 'constructor call without new', n ); + return new BigNumber( n, b ); + } - // EDITABLE - // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and - // the arguments to toExponential, toFixed, toFormat, and toPrecision. - MAX = 1E9; // 0 to MAX_INT32 + // 'new BigNumber() base not an integer: {b}' + // 'new BigNumber() base out of range: {b}' + if ( b == null || !isValidInt( b, 2, 64, id, 'base' ) ) { + + // Duplicate. + if ( n instanceof BigNumber ) { + x.s = n.s; + x.e = n.e; + x.c = ( n = n.c ) ? n.slice() : n; + id = 0; + return; + } + + if ( ( num = typeof n == 'number' ) && n * 0 == 0 ) { + x.s = 1 / n < 0 ? ( n = -n, -1 ) : 1; + + // Fast path for integers. + if ( n === ~~n ) { + for ( e = 0, i = n; i >= 10; i /= 10, e++ ); + x.e = e; + x.c = [n]; + id = 0; + return; + } + + str = n + ''; + } else { + if ( !isNumeric.test( str = n + '' ) ) return parseNumeric( x, str, num ); + x.s = str.charCodeAt(0) === 45 ? ( str = str.slice(1), -1 ) : 1; + } + } else { + b = b | 0; + str = n + ''; + + // Ensure return value is rounded to DECIMAL_PLACES as with other bases. + // Allow exponential notation to be used with base 10 argument. + if ( b == 10 ) { + x = new BigNumber( n instanceof BigNumber ? n : str ); + return round( x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE ); + } + + // Avoid potential interpretation of Infinity and NaN as base 44+ values. + // Any number in exponential form will fail due to the [Ee][+-]. + if ( ( num = typeof n == 'number' ) && n * 0 != 0 || + !( new RegExp( '^-?' + ( c = '[' + ALPHABET.slice( 0, b ) + ']+' ) + + '(?:\\.' + c + ')?$',b < 37 ? 'i' : '' ) ).test(str) ) { + return parseNumeric( x, str, num, b ); + } + + if (num) { + x.s = 1 / n < 0 ? ( str = str.slice(1), -1 ) : 1; + + if ( ERRORS && str.replace( /^0\.0*|\./, '' ).length > 15 ) { + + // 'new BigNumber() number type has more than 15 significant digits: {n}' + raise( id, tooManyDigits, n ); + } + + // Prevent later check for length on converted number. + num = false; + } else { + x.s = str.charCodeAt(0) === 45 ? ( str = str.slice(1), -1 ) : 1; + } + + str = convertBase( str, 10, b, x.s ); + } + // Decimal point? + if ( ( e = str.indexOf('.') ) > -1 ) str = str.replace( '.', '' ); -/* - * Create and return a BigNumber constructor. - */ -function clone(configObject) { - var div, convertBase, parseNumeric, - P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null }, - ONE = new BigNumber(1), - - - //----------------------------- EDITABLE CONFIG DEFAULTS ------------------------------- - - - // The default values below must be integers within the inclusive ranges stated. - // The values can also be changed at run-time using BigNumber.set. - - // The maximum number of decimal places for operations involving division. - DECIMAL_PLACES = 20, // 0 to MAX - - // The rounding mode used when rounding to the above decimal places, and when using - // toExponential, toFixed, toFormat and toPrecision, and round (default value). - // UP 0 Away from zero. - // DOWN 1 Towards zero. - // CEIL 2 Towards +Infinity. - // FLOOR 3 Towards -Infinity. - // HALF_UP 4 Towards nearest neighbour. If equidistant, up. - // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. - // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. - // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. - // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. - ROUNDING_MODE = 4, // 0 to 8 - - // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS] - - // The exponent value at and beneath which toString returns exponential notation. - // Number type: -7 - TO_EXP_NEG = -7, // 0 to -MAX - - // The exponent value at and above which toString returns exponential notation. - // Number type: 21 - TO_EXP_POS = 21, // 0 to MAX - - // RANGE : [MIN_EXP, MAX_EXP] - - // The minimum exponent value, beneath which underflow to zero occurs. - // Number type: -324 (5e-324) - MIN_EXP = -1e7, // -1 to -MAX - - // The maximum exponent value, above which overflow to Infinity occurs. - // Number type: 308 (1.7976931348623157e+308) - // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow. - MAX_EXP = 1e7, // 1 to MAX - - // Whether to use cryptographically-secure random number generation, if available. - CRYPTO = false, // true or false - - // The modulo mode used when calculating the modulus: a mod n. - // The quotient (q = a / n) is calculated according to the corresponding rounding mode. - // The remainder (r) is calculated as: r = a - n * q. - // - // UP 0 The remainder is positive if the dividend is negative, else is negative. - // DOWN 1 The remainder has the same sign as the dividend. - // This modulo mode is commonly known as 'truncated division' and is - // equivalent to (a % n) in JavaScript. - // FLOOR 3 The remainder has the same sign as the divisor (Python %). - // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function. - // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). - // The remainder is always positive. - // - // The truncated division, floored division, Euclidian division and IEEE 754 remainder - // modes are commonly used for the modulus operation. - // Although the other rounding modes can also be used, they may not give useful results. - MODULO_MODE = 1, // 0 to 9 - - // The maximum number of significant digits of the result of the exponentiatedBy operation. - // If POW_PRECISION is 0, there will be unlimited significant digits. - POW_PRECISION = 0, // 0 to MAX - - // The format specification used by the BigNumber.prototype.toFormat method. - FORMAT = { - decimalSeparator: '.', - groupSeparator: ',', - groupSize: 3, - secondaryGroupSize: 0, - fractionGroupSeparator: '\xA0', // non-breaking space - fractionGroupSize: 0 - }, - - // The alphabet used for base conversion. - // It must be at least 2 characters long, with no '.' or repeated character. - // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' - ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; - - - //------------------------------------------------------------------------------------------ - - - // CONSTRUCTOR - - - /* - * The BigNumber constructor and exported function. - * Create and return a new instance of a BigNumber object. - * - * n {number|string|BigNumber} A numeric value. - * [b] {number} The base of n. Integer, 2 to ALPHABET.length inclusive. - */ - function BigNumber(n, b) { - var alphabet, c, caseChanged, e, i, isNum, len, str, - x = this; - - // Enable constructor usage without new. - if (!(x instanceof BigNumber)) { - - // Don't throw on constructor call without new (#81). - // '[BigNumber Error] Constructor call without new: {n}' - //throw Error(bignumberError + ' Constructor call without new: ' + n); - return new BigNumber(n, b); - } + // Exponential form? + if ( ( i = str.search( /e/i ) ) > 0 ) { - if (b == null) { + // Determine exponent. + if ( e < 0 ) e = i; + e += +str.slice( i + 1 ); + str = str.substring( 0, i ); + } else if ( e < 0 ) { - // Duplicate. - if (n instanceof BigNumber) { - x.s = n.s; - x.e = n.e; - x.c = (n = n.c) ? n.slice() : n; - return; - } + // Integer. + e = str.length; + } - isNum = typeof n == 'number'; + // Determine leading zeros. + for ( i = 0; str.charCodeAt(i) === 48; i++ ); - if (isNum && n * 0 == 0) { + // Determine trailing zeros. + for ( len = str.length; str.charCodeAt(--len) === 48; ); + str = str.slice( i, len + 1 ); - // Use `1 / n` to handle minus zero also. - x.s = 1 / n < 0 ? (n = -n, -1) : 1; + if (str) { + len = str.length; - // Faster path for integers. - if (n === ~~n) { - for (e = 0, i = n; i >= 10; i /= 10, e++); - x.e = e; - x.c = [n]; - return; - } + // Disallow numbers with over 15 significant digits if number type. + // 'new BigNumber() number type has more than 15 significant digits: {n}' + if ( num && ERRORS && len > 15 && ( n > MAX_SAFE_INTEGER || n !== mathfloor(n) ) ) { + raise( id, tooManyDigits, x.s * n ); + } - str = n + ''; - } else { - if (!isNumeric.test(str = n + '')) return parseNumeric(x, str, isNum); - x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; - } + e = e - i - 1; - // Decimal point? - if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + // Overflow? + if ( e > MAX_EXP ) { - // Exponential form? - if ((i = str.search(/e/i)) > 0) { + // Infinity. + x.c = x.e = null; - // Determine exponent. - if (e < 0) e = i; - e += +str.slice(i + 1); - str = str.substring(0, i); - } else if (e < 0) { + // Underflow? + } else if ( e < MIN_EXP ) { - // Integer. - e = str.length; - } + // Zero. + x.c = [ x.e = 0 ]; + } else { + x.e = e; + x.c = []; - } else { + // Transform base - // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' - intCheck(b, 2, ALPHABET.length, 'Base'); - str = n + ''; + // e is the base 10 exponent. + // i is where to slice str to get the first element of the coefficient array. + i = ( e + 1 ) % LOG_BASE; + if ( e < 0 ) i += LOG_BASE; - // Allow exponential notation to be used with base 10 argument, while - // also rounding to DECIMAL_PLACES as with other bases. - if (b == 10) { - x = new BigNumber(n instanceof BigNumber ? n : str); - return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); - } + if ( i < len ) { + if (i) x.c.push( +str.slice( 0, i ) ); - isNum = typeof n == 'number'; + for ( len -= LOG_BASE; i < len; ) { + x.c.push( +str.slice( i, i += LOG_BASE ) ); + } - if (isNum) { + str = str.slice(i); + i = LOG_BASE - str.length; + } else { + i -= len; + } - // Avoid potential interpretation of Infinity and NaN as base 44+ values. - if (n * 0 != 0) return parseNumeric(x, str, isNum, b); + for ( ; i--; str += '0' ); + x.c.push( +str ); + } + } else { - x.s = 1 / n < 0 ? (str = str.slice(1), -1) : 1; + // Zero. + x.c = [ x.e = 0 ]; + } - // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' - if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { - throw Error - (tooManyDigits + n); + id = 0; } - // Prevent later check for length on converted number. - isNum = false; - } else { - x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; - } - alphabet = ALPHABET.slice(0, b); - e = i = 0; + // CONSTRUCTOR PROPERTIES + + + BigNumber.another = constructorFactory; + + BigNumber.ROUND_UP = 0; + BigNumber.ROUND_DOWN = 1; + BigNumber.ROUND_CEIL = 2; + BigNumber.ROUND_FLOOR = 3; + BigNumber.ROUND_HALF_UP = 4; + BigNumber.ROUND_HALF_DOWN = 5; + BigNumber.ROUND_HALF_EVEN = 6; + BigNumber.ROUND_HALF_CEIL = 7; + BigNumber.ROUND_HALF_FLOOR = 8; + BigNumber.EUCLID = 9; + + + /* + * Configure infrequently-changing library-wide settings. + * + * Accept an object or an argument list, with one or many of the following properties or + * parameters respectively: + * + * DECIMAL_PLACES {number} Integer, 0 to MAX inclusive + * ROUNDING_MODE {number} Integer, 0 to 8 inclusive + * EXPONENTIAL_AT {number|number[]} Integer, -MAX to MAX inclusive or + * [integer -MAX to 0 incl., 0 to MAX incl.] + * RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or + * [integer -MAX to -1 incl., integer 1 to MAX incl.] + * ERRORS {boolean|number} true, false, 1 or 0 + * CRYPTO {boolean|number} true, false, 1 or 0 + * MODULO_MODE {number} 0 to 9 inclusive + * POW_PRECISION {number} 0 to MAX inclusive + * FORMAT {object} See BigNumber.prototype.toFormat + * decimalSeparator {string} + * groupSeparator {string} + * groupSize {number} + * secondaryGroupSize {number} + * fractionGroupSeparator {string} + * fractionGroupSize {number} + * + * (The values assigned to the above FORMAT object properties are not checked for validity.) + * + * E.g. + * BigNumber.config(20, 4) is equivalent to + * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 }) + * + * Ignore properties/parameters set to null or undefined. + * Return an object with the properties current values. + */ + BigNumber.config = BigNumber.set = function () { + var v, p, + i = 0, + r = {}, + a = arguments, + o = a[0], + has = o && typeof o == 'object' + ? function () { if ( o.hasOwnProperty(p) ) return ( v = o[p] ) != null; } + : function () { if ( a.length > i ) return ( v = a[i++] ) != null; }; + + // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive. + // 'config() DECIMAL_PLACES not an integer: {v}' + // 'config() DECIMAL_PLACES out of range: {v}' + if ( has( p = 'DECIMAL_PLACES' ) && isValidInt( v, 0, MAX, 2, p ) ) { + DECIMAL_PLACES = v | 0; + } + r[p] = DECIMAL_PLACES; - // Check that str is a valid base b number. - // Don't use RegExp so alphabet can contain special characters. - for (len = str.length; i < len; i++) { - if (alphabet.indexOf(c = str.charAt(i)) < 0) { - if (c == '.') { + // ROUNDING_MODE {number} Integer, 0 to 8 inclusive. + // 'config() ROUNDING_MODE not an integer: {v}' + // 'config() ROUNDING_MODE out of range: {v}' + if ( has( p = 'ROUNDING_MODE' ) && isValidInt( v, 0, 8, 2, p ) ) { + ROUNDING_MODE = v | 0; + } + r[p] = ROUNDING_MODE; + + // EXPONENTIAL_AT {number|number[]} + // Integer, -MAX to MAX inclusive or [integer -MAX to 0 inclusive, 0 to MAX inclusive]. + // 'config() EXPONENTIAL_AT not an integer: {v}' + // 'config() EXPONENTIAL_AT out of range: {v}' + if ( has( p = 'EXPONENTIAL_AT' ) ) { + + if ( isArray(v) ) { + if ( isValidInt( v[0], -MAX, 0, 2, p ) && isValidInt( v[1], 0, MAX, 2, p ) ) { + TO_EXP_NEG = v[0] | 0; + TO_EXP_POS = v[1] | 0; + } + } else if ( isValidInt( v, -MAX, MAX, 2, p ) ) { + TO_EXP_NEG = -( TO_EXP_POS = ( v < 0 ? -v : v ) | 0 ); + } + } + r[p] = [ TO_EXP_NEG, TO_EXP_POS ]; + + // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or + // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive]. + // 'config() RANGE not an integer: {v}' + // 'config() RANGE cannot be zero: {v}' + // 'config() RANGE out of range: {v}' + if ( has( p = 'RANGE' ) ) { + + if ( isArray(v) ) { + if ( isValidInt( v[0], -MAX, -1, 2, p ) && isValidInt( v[1], 1, MAX, 2, p ) ) { + MIN_EXP = v[0] | 0; + MAX_EXP = v[1] | 0; + } + } else if ( isValidInt( v, -MAX, MAX, 2, p ) ) { + if ( v | 0 ) MIN_EXP = -( MAX_EXP = ( v < 0 ? -v : v ) | 0 ); + else if (ERRORS) raise( 2, p + ' cannot be zero', v ); + } + } + r[p] = [ MIN_EXP, MAX_EXP ]; + + // ERRORS {boolean|number} true, false, 1 or 0. + // 'config() ERRORS not a boolean or binary digit: {v}' + if ( has( p = 'ERRORS' ) ) { + + if ( v === !!v || v === 1 || v === 0 ) { + id = 0; + isValidInt = ( ERRORS = !!v ) ? intValidatorWithErrors : intValidatorNoErrors; + } else if (ERRORS) { + raise( 2, p + notBool, v ); + } + } + r[p] = ERRORS; + + // CRYPTO {boolean|number} true, false, 1 or 0. + // 'config() CRYPTO not a boolean or binary digit: {v}' + // 'config() crypto unavailable: {crypto}' + if ( has( p = 'CRYPTO' ) ) { + + if ( v === true || v === false || v === 1 || v === 0 ) { + if (v) { + v = typeof crypto == 'undefined'; + if ( !v && crypto && (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = true; + } else if (ERRORS) { + raise( 2, 'crypto unavailable', v ? void 0 : crypto ); + } else { + CRYPTO = false; + } + } else { + CRYPTO = false; + } + } else if (ERRORS) { + raise( 2, p + notBool, v ); + } + } + r[p] = CRYPTO; - // If '.' is not the first character and it has not be found before. - if (i > e) { - e = len; - continue; + // MODULO_MODE {number} Integer, 0 to 9 inclusive. + // 'config() MODULO_MODE not an integer: {v}' + // 'config() MODULO_MODE out of range: {v}' + if ( has( p = 'MODULO_MODE' ) && isValidInt( v, 0, 9, 2, p ) ) { + MODULO_MODE = v | 0; } - } else if (!caseChanged) { - - // Allow e.g. hexadecimal 'FF' as well as 'ff'. - if (str == str.toUpperCase() && (str = str.toLowerCase()) || - str == str.toLowerCase() && (str = str.toUpperCase())) { - caseChanged = true; - i = -1; - e = 0; - continue; + r[p] = MODULO_MODE; + + // POW_PRECISION {number} Integer, 0 to MAX inclusive. + // 'config() POW_PRECISION not an integer: {v}' + // 'config() POW_PRECISION out of range: {v}' + if ( has( p = 'POW_PRECISION' ) && isValidInt( v, 0, MAX, 2, p ) ) { + POW_PRECISION = v | 0; } - } + r[p] = POW_PRECISION; - return parseNumeric(x, n + '', isNum, b); - } - } + // FORMAT {object} + // 'config() FORMAT not an object: {v}' + if ( has( p = 'FORMAT' ) ) { - str = convertBase(str, b, 10, x.s); + if ( typeof v == 'object' ) { + FORMAT = v; + } else if (ERRORS) { + raise( 2, p + ' not an object', v ); + } + } + r[p] = FORMAT; - // Decimal point? - if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); - else e = str.length; - } + return r; + }; - // Determine leading zeros. - for (i = 0; str.charCodeAt(i) === 48; i++); - // Determine trailing zeros. - for (len = str.length; str.charCodeAt(--len) === 48;); + /* + * Return a new BigNumber whose value is the maximum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.max = function () { return maxOrMin( arguments, P.lt ); }; + + + /* + * Return a new BigNumber whose value is the minimum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.min = function () { return maxOrMin( arguments, P.gt ); }; + + + /* + * Return a new BigNumber with a random value equal to or greater than 0 and less than 1, + * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing + * zeros are produced). + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * + * 'random() decimal places not an integer: {dp}' + * 'random() decimal places out of range: {dp}' + * 'random() crypto unavailable: {crypto}' + */ + BigNumber.random = (function () { + var pow2_53 = 0x20000000000000; + + // Return a 53 bit integer n, where 0 <= n < 9007199254740992. + // Check if Math.random() produces more than 32 bits of randomness. + // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits. + // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1. + var random53bitInt = (Math.random() * pow2_53) & 0x1fffff + ? function () { return mathfloor( Math.random() * pow2_53 ); } + : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) + + (Math.random() * 0x800000 | 0); }; + + return function (dp) { + var a, b, e, k, v, + i = 0, + c = [], + rand = new BigNumber(ONE); + + dp = dp == null || !isValidInt( dp, 0, MAX, 14 ) ? DECIMAL_PLACES : dp | 0; + k = mathceil( dp / LOG_BASE ); + + if (CRYPTO) { + + // Browsers supporting crypto.getRandomValues. + if (crypto.getRandomValues) { + + a = crypto.getRandomValues( new Uint32Array( k *= 2 ) ); + + for ( ; i < k; ) { + + // 53 bits: + // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2) + // 11111 11111111 11111111 11111111 11100000 00000000 00000000 + // ((Math.pow(2, 32) - 1) >>> 11).toString(2) + // 11111 11111111 11111111 + // 0x20000 is 2^21. + v = a[i] * 0x20000 + (a[i + 1] >>> 11); + + // Rejection sampling: + // 0 <= v < 9007199254740992 + // Probability that v >= 9e15, is + // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 + if ( v >= 9e15 ) { + b = crypto.getRandomValues( new Uint32Array(2) ); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + + // 0 <= v <= 8999999999999999 + // 0 <= (v % 1e14) <= 99999999999999 + c.push( v % 1e14 ); + i += 2; + } + } + i = k / 2; + + // Node.js supporting crypto.randomBytes. + } else if (crypto.randomBytes) { + + // buffer + a = crypto.randomBytes( k *= 7 ); + + for ( ; i < k; ) { + + // 0x1000000000000 is 2^48, 0x10000000000 is 2^40 + // 0x100000000 is 2^32, 0x1000000 is 2^24 + // 11111 11111111 11111111 11111111 11111111 11111111 11111111 + // 0 <= v < 9007199254740992 + v = ( ( a[i] & 31 ) * 0x1000000000000 ) + ( a[i + 1] * 0x10000000000 ) + + ( a[i + 2] * 0x100000000 ) + ( a[i + 3] * 0x1000000 ) + + ( a[i + 4] << 16 ) + ( a[i + 5] << 8 ) + a[i + 6]; + + if ( v >= 9e15 ) { + crypto.randomBytes(7).copy( a, i ); + } else { + + // 0 <= (v % 1e14) <= 99999999999999 + c.push( v % 1e14 ); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + if (ERRORS) raise( 14, 'crypto unavailable', crypto ); + } + } + + // Use Math.random. + if (!CRYPTO) { + + for ( ; i < k; ) { + v = random53bitInt(); + if ( v < 9e15 ) c[i++] = v % 1e14; + } + } + + k = c[--i]; + dp %= LOG_BASE; + + // Convert trailing digits to zeros according to dp. + if ( k && dp ) { + v = POWS_TEN[LOG_BASE - dp]; + c[i] = mathfloor( k / v ) * v; + } + + // Remove trailing elements which are zero. + for ( ; c[i] === 0; c.pop(), i-- ); + + // Zero? + if ( i < 0 ) { + c = [ e = 0 ]; + } else { + + // Remove leading elements which are zero and adjust exponent accordingly. + for ( e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE); + + // Count the digits of the first element of c to determine leading zeros, and... + for ( i = 1, v = c[0]; v >= 10; v /= 10, i++); + + // adjust the exponent accordingly. + if ( i < LOG_BASE ) e -= LOG_BASE - i; + } + + rand.e = e; + rand.c = c; + return rand; + }; + })(); + + + // PRIVATE FUNCTIONS + + + // Convert a numeric string of baseIn to a numeric string of baseOut. + function convertBase( str, baseOut, baseIn, sign ) { + var d, e, k, r, x, xc, y, + i = str.indexOf( '.' ), + dp = DECIMAL_PLACES, + rm = ROUNDING_MODE; + + if ( baseIn < 37 ) str = str.toLowerCase(); + + // Non-integer. + if ( i >= 0 ) { + k = POW_PRECISION; + + // Unlimited precision. + POW_PRECISION = 0; + str = str.replace( '.', '' ); + y = new BigNumber(baseIn); + x = y.pow( str.length - i ); + POW_PRECISION = k; + + // Convert str as if an integer, then restore the fraction part by dividing the + // result by its base raised to a power. + y.c = toBaseOut( toFixedPoint( coeffToString( x.c ), x.e ), 10, baseOut ); + y.e = y.c.length; + } - str = str.slice(i, ++len); + // Convert the number as integer. + xc = toBaseOut( str, baseIn, baseOut ); + e = k = xc.length; - if (str) { - len -= i; + // Remove trailing zeros. + for ( ; xc[--k] == 0; xc.pop() ); + if ( !xc[0] ) return '0'; - // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' - if (isNum && BigNumber.DEBUG && - len > 15 && (n > MAX_SAFE_INTEGER || n !== mathfloor(n))) { - throw Error - (tooManyDigits + (x.s * n)); - } + if ( i < 0 ) { + --e; + } else { + x.c = xc; + x.e = e; + + // sign is needed for correct rounding. + x.s = sign; + x = div( x, y, dp, rm, baseOut ); + xc = x.c; + r = x.r; + e = x.e; + } - e = e - i - 1; + d = e + dp + 1; - // Overflow? - if (e > MAX_EXP) { + // The rounding digit, i.e. the digit to the right of the digit that may be rounded up. + i = xc[d]; + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; - // Infinity. - x.c = x.e = null; + r = rm < 4 ? ( i != null || r ) && ( rm == 0 || rm == ( x.s < 0 ? 3 : 2 ) ) + : i > k || i == k &&( rm == 4 || r || rm == 6 && xc[d - 1] & 1 || + rm == ( x.s < 0 ? 8 : 7 ) ); - // Underflow? - } else if (e < MIN_EXP) { + if ( d < 1 || !xc[0] ) { - // Zero. - x.c = [x.e = 0]; - } else { - x.e = e; - x.c = []; + // 1^-dp or 0. + str = r ? toFixedPoint( '1', -dp ) : '0'; + } else { + xc.length = d; - // Transform base + if (r) { - // e is the base 10 exponent. - // i is where to slice str to get the first element of the coefficient array. - i = (e + 1) % LOG_BASE; - if (e < 0) i += LOG_BASE; + // Rounding up may mean the previous digit has to be rounded up and so on. + for ( --baseOut; ++xc[--d] > baseOut; ) { + xc[d] = 0; - if (i < len) { - if (i) x.c.push(+str.slice(0, i)); + if ( !d ) { + ++e; + xc = [1].concat(xc); + } + } + } - for (len -= LOG_BASE; i < len;) { - x.c.push(+str.slice(i, i += LOG_BASE)); - } + // Determine trailing zeros. + for ( k = xc.length; !xc[--k]; ); - str = str.slice(i); - i = LOG_BASE - str.length; - } else { - i -= len; - } + // E.g. [4, 11, 15] becomes 4bf. + for ( i = 0, str = ''; i <= k; str += ALPHABET.charAt( xc[i++] ) ); + str = toFixedPoint( str, e ); + } - for (; i--; str += '0'); - x.c.push(+str); - } - } else { + // The caller will add the sign. + return str; + } - // Zero. - x.c = [x.e = 0]; - } - } + // Perform division in the specified base. Called by div and convertBase. + div = (function () { - // CONSTRUCTOR PROPERTIES - - - BigNumber.clone = clone; - - BigNumber.ROUND_UP = 0; - BigNumber.ROUND_DOWN = 1; - BigNumber.ROUND_CEIL = 2; - BigNumber.ROUND_FLOOR = 3; - BigNumber.ROUND_HALF_UP = 4; - BigNumber.ROUND_HALF_DOWN = 5; - BigNumber.ROUND_HALF_EVEN = 6; - BigNumber.ROUND_HALF_CEIL = 7; - BigNumber.ROUND_HALF_FLOOR = 8; - BigNumber.EUCLID = 9; - - - /* - * Configure infrequently-changing library-wide settings. - * - * Accept an object with the following optional properties (if the value of a property is - * a number, it must be an integer within the inclusive range stated): - * - * DECIMAL_PLACES {number} 0 to MAX - * ROUNDING_MODE {number} 0 to 8 - * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX] - * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX] - * CRYPTO {boolean} true or false - * MODULO_MODE {number} 0 to 9 - * POW_PRECISION {number} 0 to MAX - * ALPHABET {string} A string of two or more unique characters which does - * not contain '.'. - * FORMAT {object} An object with some of the following properties: - * decimalSeparator {string} - * groupSeparator {string} - * groupSize {number} - * secondaryGroupSize {number} - * fractionGroupSeparator {string} - * fractionGroupSize {number} - * - * (The values assigned to the above FORMAT object properties are not checked for validity.) - * - * E.g. - * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 }) - * - * Ignore properties/parameters set to null or undefined, except for ALPHABET. - * - * Return an object with the properties current values. - */ - BigNumber.config = BigNumber.set = function (obj) { - var p, v; - - if (obj != null) { - - if (typeof obj == 'object') { - - // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive. - // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}' - if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) { - v = obj[p]; - intCheck(v, 0, MAX, p); - DECIMAL_PLACES = v; - } + // Assume non-zero x and k. + function multiply( x, k, base ) { + var m, temp, xlo, xhi, + carry = 0, + i = x.length, + klo = k % SQRT_BASE, + khi = k / SQRT_BASE | 0; - // ROUNDING_MODE {number} Integer, 0 to 8 inclusive. - // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}' - if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) { - v = obj[p]; - intCheck(v, 0, 8, p); - ROUNDING_MODE = v; - } + for ( x = x.slice(); i--; ) { + xlo = x[i] % SQRT_BASE; + xhi = x[i] / SQRT_BASE | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + ( ( m % SQRT_BASE ) * SQRT_BASE ) + carry; + carry = ( temp / base | 0 ) + ( m / SQRT_BASE | 0 ) + khi * xhi; + x[i] = temp % base; + } - // EXPONENTIAL_AT {number|number[]} - // Integer, -MAX to MAX inclusive or - // [integer -MAX to 0 inclusive, 0 to MAX inclusive]. - // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}' - if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) { - v = obj[p]; - if (isArray(v)) { - intCheck(v[0], -MAX, 0, p); - intCheck(v[1], 0, MAX, p); - TO_EXP_NEG = v[0]; - TO_EXP_POS = v[1]; - } else { - intCheck(v, -MAX, MAX, p); - TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); - } - } + if (carry) x = [carry].concat(x); - // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or - // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive]. - // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}' - if (obj.hasOwnProperty(p = 'RANGE')) { - v = obj[p]; - if (isArray(v)) { - intCheck(v[0], -MAX, -1, p); - intCheck(v[1], 1, MAX, p); - MIN_EXP = v[0]; - MAX_EXP = v[1]; - } else { - intCheck(v, -MAX, MAX, p); - if (v) { - MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); - } else { - throw Error - (bignumberError + p + ' cannot be zero: ' + v); + return x; } - } - } - // CRYPTO {boolean} true or false. - // '[BigNumber Error] CRYPTO not true or false: {v}' - // '[BigNumber Error] crypto unavailable' - if (obj.hasOwnProperty(p = 'CRYPTO')) { - v = obj[p]; - if (v === !!v) { - if (v) { - if (typeof crypto != 'undefined' && crypto && - (crypto.getRandomValues || crypto.randomBytes)) { - CRYPTO = v; - } else { - CRYPTO = !v; - throw Error - (bignumberError + 'crypto unavailable'); - } - } else { - CRYPTO = v; + function compare( a, b, aL, bL ) { + var i, cmp; + + if ( aL != bL ) { + cmp = aL > bL ? 1 : -1; + } else { + + for ( i = cmp = 0; i < aL; i++ ) { + + if ( a[i] != b[i] ) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + return cmp; } - } else { - throw Error - (bignumberError + p + ' not true or false: ' + v); - } - } - // MODULO_MODE {number} Integer, 0 to 9 inclusive. - // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}' - if (obj.hasOwnProperty(p = 'MODULO_MODE')) { - v = obj[p]; - intCheck(v, 0, 9, p); - MODULO_MODE = v; - } + function subtract( a, b, aL, base ) { + var i = 0; - // POW_PRECISION {number} Integer, 0 to MAX inclusive. - // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}' - if (obj.hasOwnProperty(p = 'POW_PRECISION')) { - v = obj[p]; - intCheck(v, 0, MAX, p); - POW_PRECISION = v; - } + // Subtract b from a. + for ( ; aL--; ) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } - // FORMAT {object} - // '[BigNumber Error] FORMAT not an object: {v}' - if (obj.hasOwnProperty(p = 'FORMAT')) { - v = obj[p]; - if (typeof v == 'object') FORMAT = v; - else throw Error - (bignumberError + p + ' not an object: ' + v); - } + // Remove leading zeros. + for ( ; !a[0] && a.length > 1; a.splice(0, 1) ); + } - // ALPHABET {string} - // '[BigNumber Error] ALPHABET invalid: {v}' - if (obj.hasOwnProperty(p = 'ALPHABET')) { - v = obj[p]; - - // Disallow if only one character, or contains '.' or a repeated character. - if (typeof v == 'string' && !/^.$|\.|(.).*\1/.test(v)) { - ALPHABET = v; - } else { - throw Error - (bignumberError + p + ' invalid: ' + v); - } + // x: dividend, y: divisor. + return function ( x, y, dp, rm, base ) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, + yL, yz, + s = x.s == y.s ? 1 : -1, + xc = x.c, + yc = y.c; + + // Either NaN, Infinity or 0? + if ( !xc || !xc[0] || !yc || !yc[0] ) { + + return new BigNumber( + + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || ( xc ? yc && xc[0] == yc[0] : !yc ) ? NaN : + + // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0. + xc && xc[0] == 0 || !yc ? s * 0 : s / 0 + ); + } + + q = new BigNumber(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + + if ( !base ) { + base = BASE; + e = bitFloor( x.e / LOG_BASE ) - bitFloor( y.e / LOG_BASE ); + s = s / LOG_BASE | 0; + } + + // Result exponent may be one less then the current value of e. + // The coefficients of the BigNumbers from convertBase may have trailing zeros. + for ( i = 0; yc[i] == ( xc[i] || 0 ); i++ ); + if ( yc[i] > ( xc[i] || 0 ) ) e--; + + if ( s < 0 ) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + + // Normalise xc and yc so highest order digit of yc is >= base / 2. + + n = mathfloor( base / ( yc[0] + 1 ) ); + + // Not necessary, but to handle odd bases where yc[0] == ( base / 2 ) - 1. + // if ( n > 1 || n++ == 1 && yc[0] < base / 2 ) { + if ( n > 1 ) { + yc = multiply( yc, n, base ); + xc = multiply( xc, n, base ); + yL = yc.length; + xL = xc.length; + } + + xi = yL; + rem = xc.slice( 0, yL ); + remL = rem.length; + + // Add zeros to make remainder as long as divisor. + for ( ; remL < yL; rem[remL++] = 0 ); + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if ( yc[1] >= base / 2 ) yc0++; + // Not necessary, but to prevent trial digit n > base, when using base 3. + // else if ( base == 3 && yc0 == 1 ) yc0 = 1 + 1e-15; + + do { + n = 0; + + // Compare divisor and remainder. + cmp = compare( yc, rem, yL, remL ); + + // If divisor < remainder. + if ( cmp < 0 ) { + + // Calculate trial digit, n. + + rem0 = rem[0]; + if ( yL != remL ) rem0 = rem0 * base + ( rem[1] || 0 ); + + // n is how many times the divisor goes into the current remainder. + n = mathfloor( rem0 / yc0 ); + + // Algorithm: + // 1. product = divisor * trial digit (n) + // 2. if product > remainder: product -= divisor, n-- + // 3. remainder -= product + // 4. if product was < remainder at 2: + // 5. compare new remainder and divisor + // 6. If remainder > divisor: remainder -= divisor, n++ + + if ( n > 1 ) { + + // n may be > base only when base is 3. + if (n >= base) n = base - 1; + + // product = divisor * trial digit. + prod = multiply( yc, n, base ); + prodL = prod.length; + remL = rem.length; + + // Compare product and remainder. + // If product > remainder. + // Trial digit n too high. + // n is 1 too high about 5% of the time, and is not known to have + // ever been more than 1 too high. + while ( compare( prod, rem, prodL, remL ) == 1 ) { + n--; + + // Subtract divisor from product. + subtract( prod, yL < prodL ? yz : yc, prodL, base ); + prodL = prod.length; + cmp = 1; + } + } else { + + // n is 0 or 1, cmp is -1. + // If n is 0, there is no need to compare yc and rem again below, + // so change cmp to 1 to avoid it. + // If n is 1, leave cmp as -1, so yc and rem are compared again. + if ( n == 0 ) { + + // divisor < remainder, so n must be at least 1. + cmp = n = 1; + } + + // product = divisor + prod = yc.slice(); + prodL = prod.length; + } + + if ( prodL < remL ) prod = [0].concat(prod); + + // Subtract product from remainder. + subtract( rem, prod, remL, base ); + remL = rem.length; + + // If product was < remainder. + if ( cmp == -1 ) { + + // Compare divisor and new remainder. + // If divisor < new remainder, subtract divisor from remainder. + // Trial digit n too low. + // n is 1 too low about 5% of the time, and very rarely 2 too low. + while ( compare( yc, rem, yL, remL ) < 1 ) { + n++; + + // Subtract divisor from remainder. + subtract( rem, yL < remL ? yz : yc, remL, base ); + remL = rem.length; + } + } + } else if ( cmp === 0 ) { + n++; + rem = [0]; + } // else cmp === 1 and n will be 0 + + // Add the next digit, n, to the result array. + qc[i++] = n; + + // Update the remainder. + if ( rem[0] ) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [ xc[xi] ]; + remL = 1; + } + } while ( ( xi++ < xL || rem[0] != null ) && s-- ); + + more = rem[0] != null; + + // Leading zero? + if ( !qc[0] ) qc.splice(0, 1); + } + + if ( base == BASE ) { + + // To calculate q.e, first get the number of digits of qc[0]. + for ( i = 1, s = qc[0]; s >= 10; s /= 10, i++ ); + round( q, dp + ( q.e = i + e * LOG_BASE - 1 ) + 1, rm, more ); + + // Caller is convertBase. + } else { + q.e = e; + q.r = +more; + } + + return q; + }; + })(); + + + /* + * Return a string representing the value of BigNumber n in fixed-point or exponential + * notation rounded to the specified decimal places or significant digits. + * + * n is a BigNumber. + * i is the index of the last digit required (i.e. the digit that may be rounded up). + * rm is the rounding mode. + * caller is caller id: toExponential 19, toFixed 20, toFormat 21, toPrecision 24. + */ + function format( n, i, rm, caller ) { + var c0, e, ne, len, str; + + rm = rm != null && isValidInt( rm, 0, 8, caller, roundingMode ) + ? rm | 0 : ROUNDING_MODE; + + if ( !n.c ) return n.toString(); + c0 = n.c[0]; + ne = n.e; + + if ( i == null ) { + str = coeffToString( n.c ); + str = caller == 19 || caller == 24 && ne <= TO_EXP_NEG + ? toExponential( str, ne ) + : toFixedPoint( str, ne ); + } else { + n = round( new BigNumber(n), i, rm ); + + // n.e may have changed if the value was rounded up. + e = n.e; + + str = coeffToString( n.c ); + len = str.length; + + // toPrecision returns exponential notation if the number of significant digits + // specified is less than the number of digits necessary to represent the integer + // part of the value in fixed-point notation. + + // Exponential notation. + if ( caller == 19 || caller == 24 && ( i <= e || e <= TO_EXP_NEG ) ) { + + // Append zeros? + for ( ; len < i; str += '0', len++ ); + str = toExponential( str, e ); + + // Fixed-point notation. + } else { + i -= ne; + str = toFixedPoint( str, e ); + + // Append zeros? + if ( e + 1 > len ) { + if ( --i > 0 ) for ( str += '.'; i--; str += '0' ); + } else { + i += e - len; + if ( i > 0 ) { + if ( e + 1 == len ) str += '.'; + for ( ; i--; str += '0' ); + } + } + } + } + + return n.s < 0 && c0 ? '-' + str : str; } - } else { - // '[BigNumber Error] Object expected: {v}' - throw Error - (bignumberError + 'Object expected: ' + obj); - } - } + // Handle BigNumber.max and BigNumber.min. + function maxOrMin( args, method ) { + var m, n, + i = 0; - return { - DECIMAL_PLACES: DECIMAL_PLACES, - ROUNDING_MODE: ROUNDING_MODE, - EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], - RANGE: [MIN_EXP, MAX_EXP], - CRYPTO: CRYPTO, - MODULO_MODE: MODULO_MODE, - POW_PRECISION: POW_PRECISION, - FORMAT: FORMAT, - ALPHABET: ALPHABET - }; - }; + if ( isArray( args[0] ) ) args = args[0]; + m = new BigNumber( args[0] ); + for ( ; ++i < args.length; ) { + n = new BigNumber( args[i] ); - /* - * Return true if v is a BigNumber instance, otherwise return false. - * - * v {any} - */ - BigNumber.isBigNumber = function (v) { - return v instanceof BigNumber || v && v._isBigNumber === true || false; - }; + // If any number is NaN, return NaN. + if ( !n.s ) { + m = n; + break; + } else if ( method.call( m, n ) ) { + m = n; + } + } + return m; + } - /* - * Return a new BigNumber whose value is the maximum of the arguments. - * - * arguments {number|string|BigNumber} - */ - BigNumber.maximum = BigNumber.max = function () { - return maxOrMin(arguments, P.lt); - }; + /* + * Return true if n is an integer in range, otherwise throw. + * Use for argument validation when ERRORS is true. + */ + function intValidatorWithErrors( n, min, max, caller, name ) { + if ( n < min || n > max || n != truncate(n) ) { + raise( caller, ( name || 'decimal places' ) + + ( n < min || n > max ? ' out of range' : ' not an integer' ), n ); + } - /* - * Return a new BigNumber whose value is the minimum of the arguments. - * - * arguments {number|string|BigNumber} - */ - BigNumber.minimum = BigNumber.min = function () { - return maxOrMin(arguments, P.gt); - }; + return true; + } - /* - * Return a new BigNumber with a random value equal to or greater than 0 and less than 1, - * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing - * zeros are produced). - * - * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}' - * '[BigNumber Error] crypto unavailable' - */ - BigNumber.random = (function () { - var pow2_53 = 0x20000000000000; - - // Return a 53 bit integer n, where 0 <= n < 9007199254740992. - // Check if Math.random() produces more than 32 bits of randomness. - // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits. - // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1. - var random53bitInt = (Math.random() * pow2_53) & 0x1fffff - ? function () { return mathfloor(Math.random() * pow2_53); } - : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) + - (Math.random() * 0x800000 | 0); }; - - return function (dp) { - var a, b, e, k, v, - i = 0, - c = [], - rand = new BigNumber(ONE); - - if (dp == null) dp = DECIMAL_PLACES; - else intCheck(dp, 0, MAX); - - k = mathceil(dp / LOG_BASE); - - if (CRYPTO) { - - // Browsers supporting crypto.getRandomValues. - if (crypto.getRandomValues) { - - a = crypto.getRandomValues(new Uint32Array(k *= 2)); - - for (; i < k;) { - - // 53 bits: - // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2) - // 11111 11111111 11111111 11111111 11100000 00000000 00000000 - // ((Math.pow(2, 32) - 1) >>> 11).toString(2) - // 11111 11111111 11111111 - // 0x20000 is 2^21. - v = a[i] * 0x20000 + (a[i + 1] >>> 11); - - // Rejection sampling: - // 0 <= v < 9007199254740992 - // Probability that v >= 9e15, is - // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 - if (v >= 9e15) { - b = crypto.getRandomValues(new Uint32Array(2)); - a[i] = b[0]; - a[i + 1] = b[1]; - } else { + /* + * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP. + * Called by minus, plus and times. + */ + function normalise( n, c, e ) { + var i = 1, + j = c.length; - // 0 <= v <= 8999999999999999 - // 0 <= (v % 1e14) <= 99999999999999 - c.push(v % 1e14); - i += 2; - } - } - i = k / 2; + // Remove trailing zeros. + for ( ; !c[--j]; c.pop() ); - // Node.js supporting crypto.randomBytes. - } else if (crypto.randomBytes) { + // Calculate the base 10 exponent. First get the number of digits of c[0]. + for ( j = c[0]; j >= 10; j /= 10, i++ ); - // buffer - a = crypto.randomBytes(k *= 7); + // Overflow? + if ( ( e = i + e * LOG_BASE - 1 ) > MAX_EXP ) { - for (; i < k;) { + // Infinity. + n.c = n.e = null; - // 0x1000000000000 is 2^48, 0x10000000000 is 2^40 - // 0x100000000 is 2^32, 0x1000000 is 2^24 - // 11111 11111111 11111111 11111111 11111111 11111111 11111111 - // 0 <= v < 9007199254740992 - v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) + - (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) + - (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + // Underflow? + } else if ( e < MIN_EXP ) { - if (v >= 9e15) { - crypto.randomBytes(7).copy(a, i); + // Zero. + n.c = [ n.e = 0 ]; } else { - - // 0 <= (v % 1e14) <= 99999999999999 - c.push(v % 1e14); - i += 7; + n.e = e; + n.c = c; } - } - i = k / 7; - } else { - CRYPTO = false; - throw Error - (bignumberError + 'crypto unavailable'); + + return n; } - } - // Use Math.random. - if (!CRYPTO) { - for (; i < k;) { - v = random53bitInt(); - if (v < 9e15) c[i++] = v % 1e14; + // Handle values that fail the validity test in BigNumber. + parseNumeric = (function () { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, + dotAfter = /^([^.]+)\.$/, + dotBefore = /^\.([^.]+)$/, + isInfinityOrNaN = /^-?(Infinity|NaN)$/, + whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + + return function ( x, str, num, b ) { + var base, + s = num ? str : str.replace( whitespaceOrPlus, '' ); + + // No exception on ±Infinity or NaN. + if ( isInfinityOrNaN.test(s) ) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if ( !num ) { + + // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i + s = s.replace( basePrefix, function ( m, p1, p2 ) { + base = ( p2 = p2.toLowerCase() ) == 'x' ? 16 : p2 == 'b' ? 2 : 8; + return !b || b == base ? p1 : m; + }); + + if (b) { + base = b; + + // E.g. '1.' to '1', '.1' to '0.1' + s = s.replace( dotAfter, '$1' ).replace( dotBefore, '0.$1' ); + } + + if ( str != s ) return new BigNumber( s, base ); + } + + // 'new BigNumber() not a number: {n}' + // 'new BigNumber() not a base {b} number: {n}' + if (ERRORS) raise( id, 'not a' + ( b ? ' base ' + b : '' ) + ' number', str ); + x.s = null; + } + + x.c = x.e = null; + id = 0; + } + })(); + + + // Throw a BigNumber Error. + function raise( caller, msg, val ) { + var error = new Error( [ + 'new BigNumber', // 0 + 'cmp', // 1 + 'config', // 2 + 'div', // 3 + 'divToInt', // 4 + 'eq', // 5 + 'gt', // 6 + 'gte', // 7 + 'lt', // 8 + 'lte', // 9 + 'minus', // 10 + 'mod', // 11 + 'plus', // 12 + 'precision', // 13 + 'random', // 14 + 'round', // 15 + 'shift', // 16 + 'times', // 17 + 'toDigits', // 18 + 'toExponential', // 19 + 'toFixed', // 20 + 'toFormat', // 21 + 'toFraction', // 22 + 'pow', // 23 + 'toPrecision', // 24 + 'toString', // 25 + 'BigNumber' // 26 + ][caller] + '() ' + msg + ': ' + val ); + + error.name = 'BigNumber Error'; + id = 0; + throw error; } - } - k = c[--i]; - dp %= LOG_BASE; - // Convert trailing digits to zeros according to dp. - if (k && dp) { - v = POWS_TEN[LOG_BASE - dp]; - c[i] = mathfloor(k / v) * v; - } + /* + * Round x to sd significant digits using rounding mode rm. Check for over/under-flow. + * If r is truthy, it is known that there are more digits after the rounding digit. + */ + function round( x, sd, rm, r ) { + var d, i, j, k, n, ni, rd, + xc = x.c, + pows10 = POWS_TEN; + + // if x is not Infinity or NaN... + if (xc) { + + // rd is the rounding digit, i.e. the digit after the digit that may be rounded up. + // n is a base 1e14 number, the value of the element of array x.c containing rd. + // ni is the index of n within x.c. + // d is the number of digits of n. + // i is the index of rd within n including leading zeros. + // j is the actual index of rd within n (if < 0, rd is a leading zero). + out: { + + // Get the number of digits of the first element of xc. + for ( d = 1, k = xc[0]; k >= 10; k /= 10, d++ ); + i = sd - d; + + // If the rounding digit is in the first element of xc... + if ( i < 0 ) { + i += LOG_BASE; + j = sd; + n = xc[ ni = 0 ]; + + // Get the rounding digit at index j of n. + rd = n / pows10[ d - j - 1 ] % 10 | 0; + } else { + ni = mathceil( ( i + 1 ) / LOG_BASE ); + + if ( ni >= xc.length ) { + + if (r) { + + // Needed by sqrt. + for ( ; xc.length <= ni; xc.push(0) ); + n = rd = 0; + d = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + + // Get the number of digits of n. + for ( d = 1; k >= 10; k /= 10, d++ ); + + // Get the index of rd within n. + i %= LOG_BASE; + + // Get the index of rd within n, adjusted for leading zeros. + // The number of leading zeros of n is given by LOG_BASE - d. + j = i - LOG_BASE + d; + + // Get the rounding digit at index j of n. + rd = j < 0 ? 0 : n / pows10[ d - j - 1 ] % 10 | 0; + } + } + + r = r || sd < 0 || + + // Are there any non-zero digits after the rounding digit? + // The expression n % pows10[ d - j - 1 ] returns all digits of n to the right + // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. + xc[ni + 1] != null || ( j < 0 ? n : n % pows10[ d - j - 1 ] ); + + r = rm < 4 + ? ( rd || r ) && ( rm == 0 || rm == ( x.s < 0 ? 3 : 2 ) ) + : rd > 5 || rd == 5 && ( rm == 4 || r || rm == 6 && + + // Check whether the digit to the left of the rounding digit is odd. + ( ( i > 0 ? j > 0 ? n / pows10[ d - j ] : 0 : xc[ni - 1] ) % 10 ) & 1 || + rm == ( x.s < 0 ? 8 : 7 ) ); + + if ( sd < 1 || !xc[0] ) { + xc.length = 0; + + if (r) { + + // Convert sd to decimal places. + sd -= x.e + 1; + + // 1, 0.1, 0.01, 0.001, 0.0001 etc. + xc[0] = pows10[ ( LOG_BASE - sd % LOG_BASE ) % LOG_BASE ]; + x.e = -sd || 0; + } else { + + // Zero. + xc[0] = x.e = 0; + } + + return x; + } + + // Remove excess digits. + if ( i == 0 ) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[ LOG_BASE - i ]; + + // E.g. 56700 becomes 56000 if 7 is the rounding digit. + // j > 0 means i > number of leading zeros of n. + xc[ni] = j > 0 ? mathfloor( n / pows10[ d - j ] % pows10[j] ) * k : 0; + } + + // Round up? + if (r) { + + for ( ; ; ) { + + // If the digit to be rounded up is in the first element of xc... + if ( ni == 0 ) { + + // i will be the length of xc[0] before k is added. + for ( i = 1, j = xc[0]; j >= 10; j /= 10, i++ ); + j = xc[0] += k; + for ( k = 1; j >= 10; j /= 10, k++ ); + + // if i != k the length has increased. + if ( i != k ) { + x.e++; + if ( xc[0] == BASE ) xc[0] = 1; + } + + break; + } else { + xc[ni] += k; + if ( xc[ni] != BASE ) break; + xc[ni--] = 0; + k = 1; + } + } + } + + // Remove trailing zeros. + for ( i = xc.length; xc[--i] === 0; xc.pop() ); + } + + // Overflow? Infinity. + if ( x.e > MAX_EXP ) { + x.c = x.e = null; + + // Underflow? Zero. + } else if ( x.e < MIN_EXP ) { + x.c = [ x.e = 0 ]; + } + } - // Remove trailing elements which are zero. - for (; c[i] === 0; c.pop(), i--); + return x; + } - // Zero? - if (i < 0) { - c = [e = 0]; - } else { - // Remove leading elements which are zero and adjust exponent accordingly. - for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE); + // PROTOTYPE/INSTANCE METHODS - // Count the digits of the first element of c to determine leading zeros, and... - for (i = 1, v = c[0]; v >= 10; v /= 10, i++); - // adjust the exponent accordingly. - if (i < LOG_BASE) e -= LOG_BASE - i; - } + /* + * Return a new BigNumber whose value is the absolute value of this BigNumber. + */ + P.absoluteValue = P.abs = function () { + var x = new BigNumber(this); + if ( x.s < 0 ) x.s = 1; + return x; + }; - rand.e = e; - rand.c = c; - return rand; - }; - })(); + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to a whole + * number in the direction of Infinity. + */ + P.ceil = function () { + return round( new BigNumber(this), this.e + 1, 2 ); + }; - // PRIVATE FUNCTIONS + /* + * Return + * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b), + * -1 if the value of this BigNumber is less than the value of BigNumber(y, b), + * 0 if they have the same value, + * or null if the value of either is NaN. + */ + P.comparedTo = P.cmp = function ( y, b ) { + id = 1; + return compare( this, new BigNumber( y, b ) ); + }; - // Called by BigNumber and BigNumber.prototype.toString. - convertBase = (function () { - var decimal = '0123456789'; - /* - * Convert string of baseIn to an array of numbers of baseOut. - * Eg. toBaseOut('255', 10, 16) returns [15, 15]. - * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. - */ - function toBaseOut(str, baseIn, baseOut, alphabet) { - var j, - arr = [0], - arrL, - i = 0, - len = str.length; + /* + * Return the number of decimal places of the value of this BigNumber, or null if the value + * of this BigNumber is ±Infinity or NaN. + */ + P.decimalPlaces = P.dp = function () { + var n, v, + c = this.c; - for (; i < len;) { - for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); + if ( !c ) return null; + n = ( ( v = c.length - 1 ) - bitFloor( this.e / LOG_BASE ) ) * LOG_BASE; - arr[0] += alphabet.indexOf(str.charAt(i++)); + // Subtract the number of trailing zeros of the last number. + if ( v = c[v] ) for ( ; v % 10 == 0; v /= 10, n-- ); + if ( n < 0 ) n = 0; - for (j = 0; j < arr.length; j++) { + return n; + }; - if (arr[j] > baseOut - 1) { - if (arr[j + 1] == null) arr[j + 1] = 0; - arr[j + 1] += arr[j] / baseOut | 0; - arr[j] %= baseOut; - } - } - } - return arr.reverse(); - } + /* + * n / 0 = I + * n / N = N + * n / I = 0 + * 0 / n = 0 + * 0 / 0 = N + * 0 / N = N + * 0 / I = 0 + * N / n = N + * N / 0 = N + * N / N = N + * N / I = N + * I / n = I + * I / 0 = I + * I / N = N + * I / I = N + * + * Return a new BigNumber whose value is the value of this BigNumber divided by the value of + * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.dividedBy = P.div = function ( y, b ) { + id = 3; + return div( this, new BigNumber( y, b ), DECIMAL_PLACES, ROUNDING_MODE ); + }; - // Convert a numeric string of baseIn to a numeric string of baseOut. - // If the caller is toString, we are converting from base 10 to baseOut. - // If the caller is BigNumber, we are converting from baseIn to base 10. - return function (str, baseIn, baseOut, sign, callerIsToString) { - var alphabet, d, e, k, r, x, xc, y, - i = str.indexOf('.'), - dp = DECIMAL_PLACES, - rm = ROUNDING_MODE; - - // Non-integer. - if (i >= 0) { - k = POW_PRECISION; - - // Unlimited precision. - POW_PRECISION = 0; - str = str.replace('.', ''); - y = new BigNumber(baseIn); - x = y.pow(str.length - i); - POW_PRECISION = k; - - // Convert str as if an integer, then restore the fraction part by dividing the - // result by its base raised to a power. - - y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'), - 10, baseOut, decimal); - y.e = y.c.length; - } - // Convert the number as integer. + /* + * Return a new BigNumber whose value is the integer part of dividing the value of this + * BigNumber by the value of BigNumber(y, b). + */ + P.dividedToIntegerBy = P.divToInt = function ( y, b ) { + id = 4; + return div( this, new BigNumber( y, b ), 0, 1 ); + }; - xc = toBaseOut(str, baseIn, baseOut, callerIsToString - ? (alphabet = ALPHABET, decimal) - : (alphabet = decimal, ALPHABET)); - // xc now represents str as an integer and converted to baseOut. e is the exponent. - e = k = xc.length; + /* + * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b), + * otherwise returns false. + */ + P.equals = P.eq = function ( y, b ) { + id = 5; + return compare( this, new BigNumber( y, b ) ) === 0; + }; - // Remove trailing zeros. - for (; xc[--k] == 0; xc.pop()); - // Zero? - if (!xc[0]) return alphabet.charAt(0); + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to a whole + * number in the direction of -Infinity. + */ + P.floor = function () { + return round( new BigNumber(this), this.e + 1, 3 ); + }; - // Does str represent an integer? If so, no need for the division. - if (i < 0) { - --e; - } else { - x.c = xc; - x.e = e; - - // The sign is needed for correct rounding. - x.s = sign; - x = div(x, y, dp, rm, baseOut); - xc = x.c; - r = x.r; - e = x.e; - } - // xc now represents str converted to baseOut. + /* + * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b), + * otherwise returns false. + */ + P.greaterThan = P.gt = function ( y, b ) { + id = 6; + return compare( this, new BigNumber( y, b ) ) > 0; + }; - // THe index of the rounding digit. - d = e + dp + 1; - // The rounding digit: the digit to the right of the digit that may be rounded up. - i = xc[d]; + /* + * Return true if the value of this BigNumber is greater than or equal to the value of + * BigNumber(y, b), otherwise returns false. + */ + P.greaterThanOrEqualTo = P.gte = function ( y, b ) { + id = 7; + return ( b = compare( this, new BigNumber( y, b ) ) ) === 1 || b === 0; - // Look at the rounding digits and mode to determine whether to round up. + }; - k = baseOut / 2; - r = r || d < 0 || xc[d + 1] != null; - r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) - : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 || - rm == (x.s < 0 ? 8 : 7)); + /* + * Return true if the value of this BigNumber is a finite number, otherwise returns false. + */ + P.isFinite = function () { + return !!this.c; + }; - // If the index of the rounding digit is not greater than zero, or xc represents - // zero, then the result of the base conversion is zero or, if rounding up, a value - // such as 0.00001. - if (d < 1 || !xc[0]) { - // 1^-dp or 0 - str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) - : alphabet.charAt(0); - } else { + /* + * Return true if the value of this BigNumber is an integer, otherwise return false. + */ + P.isInteger = P.isInt = function () { + return !!this.c && bitFloor( this.e / LOG_BASE ) > this.c.length - 2; + }; - // Truncate xc to the required number of decimal places. - xc.length = d; - // Round up? - if (r) { + /* + * Return true if the value of this BigNumber is NaN, otherwise returns false. + */ + P.isNaN = function () { + return !this.s; + }; - // Rounding up may mean the previous digit has to be rounded up and so on. - for (--baseOut; ++xc[--d] > baseOut;) { - xc[d] = 0; - if (!d) { - ++e; - xc = [1].concat(xc); - } - } - } + /* + * Return true if the value of this BigNumber is negative, otherwise returns false. + */ + P.isNegative = P.isNeg = function () { + return this.s < 0; + }; - // Determine trailing zeros. - for (k = xc.length; !xc[--k];); - // E.g. [4, 11, 15] becomes 4bf. - for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++])); + /* + * Return true if the value of this BigNumber is 0 or -0, otherwise returns false. + */ + P.isZero = function () { + return !!this.c && this.c[0] == 0; + }; - // Add leading zeros, decimal point and trailing zeros as required. - str = toFixedPoint(str, e, alphabet.charAt(0)); - } - // The caller will add the sign. - return str; - }; - })(); - - - // Perform division in the specified base. Called by div and convertBase. - div = (function () { - - // Assume non-zero x and k. - function multiply(x, k, base) { - var m, temp, xlo, xhi, - carry = 0, - i = x.length, - klo = k % SQRT_BASE, - khi = k / SQRT_BASE | 0; - - for (x = x.slice(); i--;) { - xlo = x[i] % SQRT_BASE; - xhi = x[i] / SQRT_BASE | 0; - m = khi * xlo + xhi * klo; - temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry; - carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; - x[i] = temp % base; - } + /* + * Return true if the value of this BigNumber is less than the value of BigNumber(y, b), + * otherwise returns false. + */ + P.lessThan = P.lt = function ( y, b ) { + id = 8; + return compare( this, new BigNumber( y, b ) ) < 0; + }; - if (carry) x = [carry].concat(x); - return x; - } + /* + * Return true if the value of this BigNumber is less than or equal to the value of + * BigNumber(y, b), otherwise returns false. + */ + P.lessThanOrEqualTo = P.lte = function ( y, b ) { + id = 9; + return ( b = compare( this, new BigNumber( y, b ) ) ) === -1 || b === 0; + }; - function compare(a, b, aL, bL) { - var i, cmp; - if (aL != bL) { - cmp = aL > bL ? 1 : -1; - } else { - - for (i = cmp = 0; i < aL; i++) { - - if (a[i] != b[i]) { - cmp = a[i] > b[i] ? 1 : -1; - break; - } - } - } - - return cmp; - } - - function subtract(a, b, aL, base) { - var i = 0; + /* + * n - 0 = n + * n - N = N + * n - I = -I + * 0 - n = -n + * 0 - 0 = 0 + * 0 - N = N + * 0 - I = -I + * N - n = N + * N - 0 = N + * N - N = N + * N - I = N + * I - n = I + * I - 0 = I + * I - N = N + * I - I = N + * + * Return a new BigNumber whose value is the value of this BigNumber minus the value of + * BigNumber(y, b). + */ + P.minus = P.sub = function ( y, b ) { + var i, j, t, xLTy, + x = this, + a = x.s; + + id = 10; + y = new BigNumber( y, b ); + b = y.s; + + // Either NaN? + if ( !a || !b ) return new BigNumber(NaN); + + // Signs differ? + if ( a != b ) { + y.s = -b; + return x.plus(y); + } - // Subtract b from a. - for (; aL--;) { - a[aL] -= i; - i = a[aL] < b[aL] ? 1 : 0; - a[aL] = i * base + a[aL] - b[aL]; - } + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; - // Remove leading zeros. - for (; !a[0] && a.length > 1; a.splice(0, 1)); - } + if ( !xe || !ye ) { - // x: dividend, y: divisor. - return function (x, y, dp, rm, base) { - var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, - yL, yz, - s = x.s == y.s ? 1 : -1, - xc = x.c, - yc = y.c; + // Either Infinity? + if ( !xc || !yc ) return xc ? ( y.s = -b, y ) : new BigNumber( yc ? x : NaN ); - // Either NaN, Infinity or 0? - if (!xc || !xc[0] || !yc || !yc[0]) { + // Either zero? + if ( !xc[0] || !yc[0] ) { - return new BigNumber( + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + return yc[0] ? ( y.s = -b, y ) : new BigNumber( xc[0] ? x : - // Return NaN if either NaN, or both Infinity or 0. - !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : - - // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0. - xc && xc[0] == 0 || !yc ? s * 0 : s / 0 - ); - } - - q = new BigNumber(s); - qc = q.c = []; - e = x.e - y.e; - s = dp + e + 1; + // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity + ROUNDING_MODE == 3 ? -0 : 0 ); + } + } - if (!base) { - base = BASE; - e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); - s = s / LOG_BASE | 0; - } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); - // Result exponent may be one less then the current value of e. - // The coefficients of the BigNumbers from convertBase may have trailing zeros. - for (i = 0; yc[i] == (xc[i] || 0); i++); + // Determine which is the bigger number. + if ( a = xe - ye ) { - if (yc[i] > (xc[i] || 0)) e--; + if ( xLTy = a < 0 ) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } - if (s < 0) { - qc.push(1); - more = true; - } else { - xL = xc.length; - yL = yc.length; - i = 0; - s += 2; - - // Normalise xc and yc so highest order digit of yc is >= base / 2. - - n = mathfloor(base / (yc[0] + 1)); - - // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1. - // if (n > 1 || n++ == 1 && yc[0] < base / 2) { - if (n > 1) { - yc = multiply(yc, n, base); - xc = multiply(xc, n, base); - yL = yc.length; - xL = xc.length; - } + t.reverse(); - xi = yL; - rem = xc.slice(0, yL); - remL = rem.length; - - // Add zeros to make remainder as long as divisor. - for (; remL < yL; rem[remL++] = 0); - yz = yc.slice(); - yz = [0].concat(yz); - yc0 = yc[0]; - if (yc[1] >= base / 2) yc0++; - // Not necessary, but to prevent trial digit n > base, when using base 3. - // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15; - - do { - n = 0; - - // Compare divisor and remainder. - cmp = compare(yc, rem, yL, remL); - - // If divisor < remainder. - if (cmp < 0) { - - // Calculate trial digit, n. - - rem0 = rem[0]; - if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); - - // n is how many times the divisor goes into the current remainder. - n = mathfloor(rem0 / yc0); - - // Algorithm: - // product = divisor multiplied by trial digit (n). - // Compare product and remainder. - // If product is greater than remainder: - // Subtract divisor from product, decrement trial digit. - // Subtract product from remainder. - // If product was less than remainder at the last compare: - // Compare new remainder and divisor. - // If remainder is greater than divisor: - // Subtract divisor from remainder, increment trial digit. - - if (n > 1) { - - // n may be > base only when base is 3. - if (n >= base) n = base - 1; - - // product = divisor * trial digit. - prod = multiply(yc, n, base); - prodL = prod.length; - remL = rem.length; - - // Compare product and remainder. - // If product > remainder then trial digit n too high. - // n is 1 too high about 5% of the time, and is not known to have - // ever been more than 1 too high. - while (compare(prod, rem, prodL, remL) == 1) { - n--; - - // Subtract divisor from product. - subtract(prod, yL < prodL ? yz : yc, prodL, base); - prodL = prod.length; - cmp = 1; - } + // Prepend zeros to equalise exponents. + for ( b = a; b--; t.push(0) ); + t.reverse(); } else { - // n is 0 or 1, cmp is -1. - // If n is 0, there is no need to compare yc and rem again below, - // so change cmp to 1 to avoid it. - // If n is 1, leave cmp as -1, so yc and rem are compared again. - if (n == 0) { + // Exponents equal. Check digit by digit. + j = ( xLTy = ( a = xc.length ) < ( b = yc.length ) ) ? a : b; - // divisor < remainder, so n must be at least 1. - cmp = n = 1; - } + for ( a = b = 0; b < j; b++ ) { - // product = divisor - prod = yc.slice(); - prodL = prod.length; + if ( xc[b] != yc[b] ) { + xLTy = xc[b] < yc[b]; + break; + } + } } - if (prodL < remL) prod = [0].concat(prod); - - // Subtract product from remainder. - subtract(rem, prod, remL, base); - remL = rem.length; - - // If product was < remainder. - if (cmp == -1) { - - // Compare divisor and new remainder. - // If divisor < new remainder, subtract divisor from remainder. - // Trial digit n too low. - // n is 1 too low about 5% of the time, and very rarely 2 too low. - while (compare(yc, rem, yL, remL) < 1) { - n++; - - // Subtract divisor from remainder. - subtract(rem, yL < remL ? yz : yc, remL, base); - remL = rem.length; - } - } - } else if (cmp === 0) { - n++; - rem = [0]; - } // else cmp === 1 and n will be 0 - - // Add the next digit, n, to the result array. - qc[i++] = n; - - // Update the remainder. - if (rem[0]) { - rem[remL++] = xc[xi] || 0; - } else { - rem = [xc[xi]]; - remL = 1; - } - } while ((xi++ < xL || rem[0] != null) && s--); - - more = rem[0] != null; - - // Leading zero? - if (!qc[0]) qc.splice(0, 1); - } - - if (base == BASE) { - - // To calculate q.e, first get the number of digits of qc[0]. - for (i = 1, s = qc[0]; s >= 10; s /= 10, i++); - - round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); - - // Caller is convertBase. - } else { - q.e = e; - q.r = +more; - } - - return q; - }; - })(); - - - /* - * Return a string representing the value of BigNumber n in fixed-point or exponential - * notation rounded to the specified decimal places or significant digits. - * - * n: a BigNumber. - * i: the index of the last digit required (i.e. the digit that may be rounded up). - * rm: the rounding mode. - * id: 1 (toExponential) or 2 (toPrecision). - */ - function format(n, i, rm, id) { - var c0, e, ne, len, str; - - if (rm == null) rm = ROUNDING_MODE; - else intCheck(rm, 0, 8); - - if (!n.c) return n.toString(); - - c0 = n.c[0]; - ne = n.e; - - if (i == null) { - str = coeffToString(n.c); - str = id == 1 || id == 2 && ne <= TO_EXP_NEG - ? toExponential(str, ne) - : toFixedPoint(str, ne, '0'); - } else { - n = round(new BigNumber(n), i, rm); - - // n.e may have changed if the value was rounded up. - e = n.e; - - str = coeffToString(n.c); - len = str.length; - - // toPrecision returns exponential notation if the number of significant digits - // specified is less than the number of digits necessary to represent the integer - // part of the value in fixed-point notation. - - // Exponential notation. - if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { - - // Append zeros? - for (; len < i; str += '0', len++); - str = toExponential(str, e); - - // Fixed-point notation. - } else { - i -= ne; - str = toFixedPoint(str, e, '0'); - - // Append zeros? - if (e + 1 > len) { - if (--i > 0) for (str += '.'; i--; str += '0'); - } else { - i += e - len; - if (i > 0) { - if (e + 1 == len) str += '.'; - for (; i--; str += '0'); - } - } - } - } - - return n.s < 0 && c0 ? '-' + str : str; - } - - - // Handle BigNumber.max and BigNumber.min. - function maxOrMin(args, method) { - var m, n, - i = 0; - - if (isArray(args[0])) args = args[0]; - m = new BigNumber(args[0]); - - for (; ++i < args.length;) { - n = new BigNumber(args[i]); - - // If any number is NaN, return NaN. - if (!n.s) { - m = n; - break; - } else if (method.call(m, n)) { - m = n; - } - } - - return m; - } - - - /* - * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP. - * Called by minus, plus and times. - */ - function normalise(n, c, e) { - var i = 1, - j = c.length; - - // Remove trailing zeros. - for (; !c[--j]; c.pop()); - - // Calculate the base 10 exponent. First get the number of digits of c[0]. - for (j = c[0]; j >= 10; j /= 10, i++); - - // Overflow? - if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { - - // Infinity. - n.c = n.e = null; - - // Underflow? - } else if (e < MIN_EXP) { - - // Zero. - n.c = [n.e = 0]; - } else { - n.e = e; - n.c = c; - } - - return n; - } - - - // Handle values that fail the validity test in BigNumber. - parseNumeric = (function () { - var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, - dotAfter = /^([^.]+)\.$/, - dotBefore = /^\.([^.]+)$/, - isInfinityOrNaN = /^-?(Infinity|NaN)$/, - whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; - - return function (x, str, isNum, b) { - var base, - s = isNum ? str : str.replace(whitespaceOrPlus, ''); - - // No exception on ±Infinity or NaN. - if (isInfinityOrNaN.test(s)) { - x.s = isNaN(s) ? null : s < 0 ? -1 : 1; - x.c = x.e = null; - } else { - if (!isNum) { - - // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i - s = s.replace(basePrefix, function (m, p1, p2) { - base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8; - return !b || b == base ? p1 : m; - }); - - if (b) { - base = b; + // x < y? Point xc to the array of the bigger number. + if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s; - // E.g. '1.' to '1', '.1' to '0.1' - s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1'); - } + b = ( j = yc.length ) - ( i = xc.length ); - if (str != s) return new BigNumber(s, base); - } + // Append zeros to xc if shorter. + // No need to add zeros to yc if shorter as subtract only needs to start at yc.length. + if ( b > 0 ) for ( ; b--; xc[i++] = 0 ); + b = BASE - 1; - // '[BigNumber Error] Not a number: {n}' - // '[BigNumber Error] Not a base {b} number: {n}' - if (BigNumber.DEBUG) { - throw Error - (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str); - } + // Subtract yc from xc. + for ( ; j > a; ) { - // NaN - x.c = x.e = x.s = null; - } - } - })(); - - - /* - * Round x to sd significant digits using rounding mode rm. Check for over/under-flow. - * If r is truthy, it is known that there are more digits after the rounding digit. - */ - function round(x, sd, rm, r) { - var d, i, j, k, n, ni, rd, - xc = x.c, - pows10 = POWS_TEN; - - // if x is not Infinity or NaN... - if (xc) { - - // rd is the rounding digit, i.e. the digit after the digit that may be rounded up. - // n is a base 1e14 number, the value of the element of array x.c containing rd. - // ni is the index of n within x.c. - // d is the number of digits of n. - // i is the index of rd within n including leading zeros. - // j is the actual index of rd within n (if < 0, rd is a leading zero). - out: { - - // Get the number of digits of the first element of xc. - for (d = 1, k = xc[0]; k >= 10; k /= 10, d++); - i = sd - d; - - // If the rounding digit is in the first element of xc... - if (i < 0) { - i += LOG_BASE; - j = sd; - n = xc[ni = 0]; - - // Get the rounding digit at index j of n. - rd = n / pows10[d - j - 1] % 10 | 0; - } else { - ni = mathceil((i + 1) / LOG_BASE); - - if (ni >= xc.length) { + if ( xc[--j] < yc[j] ) { + for ( i = j; i && !xc[--i]; xc[i] = b ); + --xc[i]; + xc[j] += BASE; + } - if (r) { - - // Needed by sqrt. - for (; xc.length <= ni; xc.push(0)); - n = rd = 0; - d = 1; - i %= LOG_BASE; - j = i - LOG_BASE + 1; - } else { - break out; + xc[j] -= yc[j]; } - } else { - n = k = xc[ni]; - - // Get the number of digits of n. - for (d = 1; k >= 10; k /= 10, d++); - - // Get the index of rd within n. - i %= LOG_BASE; - - // Get the index of rd within n, adjusted for leading zeros. - // The number of leading zeros of n is given by LOG_BASE - d. - j = i - LOG_BASE + d; - - // Get the rounding digit at index j of n. - rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0; - } - } - - r = r || sd < 0 || - - // Are there any non-zero digits after the rounding digit? - // The expression n % pows10[d - j - 1] returns all digits of n to the right - // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. - xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); - - r = rm < 4 - ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) - : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && - - // Check whether the digit to the left of the rounding digit is odd. - ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 || - rm == (x.s < 0 ? 8 : 7)); - - if (sd < 1 || !xc[0]) { - xc.length = 0; - - if (r) { - - // Convert sd to decimal places. - sd -= x.e + 1; - - // 1, 0.1, 0.01, 0.001, 0.0001 etc. - xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; - x.e = -sd || 0; - } else { - - // Zero. - xc[0] = x.e = 0; - } - - return x; - } - // Remove excess digits. - if (i == 0) { - xc.length = ni; - k = 1; - ni--; - } else { - xc.length = ni + 1; - k = pows10[LOG_BASE - i]; + // Remove leading zeros and adjust exponent accordingly. + for ( ; xc[0] == 0; xc.splice(0, 1), --ye ); - // E.g. 56700 becomes 56000 if 7 is the rounding digit. - // j > 0 means i > number of leading zeros of n. - xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; - } + // Zero? + if ( !xc[0] ) { - // Round up? - if (r) { + // Following IEEE 754 (2008) 6.3, + // n - n = +0 but n - n = -0 when rounding towards -Infinity. + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [ y.e = 0 ]; + return y; + } - for (; ;) { + // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity + // for finite x and y. + return normalise( y, xc, ye ); + }; - // If the digit to be rounded up is in the first element of xc... - if (ni == 0) { - // i will be the length of xc[0] before k is added. - for (i = 1, j = xc[0]; j >= 10; j /= 10, i++); - j = xc[0] += k; - for (k = 1; j >= 10; j /= 10, k++); + /* + * n % 0 = N + * n % N = N + * n % I = n + * 0 % n = 0 + * -0 % n = -0 + * 0 % 0 = N + * 0 % N = N + * 0 % I = 0 + * N % n = N + * N % 0 = N + * N % N = N + * N % I = N + * I % n = N + * I % 0 = N + * I % N = N + * I % I = N + * + * Return a new BigNumber whose value is the value of this BigNumber modulo the value of + * BigNumber(y, b). The result depends on the value of MODULO_MODE. + */ + P.modulo = P.mod = function ( y, b ) { + var q, s, + x = this; + + id = 11; + y = new BigNumber( y, b ); + + // Return NaN if x is Infinity or NaN, or y is NaN or zero. + if ( !x.c || !y.s || y.c && !y.c[0] ) { + return new BigNumber(NaN); + + // Return x if y is Infinity or x is zero. + } else if ( !y.c || x.c && !x.c[0] ) { + return new BigNumber(x); + } - // if i != k the length has increased. - if (i != k) { - x.e++; - if (xc[0] == BASE) xc[0] = 1; - } + if ( MODULO_MODE == 9 ) { - break; + // Euclidian division: q = sign(y) * floor(x / abs(y)) + // r = x - qy where 0 <= r < abs(y) + s = y.s; + y.s = 1; + q = div( x, y, 0, 3 ); + y.s = s; + q.s *= s; } else { - xc[ni] += k; - if (xc[ni] != BASE) break; - xc[ni--] = 0; - k = 1; + q = div( x, y, 0, MODULO_MODE ); } - } - } - - // Remove trailing zeros. - for (i = xc.length; xc[--i] === 0; xc.pop()); - } - - // Overflow? Infinity. - if (x.e > MAX_EXP) { - x.c = x.e = null; - - // Underflow? Zero. - } else if (x.e < MIN_EXP) { - x.c = [x.e = 0]; - } - } - - return x; - } - - - // PROTOTYPE/INSTANCE METHODS - - - /* - * Return a new BigNumber whose value is the absolute value of this BigNumber. - */ - P.absoluteValue = P.abs = function () { - var x = new BigNumber(this); - if (x.s < 0) x.s = 1; - return x; - }; - - - /* - * Return - * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b), - * -1 if the value of this BigNumber is less than the value of BigNumber(y, b), - * 0 if they have the same value, - * or null if the value of either is NaN. - */ - P.comparedTo = function (y, b) { - return compare(this, new BigNumber(y, b)); - }; - - - /* - * If dp is undefined or null or true or false, return the number of decimal places of the - * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN. - * - * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this - * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or - * ROUNDING_MODE if rm is omitted. - * - * [dp] {number} Decimal places: integer, 0 to MAX inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' - */ - P.decimalPlaces = P.dp = function (dp, rm) { - var c, n, v, - x = this; - - if (dp != null) { - intCheck(dp, 0, MAX); - if (rm == null) rm = ROUNDING_MODE; - else intCheck(rm, 0, 8); - - return round(new BigNumber(x), dp + x.e + 1, rm); - } - - if (!(c = x.c)) return null; - n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; - - // Subtract the number of trailing zeros of the last number. - if (v = c[v]) for (; v % 10 == 0; v /= 10, n--); - if (n < 0) n = 0; - - return n; - }; - - - /* - * n / 0 = I - * n / N = N - * n / I = 0 - * 0 / n = 0 - * 0 / 0 = N - * 0 / N = N - * 0 / I = 0 - * N / n = N - * N / 0 = N - * N / N = N - * N / I = N - * I / n = I - * I / 0 = I - * I / N = N - * I / I = N - * - * Return a new BigNumber whose value is the value of this BigNumber divided by the value of - * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE. - */ - P.dividedBy = P.div = function (y, b) { - return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE); - }; - - - /* - * Return a new BigNumber whose value is the integer part of dividing the value of this - * BigNumber by the value of BigNumber(y, b). - */ - P.dividedToIntegerBy = P.idiv = function (y, b) { - return div(this, new BigNumber(y, b), 0, 1); - }; + return x.minus( q.times(y) ); + }; - /* - * Return a BigNumber whose value is the value of this BigNumber exponentiated by n. - * - * If m is present, return the result modulo m. - * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE. - * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE. - * - * The modular power operation works efficiently when x, n, and m are integers, otherwise it - * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0. - * - * n {number|string|BigNumber} The exponent. An integer. - * [m] {number|string|BigNumber} The modulus. - * - * '[BigNumber Error] Exponent not an integer: {n}' - */ - P.exponentiatedBy = P.pow = function (n, m) { - var half, isModExp, k, more, nIsBig, nIsNeg, nIsOdd, y, - x = this; - - n = new BigNumber(n); - - // Allow NaN and ±Infinity, but not other non-integers. - if (n.c && !n.isInteger()) { - throw Error - (bignumberError + 'Exponent not an integer: ' + n); - } - - if (m != null) m = new BigNumber(m); - - // Exponent of MAX_SAFE_INTEGER is 15. - nIsBig = n.e > 14; - - // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0. - if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { - - // The sign of the result of pow when x is negative depends on the evenness of n. - // If +n overflows to ±Infinity, the evenness of n would be not be known. - y = new BigNumber(Math.pow(+x.valueOf(), nIsBig ? 2 - isOdd(n) : +n)); - return m ? y.mod(m) : y; - } - - nIsNeg = n.s < 0; - - if (m) { - - // x % m returns NaN if abs(m) is zero, or m is NaN. - if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN); - - isModExp = !nIsNeg && x.isInteger() && m.isInteger(); - - if (isModExp) x = x.mod(m); - - // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15. - // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15. - } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 - // [1, 240000000] - ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 - // [80000000000000] [99999750000000] - : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { - - // If x is negative and n is odd, k = -0, else k = 0. - k = x.s < 0 && isOdd(n) ? -0 : 0; - - // If x >= 1, k = ±Infinity. - if (x.e > -1) k = 1 / k; - - // If n is negative return ±0, else return ±Infinity. - return new BigNumber(nIsNeg ? 1 / k : k); - - } else if (POW_PRECISION) { - - // Truncating each coefficient array to a length of k after each multiplication - // equates to truncating significant digits to POW_PRECISION + [28, 41], - // i.e. there will be a minimum of 28 guard digits retained. - k = mathceil(POW_PRECISION / LOG_BASE + 2); - } - - if (nIsBig) { - half = new BigNumber(0.5); - nIsOdd = isOdd(n); - } else { - nIsOdd = n % 2; - } - - if (nIsNeg) n.s = 1; - - y = new BigNumber(ONE); - - // Performs 54 loop iterations for n of 9007199254740991. - for (; ;) { - - if (nIsOdd) { - y = y.times(x); - if (!y.c) break; - - if (k) { - if (y.c.length > k) y.c.length = k; - } else if (isModExp) { - y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m)); - } - } - - if (nIsBig) { - n = n.times(half); - round(n, n.e + 1, 1); - if (!n.c[0]) break; - nIsBig = n.e > 14; - nIsOdd = isOdd(n); - } else { - n = mathfloor(n / 2); - if (!n) break; - nIsOdd = n % 2; - } - - x = x.times(x); - - if (k) { - if (x.c && x.c.length > k) x.c.length = k; - } else if (isModExp) { - x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m)); - } - } - - if (isModExp) return y; - if (nIsNeg) y = ONE.div(y); - - return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; - }; - - - /* - * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer - * using rounding mode rm, or ROUNDING_MODE if rm is omitted. - * - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}' - */ - P.integerValue = function (rm) { - var n = new BigNumber(this); - if (rm == null) rm = ROUNDING_MODE; - else intCheck(rm, 0, 8); - return round(n, n.e + 1, rm); - }; - - - /* - * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b), - * otherwise return false. - */ - P.isEqualTo = P.eq = function (y, b) { - return compare(this, new BigNumber(y, b)) === 0; - }; - - - /* - * Return true if the value of this BigNumber is a finite number, otherwise return false. - */ - P.isFinite = function () { - return !!this.c; - }; - - - /* - * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b), - * otherwise return false. - */ - P.isGreaterThan = P.gt = function (y, b) { - return compare(this, new BigNumber(y, b)) > 0; - }; - - - /* - * Return true if the value of this BigNumber is greater than or equal to the value of - * BigNumber(y, b), otherwise return false. - */ - P.isGreaterThanOrEqualTo = P.gte = function (y, b) { - return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0; - - }; - - - /* - * Return true if the value of this BigNumber is an integer, otherwise return false. - */ - P.isInteger = function () { - return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; - }; - - - /* - * Return true if the value of this BigNumber is less than the value of BigNumber(y, b), - * otherwise return false. - */ - P.isLessThan = P.lt = function (y, b) { - return compare(this, new BigNumber(y, b)) < 0; - }; - - - /* - * Return true if the value of this BigNumber is less than or equal to the value of - * BigNumber(y, b), otherwise return false. - */ - P.isLessThanOrEqualTo = P.lte = function (y, b) { - return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0; - }; - - - /* - * Return true if the value of this BigNumber is NaN, otherwise return false. - */ - P.isNaN = function () { - return !this.s; - }; - - - /* - * Return true if the value of this BigNumber is negative, otherwise return false. - */ - P.isNegative = function () { - return this.s < 0; - }; - - - /* - * Return true if the value of this BigNumber is positive, otherwise return false. - */ - P.isPositive = function () { - return this.s > 0; - }; - - - /* - * Return true if the value of this BigNumber is 0 or -0, otherwise return false. - */ - P.isZero = function () { - return !!this.c && this.c[0] == 0; - }; - - - /* - * n - 0 = n - * n - N = N - * n - I = -I - * 0 - n = -n - * 0 - 0 = 0 - * 0 - N = N - * 0 - I = -I - * N - n = N - * N - 0 = N - * N - N = N - * N - I = N - * I - n = I - * I - 0 = I - * I - N = N - * I - I = N - * - * Return a new BigNumber whose value is the value of this BigNumber minus the value of - * BigNumber(y, b). - */ - P.minus = function (y, b) { - var i, j, t, xLTy, - x = this, - a = x.s; - - y = new BigNumber(y, b); - b = y.s; - - // Either NaN? - if (!a || !b) return new BigNumber(NaN); - - // Signs differ? - if (a != b) { - y.s = -b; - return x.plus(y); - } - - var xe = x.e / LOG_BASE, - ye = y.e / LOG_BASE, - xc = x.c, - yc = y.c; - - if (!xe || !ye) { - - // Either Infinity? - if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN); - - // Either zero? - if (!xc[0] || !yc[0]) { - - // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. - return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : - - // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity - ROUNDING_MODE == 3 ? -0 : 0); - } - } - - xe = bitFloor(xe); - ye = bitFloor(ye); - xc = xc.slice(); - - // Determine which is the bigger number. - if (a = xe - ye) { - - if (xLTy = a < 0) { - a = -a; - t = xc; - } else { - ye = xe; - t = yc; - } - - t.reverse(); - - // Prepend zeros to equalise exponents. - for (b = a; b--; t.push(0)); - t.reverse(); - } else { - - // Exponents equal. Check digit by digit. - j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; - - for (a = b = 0; b < j; b++) { - - if (xc[b] != yc[b]) { - xLTy = xc[b] < yc[b]; - break; - } - } - } - - // x < y? Point xc to the array of the bigger number. - if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s; - - b = (j = yc.length) - (i = xc.length); - - // Append zeros to xc if shorter. - // No need to add zeros to yc if shorter as subtract only needs to start at yc.length. - if (b > 0) for (; b--; xc[i++] = 0); - b = BASE - 1; - - // Subtract yc from xc. - for (; j > a;) { - - if (xc[--j] < yc[j]) { - for (i = j; i && !xc[--i]; xc[i] = b); - --xc[i]; - xc[j] += BASE; - } - - xc[j] -= yc[j]; - } - - // Remove leading zeros and adjust exponent accordingly. - for (; xc[0] == 0; xc.splice(0, 1), --ye); - - // Zero? - if (!xc[0]) { - - // Following IEEE 754 (2008) 6.3, - // n - n = +0 but n - n = -0 when rounding towards -Infinity. - y.s = ROUNDING_MODE == 3 ? -1 : 1; - y.c = [y.e = 0]; - return y; - } - - // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity - // for finite x and y. - return normalise(y, xc, ye); - }; - - - /* - * n % 0 = N - * n % N = N - * n % I = n - * 0 % n = 0 - * -0 % n = -0 - * 0 % 0 = N - * 0 % N = N - * 0 % I = 0 - * N % n = N - * N % 0 = N - * N % N = N - * N % I = N - * I % n = N - * I % 0 = N - * I % N = N - * I % I = N - * - * Return a new BigNumber whose value is the value of this BigNumber modulo the value of - * BigNumber(y, b). The result depends on the value of MODULO_MODE. - */ - P.modulo = P.mod = function (y, b) { - var q, s, - x = this; - - y = new BigNumber(y, b); - - // Return NaN if x is Infinity or NaN, or y is NaN or zero. - if (!x.c || !y.s || y.c && !y.c[0]) { - return new BigNumber(NaN); - - // Return x if y is Infinity or x is zero. - } else if (!y.c || x.c && !x.c[0]) { - return new BigNumber(x); - } - - if (MODULO_MODE == 9) { - - // Euclidian division: q = sign(y) * floor(x / abs(y)) - // r = x - qy where 0 <= r < abs(y) - s = y.s; - y.s = 1; - q = div(x, y, 0, 3); - y.s = s; - q.s *= s; - } else { - q = div(x, y, 0, MODULO_MODE); - } - y = x.minus(q.times(y)); + /* + * Return a new BigNumber whose value is the value of this BigNumber negated, + * i.e. multiplied by -1. + */ + P.negated = P.neg = function () { + var x = new BigNumber(this); + x.s = -x.s || null; + return x; + }; - // To match JavaScript %, ensure sign of zero is sign of dividend. - if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; - return y; - }; + /* + * n + 0 = n + * n + N = N + * n + I = I + * 0 + n = n + * 0 + 0 = 0 + * 0 + N = N + * 0 + I = I + * N + n = N + * N + 0 = N + * N + N = N + * N + I = N + * I + n = I + * I + 0 = I + * I + N = N + * I + I = I + * + * Return a new BigNumber whose value is the value of this BigNumber plus the value of + * BigNumber(y, b). + */ + P.plus = P.add = function ( y, b ) { + var t, + x = this, + a = x.s; + + id = 12; + y = new BigNumber( y, b ); + b = y.s; + + // Either NaN? + if ( !a || !b ) return new BigNumber(NaN); + + // Signs differ? + if ( a != b ) { + y.s = -b; + return x.minus(y); + } + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; - /* - * n * 0 = 0 - * n * N = N - * n * I = I - * 0 * n = 0 - * 0 * 0 = 0 - * 0 * N = N - * 0 * I = N - * N * n = N - * N * 0 = N - * N * N = N - * N * I = N - * I * n = I - * I * 0 = N - * I * N = N - * I * I = I - * - * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value - * of BigNumber(y, b). - */ - P.multipliedBy = P.times = function (y, b) { - var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, - base, sqrtBase, - x = this, - xc = x.c, - yc = (y = new BigNumber(y, b)).c; - - // Either NaN, ±Infinity or ±0? - if (!xc || !yc || !xc[0] || !yc[0]) { - - // Return NaN if either is NaN, or one is 0 and the other is Infinity. - if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { - y.c = y.e = y.s = null; - } else { - y.s *= x.s; + if ( !xe || !ye ) { - // Return ±Infinity if either is ±Infinity. - if (!xc || !yc) { - y.c = y.e = null; + // Return ±Infinity if either ±Infinity. + if ( !xc || !yc ) return new BigNumber( a / 0 ); - // Return ±0 if either is ±0. - } else { - y.c = [0]; - y.e = 0; - } - } + // Either zero? + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + if ( !xc[0] || !yc[0] ) return yc[0] ? y : new BigNumber( xc[0] ? x : a * 0 ); + } - return y; - } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + + // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts. + if ( a = xe - ye ) { + if ( a > 0 ) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + + t.reverse(); + for ( ; a--; t.push(0) ); + t.reverse(); + } - e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); - y.s *= x.s; - xcL = xc.length; - ycL = yc.length; + a = xc.length; + b = yc.length; - // Ensure xc points to longer array and xcL to its length. - if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; + // Point xc to the longer array, and b to the shorter length. + if ( a - b < 0 ) t = yc, yc = xc, xc = t, b = a; - // Initialise the result array with zeros. - for (i = xcL + ycL, zc = []; i--; zc.push(0)); + // Only start adding at yc.length - 1 as the further digits of xc can be ignored. + for ( a = 0; b; ) { + a = ( xc[--b] = xc[b] + yc[b] + a ) / BASE | 0; + xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + } - base = BASE; - sqrtBase = SQRT_BASE; + if (a) { + xc = [a].concat(xc); + ++ye; + } - for (i = ycL; --i >= 0;) { - c = 0; - ylo = yc[i] % sqrtBase; - yhi = yc[i] / sqrtBase | 0; + // No need to check for zero, as +x + +y != 0 && -x + -y != 0 + // ye = MAX_EXP + 1 possible + return normalise( y, xc, ye ); + }; - for (k = xcL, j = i + k; j > i;) { - xlo = xc[--k] % sqrtBase; - xhi = xc[k] / sqrtBase | 0; - m = yhi * xlo + xhi * ylo; - xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c; - c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; - zc[j--] = xlo % base; - } - zc[j] = c; - } + /* + * Return the number of significant digits of the value of this BigNumber. + * + * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. + */ + P.precision = P.sd = function (z) { + var n, v, + x = this, + c = x.c; + + // 'precision() argument not a boolean or binary digit: {z}' + if ( z != null && z !== !!z && z !== 1 && z !== 0 ) { + if (ERRORS) raise( 13, 'argument' + notBool, z ); + if ( z != !!z ) z = null; + } - if (c) { - ++e; - } else { - zc.splice(0, 1); - } + if ( !c ) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; - return normalise(y, zc, e); - }; + if ( v = c[v] ) { + // Subtract the number of trailing zeros of the last element. + for ( ; v % 10 == 0; v /= 10, n-- ); - /* - * Return a new BigNumber whose value is the value of this BigNumber negated, - * i.e. multiplied by -1. - */ - P.negated = function () { - var x = new BigNumber(this); - x.s = -x.s || null; - return x; - }; + // Add the number of digits of the first element. + for ( v = c[0]; v >= 10; v /= 10, n++ ); + } + if ( z && x.e + 1 > n ) n = x.e + 1; - /* - * n + 0 = n - * n + N = N - * n + I = I - * 0 + n = n - * 0 + 0 = 0 - * 0 + N = N - * 0 + I = I - * N + n = N - * N + 0 = N - * N + N = N - * N + I = N - * I + n = I - * I + 0 = I - * I + N = N - * I + I = I - * - * Return a new BigNumber whose value is the value of this BigNumber plus the value of - * BigNumber(y, b). - */ - P.plus = function (y, b) { - var t, - x = this, - a = x.s; - - y = new BigNumber(y, b); - b = y.s; - - // Either NaN? - if (!a || !b) return new BigNumber(NaN); - - // Signs differ? - if (a != b) { - y.s = -b; - return x.minus(y); - } + return n; + }; - var xe = x.e / LOG_BASE, - ye = y.e / LOG_BASE, - xc = x.c, - yc = y.c; - if (!xe || !ye) { + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to a maximum of + * dp decimal places using rounding mode rm, or to 0 and ROUNDING_MODE respectively if + * omitted. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'round() decimal places out of range: {dp}' + * 'round() decimal places not an integer: {dp}' + * 'round() rounding mode not an integer: {rm}' + * 'round() rounding mode out of range: {rm}' + */ + P.round = function ( dp, rm ) { + var n = new BigNumber(this); + + if ( dp == null || isValidInt( dp, 0, MAX, 15 ) ) { + round( n, ~~dp + this.e + 1, rm == null || + !isValidInt( rm, 0, 8, 15, roundingMode ) ? ROUNDING_MODE : rm | 0 ); + } - // Return ±Infinity if either ±Infinity. - if (!xc || !yc) return new BigNumber(a / 0); + return n; + }; - // Either zero? - // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. - if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0); - } - xe = bitFloor(xe); - ye = bitFloor(ye); - xc = xc.slice(); + /* + * Return a new BigNumber whose value is the value of this BigNumber shifted by k places + * (powers of 10). Shift to the right if n > 0, and to the left if n < 0. + * + * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. + * + * If k is out of range and ERRORS is false, the result will be ±0 if k < 0, or ±Infinity + * otherwise. + * + * 'shift() argument not an integer: {k}' + * 'shift() argument out of range: {k}' + */ + P.shift = function (k) { + var n = this; + return isValidInt( k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER, 16, 'argument' ) + + // k < 1e+21, or truncate(k) will produce exponential notation. + ? n.times( '1e' + truncate(k) ) + : new BigNumber( n.c && n.c[0] && ( k < -MAX_SAFE_INTEGER || k > MAX_SAFE_INTEGER ) + ? n.s * ( k < 0 ? 0 : 1 / 0 ) + : n ); + }; - // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts. - if (a = xe - ye) { - if (a > 0) { - ye = xe; - t = yc; - } else { - a = -a; - t = xc; - } - t.reverse(); - for (; a--; t.push(0)); - t.reverse(); - } + /* + * sqrt(-n) = N + * sqrt( N) = N + * sqrt(-I) = N + * sqrt( I) = I + * sqrt( 0) = 0 + * sqrt(-0) = -0 + * + * Return a new BigNumber whose value is the square root of the value of this BigNumber, + * rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.squareRoot = P.sqrt = function () { + var m, n, r, rep, t, + x = this, + c = x.c, + s = x.s, + e = x.e, + dp = DECIMAL_PLACES + 4, + half = new BigNumber('0.5'); + + // Negative/NaN/Infinity/zero? + if ( s !== 1 || !c || !c[0] ) { + return new BigNumber( !s || s < 0 && ( !c || c[0] ) ? NaN : c ? x : 1 / 0 ); + } - a = xc.length; - b = yc.length; + // Initial estimate. + s = Math.sqrt( +x ); + + // Math.sqrt underflow/overflow? + // Pass x to Math.sqrt as integer, then adjust the exponent of the result. + if ( s == 0 || s == 1 / 0 ) { + n = coeffToString(c); + if ( ( n.length + e ) % 2 == 0 ) n += '0'; + s = Math.sqrt(n); + e = bitFloor( ( e + 1 ) / 2 ) - ( e < 0 || e % 2 ); + + if ( s == 1 / 0 ) { + n = '1e' + e; + } else { + n = s.toExponential(); + n = n.slice( 0, n.indexOf('e') + 1 ) + e; + } + + r = new BigNumber(n); + } else { + r = new BigNumber( s + '' ); + } - // Point xc to the longer array, and b to the shorter length. - if (a - b < 0) t = yc, yc = xc, xc = t, b = a; + // Check for zero. + // r could be zero if MIN_EXP is changed after the this value was created. + // This would cause a division by zero (x/t) and hence Infinity below, which would cause + // coeffToString to throw. + if ( r.c[0] ) { + e = r.e; + s = e + dp; + if ( s < 3 ) s = 0; + + // Newton-Raphson iteration. + for ( ; ; ) { + t = r; + r = half.times( t.plus( div( x, t, dp, 1 ) ) ); + + if ( coeffToString( t.c ).slice( 0, s ) === ( n = + coeffToString( r.c ) ).slice( 0, s ) ) { + + // The exponent of r may here be one less than the final result exponent, + // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits + // are indexed correctly. + if ( r.e < e ) --s; + n = n.slice( s - 3, s + 1 ); + + // The 4th rounding digit may be in error by -1 so if the 4 rounding digits + // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the + // iteration. + if ( n == '9999' || !rep && n == '4999' ) { + + // On the first iteration only, check to see if rounding up gives the + // exact result as the nines may infinitely repeat. + if ( !rep ) { + round( t, t.e + DECIMAL_PLACES + 2, 0 ); + + if ( t.times(t).eq(x) ) { + r = t; + break; + } + } + + dp += 4; + s += 4; + rep = 1; + } else { + + // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact + // result. If not, then there are further digits and m will be truthy. + if ( !+n || !+n.slice(1) && n.charAt(0) == '5' ) { + + // Truncate to the first rounding digit. + round( r, r.e + DECIMAL_PLACES + 2, 1 ); + m = !r.times(r).eq(x); + } + + break; + } + } + } + } - // Only start adding at yc.length - 1 as the further digits of xc can be ignored. - for (a = 0; b;) { - a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; - xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; - } + return round( r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m ); + }; - if (a) { - xc = [a].concat(xc); - ++ye; - } - // No need to check for zero, as +x + +y != 0 && -x + -y != 0 - // ye = MAX_EXP + 1 possible - return normalise(y, xc, ye); - }; + /* + * n * 0 = 0 + * n * N = N + * n * I = I + * 0 * n = 0 + * 0 * 0 = 0 + * 0 * N = N + * 0 * I = N + * N * n = N + * N * 0 = N + * N * N = N + * N * I = N + * I * n = I + * I * 0 = N + * I * N = N + * I * I = I + * + * Return a new BigNumber whose value is the value of this BigNumber times the value of + * BigNumber(y, b). + */ + P.times = P.mul = function ( y, b ) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, + base, sqrtBase, + x = this, + xc = x.c, + yc = ( id = 17, y = new BigNumber( y, b ) ).c; + + // Either NaN, ±Infinity or ±0? + if ( !xc || !yc || !xc[0] || !yc[0] ) { + + // Return NaN if either is NaN, or one is 0 and the other is Infinity. + if ( !x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc ) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + + // Return ±Infinity if either is ±Infinity. + if ( !xc || !yc ) { + y.c = y.e = null; + + // Return ±0 if either is ±0. + } else { + y.c = [0]; + y.e = 0; + } + } + + return y; + } + e = bitFloor( x.e / LOG_BASE ) + bitFloor( y.e / LOG_BASE ); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; - /* - * If sd is undefined or null or true or false, return the number of significant digits of - * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN. - * If sd is true include integer-part trailing zeros in the count. - * - * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this - * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or - * ROUNDING_MODE if rm is omitted. - * - * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive. - * boolean: whether to count integer-part trailing zeros: true or false. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' - */ - P.precision = P.sd = function (sd, rm) { - var c, n, v, - x = this; - - if (sd != null && sd !== !!sd) { - intCheck(sd, 1, MAX); - if (rm == null) rm = ROUNDING_MODE; - else intCheck(rm, 0, 8); - - return round(new BigNumber(x), sd, rm); - } + // Ensure xc points to longer array and xcL to its length. + if ( xcL < ycL ) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; - if (!(c = x.c)) return null; - v = c.length - 1; - n = v * LOG_BASE + 1; + // Initialise the result array with zeros. + for ( i = xcL + ycL, zc = []; i--; zc.push(0) ); - if (v = c[v]) { + base = BASE; + sqrtBase = SQRT_BASE; - // Subtract the number of trailing zeros of the last element. - for (; v % 10 == 0; v /= 10, n--); + for ( i = ycL; --i >= 0; ) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; - // Add the number of digits of the first element. - for (v = c[0]; v >= 10; v /= 10, n++); - } + for ( k = xcL, j = i + k; j > i; ) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + ( ( m % sqrtBase ) * sqrtBase ) + zc[j] + c; + c = ( xlo / base | 0 ) + ( m / sqrtBase | 0 ) + yhi * xhi; + zc[j--] = xlo % base; + } - if (sd && x.e + 1 > n) n = x.e + 1; + zc[j] = c; + } - return n; - }; + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + return normalise( y, zc, e ); + }; - /* - * Return a new BigNumber whose value is the value of this BigNumber shifted by k places - * (powers of 10). Shift to the right if n > 0, and to the left if n < 0. - * - * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}' - */ - P.shiftedBy = function (k) { - intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); - return this.times('1e' + k); - }; + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to a maximum of + * sd significant digits using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toDigits() precision out of range: {sd}' + * 'toDigits() precision not an integer: {sd}' + * 'toDigits() rounding mode not an integer: {rm}' + * 'toDigits() rounding mode out of range: {rm}' + */ + P.toDigits = function ( sd, rm ) { + var n = new BigNumber(this); + sd = sd == null || !isValidInt( sd, 1, MAX, 18, 'precision' ) ? null : sd | 0; + rm = rm == null || !isValidInt( rm, 0, 8, 18, roundingMode ) ? ROUNDING_MODE : rm | 0; + return sd ? round( n, sd, rm ) : n; + }; - /* - * sqrt(-n) = N - * sqrt(N) = N - * sqrt(-I) = N - * sqrt(I) = I - * sqrt(0) = 0 - * sqrt(-0) = -0 - * - * Return a new BigNumber whose value is the square root of the value of this BigNumber, - * rounded according to DECIMAL_PLACES and ROUNDING_MODE. - */ - P.squareRoot = P.sqrt = function () { - var m, n, r, rep, t, - x = this, - c = x.c, - s = x.s, - e = x.e, - dp = DECIMAL_PLACES + 4, - half = new BigNumber('0.5'); - - // Negative/NaN/Infinity/zero? - if (s !== 1 || !c || !c[0]) { - return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); - } - // Initial estimate. - s = Math.sqrt(+x); + /* + * Return a string representing the value of this BigNumber in exponential notation and + * rounded using ROUNDING_MODE to dp fixed decimal places. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toExponential() decimal places not an integer: {dp}' + * 'toExponential() decimal places out of range: {dp}' + * 'toExponential() rounding mode not an integer: {rm}' + * 'toExponential() rounding mode out of range: {rm}' + */ + P.toExponential = function ( dp, rm ) { + return format( this, + dp != null && isValidInt( dp, 0, MAX, 19 ) ? ~~dp + 1 : null, rm, 19 ); + }; - // Math.sqrt underflow/overflow? - // Pass x to Math.sqrt as integer, then adjust the exponent of the result. - if (s == 0 || s == 1 / 0) { - n = coeffToString(c); - if ((n.length + e) % 2 == 0) n += '0'; - s = Math.sqrt(n); - e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); - if (s == 1 / 0) { - n = '1e' + e; - } else { - n = s.toExponential(); - n = n.slice(0, n.indexOf('e') + 1) + e; - } + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounding + * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * Note: as with JavaScript's number type, (-0).toFixed(0) is '0', + * but e.g. (-0.00001).toFixed(0) is '-0'. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toFixed() decimal places not an integer: {dp}' + * 'toFixed() decimal places out of range: {dp}' + * 'toFixed() rounding mode not an integer: {rm}' + * 'toFixed() rounding mode out of range: {rm}' + */ + P.toFixed = function ( dp, rm ) { + return format( this, dp != null && isValidInt( dp, 0, MAX, 20 ) + ? ~~dp + this.e + 1 : null, rm, 20 ); + }; - r = new BigNumber(n); - } else { - r = new BigNumber(s + ''); - } - // Check for zero. - // r could be zero if MIN_EXP is changed after the this value was created. - // This would cause a division by zero (x/t) and hence Infinity below, which would cause - // coeffToString to throw. - if (r.c[0]) { - e = r.e; - s = e + dp; - if (s < 3) s = 0; - - // Newton-Raphson iteration. - for (; ;) { - t = r; - r = half.times(t.plus(div(x, t, dp, 1))); - - if (coeffToString(t.c ).slice(0, s) === (n = - coeffToString(r.c)).slice(0, s)) { - - // The exponent of r may here be one less than the final result exponent, - // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits - // are indexed correctly. - if (r.e < e) --s; - n = n.slice(s - 3, s + 1); - - // The 4th rounding digit may be in error by -1 so if the 4 rounding digits - // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the - // iteration. - if (n == '9999' || !rep && n == '4999') { - - // On the first iteration only, check to see if rounding up gives the - // exact result as the nines may infinitely repeat. - if (!rep) { - round(t, t.e + DECIMAL_PLACES + 2, 0); - - if (t.times(t).eq(x)) { - r = t; - break; - } + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounded + * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties + * of the FORMAT object (see BigNumber.config). + * + * FORMAT = { + * decimalSeparator : '.', + * groupSeparator : ',', + * groupSize : 3, + * secondaryGroupSize : 0, + * fractionGroupSeparator : '\xA0', // non-breaking space + * fractionGroupSize : 0 + * }; + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toFormat() decimal places not an integer: {dp}' + * 'toFormat() decimal places out of range: {dp}' + * 'toFormat() rounding mode not an integer: {rm}' + * 'toFormat() rounding mode out of range: {rm}' + */ + P.toFormat = function ( dp, rm ) { + var str = format( this, dp != null && isValidInt( dp, 0, MAX, 21 ) + ? ~~dp + this.e + 1 : null, rm, 21 ); + + if ( this.c ) { + var i, + arr = str.split('.'), + g1 = +FORMAT.groupSize, + g2 = +FORMAT.secondaryGroupSize, + groupSeparator = FORMAT.groupSeparator, + intPart = arr[0], + fractionPart = arr[1], + isNeg = this.s < 0, + intDigits = isNeg ? intPart.slice(1) : intPart, + len = intDigits.length; + + if (g2) i = g1, g1 = g2, g2 = i, len -= i; + + if ( g1 > 0 && len > 0 ) { + i = len % g1 || g1; + intPart = intDigits.substr( 0, i ); + + for ( ; i < len; i += g1 ) { + intPart += groupSeparator + intDigits.substr( i, g1 ); + } + + if ( g2 > 0 ) intPart += groupSeparator + intDigits.slice(i); + if (isNeg) intPart = '-' + intPart; + } + + str = fractionPart + ? intPart + FORMAT.decimalSeparator + ( ( g2 = +FORMAT.fractionGroupSize ) + ? fractionPart.replace( new RegExp( '\\d{' + g2 + '}\\B', 'g' ), + '$&' + FORMAT.fractionGroupSeparator ) + : fractionPart ) + : intPart; } - dp += 4; - s += 4; - rep = 1; - } else { + return str; + }; - // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact - // result. If not, then there are further digits and m will be truthy. - if (!+n || !+n.slice(1) && n.charAt(0) == '5') { - // Truncate to the first rounding digit. - round(r, r.e + DECIMAL_PLACES + 2, 1); - m = !r.times(r).eq(x); + /* + * Return a string array representing the value of this BigNumber as a simple fraction with + * an integer numerator and an integer denominator. The denominator will be a positive + * non-zero value less than or equal to the specified maximum denominator. If a maximum + * denominator is not specified, the denominator will be the lowest value necessary to + * represent the number exactly. + * + * [md] {number|string|BigNumber} Integer >= 1 and < Infinity. The maximum denominator. + * + * 'toFraction() max denominator not an integer: {md}' + * 'toFraction() max denominator out of range: {md}' + */ + P.toFraction = function (md) { + var arr, d0, d2, e, exp, n, n0, q, s, + k = ERRORS, + x = this, + xc = x.c, + d = new BigNumber(ONE), + n1 = d0 = new BigNumber(ONE), + d1 = n0 = new BigNumber(ONE); + + if ( md != null ) { + ERRORS = false; + n = new BigNumber(md); + ERRORS = k; + + if ( !( k = n.isInt() ) || n.lt(ONE) ) { + + if (ERRORS) { + raise( 22, + 'max denominator ' + ( k ? 'out of range' : 'not an integer' ), md ); + } + + // ERRORS is false: + // If md is a finite non-integer >= 1, round it to an integer and use it. + md = !k && n.c && round( n, n.e + 1, 1 ).gte(ONE) ? n : null; + } } - break; - } - } - } - } + if ( !xc ) return x.toString(); + s = coeffToString(xc); + + // Determine initial denominator. + // d is a power of 10 and the minimum max denominator that specifies the value exactly. + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN[ ( exp = e % LOG_BASE ) < 0 ? LOG_BASE + exp : exp ]; + md = !md || n.cmp(d) > 0 ? ( e > 0 ? d : n1 ) : n; + + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber(s); + + // n0 = d1 = 0 + n0.c[0] = 0; + + for ( ; ; ) { + q = div( n, d, 0, 1 ); + d2 = d0.plus( q.times(d1) ); + if ( d2.cmp(md) == 1 ) break; + d0 = d1; + d1 = d2; + n1 = n0.plus( q.times( d2 = n1 ) ); + n0 = d2; + d = n.minus( q.times( d2 = d ) ); + n = d2; + } - return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); - }; + d2 = div( md.minus(d0), d1, 0, 1 ); + n0 = n0.plus( d2.times(n1) ); + d0 = d0.plus( d2.times(d1) ); + n0.s = n1.s = x.s; + e *= 2; + // Determine which fraction is closer to x, n0/d0 or n1/d1 + arr = div( n1, d1, e, ROUNDING_MODE ).minus(x).abs().cmp( + div( n0, d0, e, ROUNDING_MODE ).minus(x).abs() ) < 1 + ? [ n1.toString(), d1.toString() ] + : [ n0.toString(), d0.toString() ]; - /* - * Return a string representing the value of this BigNumber in exponential notation and - * rounded using ROUNDING_MODE to dp fixed decimal places. - * - * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' - */ - P.toExponential = function (dp, rm) { - if (dp != null) { - intCheck(dp, 0, MAX); - dp++; - } - return format(this, dp, rm, 1); - }; + MAX_EXP = exp; + return arr; + }; - /* - * Return a string representing the value of this BigNumber in fixed-point notation rounding - * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted. - * - * Note: as with JavaScript's number type, (-0).toFixed(0) is '0', - * but e.g. (-0.00001).toFixed(0) is '-0'. - * - * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' - */ - P.toFixed = function (dp, rm) { - if (dp != null) { - intCheck(dp, 0, MAX); - dp = dp + this.e + 1; - } - return format(this, dp, rm); - }; + /* + * Return the value of this BigNumber converted to a number primitive. + */ + P.toNumber = function () { + return +this; + }; - /* - * Return a string representing the value of this BigNumber in fixed-point notation rounded - * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties - * of the FORMAT object (see BigNumber.set). - * - * FORMAT = { - * decimalSeparator : '.', - * groupSeparator : ',', - * groupSize : 3, - * secondaryGroupSize : 0, - * fractionGroupSeparator : '\xA0', // non-breaking space - * fractionGroupSize : 0 - * }; - * - * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' - */ - P.toFormat = function (dp, rm) { - var str = this.toFixed(dp, rm); - - if (this.c) { - var i, - arr = str.split('.'), - g1 = +FORMAT.groupSize, - g2 = +FORMAT.secondaryGroupSize, - groupSeparator = FORMAT.groupSeparator, - intPart = arr[0], - fractionPart = arr[1], - isNeg = this.s < 0, - intDigits = isNeg ? intPart.slice(1) : intPart, - len = intDigits.length; - - if (g2) i = g1, g1 = g2, g2 = i, len -= i; - - if (g1 > 0 && len > 0) { - i = len % g1 || g1; - intPart = intDigits.substr(0, i); - - for (; i < len; i += g1) { - intPart += groupSeparator + intDigits.substr(i, g1); - } + /* + * Return a BigNumber whose value is the value of this BigNumber raised to the power n. + * If m is present, return the result modulo m. + * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE. + * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using + * ROUNDING_MODE. + * + * The modular power operation works efficiently when x, n, and m are positive integers, + * otherwise it is equivalent to calculating x.toPower(n).modulo(m) (with POW_PRECISION 0). + * + * n {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. + * [m] {number|string|BigNumber} The modulus. + * + * 'pow() exponent not an integer: {n}' + * 'pow() exponent out of range: {n}' + * + * Performs 54 loop iterations for n of 9007199254740991. + */ + P.toPower = P.pow = function ( n, m ) { + var k, y, z, + i = mathfloor( n < 0 ? -n : +n ), + x = this; + + if ( m != null ) { + id = 23; + m = new BigNumber(m); + } - if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); - if (isNeg) intPart = '-' + intPart; - } + // Pass ±Infinity to Math.pow if exponent is out of range. + if ( !isValidInt( n, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER, 23, 'exponent' ) && + ( !isFinite(n) || i > MAX_SAFE_INTEGER && ( n /= 0 ) || + parseFloat(n) != n && !( n = NaN ) ) || n == 0 ) { + k = Math.pow( +x, n ); + return new BigNumber( m ? k % m : k ); + } - str = fractionPart - ? intPart + FORMAT.decimalSeparator + ((g2 = +FORMAT.fractionGroupSize) - ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'), - '$&' + FORMAT.fractionGroupSeparator) - : fractionPart) - : intPart; - } + if (m) { + if ( n > 1 && x.gt(ONE) && x.isInt() && m.gt(ONE) && m.isInt() ) { + x = x.mod(m); + } else { + z = m; + + // Nullify m so only a single mod operation is performed at the end. + m = null; + } + } else if (POW_PRECISION) { + + // Truncating each coefficient array to a length of k after each multiplication + // equates to truncating significant digits to POW_PRECISION + [28, 41], + // i.e. there will be a minimum of 28 guard digits retained. + // (Using + 1.5 would give [9, 21] guard digits.) + k = mathceil( POW_PRECISION / LOG_BASE + 2 ); + } - return str; - }; + y = new BigNumber(ONE); + + for ( ; ; ) { + if ( i % 2 ) { + y = y.times(x); + if ( !y.c ) break; + if (k) { + if ( y.c.length > k ) y.c.length = k; + } else if (m) { + y = y.mod(m); + } + } + + i = mathfloor( i / 2 ); + if ( !i ) break; + x = x.times(x); + if (k) { + if ( x.c && x.c.length > k ) x.c.length = k; + } else if (m) { + x = x.mod(m); + } + } + if (m) return y; + if ( n < 0 ) y = ONE.div(y); - /* - * Return a string array representing the value of this BigNumber as a simple fraction with - * an integer numerator and an integer denominator. The denominator will be a positive - * non-zero value less than or equal to the specified maximum denominator. If a maximum - * denominator is not specified, the denominator will be the lowest value necessary to - * represent the number exactly. - * - * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator. - * - * '[BigNumber Error] Argument {not an integer|out of range} : {md}' - */ - P.toFraction = function (md) { - var arr, d, d0, d1, d2, e, exp, n, n0, n1, q, s, - x = this, - xc = x.c; - - if (md != null) { - n = new BigNumber(md); - - // Throw if md is less than one or is not an integer, unless it is Infinity. - if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { - throw Error - (bignumberError + 'Argument ' + - (n.isInteger() ? 'out of range: ' : 'not an integer: ') + md); - } - } + return z ? y.mod(z) : k ? round( y, POW_PRECISION, ROUNDING_MODE ) : y; + }; - if (!xc) return x.toString(); - - d = new BigNumber(ONE); - n1 = d0 = new BigNumber(ONE); - d1 = n0 = new BigNumber(ONE); - s = coeffToString(xc); - - // Determine initial denominator. - // d is a power of 10 and the minimum max denominator that specifies the value exactly. - e = d.e = s.length - x.e - 1; - d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; - md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n; - - exp = MAX_EXP; - MAX_EXP = 1 / 0; - n = new BigNumber(s); - - // n0 = d1 = 0 - n0.c[0] = 0; - - for (; ;) { - q = div(n, d, 0, 1); - d2 = d0.plus(q.times(d1)); - if (d2.comparedTo(md) == 1) break; - d0 = d1; - d1 = d2; - n1 = n0.plus(q.times(d2 = n1)); - n0 = d2; - d = n.minus(q.times(d2 = d)); - n = d2; - } - d2 = div(md.minus(d0), d1, 0, 1); - n0 = n0.plus(d2.times(n1)); - d0 = d0.plus(d2.times(d1)); - n0.s = n1.s = x.s; - e *= 2; + /* + * Return a string representing the value of this BigNumber rounded to sd significant digits + * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits + * necessary to represent the integer part of the value in fixed-point notation, then use + * exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toPrecision() precision not an integer: {sd}' + * 'toPrecision() precision out of range: {sd}' + * 'toPrecision() rounding mode not an integer: {rm}' + * 'toPrecision() rounding mode out of range: {rm}' + */ + P.toPrecision = function ( sd, rm ) { + return format( this, sd != null && isValidInt( sd, 1, MAX, 24, 'precision' ) + ? sd | 0 : null, rm, 24 ); + }; - // Determine which fraction is closer to x, n0/d0 or n1/d1 - arr = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( - div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 - ? [n1.toString(), d1.toString()] - : [n0.toString(), d0.toString()]; - MAX_EXP = exp; - return arr; - }; + /* + * Return a string representing the value of this BigNumber in base b, or base 10 if b is + * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and + * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent + * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than + * TO_EXP_NEG, return exponential notation. + * + * [b] {number} Integer, 2 to 64 inclusive. + * + * 'toString() base not an integer: {b}' + * 'toString() base out of range: {b}' + */ + P.toString = function (b) { + var str, + n = this, + s = n.s, + e = n.e; + + // Infinity or NaN? + if ( e === null ) { + + if (s) { + str = 'Infinity'; + if ( s < 0 ) str = '-' + str; + } else { + str = 'NaN'; + } + } else { + str = coeffToString( n.c ); + if ( b == null || !isValidInt( b, 2, 64, 25, 'base' ) ) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential( str, e ) + : toFixedPoint( str, e ); + } else { + str = convertBase( toFixedPoint( str, e ), b | 0, 10, s ); + } - /* - * Return the value of this BigNumber converted to a number primitive. - */ - P.toNumber = function () { - return +this; - }; + if ( s < 0 && n.c[0] ) str = '-' + str; + } + return str; + }; - /* - * Return a string representing the value of this BigNumber rounded to sd significant digits - * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits - * necessary to represent the integer part of the value in fixed-point notation, then use - * exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' - */ - P.toPrecision = function (sd, rm) { - if (sd != null) intCheck(sd, 1, MAX); - return format(this, sd, rm, 2); - }; + /* + * Return a new BigNumber whose value is the value of this BigNumber truncated to a whole + * number. + */ + P.truncated = P.trunc = function () { + return round( new BigNumber(this), this.e + 1, 1 ); + }; - /* - * Return a string representing the value of this BigNumber in base b, or base 10 if b is - * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and - * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent - * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than - * TO_EXP_NEG, return exponential notation. - * - * [b] {number} Integer, 2 to ALPHABET.length inclusive. - * - * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' - */ - P.toString = function (b) { - var str, - n = this, - s = n.s, - e = n.e; - - // Infinity or NaN? - if (e === null) { - - if (s) { - str = 'Infinity'; - if (s < 0) str = '-' + str; - } else { - str = 'NaN'; - } - } else { - str = coeffToString(n.c); - if (b == null) { - str = e <= TO_EXP_NEG || e >= TO_EXP_POS - ? toExponential(str, e) - : toFixedPoint(str, e, '0'); - } else { - intCheck(b, 2, ALPHABET.length, 'Base'); - str = convertBase(toFixedPoint(str, e, '0'), 10, b, s, true); - } + /* + * Return as toString, but do not accept a base argument, and include the minus sign for + * negative zero. + */ + P.valueOf = P.toJSON = function () { + var str, + n = this, + e = n.e; - if (s < 0 && n.c[0]) str = '-' + str; - } + if ( e === null ) return n.toString(); - return str; - }; + str = coeffToString( n.c ); + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential( str, e ) + : toFixedPoint( str, e ); - /* - * Return as toString, but do not accept a base argument, and include the minus sign for - * negative zero. - */ - P.valueOf = P.toJSON = function () { - var str, - n = this, - e = n.e; + return n.s < 0 ? '-' + str : str; + }; - if (e === null) return n.toString(); - str = coeffToString(n.c); + P.isBigNumber = true; - str = e <= TO_EXP_NEG || e >= TO_EXP_POS - ? toExponential(str, e) - : toFixedPoint(str, e, '0'); + if ( config != null ) BigNumber.config(config); - return n.s < 0 ? '-' + str : str; - }; + return BigNumber; + } - P._isBigNumber = true; + // PRIVATE HELPER FUNCTIONS - if (configObject != null) BigNumber.set(configObject); - return BigNumber; -} + function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; + } -// PRIVATE HELPER FUNCTIONS + // Return a coefficient array as a string of base 10 digits. + function coeffToString(a) { + var s, z, + i = 1, + j = a.length, + r = a[0] + ''; + for ( ; i < j; ) { + s = a[i++] + ''; + z = LOG_BASE - s.length; + for ( ; z--; s = '0' + s ); + r += s; + } -function bitFloor(n) { - var i = n | 0; - return n > 0 || n === i ? i : i - 1; -} + // Determine trailing zeros. + for ( j = r.length; r.charCodeAt(--j) === 48; ); + return r.slice( 0, j + 1 || 1 ); + } -// Return a coefficient array as a string of base 10 digits. -function coeffToString(a) { - var s, z, - i = 1, - j = a.length, - r = a[0] + ''; + // Compare the value of BigNumbers x and y. + function compare( x, y ) { + var a, b, + xc = x.c, + yc = y.c, + i = x.s, + j = y.s, + k = x.e, + l = y.e; - for (; i < j;) { - s = a[i++] + ''; - z = LOG_BASE - s.length; - for (; z--; s = '0' + s); - r += s; - } + // Either NaN? + if ( !i || !j ) return null; - // Determine trailing zeros. - for (j = r.length; r.charCodeAt(--j) === 48;); - return r.slice(0, j + 1 || 1); -} + a = xc && !xc[0]; + b = yc && !yc[0]; + // Either zero? + if ( a || b ) return a ? b ? 0 : -j : i; -// Compare the value of BigNumbers x and y. -function compare(x, y) { - var a, b, - xc = x.c, - yc = y.c, - i = x.s, - j = y.s, - k = x.e, - l = y.e; + // Signs differ? + if ( i != j ) return i; - // Either NaN? - if (!i || !j) return null; + a = i < 0; + b = k == l; - a = xc && !xc[0]; - b = yc && !yc[0]; + // Either Infinity? + if ( !xc || !yc ) return b ? 0 : !xc ^ a ? 1 : -1; - // Either zero? - if (a || b) return a ? b ? 0 : -j : i; + // Compare exponents. + if ( !b ) return k > l ^ a ? 1 : -1; - // Signs differ? - if (i != j) return i; + j = ( k = xc.length ) < ( l = yc.length ) ? k : l; - a = i < 0; - b = k == l; + // Compare digit by digit. + for ( i = 0; i < j; i++ ) if ( xc[i] != yc[i] ) return xc[i] > yc[i] ^ a ? 1 : -1; - // Either Infinity? - if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + // Compare lengths. + return k == l ? 0 : k > l ^ a ? 1 : -1; + } - // Compare exponents. - if (!b) return k > l ^ a ? 1 : -1; - j = (k = xc.length) < (l = yc.length) ? k : l; + /* + * Return true if n is a valid number in range, otherwise false. + * Use for argument validation when ERRORS is false. + * Note: parseInt('1e+1') == 1 but parseFloat('1e+1') == 10. + */ + function intValidatorNoErrors( n, min, max ) { + return ( n = truncate(n) ) >= min && n <= max; + } - // Compare digit by digit. - for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; - // Compare lengths. - return k == l ? 0 : k > l ^ a ? 1 : -1; -} + function isArray(obj) { + return Object.prototype.toString.call(obj) == '[object Array]'; + } -/* - * Check that n is a primitive number, an integer, and in range, otherwise throw. - */ -function intCheck(n, min, max, name) { - if (n < min || n > max || n !== (n < 0 ? mathceil(n) : mathfloor(n))) { - throw Error - (bignumberError + (name || 'Argument') + (typeof n == 'number' - ? n < min || n > max ? ' out of range: ' : ' not an integer: ' - : ' not a primitive number: ') + n); - } -} + /* + * Convert string of baseIn to an array of numbers of baseOut. + * Eg. convertBase('255', 10, 16) returns [15, 15]. + * Eg. convertBase('ff', 16, 10) returns [2, 5, 5]. + */ + function toBaseOut( str, baseIn, baseOut ) { + var j, + arr = [0], + arrL, + i = 0, + len = str.length; + + for ( ; i < len; ) { + for ( arrL = arr.length; arrL--; arr[arrL] *= baseIn ); + arr[ j = 0 ] += ALPHABET.indexOf( str.charAt( i++ ) ); + + for ( ; j < arr.length; j++ ) { + + if ( arr[j] > baseOut - 1 ) { + if ( arr[j + 1] == null ) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + return arr.reverse(); + } -function isArray(obj) { - return Object.prototype.toString.call(obj) == '[object Array]'; -} + function toExponential( str, e ) { + return ( str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str ) + + ( e < 0 ? 'e' : 'e+' ) + e; + } -// Assumes finite n. -function isOdd(n) { - var k = n.c.length - 1; - return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; -} + function toFixedPoint( str, e ) { + var len, z; -function toExponential(str, e) { - return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + - (e < 0 ? 'e' : 'e+') + e; -} + // Negative exponent? + if ( e < 0 ) { + // Prepend zeros. + for ( z = '0.'; ++e; z += '0' ); + str = z + str; -function toFixedPoint(str, e, z) { - var len, zs; + // Positive exponent + } else { + len = str.length; + + // Append zeros. + if ( ++e > len ) { + for ( z = '0', e -= len; --e; z += '0' ); + str += z; + } else if ( e < len ) { + str = str.slice( 0, e ) + '.' + str.slice(e); + } + } - // Negative exponent? - if (e < 0) { + return str; + } - // Prepend zeros. - for (zs = z + '.'; ++e; zs += z); - str = zs + str; - // Positive exponent - } else { - len = str.length; - - // Append zeros. - if (++e > len) { - for (zs = z, e -= len; --e; zs += z); - str += zs; - } else if (e < len) { - str = str.slice(0, e) + '.' + str.slice(e); + function truncate(n) { + n = parseFloat(n); + return n < 0 ? mathceil(n) : mathfloor(n); } - } - return str; -} + // EXPORT -// EXPORTS + BigNumber = constructorFactory(); + BigNumber['default'] = BigNumber.BigNumber = BigNumber; -var BigNumber = clone(); -/* harmony default export */ __webpack_exports__["default"] = (BigNumber); + // AMD. + if ( true ) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return BigNumber; }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + + // Node.js and other environments that support module.exports. + } else {} +})(this); /***/ }), @@ -9817,12 +9425,12 @@ BufferList.prototype.push = function push(buf) { /***/ (function(module, exports, __webpack_require__) { exports.ChangeUser = __webpack_require__(44); -exports.Handshake = __webpack_require__(69); -exports.Ping = __webpack_require__(70); +exports.Handshake = __webpack_require__(67); +exports.Ping = __webpack_require__(68); exports.Query = __webpack_require__(19); -exports.Quit = __webpack_require__(79); +exports.Quit = __webpack_require__(77); exports.Sequence = __webpack_require__(3); -exports.Statistics = __webpack_require__(80); +exports.Statistics = __webpack_require__(78); /***/ }), @@ -9846,14 +9454,6 @@ function ChangeUser(options, callback) { this._currentConfig = options.currentConfig; } -ChangeUser.prototype.determinePacket = function determinePacket(firstByte) { - switch (firstByte) { - case 0xfe: return Packets.AuthSwitchRequestPacket; - case 0xff: return Packets.ErrorPacket; - default: return undefined; - } -}; - ChangeUser.prototype.start = function(handshakeInitializationPacket) { var scrambleBuff = handshakeInitializationPacket.scrambleBuff(); scrambleBuff = Auth.token(this._password, scrambleBuff); @@ -9873,24 +9473,6 @@ ChangeUser.prototype.start = function(handshakeInitializationPacket) { this.emit('packet', packet); }; -ChangeUser.prototype['AuthSwitchRequestPacket'] = function (packet) { - var name = packet.authMethodName; - var data = Auth.auth(name, packet.authMethodData, { - password: this._password - }); - - if (data !== undefined) { - this.emit('packet', new Packets.AuthSwitchResponsePacket({ - data: data - })); - } else { - var err = new Error('MySQL is requesting the ' + name + ' authentication method, which is not supported.'); - err.code = 'UNSUPPORTED_AUTH_METHOD'; - err.fatal = true; - this.end(err); - } -}; - ChangeUser.prototype['ErrorPacket'] = function(packet) { var err = this._packetToError(packet); err.fatal = true; @@ -10486,11 +10068,12 @@ function OldPasswordPacket(options) { } OldPasswordPacket.prototype.parse = function(parser) { - this.scrambleBuff = parser.parsePacketTerminatedBuffer(); + this.scrambleBuff = parser.parseNullTerminatedBuffer(); }; OldPasswordPacket.prototype.write = function(writer) { writer.writeBuffer(this.scrambleBuff); + writer.writeFiller(1); }; @@ -10654,7 +10237,10 @@ function typeCast(field, parser, timeZone, supportBigNumbers, bigNumberStrings, function typeMatch(type, list) { if (Array.isArray(list)) { - return list.indexOf(Types[type]) !== -1; + for (var i = 0; i < list.length; i++) { + if (Types[list[i]] === type) return true; + } + return false; } else { return Boolean(list); } @@ -10747,7 +10333,7 @@ UseOldPasswordPacket.prototype.write = function(writer) { /** * MySQL error constants * - * Extracted from version 5.7.21 + * Extracted from version 5.7.19 * * !! Generated by generate-error-constants.js, do not modify by hand !! */ @@ -11950,11 +11536,6 @@ exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID = 3196; exports.ER_XA_RETRY = 3197; exports.ER_KEYRING_AWS_UDF_AWS_KMS_ERROR = 3198; -exports.ER_BINLOG_UNSAFE_XA = 3199; -exports.ER_UDF_ERROR = 3200; -exports.ER_KEYRING_MIGRATION_FAILURE = 3201; -exports.ER_KEYRING_ACCESS_DENIED_ERROR = 3202; -exports.ER_KEYRING_MIGRATION_STATUS = 3203; // Lookup-by-number table exports[1] = 'EE_CANTCREATEFILE'; @@ -13155,62 +12736,12 @@ exports[3195] = 'ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO'; exports[3196] = 'ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID'; exports[3197] = 'ER_XA_RETRY'; exports[3198] = 'ER_KEYRING_AWS_UDF_AWS_KMS_ERROR'; -exports[3199] = 'ER_BINLOG_UNSAFE_XA'; -exports[3200] = 'ER_UDF_ERROR'; -exports[3201] = 'ER_KEYRING_MIGRATION_FAILURE'; -exports[3202] = 'ER_KEYRING_ACCESS_DENIED_ERROR'; -exports[3203] = 'ER_KEYRING_MIGRATION_STATUS'; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { -var Timers = __webpack_require__(68); - -module.exports = Timer; -function Timer(object) { - this._object = object; - this._timeout = null; -} - -Timer.prototype.active = function active() { - if (this._timeout) { - if (this._timeout.refresh) { - this._timeout.refresh(); - } else { - Timers.active(this._timeout); - } - } -}; - -Timer.prototype.start = function start(msecs) { - this.stop(); - this._timeout = Timers.setTimeout(this._onTimeout.bind(this), msecs); -}; - -Timer.prototype.stop = function stop() { - if (this._timeout) { - Timers.clearTimeout(this._timeout); - this._timeout = null; - } -}; - -Timer.prototype._onTimeout = function _onTimeout() { - return this._object._onTimeout(); -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports) { - -module.exports = require("timers"); - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - var Sequence = __webpack_require__(3); var Util = __webpack_require__(0); var Packets = __webpack_require__(2); @@ -13247,19 +12778,26 @@ Handshake.prototype.determinePacket = function determinePacket(firstByte, parser }; Handshake.prototype['AuthSwitchRequestPacket'] = function (packet) { - var name = packet.authMethodName; - var data = Auth.auth(name, packet.authMethodData, { - password: this._config.password - }); + switch (packet.authMethodName) { + case 'mysql_native_password': + case 'mysql_old_password': + default: + } + + if (packet.authMethodName === 'mysql_native_password') { + var challenge = packet.authMethodData.slice(0, 20); - if (data !== undefined) { this.emit('packet', new Packets.AuthSwitchResponsePacket({ - data: data + data: Auth.token(this._config.password, challenge) })); } else { - var err = new Error('MySQL is requesting the ' + name + ' authentication method, which is not supported.'); - err.code = 'UNSUPPORTED_AUTH_METHOD'; + var err = new Error( + 'MySQL is requesting the ' + packet.authMethodName + ' authentication method, which is not supported.' + ); + + err.code = 'UNSUPPORTED_AUTH_METHOD'; err.fatal = true; + this.end(err); } }; @@ -13340,7 +12878,7 @@ Handshake.prototype['ErrorPacket'] = function(packet) { /***/ }), -/* 70 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { var Sequence = __webpack_require__(3); @@ -13365,7 +12903,7 @@ Ping.prototype.start = function() { /***/ }), -/* 71 */ +/* 69 */ /***/ (function(module, exports) { module.exports = ResultSet; @@ -13378,7 +12916,7 @@ function ResultSet(resultSetHeaderPacket) { /***/ }), -/* 72 */ +/* 70 */ /***/ (function(module, exports) { // Manually extracted from mysql-5.5.23/include/mysql_com.h @@ -13423,7 +12961,7 @@ exports.SERVER_PS_OUT_PARAMS = 4096; /***/ }), -/* 73 */ +/* 71 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(14); @@ -13443,12 +12981,12 @@ if (process.env.READABLE_STREAM === 'disable' && Stream) { exports.Writable = __webpack_require__(24); exports.Duplex = __webpack_require__(5); exports.Transform = __webpack_require__(26); - exports.PassThrough = __webpack_require__(78); + exports.PassThrough = __webpack_require__(76); } /***/ }), -/* 74 */ +/* 72 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -13459,7 +12997,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 75 */ +/* 73 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { @@ -13488,16 +13026,18 @@ if (typeof Object.create === 'function') { /***/ }), -/* 76 */ +/* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/**/ + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Buffer = __webpack_require__(1).Buffer; -var util = __webpack_require__(0); +/**/ function copyBuffer(src, target, offset) { src.copy(target, offset); @@ -13565,15 +13105,8 @@ module.exports = function () { return BufferList; }(); -if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function () { - var obj = util.inspect({ length: this.length }); - return this.constructor.name + ' ' + obj; - }; -} - /***/ }), -/* 77 */ +/* 75 */ /***/ (function(module, exports, __webpack_require__) { @@ -13585,7 +13118,7 @@ module.exports = __webpack_require__(0).deprecate; /***/ }), -/* 78 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -13638,7 +13171,7 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { }; /***/ }), -/* 79 */ +/* 77 */ /***/ (function(module, exports, __webpack_require__) { var Sequence = __webpack_require__(3); @@ -13684,7 +13217,7 @@ Quit.prototype.start = function() { /***/ }), -/* 80 */ +/* 78 */ /***/ (function(module, exports, __webpack_require__) { var Sequence = __webpack_require__(3); @@ -13720,7 +13253,13 @@ Statistics.prototype.determinePacket = function determinePacket(firstByte) { /***/ }), -/* 81 */ +/* 79 */ +/***/ (function(module, exports) { + +module.exports = require("timers"); + +/***/ }), +/* 80 */ /***/ (function(module, exports, __webpack_require__) { var BIT_16 = Math.pow(2, 16); @@ -13937,14 +13476,14 @@ PacketWriter.prototype._allocate = function _allocate(bytes) { /***/ }), -/* 82 */ +/* 81 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(83); +module.exports = __webpack_require__(82); /***/ }), -/* 83 */ +/* 82 */ /***/ (function(module, exports) { var SqlString = exports; @@ -14032,19 +13571,13 @@ SqlString.format = function format(sql, values, stringifyObjects, timeZone) { } var chunkIndex = 0; - var placeholdersRegex = /\?+/g; + var placeholdersRegex = /\?\??/g; var result = ''; var valuesIndex = 0; var match; while (valuesIndex < values.length && (match = placeholdersRegex.exec(sql))) { - var len = match[0].length; - - if (len > 2) { - continue; - } - - var value = len === 2 + var value = match[0] === '??' ? SqlString.escapeId(values[valuesIndex]) : SqlString.escape(values[valuesIndex], stringifyObjects, timeZone); @@ -14187,7 +13720,7 @@ function convertTimezone(tz) { /***/ }), -/* 84 */ +/* 83 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(0).inherits; @@ -14258,12 +13791,12 @@ PoolConnection.prototype._removeFromPool = function _removeFromPool() { /***/ }), -/* 85 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { var Pool = __webpack_require__(28); var PoolConfig = __webpack_require__(29); -var PoolNamespace = __webpack_require__(86); +var PoolNamespace = __webpack_require__(85); var PoolSelector = __webpack_require__(30); var Util = __webpack_require__(0); var EventEmitter = __webpack_require__(4).EventEmitter; @@ -14552,7 +14085,7 @@ function _noop() {} /***/ }), -/* 86 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { var Connection = __webpack_require__(8); @@ -14694,15 +14227,11 @@ PoolNamespace.prototype._getClusterNode = function _getClusterNode() { /***/ }), -/* 87 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { const fs = __webpack_require__(20); -function writeConsole(msg) { - console.log(msg); -} - class Logger { constructor(output) { this.output = output; @@ -14710,7 +14239,7 @@ class Logger { if (this.output === 'file' || this.output === 'both') { this.fileStream = fs.createWriteStream('./mysql-async.log'); } - this.writeConsole = writeConsole; + this.writeConsole = msg => console.log(msg); } writeFile(msg) { @@ -14735,7 +14264,7 @@ class Logger { error(msg) { let errorMsg = msg; - if (this.output === 'console') { + if (this.output !== 'file') { errorMsg = `\x1b[31m${msg}\x1b[0m`; } this.log(errorMsg); @@ -14746,12 +14275,12 @@ module.exports = Logger; /***/ }), -/* 88 */ +/* 87 */ /***/ (function(module, exports) { const profilerDefaultConfig = { trace: false, - slowQueryWarningTime: 200, + slowQueryWarningTime: 100, slowestQueries: 21, timeInterval: 300000, }; @@ -14790,16 +14319,16 @@ class Profiler { this.slowQueryLimit = 0; } - getFastestSlowQuery() { + get getFastestSlowQuery() { return this.profiles.slowQueries.reduce((acc, cur) => ((cur < acc) ? cur : acc)); } addSlowQuery(sql, resource, queryTime) { this.profiles.slowQueries.push({ sql, resource, queryTime }); if (this.profiles.slowQueries.length > this.config.slowestQueries) { - const min = this.getFastestSlowQuery(); + const min = this.getFastestSlowQuery; this.profiles.slowQueries = this.profiles.slowQueries.filter(el => el !== min); - this.slowQueryLimit = this.getFastestSlowQuery(); + this.slowQueryLimit = this.getFastestSlowQuery; } } @@ -14807,6 +14336,17 @@ class Profiler { this.version = version; } + fillExecutionTimes(interval) { + for (let i = 0; i < interval; i += 1) { + if (!this.profiles.executionTimes[i]) { + this.profiles.executionTimes[i] = { + totalExecutionTime: 0, + queryCount: 0, + }; + } + } + } + profile(time, sql, resource) { const interval = Math.floor((Date.now() - this.startTime) / this.config.timeInterval); const queryTime = time[0] * 1e3 + time[1] * 1e-6; @@ -14818,14 +14358,7 @@ class Profiler { this.profiles.executionTimes[interval], queryTime, ); // fix execution times manually - for (let i = 0; i < interval; i += 1) { - if (!this.profiles.executionTimes[i]) { - this.profiles.executionTimes[i] = { - totalExecutionTime: 0, - queryCount: 0, - }; - } - } + this.fillExecutionTimes(interval); // todo: cull old intervals if (this.slowQueryLimit < queryTime) { @@ -14846,7 +14379,7 @@ module.exports = Profiler; /***/ }), -/* 89 */ +/* 88 */ /***/ (function(module, exports, __webpack_require__) { const { parseUrl } = __webpack_require__(9); @@ -14887,7 +14420,7 @@ module.exports = parseConnectingString; /***/ }), -/* 90 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { const mysql = __webpack_require__(12); @@ -14900,18 +14433,20 @@ function safeInvoke(callback, args) { } } +function mysqlEscape(parameters, text, key) { + let result = text; + if (Object.prototype.hasOwnProperty.call(parameters, key)) { + result = mysql.escape(parameters[key]); + } else if (Object.prototype.hasOwnProperty.call(parameters, text)) { + result = mysql.escape(parameters[text]); + } + return result; +} + function prepareQuery(query, parameters) { let sql = query; if (parameters !== null && typeof parameters === 'object') { - sql = query.replace(/@(\w+)/g, (txt, key) => { - let result = txt; - if (Object.prototype.hasOwnProperty.call(parameters, key)) { - result = mysql.escape(parameters[key]); - } else if (Object.prototype.hasOwnProperty.call(parameters, `@${key}`)) { - result = mysql.escape(parameters[`@${key}`]); - } - return result; - }); + sql = query.replace(/@(\w+)/g, (txt, key) => mysqlEscape(parameters, txt, key)); } return sql; } @@ -14940,7 +14475,34 @@ function typeCast(field, next) { } } -module.exports = { safeInvoke, prepareQuery, typeCast }; +function prepareTransactionLegacyQuery(querys) { + const sqls = querys; + sqls.forEach((element, index) => { + const query = prepareQuery(element.query, element.parameters); + sqls[index] = query; + }); + return sqls; +} + +function sanitizeTransactionInput(querys, params, callback) { + let sqls = []; + let cb = callback; + // if every query is a string we are dealing with syntax type a + if (!querys.every(element => typeof element === 'string')) sqls = querys; + else { + const values = (typeof params === 'function') ? [] : params; + querys.forEach((element) => { + sqls.push({ query: element, parameters: values }); + }); + } + if (typeof params === 'function') cb = params; + sqls = prepareTransactionLegacyQuery(sqls); + return [sqls, cb]; +} + +module.exports = { + safeInvoke, prepareQuery, typeCast, sanitizeTransactionInput, +}; /***/ }) diff --git a/ui/app.css b/ui/app.css index 0f0074a..2338543 100644 --- a/ui/app.css +++ b/ui/app.css @@ -1 +1 @@ -@charset "UTF-8";@-moz-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@-webkit-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@-o-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.black{background-color:#000!important;border-color:#000!important}.black--text{color:#000!important;caret-color:#000!important}.white{background-color:#fff!important;border-color:#fff!important}.white--text{color:#fff!important;caret-color:#fff!important}.transparent{background-color:transparent!important;border-color:transparent!important}.transparent--text{color:transparent!important;caret-color:transparent!important}.red{background-color:#f44336!important;border-color:#f44336!important}.red--text{color:#f44336!important;caret-color:#f44336!important}.red.lighten-5{background-color:#ffebee!important;border-color:#ffebee!important}.red--text.text--lighten-5{color:#ffebee!important;caret-color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important;border-color:#ffcdd2!important}.red--text.text--lighten-4{color:#ffcdd2!important;caret-color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important;border-color:#ef9a9a!important}.red--text.text--lighten-3{color:#ef9a9a!important;caret-color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important;border-color:#e57373!important}.red--text.text--lighten-2{color:#e57373!important;caret-color:#e57373!important}.red.lighten-1{background-color:#ef5350!important;border-color:#ef5350!important}.red--text.text--lighten-1{color:#ef5350!important;caret-color:#ef5350!important}.red.darken-1{background-color:#e53935!important;border-color:#e53935!important}.red--text.text--darken-1{color:#e53935!important;caret-color:#e53935!important}.red.darken-2{background-color:#d32f2f!important;border-color:#d32f2f!important}.red--text.text--darken-2{color:#d32f2f!important;caret-color:#d32f2f!important}.red.darken-3{background-color:#c62828!important;border-color:#c62828!important}.red--text.text--darken-3{color:#c62828!important;caret-color:#c62828!important}.red.darken-4{background-color:#b71c1c!important;border-color:#b71c1c!important}.red--text.text--darken-4{color:#b71c1c!important;caret-color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important;border-color:#ff8a80!important}.red--text.text--accent-1{color:#ff8a80!important;caret-color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important;border-color:#ff5252!important}.red--text.text--accent-2{color:#ff5252!important;caret-color:#ff5252!important}.red.accent-3{background-color:#ff1744!important;border-color:#ff1744!important}.red--text.text--accent-3{color:#ff1744!important;caret-color:#ff1744!important}.red.accent-4{background-color:#d50000!important;border-color:#d50000!important}.red--text.text--accent-4{color:#d50000!important;caret-color:#d50000!important}.pink{background-color:#e91e63!important;border-color:#e91e63!important}.pink--text{color:#e91e63!important;caret-color:#e91e63!important}.pink.lighten-5{background-color:#fce4ec!important;border-color:#fce4ec!important}.pink--text.text--lighten-5{color:#fce4ec!important;caret-color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important;border-color:#f8bbd0!important}.pink--text.text--lighten-4{color:#f8bbd0!important;caret-color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important;border-color:#f48fb1!important}.pink--text.text--lighten-3{color:#f48fb1!important;caret-color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important;border-color:#f06292!important}.pink--text.text--lighten-2{color:#f06292!important;caret-color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important;border-color:#ec407a!important}.pink--text.text--lighten-1{color:#ec407a!important;caret-color:#ec407a!important}.pink.darken-1{background-color:#d81b60!important;border-color:#d81b60!important}.pink--text.text--darken-1{color:#d81b60!important;caret-color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important;border-color:#c2185b!important}.pink--text.text--darken-2{color:#c2185b!important;caret-color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important;border-color:#ad1457!important}.pink--text.text--darken-3{color:#ad1457!important;caret-color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important;border-color:#880e4f!important}.pink--text.text--darken-4{color:#880e4f!important;caret-color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important;border-color:#ff80ab!important}.pink--text.text--accent-1{color:#ff80ab!important;caret-color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important;border-color:#ff4081!important}.pink--text.text--accent-2{color:#ff4081!important;caret-color:#ff4081!important}.pink.accent-3{background-color:#f50057!important;border-color:#f50057!important}.pink--text.text--accent-3{color:#f50057!important;caret-color:#f50057!important}.pink.accent-4{background-color:#c51162!important;border-color:#c51162!important}.pink--text.text--accent-4{color:#c51162!important;caret-color:#c51162!important}.purple{background-color:#9c27b0!important;border-color:#9c27b0!important}.purple--text{color:#9c27b0!important;caret-color:#9c27b0!important}.purple.lighten-5{background-color:#f3e5f5!important;border-color:#f3e5f5!important}.purple--text.text--lighten-5{color:#f3e5f5!important;caret-color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important;border-color:#e1bee7!important}.purple--text.text--lighten-4{color:#e1bee7!important;caret-color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important;border-color:#ce93d8!important}.purple--text.text--lighten-3{color:#ce93d8!important;caret-color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important;border-color:#ba68c8!important}.purple--text.text--lighten-2{color:#ba68c8!important;caret-color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important;border-color:#ab47bc!important}.purple--text.text--lighten-1{color:#ab47bc!important;caret-color:#ab47bc!important}.purple.darken-1{background-color:#8e24aa!important;border-color:#8e24aa!important}.purple--text.text--darken-1{color:#8e24aa!important;caret-color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important;border-color:#7b1fa2!important}.purple--text.text--darken-2{color:#7b1fa2!important;caret-color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important;border-color:#6a1b9a!important}.purple--text.text--darken-3{color:#6a1b9a!important;caret-color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important;border-color:#4a148c!important}.purple--text.text--darken-4{color:#4a148c!important;caret-color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important;border-color:#ea80fc!important}.purple--text.text--accent-1{color:#ea80fc!important;caret-color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important;border-color:#e040fb!important}.purple--text.text--accent-2{color:#e040fb!important;caret-color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important;border-color:#d500f9!important}.purple--text.text--accent-3{color:#d500f9!important;caret-color:#d500f9!important}.purple.accent-4{background-color:#a0f!important;border-color:#a0f!important}.purple--text.text--accent-4{color:#a0f!important;caret-color:#a0f!important}.deep-purple{background-color:#673ab7!important;border-color:#673ab7!important}.deep-purple--text{color:#673ab7!important;caret-color:#673ab7!important}.deep-purple.lighten-5{background-color:#ede7f6!important;border-color:#ede7f6!important}.deep-purple--text.text--lighten-5{color:#ede7f6!important;caret-color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important;border-color:#d1c4e9!important}.deep-purple--text.text--lighten-4{color:#d1c4e9!important;caret-color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important;border-color:#b39ddb!important}.deep-purple--text.text--lighten-3{color:#b39ddb!important;caret-color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important;border-color:#9575cd!important}.deep-purple--text.text--lighten-2{color:#9575cd!important;caret-color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important;border-color:#7e57c2!important}.deep-purple--text.text--lighten-1{color:#7e57c2!important;caret-color:#7e57c2!important}.deep-purple.darken-1{background-color:#5e35b1!important;border-color:#5e35b1!important}.deep-purple--text.text--darken-1{color:#5e35b1!important;caret-color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important;border-color:#512da8!important}.deep-purple--text.text--darken-2{color:#512da8!important;caret-color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important;border-color:#4527a0!important}.deep-purple--text.text--darken-3{color:#4527a0!important;caret-color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important;border-color:#311b92!important}.deep-purple--text.text--darken-4{color:#311b92!important;caret-color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important;border-color:#b388ff!important}.deep-purple--text.text--accent-1{color:#b388ff!important;caret-color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important;border-color:#7c4dff!important}.deep-purple--text.text--accent-2{color:#7c4dff!important;caret-color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important;border-color:#651fff!important}.deep-purple--text.text--accent-3{color:#651fff!important;caret-color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important;border-color:#6200ea!important}.deep-purple--text.text--accent-4{color:#6200ea!important;caret-color:#6200ea!important}.indigo{background-color:#3f51b5!important;border-color:#3f51b5!important}.indigo--text{color:#3f51b5!important;caret-color:#3f51b5!important}.indigo.lighten-5{background-color:#e8eaf6!important;border-color:#e8eaf6!important}.indigo--text.text--lighten-5{color:#e8eaf6!important;caret-color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important;border-color:#c5cae9!important}.indigo--text.text--lighten-4{color:#c5cae9!important;caret-color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important;border-color:#9fa8da!important}.indigo--text.text--lighten-3{color:#9fa8da!important;caret-color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important;border-color:#7986cb!important}.indigo--text.text--lighten-2{color:#7986cb!important;caret-color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important;border-color:#5c6bc0!important}.indigo--text.text--lighten-1{color:#5c6bc0!important;caret-color:#5c6bc0!important}.indigo.darken-1{background-color:#3949ab!important;border-color:#3949ab!important}.indigo--text.text--darken-1{color:#3949ab!important;caret-color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important;border-color:#303f9f!important}.indigo--text.text--darken-2{color:#303f9f!important;caret-color:#303f9f!important}.indigo.darken-3{background-color:#283593!important;border-color:#283593!important}.indigo--text.text--darken-3{color:#283593!important;caret-color:#283593!important}.indigo.darken-4{background-color:#1a237e!important;border-color:#1a237e!important}.indigo--text.text--darken-4{color:#1a237e!important;caret-color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important;border-color:#8c9eff!important}.indigo--text.text--accent-1{color:#8c9eff!important;caret-color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important;border-color:#536dfe!important}.indigo--text.text--accent-2{color:#536dfe!important;caret-color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important;border-color:#3d5afe!important}.indigo--text.text--accent-3{color:#3d5afe!important;caret-color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important;border-color:#304ffe!important}.indigo--text.text--accent-4{color:#304ffe!important;caret-color:#304ffe!important}.blue{background-color:#2196f3!important;border-color:#2196f3!important}.blue--text{color:#2196f3!important;caret-color:#2196f3!important}.blue.lighten-5{background-color:#e3f2fd!important;border-color:#e3f2fd!important}.blue--text.text--lighten-5{color:#e3f2fd!important;caret-color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important;border-color:#bbdefb!important}.blue--text.text--lighten-4{color:#bbdefb!important;caret-color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important;border-color:#90caf9!important}.blue--text.text--lighten-3{color:#90caf9!important;caret-color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important;border-color:#64b5f6!important}.blue--text.text--lighten-2{color:#64b5f6!important;caret-color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important;border-color:#42a5f5!important}.blue--text.text--lighten-1{color:#42a5f5!important;caret-color:#42a5f5!important}.blue.darken-1{background-color:#1e88e5!important;border-color:#1e88e5!important}.blue--text.text--darken-1{color:#1e88e5!important;caret-color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important;border-color:#1976d2!important}.blue--text.text--darken-2{color:#1976d2!important;caret-color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important;border-color:#1565c0!important}.blue--text.text--darken-3{color:#1565c0!important;caret-color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important;border-color:#0d47a1!important}.blue--text.text--darken-4{color:#0d47a1!important;caret-color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important;border-color:#82b1ff!important}.blue--text.text--accent-1{color:#82b1ff!important;caret-color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important;border-color:#448aff!important}.blue--text.text--accent-2{color:#448aff!important;caret-color:#448aff!important}.blue.accent-3{background-color:#2979ff!important;border-color:#2979ff!important}.blue--text.text--accent-3{color:#2979ff!important;caret-color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important;border-color:#2962ff!important}.blue--text.text--accent-4{color:#2962ff!important;caret-color:#2962ff!important}.light-blue{background-color:#03a9f4!important;border-color:#03a9f4!important}.light-blue--text{color:#03a9f4!important;caret-color:#03a9f4!important}.light-blue.lighten-5{background-color:#e1f5fe!important;border-color:#e1f5fe!important}.light-blue--text.text--lighten-5{color:#e1f5fe!important;caret-color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important;border-color:#b3e5fc!important}.light-blue--text.text--lighten-4{color:#b3e5fc!important;caret-color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important;border-color:#81d4fa!important}.light-blue--text.text--lighten-3{color:#81d4fa!important;caret-color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important;border-color:#4fc3f7!important}.light-blue--text.text--lighten-2{color:#4fc3f7!important;caret-color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important;border-color:#29b6f6!important}.light-blue--text.text--lighten-1{color:#29b6f6!important;caret-color:#29b6f6!important}.light-blue.darken-1{background-color:#039be5!important;border-color:#039be5!important}.light-blue--text.text--darken-1{color:#039be5!important;caret-color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important;border-color:#0288d1!important}.light-blue--text.text--darken-2{color:#0288d1!important;caret-color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important;border-color:#0277bd!important}.light-blue--text.text--darken-3{color:#0277bd!important;caret-color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important;border-color:#01579b!important}.light-blue--text.text--darken-4{color:#01579b!important;caret-color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important;border-color:#80d8ff!important}.light-blue--text.text--accent-1{color:#80d8ff!important;caret-color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important;border-color:#40c4ff!important}.light-blue--text.text--accent-2{color:#40c4ff!important;caret-color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important;border-color:#00b0ff!important}.light-blue--text.text--accent-3{color:#00b0ff!important;caret-color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important;border-color:#0091ea!important}.light-blue--text.text--accent-4{color:#0091ea!important;caret-color:#0091ea!important}.cyan{background-color:#00bcd4!important;border-color:#00bcd4!important}.cyan--text{color:#00bcd4!important;caret-color:#00bcd4!important}.cyan.lighten-5{background-color:#e0f7fa!important;border-color:#e0f7fa!important}.cyan--text.text--lighten-5{color:#e0f7fa!important;caret-color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important;border-color:#b2ebf2!important}.cyan--text.text--lighten-4{color:#b2ebf2!important;caret-color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important;border-color:#80deea!important}.cyan--text.text--lighten-3{color:#80deea!important;caret-color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important;border-color:#4dd0e1!important}.cyan--text.text--lighten-2{color:#4dd0e1!important;caret-color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important;border-color:#26c6da!important}.cyan--text.text--lighten-1{color:#26c6da!important;caret-color:#26c6da!important}.cyan.darken-1{background-color:#00acc1!important;border-color:#00acc1!important}.cyan--text.text--darken-1{color:#00acc1!important;caret-color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important;border-color:#0097a7!important}.cyan--text.text--darken-2{color:#0097a7!important;caret-color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important;border-color:#00838f!important}.cyan--text.text--darken-3{color:#00838f!important;caret-color:#00838f!important}.cyan.darken-4{background-color:#006064!important;border-color:#006064!important}.cyan--text.text--darken-4{color:#006064!important;caret-color:#006064!important}.cyan.accent-1{background-color:#84ffff!important;border-color:#84ffff!important}.cyan--text.text--accent-1{color:#84ffff!important;caret-color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important;border-color:#18ffff!important}.cyan--text.text--accent-2{color:#18ffff!important;caret-color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important;border-color:#00e5ff!important}.cyan--text.text--accent-3{color:#00e5ff!important;caret-color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important;border-color:#00b8d4!important}.cyan--text.text--accent-4{color:#00b8d4!important;caret-color:#00b8d4!important}.teal{background-color:#009688!important;border-color:#009688!important}.teal--text{color:#009688!important;caret-color:#009688!important}.teal.lighten-5{background-color:#e0f2f1!important;border-color:#e0f2f1!important}.teal--text.text--lighten-5{color:#e0f2f1!important;caret-color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important;border-color:#b2dfdb!important}.teal--text.text--lighten-4{color:#b2dfdb!important;caret-color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important;border-color:#80cbc4!important}.teal--text.text--lighten-3{color:#80cbc4!important;caret-color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important;border-color:#4db6ac!important}.teal--text.text--lighten-2{color:#4db6ac!important;caret-color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important;border-color:#26a69a!important}.teal--text.text--lighten-1{color:#26a69a!important;caret-color:#26a69a!important}.teal.darken-1{background-color:#00897b!important;border-color:#00897b!important}.teal--text.text--darken-1{color:#00897b!important;caret-color:#00897b!important}.teal.darken-2{background-color:#00796b!important;border-color:#00796b!important}.teal--text.text--darken-2{color:#00796b!important;caret-color:#00796b!important}.teal.darken-3{background-color:#00695c!important;border-color:#00695c!important}.teal--text.text--darken-3{color:#00695c!important;caret-color:#00695c!important}.teal.darken-4{background-color:#004d40!important;border-color:#004d40!important}.teal--text.text--darken-4{color:#004d40!important;caret-color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important;border-color:#a7ffeb!important}.teal--text.text--accent-1{color:#a7ffeb!important;caret-color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important;border-color:#64ffda!important}.teal--text.text--accent-2{color:#64ffda!important;caret-color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important;border-color:#1de9b6!important}.teal--text.text--accent-3{color:#1de9b6!important;caret-color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important;border-color:#00bfa5!important}.teal--text.text--accent-4{color:#00bfa5!important;caret-color:#00bfa5!important}.green{background-color:#4caf50!important;border-color:#4caf50!important}.green--text{color:#4caf50!important;caret-color:#4caf50!important}.green.lighten-5{background-color:#e8f5e9!important;border-color:#e8f5e9!important}.green--text.text--lighten-5{color:#e8f5e9!important;caret-color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important;border-color:#c8e6c9!important}.green--text.text--lighten-4{color:#c8e6c9!important;caret-color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important;border-color:#a5d6a7!important}.green--text.text--lighten-3{color:#a5d6a7!important;caret-color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important;border-color:#81c784!important}.green--text.text--lighten-2{color:#81c784!important;caret-color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important;border-color:#66bb6a!important}.green--text.text--lighten-1{color:#66bb6a!important;caret-color:#66bb6a!important}.green.darken-1{background-color:#43a047!important;border-color:#43a047!important}.green--text.text--darken-1{color:#43a047!important;caret-color:#43a047!important}.green.darken-2{background-color:#388e3c!important;border-color:#388e3c!important}.green--text.text--darken-2{color:#388e3c!important;caret-color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important;border-color:#2e7d32!important}.green--text.text--darken-3{color:#2e7d32!important;caret-color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important;border-color:#1b5e20!important}.green--text.text--darken-4{color:#1b5e20!important;caret-color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important;border-color:#b9f6ca!important}.green--text.text--accent-1{color:#b9f6ca!important;caret-color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important;border-color:#69f0ae!important}.green--text.text--accent-2{color:#69f0ae!important;caret-color:#69f0ae!important}.green.accent-3{background-color:#00e676!important;border-color:#00e676!important}.green--text.text--accent-3{color:#00e676!important;caret-color:#00e676!important}.green.accent-4{background-color:#00c853!important;border-color:#00c853!important}.green--text.text--accent-4{color:#00c853!important;caret-color:#00c853!important}.light-green{background-color:#8bc34a!important;border-color:#8bc34a!important}.light-green--text{color:#8bc34a!important;caret-color:#8bc34a!important}.light-green.lighten-5{background-color:#f1f8e9!important;border-color:#f1f8e9!important}.light-green--text.text--lighten-5{color:#f1f8e9!important;caret-color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important;border-color:#dcedc8!important}.light-green--text.text--lighten-4{color:#dcedc8!important;caret-color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important;border-color:#c5e1a5!important}.light-green--text.text--lighten-3{color:#c5e1a5!important;caret-color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important;border-color:#aed581!important}.light-green--text.text--lighten-2{color:#aed581!important;caret-color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important;border-color:#9ccc65!important}.light-green--text.text--lighten-1{color:#9ccc65!important;caret-color:#9ccc65!important}.light-green.darken-1{background-color:#7cb342!important;border-color:#7cb342!important}.light-green--text.text--darken-1{color:#7cb342!important;caret-color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important;border-color:#689f38!important}.light-green--text.text--darken-2{color:#689f38!important;caret-color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important;border-color:#558b2f!important}.light-green--text.text--darken-3{color:#558b2f!important;caret-color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important;border-color:#33691e!important}.light-green--text.text--darken-4{color:#33691e!important;caret-color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important;border-color:#ccff90!important}.light-green--text.text--accent-1{color:#ccff90!important;caret-color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important;border-color:#b2ff59!important}.light-green--text.text--accent-2{color:#b2ff59!important;caret-color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important;border-color:#76ff03!important}.light-green--text.text--accent-3{color:#76ff03!important;caret-color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important;border-color:#64dd17!important}.light-green--text.text--accent-4{color:#64dd17!important;caret-color:#64dd17!important}.lime{background-color:#cddc39!important;border-color:#cddc39!important}.lime--text{color:#cddc39!important;caret-color:#cddc39!important}.lime.lighten-5{background-color:#f9fbe7!important;border-color:#f9fbe7!important}.lime--text.text--lighten-5{color:#f9fbe7!important;caret-color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important;border-color:#f0f4c3!important}.lime--text.text--lighten-4{color:#f0f4c3!important;caret-color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important;border-color:#e6ee9c!important}.lime--text.text--lighten-3{color:#e6ee9c!important;caret-color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important;border-color:#dce775!important}.lime--text.text--lighten-2{color:#dce775!important;caret-color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important;border-color:#d4e157!important}.lime--text.text--lighten-1{color:#d4e157!important;caret-color:#d4e157!important}.lime.darken-1{background-color:#c0ca33!important;border-color:#c0ca33!important}.lime--text.text--darken-1{color:#c0ca33!important;caret-color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important;border-color:#afb42b!important}.lime--text.text--darken-2{color:#afb42b!important;caret-color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important;border-color:#9e9d24!important}.lime--text.text--darken-3{color:#9e9d24!important;caret-color:#9e9d24!important}.lime.darken-4{background-color:#827717!important;border-color:#827717!important}.lime--text.text--darken-4{color:#827717!important;caret-color:#827717!important}.lime.accent-1{background-color:#f4ff81!important;border-color:#f4ff81!important}.lime--text.text--accent-1{color:#f4ff81!important;caret-color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important;border-color:#eeff41!important}.lime--text.text--accent-2{color:#eeff41!important;caret-color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important;border-color:#c6ff00!important}.lime--text.text--accent-3{color:#c6ff00!important;caret-color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important;border-color:#aeea00!important}.lime--text.text--accent-4{color:#aeea00!important;caret-color:#aeea00!important}.yellow{background-color:#ffeb3b!important;border-color:#ffeb3b!important}.yellow--text{color:#ffeb3b!important;caret-color:#ffeb3b!important}.yellow.lighten-5{background-color:#fffde7!important;border-color:#fffde7!important}.yellow--text.text--lighten-5{color:#fffde7!important;caret-color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important;border-color:#fff9c4!important}.yellow--text.text--lighten-4{color:#fff9c4!important;caret-color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important;border-color:#fff59d!important}.yellow--text.text--lighten-3{color:#fff59d!important;caret-color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important;border-color:#fff176!important}.yellow--text.text--lighten-2{color:#fff176!important;caret-color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important;border-color:#ffee58!important}.yellow--text.text--lighten-1{color:#ffee58!important;caret-color:#ffee58!important}.yellow.darken-1{background-color:#fdd835!important;border-color:#fdd835!important}.yellow--text.text--darken-1{color:#fdd835!important;caret-color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important;border-color:#fbc02d!important}.yellow--text.text--darken-2{color:#fbc02d!important;caret-color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important;border-color:#f9a825!important}.yellow--text.text--darken-3{color:#f9a825!important;caret-color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important;border-color:#f57f17!important}.yellow--text.text--darken-4{color:#f57f17!important;caret-color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important;border-color:#ffff8d!important}.yellow--text.text--accent-1{color:#ffff8d!important;caret-color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important;border-color:#ff0!important}.yellow--text.text--accent-2{color:#ff0!important;caret-color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important;border-color:#ffea00!important}.yellow--text.text--accent-3{color:#ffea00!important;caret-color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important;border-color:#ffd600!important}.yellow--text.text--accent-4{color:#ffd600!important;caret-color:#ffd600!important}.amber{background-color:#ffc107!important;border-color:#ffc107!important}.amber--text{color:#ffc107!important;caret-color:#ffc107!important}.amber.lighten-5{background-color:#fff8e1!important;border-color:#fff8e1!important}.amber--text.text--lighten-5{color:#fff8e1!important;caret-color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important;border-color:#ffecb3!important}.amber--text.text--lighten-4{color:#ffecb3!important;caret-color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important;border-color:#ffe082!important}.amber--text.text--lighten-3{color:#ffe082!important;caret-color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important;border-color:#ffd54f!important}.amber--text.text--lighten-2{color:#ffd54f!important;caret-color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important;border-color:#ffca28!important}.amber--text.text--lighten-1{color:#ffca28!important;caret-color:#ffca28!important}.amber.darken-1{background-color:#ffb300!important;border-color:#ffb300!important}.amber--text.text--darken-1{color:#ffb300!important;caret-color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important;border-color:#ffa000!important}.amber--text.text--darken-2{color:#ffa000!important;caret-color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important;border-color:#ff8f00!important}.amber--text.text--darken-3{color:#ff8f00!important;caret-color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important;border-color:#ff6f00!important}.amber--text.text--darken-4{color:#ff6f00!important;caret-color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important;border-color:#ffe57f!important}.amber--text.text--accent-1{color:#ffe57f!important;caret-color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important;border-color:#ffd740!important}.amber--text.text--accent-2{color:#ffd740!important;caret-color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important;border-color:#ffc400!important}.amber--text.text--accent-3{color:#ffc400!important;caret-color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important;border-color:#ffab00!important}.amber--text.text--accent-4{color:#ffab00!important;caret-color:#ffab00!important}.orange{background-color:#ff9800!important;border-color:#ff9800!important}.orange--text{color:#ff9800!important;caret-color:#ff9800!important}.orange.lighten-5{background-color:#fff3e0!important;border-color:#fff3e0!important}.orange--text.text--lighten-5{color:#fff3e0!important;caret-color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important;border-color:#ffe0b2!important}.orange--text.text--lighten-4{color:#ffe0b2!important;caret-color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important;border-color:#ffcc80!important}.orange--text.text--lighten-3{color:#ffcc80!important;caret-color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important;border-color:#ffb74d!important}.orange--text.text--lighten-2{color:#ffb74d!important;caret-color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important;border-color:#ffa726!important}.orange--text.text--lighten-1{color:#ffa726!important;caret-color:#ffa726!important}.orange.darken-1{background-color:#fb8c00!important;border-color:#fb8c00!important}.orange--text.text--darken-1{color:#fb8c00!important;caret-color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important;border-color:#f57c00!important}.orange--text.text--darken-2{color:#f57c00!important;caret-color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important;border-color:#ef6c00!important}.orange--text.text--darken-3{color:#ef6c00!important;caret-color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important;border-color:#e65100!important}.orange--text.text--darken-4{color:#e65100!important;caret-color:#e65100!important}.orange.accent-1{background-color:#ffd180!important;border-color:#ffd180!important}.orange--text.text--accent-1{color:#ffd180!important;caret-color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important;border-color:#ffab40!important}.orange--text.text--accent-2{color:#ffab40!important;caret-color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important;border-color:#ff9100!important}.orange--text.text--accent-3{color:#ff9100!important;caret-color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important;border-color:#ff6d00!important}.orange--text.text--accent-4{color:#ff6d00!important;caret-color:#ff6d00!important}.deep-orange{background-color:#ff5722!important;border-color:#ff5722!important}.deep-orange--text{color:#ff5722!important;caret-color:#ff5722!important}.deep-orange.lighten-5{background-color:#fbe9e7!important;border-color:#fbe9e7!important}.deep-orange--text.text--lighten-5{color:#fbe9e7!important;caret-color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important;border-color:#ffccbc!important}.deep-orange--text.text--lighten-4{color:#ffccbc!important;caret-color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important;border-color:#ffab91!important}.deep-orange--text.text--lighten-3{color:#ffab91!important;caret-color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important;border-color:#ff8a65!important}.deep-orange--text.text--lighten-2{color:#ff8a65!important;caret-color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important;border-color:#ff7043!important}.deep-orange--text.text--lighten-1{color:#ff7043!important;caret-color:#ff7043!important}.deep-orange.darken-1{background-color:#f4511e!important;border-color:#f4511e!important}.deep-orange--text.text--darken-1{color:#f4511e!important;caret-color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important;border-color:#e64a19!important}.deep-orange--text.text--darken-2{color:#e64a19!important;caret-color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important;border-color:#d84315!important}.deep-orange--text.text--darken-3{color:#d84315!important;caret-color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important;border-color:#bf360c!important}.deep-orange--text.text--darken-4{color:#bf360c!important;caret-color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important;border-color:#ff9e80!important}.deep-orange--text.text--accent-1{color:#ff9e80!important;caret-color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important;border-color:#ff6e40!important}.deep-orange--text.text--accent-2{color:#ff6e40!important;caret-color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important;border-color:#ff3d00!important}.deep-orange--text.text--accent-3{color:#ff3d00!important;caret-color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important;border-color:#dd2c00!important}.deep-orange--text.text--accent-4{color:#dd2c00!important;caret-color:#dd2c00!important}.brown{background-color:#795548!important;border-color:#795548!important}.brown--text{color:#795548!important;caret-color:#795548!important}.brown.lighten-5{background-color:#efebe9!important;border-color:#efebe9!important}.brown--text.text--lighten-5{color:#efebe9!important;caret-color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important;border-color:#d7ccc8!important}.brown--text.text--lighten-4{color:#d7ccc8!important;caret-color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important;border-color:#bcaaa4!important}.brown--text.text--lighten-3{color:#bcaaa4!important;caret-color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important;border-color:#a1887f!important}.brown--text.text--lighten-2{color:#a1887f!important;caret-color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important;border-color:#8d6e63!important}.brown--text.text--lighten-1{color:#8d6e63!important;caret-color:#8d6e63!important}.brown.darken-1{background-color:#6d4c41!important;border-color:#6d4c41!important}.brown--text.text--darken-1{color:#6d4c41!important;caret-color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important;border-color:#5d4037!important}.brown--text.text--darken-2{color:#5d4037!important;caret-color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important;border-color:#4e342e!important}.brown--text.text--darken-3{color:#4e342e!important;caret-color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important;border-color:#3e2723!important}.brown--text.text--darken-4{color:#3e2723!important;caret-color:#3e2723!important}.blue-grey{background-color:#607d8b!important;border-color:#607d8b!important}.blue-grey--text{color:#607d8b!important;caret-color:#607d8b!important}.blue-grey.lighten-5{background-color:#eceff1!important;border-color:#eceff1!important}.blue-grey--text.text--lighten-5{color:#eceff1!important;caret-color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important;border-color:#cfd8dc!important}.blue-grey--text.text--lighten-4{color:#cfd8dc!important;caret-color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important;border-color:#b0bec5!important}.blue-grey--text.text--lighten-3{color:#b0bec5!important;caret-color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important;border-color:#90a4ae!important}.blue-grey--text.text--lighten-2{color:#90a4ae!important;caret-color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important;border-color:#78909c!important}.blue-grey--text.text--lighten-1{color:#78909c!important;caret-color:#78909c!important}.blue-grey.darken-1{background-color:#546e7a!important;border-color:#546e7a!important}.blue-grey--text.text--darken-1{color:#546e7a!important;caret-color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important;border-color:#455a64!important}.blue-grey--text.text--darken-2{color:#455a64!important;caret-color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important;border-color:#37474f!important}.blue-grey--text.text--darken-3{color:#37474f!important;caret-color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important;border-color:#263238!important}.blue-grey--text.text--darken-4{color:#263238!important;caret-color:#263238!important}.grey{background-color:#9e9e9e!important;border-color:#9e9e9e!important}.grey--text{color:#9e9e9e!important;caret-color:#9e9e9e!important}.grey.lighten-5{background-color:#fafafa!important;border-color:#fafafa!important}.grey--text.text--lighten-5{color:#fafafa!important;caret-color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.grey--text.text--lighten-4{color:#f5f5f5!important;caret-color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important;border-color:#eee!important}.grey--text.text--lighten-3{color:#eee!important;caret-color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important;border-color:#e0e0e0!important}.grey--text.text--lighten-2{color:#e0e0e0!important;caret-color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important;border-color:#bdbdbd!important}.grey--text.text--lighten-1{color:#bdbdbd!important;caret-color:#bdbdbd!important}.grey.darken-1{background-color:#757575!important;border-color:#757575!important}.grey--text.text--darken-1{color:#757575!important;caret-color:#757575!important}.grey.darken-2{background-color:#616161!important;border-color:#616161!important}.grey--text.text--darken-2{color:#616161!important;caret-color:#616161!important}.grey.darken-3{background-color:#424242!important;border-color:#424242!important}.grey--text.text--darken-3{color:#424242!important;caret-color:#424242!important}.grey.darken-4{background-color:#212121!important;border-color:#212121!important}.grey--text.text--darken-4{color:#212121!important;caret-color:#212121!important}.shades.black{background-color:#000!important;border-color:#000!important}.shades--text.text--black{color:#000!important;caret-color:#000!important}.shades.white{background-color:#fff!important;border-color:#fff!important}.shades--text.text--white{color:#fff!important;caret-color:#fff!important}.shades.transparent{background-color:transparent!important;border-color:transparent!important}.shades--text.text--transparent{color:transparent!important;caret-color:transparent!important}.elevation-0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.elevation-1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.elevation-2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.elevation-3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.elevation-4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.elevation-5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.elevation-6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.elevation-7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.elevation-8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.elevation-9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.elevation-10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.elevation-11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.elevation-12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.elevation-13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.elevation-14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.elevation-15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.elevation-16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.elevation-17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.elevation-18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.elevation-19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.elevation-20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.elevation-21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.elevation-22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.elevation-23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.elevation-24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{background-repeat:no-repeat;padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:0;border:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.bottom-sheet-transition-enter,.bottom-sheet-transition-leave-to{transform:translateY(100%)}.carousel-transition-enter{transform:translate(100%)}.carousel-transition-leave,.carousel-transition-leave-to{position:absolute;top:0;transform:translate(-100%)}.carousel-reverse-transition-enter{transform:translate(-100%)}.carousel-reverse-transition-leave,.carousel-reverse-transition-leave-to{position:absolute;top:0;transform:translate(100%)}.dialog-transition-enter,.dialog-transition-leave-to{transform:scale(.5);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave{opacity:1}.dialog-bottom-transition-enter,.dialog-bottom-transition-leave-to{transform:translateY(100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active,.picker-transition-enter-active,.picker-transition-leave-active{transition:.3s cubic-bezier(0,0,.2,1)}.picker-reverse-transition-enter,.picker-reverse-transition-leave-to,.picker-transition-enter,.picker-transition-leave-to{opacity:0}.picker-reverse-transition-leave,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to,.picker-transition-leave,.picker-transition-leave-active,.picker-transition-leave-to{position:absolute!important}.picker-transition-enter{transform:translateY(100%)}.picker-reverse-transition-enter,.picker-transition-leave-to{transform:translateY(-100%)}.picker-reverse-transition-leave-to{transform:translateY(100%)}.picker-title-transition-enter-to,.picker-title-transition-leave{transform:translate(0)}.picker-title-transition-enter{transform:translate(-100%)}.picker-title-transition-leave-to{opacity:0;transform:translate(100%)}.picker-title-transition-leave,.picker-title-transition-leave-active,.picker-title-transition-leave-to{position:absolute!important}.tab-transition-enter{transform:translate(100%)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute}.tab-reverse-transition-enter,.tab-transition-leave-to{transform:translate(-100%)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-transition-move{transition:transform .6s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-x-transition-move{transition:transform .6s}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scale-transition-move{transition:transform .6s}.scale-transition-enter,.scale-transition-leave,.scale-transition-leave-to{opacity:0;transform:scale(0)}.message-transition-enter-active,.message-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.message-transition-move{transition:transform .6s}.message-transition-enter,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave,.message-transition-leave-active{position:absolute}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-transition-move{transition:transform .6s}.slide-y-transition-enter,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-reverse-transition-move{transition:transform .6s}.slide-y-reverse-transition-enter,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-transition-move{transition:transform .6s}.scroll-y-transition-enter,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-reverse-transition-move{transition:transform .6s}.scroll-y-reverse-transition-enter,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-transition-move{transition:transform .6s}.scroll-x-transition-enter,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter{transform:translateX(-15px)}.scroll-x-transition-leave-to{transform:translateX(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-reverse-transition-move{transition:transform .6s}.scroll-x-reverse-transition-enter,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter{transform:translateX(15px)}.scroll-x-reverse-transition-leave-to{transform:translateX(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-transition-move{transition:transform .6s}.slide-x-transition-enter,.slide-x-transition-leave-to{opacity:0;transform:translateX(-15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-reverse-transition-move{transition:transform .6s}.slide-x-reverse-transition-enter,.slide-x-reverse-transition-leave-to{opacity:0;transform:translateX(15px)}.fade-transition-enter-active,.fade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fade-transition-move{transition:transform .6s}.fade-transition-enter,.fade-transition-leave-to{opacity:0}.fab-transition-enter-active,.fab-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fab-transition-move{transition:transform .6s}.fab-transition-enter,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}code,kbd{display:inline-block;border-radius:3px;white-space:pre-wrap;font-size:85%;font-weight:900}code:after,code:before,kbd:after,kbd:before{content:"\00a0";letter-spacing:-1px}code{background-color:#f5f5f5;color:#bd4147;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}kbd{background:#616161;color:#fff}html{font-size:14px;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}.application{font-family:Roboto,sans-serif;line-height:1.5}::-ms-clear,::-ms-reveal{display:none}ol,ul{padding-left:24px}.display-4{font-size:112px!important;font-weight:300;line-height:1!important;letter-spacing:-.04em!important;font-family:Roboto,sans-serif!important}.display-3{font-size:56px!important;line-height:1.35!important;letter-spacing:-.02em!important}.display-2,.display-3{font-weight:400;font-family:Roboto,sans-serif!important}.display-2{font-size:45px!important;line-height:48px!important;letter-spacing:normal!important}.display-1{font-size:34px!important;line-height:40px!important}.display-1,.headline{font-weight:400;letter-spacing:normal!important;font-family:Roboto,sans-serif!important}.headline{font-size:24px!important;line-height:32px!important}.title{font-size:20px!important;font-weight:500;line-height:1!important;letter-spacing:.02em!important;font-family:Roboto,sans-serif!important}.subheading{font-size:16px!important;font-weight:400}.body-2{font-weight:500}.body-1,.body-2{font-size:14px!important}.body-1,.caption{font-weight:400}.caption{font-size:12px!important}p{margin-bottom:16px}@media only print{.hidden-print-only{display:none!important}}@media only screen{.hidden-screen-only{display:none!important}}@media only screen and (max-width:599px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:600px) and (max-width:959px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:959px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:600px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:960px) and (max-width:1263px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1263px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:960px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:1264px) and (max-width:1903px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1903px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1264px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1904px){.hidden-xl-only{display:none!important}}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.right{float:right!important}.left{float:left!important}.ma-auto{margin-right:auto!important;margin-left:auto!important}.ma-auto,.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.ma-0{margin:0 0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.pa-0{padding:0 0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.px-0{padding-left:0!important;padding-right:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.ma-1{margin:4px 4px!important}.my-1{margin-top:4px!important;margin-bottom:4px!important}.mx-1{margin-left:4px!important;margin-right:4px!important}.mt-1{margin-top:4px!important}.mr-1{margin-right:4px!important}.mb-1{margin-bottom:4px!important}.ml-1{margin-left:4px!important}.pa-1{padding:4px 4px!important}.py-1{padding-top:4px!important;padding-bottom:4px!important}.px-1{padding-left:4px!important;padding-right:4px!important}.pt-1{padding-top:4px!important}.pr-1{padding-right:4px!important}.pb-1{padding-bottom:4px!important}.pl-1{padding-left:4px!important}.ma-2{margin:8px 8px!important}.my-2{margin-top:8px!important;margin-bottom:8px!important}.mx-2{margin-left:8px!important;margin-right:8px!important}.mt-2{margin-top:8px!important}.mr-2{margin-right:8px!important}.mb-2{margin-bottom:8px!important}.ml-2{margin-left:8px!important}.pa-2{padding:8px 8px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.px-2{padding-left:8px!important;padding-right:8px!important}.pt-2{padding-top:8px!important}.pr-2{padding-right:8px!important}.pb-2{padding-bottom:8px!important}.pl-2{padding-left:8px!important}.ma-3{margin:16px 16px!important}.my-3{margin-top:16px!important;margin-bottom:16px!important}.mx-3{margin-left:16px!important;margin-right:16px!important}.mt-3{margin-top:16px!important}.mr-3{margin-right:16px!important}.mb-3{margin-bottom:16px!important}.ml-3{margin-left:16px!important}.pa-3{padding:16px 16px!important}.py-3{padding-top:16px!important;padding-bottom:16px!important}.px-3{padding-left:16px!important;padding-right:16px!important}.pt-3{padding-top:16px!important}.pr-3{padding-right:16px!important}.pb-3{padding-bottom:16px!important}.pl-3{padding-left:16px!important}.ma-4{margin:24px 24px!important}.my-4{margin-top:24px!important;margin-bottom:24px!important}.mx-4{margin-left:24px!important;margin-right:24px!important}.mt-4{margin-top:24px!important}.mr-4{margin-right:24px!important}.mb-4{margin-bottom:24px!important}.ml-4{margin-left:24px!important}.pa-4{padding:24px 24px!important}.py-4{padding-top:24px!important;padding-bottom:24px!important}.px-4{padding-left:24px!important;padding-right:24px!important}.pt-4{padding-top:24px!important}.pr-4{padding-right:24px!important}.pb-4{padding-bottom:24px!important}.pl-4{padding-left:24px!important}.ma-5{margin:48px 48px!important}.my-5{margin-top:48px!important;margin-bottom:48px!important}.mx-5{margin-left:48px!important;margin-right:48px!important}.mt-5{margin-top:48px!important}.mr-5{margin-right:48px!important}.mb-5{margin-bottom:48px!important}.ml-5{margin-left:48px!important}.pa-5{padding:48px 48px!important}.py-5{padding-top:48px!important;padding-bottom:48px!important}.px-5{padding-left:48px!important;padding-right:48px!important}.pt-5{padding-top:48px!important}.pr-5{padding-right:48px!important}.pb-5{padding-bottom:48px!important}.pl-5{padding-left:48px!important}@media (min-width:0){.text-xs-left{text-align:left!important}.text-xs-center{text-align:center!important}.text-xs-right{text-align:right!important}.text-xs-justify{text-align:justify!important}}@media (min-width:600px){.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}.text-sm-justify{text-align:justify!important}}@media (min-width:960px){.text-md-left{text-align:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}.text-md-justify{text-align:justify!important}}@media (min-width:1264px){.text-lg-left{text-align:left!important}.text-lg-center{text-align:center!important}.text-lg-right{text-align:right!important}.text-lg-justify{text-align:justify!important}}@media (min-width:1904px){.text-xl-left{text-align:left!important}.text-xl-center{text-align:center!important}.text-xl-right{text-align:right!important}.text-xl-justify{text-align:justify!important}}.font-weight-thin{font-weight:100!important}.font-weight-light{font-weight:300!important}.font-weight-regular{font-weight:400!important}.font-weight-medium{font-weight:500!important}.font-weight-bold{font-weight:700!important}.font-weight-black{font-weight:900!important}.font-italic{font-style:italic!important}.text-capitalize{text-transform:capitalize!important}.text-lowercase{text-transform:lowercase!important}.text-none{text-transform:none!important}.text-uppercase{text-transform:uppercase!important}.text-no-wrap,.text-truncate{white-space:nowrap!important}.text-truncate{overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.1!important}.transition-fast-out-slow-in{transition:.3s cubic-bezier(.4,0,.2,1)!important}.transition-linear-out-slow-in{transition:.3s cubic-bezier(0,0,.2,1)!important}.transition-fast-out-linear-in{transition:.3s cubic-bezier(.4,0,1,1)!important}.transition-ease-in-out{transition:.3s cubic-bezier(.4,0,.6,1)!important}.transition-fast-in-fast-out{transition:.3s cubic-bezier(.25,.8,.25,1)!important}.transition-swing{transition:.3s cubic-bezier(.25,.8,.5,1)!important}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(fonts/MaterialIcons-Regular.eot);src:local("☺"),url(fonts/MaterialIcons-Regular.woff2) format("woff2"),url(fonts/MaterialIcons-Regular.woff) format("woff"),url(fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons._10k:before{content:"\e951"}.material-icons._10mp:before{content:"\e952"}.material-icons._11mp:before{content:"\e953"}.material-icons._12mp:before{content:"\e954"}.material-icons._13mp:before{content:"\e955"}.material-icons._14mp:before{content:"\e956"}.material-icons._15mp:before{content:"\e957"}.material-icons._16mp:before{content:"\e958"}.material-icons._17mp:before{content:"\e959"}.material-icons._18mp:before{content:"\e95a"}.material-icons._19mp:before{content:"\e95b"}.material-icons._1k:before{content:"\e95c"}.material-icons._1k_plus:before{content:"\e95d"}.material-icons._20mp:before{content:"\e95e"}.material-icons._21mp:before{content:"\e95f"}.material-icons._22mp:before{content:"\e960"}.material-icons._23mp:before{content:"\e961"}.material-icons._24mp:before{content:"\e962"}.material-icons._2k:before{content:"\e963"}.material-icons._2k_plus:before{content:"\e964"}.material-icons._2mp:before{content:"\e965"}.material-icons._360:before{content:"\e577"}.material-icons._3d_rotation:before{content:"\e84d"}.material-icons._3k:before{content:"\e966"}.material-icons._3k_plus:before{content:"\e967"}.material-icons._3mp:before{content:"\e968"}.material-icons._4k:before{content:"\e072"}.material-icons._4k_plus:before{content:"\e969"}.material-icons._4mp:before{content:"\e96a"}.material-icons._5k:before{content:"\e96b"}.material-icons._5k_plus:before{content:"\e96c"}.material-icons._5mp:before{content:"\e96d"}.material-icons._6k:before{content:"\e96e"}.material-icons._6k_plus:before{content:"\e96f"}.material-icons._6mp:before{content:"\e970"}.material-icons._7k:before{content:"\e971"}.material-icons._7k_plus:before{content:"\e972"}.material-icons._7mp:before{content:"\e973"}.material-icons._8k:before{content:"\e974"}.material-icons._8k_plus:before{content:"\e975"}.material-icons._8mp:before{content:"\e976"}.material-icons._9k:before{content:"\e977"}.material-icons._9k_plus:before{content:"\e978"}.material-icons._9mp:before{content:"\e979"}.material-icons.ac_unit:before{content:"\eb3b"}.material-icons.access_alarm:before{content:"\e190"}.material-icons.access_alarms:before{content:"\e191"}.material-icons.access_time:before{content:"\e192"}.material-icons.accessibility:before{content:"\e84e"}.material-icons.accessibility_new:before{content:"\e92c"}.material-icons.accessible:before{content:"\e914"}.material-icons.accessible_forward:before{content:"\e934"}.material-icons.account_balance:before{content:"\e84f"}.material-icons.account_balance_wallet:before{content:"\e850"}.material-icons.account_box:before{content:"\e851"}.material-icons.account_circle:before{content:"\e853"}.material-icons.account_tree:before{content:"\e97a"}.material-icons.adb:before{content:"\e60e"}.material-icons.add:before{content:"\e145"}.material-icons.add_a_photo:before{content:"\e439"}.material-icons.add_alarm:before{content:"\e193"}.material-icons.add_alert:before{content:"\e003"}.material-icons.add_box:before{content:"\e146"}.material-icons.add_call:before{content:"\e0e8"}.material-icons.add_chart:before{content:"\e97b"}.material-icons.add_circle:before{content:"\e147"}.material-icons.add_circle_outline:before{content:"\e148"}.material-icons.add_comment:before{content:"\e266"}.material-icons.add_ic_call:before{content:"\e97c"}.material-icons.add_link:before{content:"\e178"}.material-icons.add_location:before{content:"\e567"}.material-icons.add_moderator:before{content:"\e97d"}.material-icons.add_photo_alternate:before{content:"\e43e"}.material-icons.add_shopping_cart:before{content:"\e854"}.material-icons.add_to_home_screen:before{content:"\e1fe"}.material-icons.add_to_photos:before{content:"\e39d"}.material-icons.add_to_queue:before{content:"\e05c"}.material-icons.adjust:before{content:"\e39e"}.material-icons.airline_seat_flat:before{content:"\e630"}.material-icons.airline_seat_flat_angled:before{content:"\e631"}.material-icons.airline_seat_individual_suite:before{content:"\e632"}.material-icons.airline_seat_legroom_extra:before{content:"\e633"}.material-icons.airline_seat_legroom_normal:before{content:"\e634"}.material-icons.airline_seat_legroom_reduced:before{content:"\e635"}.material-icons.airline_seat_recline_extra:before{content:"\e636"}.material-icons.airline_seat_recline_normal:before{content:"\e637"}.material-icons.airplanemode_active:before{content:"\e195"}.material-icons.airplanemode_inactive:before,.material-icons.airplanemode_off:before{content:"\e194"}.material-icons.airplanemode_on:before{content:"\e195"}.material-icons.airplay:before{content:"\e055"}.material-icons.airport_shuttle:before{content:"\eb3c"}.material-icons.alarm:before{content:"\e855"}.material-icons.alarm_add:before{content:"\e856"}.material-icons.alarm_off:before{content:"\e857"}.material-icons.alarm_on:before{content:"\e858"}.material-icons.album:before{content:"\e019"}.material-icons.all_inbox:before{content:"\e97f"}.material-icons.all_inclusive:before{content:"\eb3d"}.material-icons.all_out:before{content:"\e90b"}.material-icons.alternate_email:before{content:"\e0e6"}.material-icons.amp_stories:before{content:"\ea13"}.material-icons.android:before{content:"\e859"}.material-icons.announcement:before{content:"\e85a"}.material-icons.apartment:before{content:"\ea40"}.material-icons.approval:before{content:"\e982"}.material-icons.apps:before{content:"\e5c3"}.material-icons.archive:before{content:"\e149"}.material-icons.arrow_back:before{content:"\e5c4"}.material-icons.arrow_back_ios:before{content:"\e5e0"}.material-icons.arrow_downward:before{content:"\e5db"}.material-icons.arrow_drop_down:before{content:"\e5c5"}.material-icons.arrow_drop_down_circle:before{content:"\e5c6"}.material-icons.arrow_drop_up:before{content:"\e5c7"}.material-icons.arrow_forward:before{content:"\e5c8"}.material-icons.arrow_forward_ios:before{content:"\e5e1"}.material-icons.arrow_left:before{content:"\e5de"}.material-icons.arrow_right:before{content:"\e5df"}.material-icons.arrow_right_alt:before{content:"\e941"}.material-icons.arrow_upward:before{content:"\e5d8"}.material-icons.art_track:before{content:"\e060"}.material-icons.aspect_ratio:before{content:"\e85b"}.material-icons.assessment:before{content:"\e85c"}.material-icons.assignment:before{content:"\e85d"}.material-icons.assignment_ind:before{content:"\e85e"}.material-icons.assignment_late:before{content:"\e85f"}.material-icons.assignment_return:before{content:"\e860"}.material-icons.assignment_returned:before{content:"\e861"}.material-icons.assignment_turned_in:before{content:"\e862"}.material-icons.assistant:before{content:"\e39f"}.material-icons.assistant_direction:before{content:"\e988"}.material-icons.assistant_navigation:before{content:"\e989"}.material-icons.assistant_photo:before{content:"\e3a0"}.material-icons.atm:before{content:"\e573"}.material-icons.attach_file:before{content:"\e226"}.material-icons.attach_money:before{content:"\e227"}.material-icons.attachment:before{content:"\e2bc"}.material-icons.attractions:before{content:"\ea52"}.material-icons.audiotrack:before{content:"\e3a1"}.material-icons.autorenew:before{content:"\e863"}.material-icons.av_timer:before{content:"\e01b"}.material-icons.backspace:before{content:"\e14a"}.material-icons.backup:before{content:"\e864"}.material-icons.badge:before{content:"\ea67"}.material-icons.bakery_dining:before{content:"\ea53"}.material-icons.ballot:before{content:"\e172"}.material-icons.bar_chart:before{content:"\e26b"}.material-icons.bathtub:before{content:"\ea41"}.material-icons.battery_alert:before{content:"\e19c"}.material-icons.battery_charging_full:before{content:"\e1a3"}.material-icons.battery_full:before{content:"\e1a4"}.material-icons.battery_std:before{content:"\e1a5"}.material-icons.battery_unknown:before{content:"\e1a6"}.material-icons.beach_access:before{content:"\eb3e"}.material-icons.beenhere:before{content:"\e52d"}.material-icons.block:before{content:"\e14b"}.material-icons.bluetooth:before{content:"\e1a7"}.material-icons.bluetooth_audio:before{content:"\e60f"}.material-icons.bluetooth_connected:before{content:"\e1a8"}.material-icons.bluetooth_disabled:before{content:"\e1a9"}.material-icons.bluetooth_searching:before{content:"\e1aa"}.material-icons.blur_circular:before{content:"\e3a2"}.material-icons.blur_linear:before{content:"\e3a3"}.material-icons.blur_off:before{content:"\e3a4"}.material-icons.blur_on:before{content:"\e3a5"}.material-icons.bolt:before{content:"\ea0b"}.material-icons.book:before{content:"\e865"}.material-icons.bookmark:before{content:"\e866"}.material-icons.bookmark_border:before,.material-icons.bookmark_outline:before{content:"\e867"}.material-icons.bookmarks:before{content:"\e98b"}.material-icons.border_all:before{content:"\e228"}.material-icons.border_bottom:before{content:"\e229"}.material-icons.border_clear:before{content:"\e22a"}.material-icons.border_color:before{content:"\e22b"}.material-icons.border_horizontal:before{content:"\e22c"}.material-icons.border_inner:before{content:"\e22d"}.material-icons.border_left:before{content:"\e22e"}.material-icons.border_outer:before{content:"\e22f"}.material-icons.border_right:before{content:"\e230"}.material-icons.border_style:before{content:"\e231"}.material-icons.border_top:before{content:"\e232"}.material-icons.border_vertical:before{content:"\e233"}.material-icons.branding_watermark:before{content:"\e06b"}.material-icons.breakfast_dining:before{content:"\ea54"}.material-icons.brightness_1:before{content:"\e3a6"}.material-icons.brightness_2:before{content:"\e3a7"}.material-icons.brightness_3:before{content:"\e3a8"}.material-icons.brightness_4:before{content:"\e3a9"}.material-icons.brightness_5:before{content:"\e3aa"}.material-icons.brightness_6:before{content:"\e3ab"}.material-icons.brightness_7:before{content:"\e3ac"}.material-icons.brightness_auto:before{content:"\e1ab"}.material-icons.brightness_high:before{content:"\e1ac"}.material-icons.brightness_low:before{content:"\e1ad"}.material-icons.brightness_medium:before{content:"\e1ae"}.material-icons.broken_image:before{content:"\e3ad"}.material-icons.brunch_dining:before{content:"\ea73"}.material-icons.brush:before{content:"\e3ae"}.material-icons.bubble_chart:before{content:"\e6dd"}.material-icons.bug_report:before{content:"\e868"}.material-icons.build:before{content:"\e869"}.material-icons.burst_mode:before{content:"\e43c"}.material-icons.bus_alert:before{content:"\e98f"}.material-icons.business:before{content:"\e0af"}.material-icons.business_center:before{content:"\eb3f"}.material-icons.cached:before{content:"\e86a"}.material-icons.cake:before{content:"\e7e9"}.material-icons.calendar_today:before{content:"\e935"}.material-icons.calendar_view_day:before{content:"\e936"}.material-icons.call:before{content:"\e0b0"}.material-icons.call_end:before{content:"\e0b1"}.material-icons.call_made:before{content:"\e0b2"}.material-icons.call_merge:before{content:"\e0b3"}.material-icons.call_missed:before{content:"\e0b4"}.material-icons.call_missed_outgoing:before{content:"\e0e4"}.material-icons.call_received:before{content:"\e0b5"}.material-icons.call_split:before{content:"\e0b6"}.material-icons.call_to_action:before{content:"\e06c"}.material-icons.camera:before{content:"\e3af"}.material-icons.camera_alt:before{content:"\e3b0"}.material-icons.camera_enhance:before{content:"\e8fc"}.material-icons.camera_front:before{content:"\e3b1"}.material-icons.camera_rear:before{content:"\e3b2"}.material-icons.camera_roll:before{content:"\e3b3"}.material-icons.cancel:before{content:"\e5c9"}.material-icons.cancel_presentation:before{content:"\e0e9"}.material-icons.cancel_schedule_send:before{content:"\ea39"}.material-icons.car_rental:before{content:"\ea55"}.material-icons.car_repair:before{content:"\ea56"}.material-icons.card_giftcard:before{content:"\e8f6"}.material-icons.card_membership:before{content:"\e8f7"}.material-icons.card_travel:before{content:"\e8f8"}.material-icons.cases:before{content:"\e992"}.material-icons.casino:before{content:"\eb40"}.material-icons.cast:before{content:"\e307"}.material-icons.cast_connected:before{content:"\e308"}.material-icons.category:before{content:"\e574"}.material-icons.celebration:before{content:"\ea65"}.material-icons.cell_wifi:before{content:"\e0ec"}.material-icons.center_focus_strong:before{content:"\e3b4"}.material-icons.center_focus_weak:before{content:"\e3b5"}.material-icons.change_history:before{content:"\e86b"}.material-icons.chat:before{content:"\e0b7"}.material-icons.chat_bubble:before{content:"\e0ca"}.material-icons.chat_bubble_outline:before{content:"\e0cb"}.material-icons.check:before{content:"\e5ca"}.material-icons.check_box:before{content:"\e834"}.material-icons.check_box_outline_blank:before{content:"\e835"}.material-icons.check_circle:before{content:"\e86c"}.material-icons.check_circle_outline:before{content:"\e92d"}.material-icons.chevron_left:before{content:"\e5cb"}.material-icons.chevron_right:before{content:"\e5cc"}.material-icons.child_care:before{content:"\eb41"}.material-icons.child_friendly:before{content:"\eb42"}.material-icons.chrome_reader_mode:before{content:"\e86d"}.material-icons.circle_notifications:before{content:"\e994"}.material-icons.class:before{content:"\e86e"}.material-icons.clear:before{content:"\e14c"}.material-icons.clear_all:before{content:"\e0b8"}.material-icons.close:before{content:"\e5cd"}.material-icons.closed_caption:before{content:"\e01c"}.material-icons.closed_caption_off:before{content:"\e996"}.material-icons.cloud:before{content:"\e2bd"}.material-icons.cloud_circle:before{content:"\e2be"}.material-icons.cloud_done:before{content:"\e2bf"}.material-icons.cloud_download:before{content:"\e2c0"}.material-icons.cloud_off:before{content:"\e2c1"}.material-icons.cloud_queue:before{content:"\e2c2"}.material-icons.cloud_upload:before{content:"\e2c3"}.material-icons.code:before{content:"\e86f"}.material-icons.collections:before{content:"\e3b6"}.material-icons.collections_bookmark:before{content:"\e431"}.material-icons.color_lens:before{content:"\e3b7"}.material-icons.colorize:before{content:"\e3b8"}.material-icons.comment:before{content:"\e0b9"}.material-icons.commute:before{content:"\e940"}.material-icons.compare:before{content:"\e3b9"}.material-icons.compare_arrows:before{content:"\e915"}.material-icons.compass_calibration:before{content:"\e57c"}.material-icons.compress:before{content:"\e94d"}.material-icons.computer:before{content:"\e30a"}.material-icons.confirmation_num:before,.material-icons.confirmation_number:before{content:"\e638"}.material-icons.connected_tv:before{content:"\e998"}.material-icons.contact_mail:before{content:"\e0d0"}.material-icons.contact_phone:before{content:"\e0cf"}.material-icons.contact_support:before{content:"\e94c"}.material-icons.contactless:before{content:"\ea71"}.material-icons.contacts:before{content:"\e0ba"}.material-icons.content_copy:before{content:"\e14d"}.material-icons.content_cut:before{content:"\e14e"}.material-icons.content_paste:before{content:"\e14f"}.material-icons.control_camera:before{content:"\e074"}.material-icons.control_point:before{content:"\e3ba"}.material-icons.control_point_duplicate:before{content:"\e3bb"}.material-icons.copyright:before{content:"\e90c"}.material-icons.create:before{content:"\e150"}.material-icons.create_new_folder:before{content:"\e2cc"}.material-icons.credit_card:before{content:"\e870"}.material-icons.crop:before{content:"\e3be"}.material-icons.crop_16_9:before{content:"\e3bc"}.material-icons.crop_3_2:before{content:"\e3bd"}.material-icons.crop_5_4:before{content:"\e3bf"}.material-icons.crop_7_5:before{content:"\e3c0"}.material-icons.crop_din:before{content:"\e3c1"}.material-icons.crop_free:before{content:"\e3c2"}.material-icons.crop_landscape:before{content:"\e3c3"}.material-icons.crop_original:before{content:"\e3c4"}.material-icons.crop_portrait:before{content:"\e3c5"}.material-icons.crop_rotate:before{content:"\e437"}.material-icons.crop_square:before{content:"\e3c6"}.material-icons.dangerous:before{content:"\e99a"}.material-icons.dashboard:before{content:"\e871"}.material-icons.dashboard_customize:before{content:"\e99b"}.material-icons.data_usage:before{content:"\e1af"}.material-icons.date_range:before{content:"\e916"}.material-icons.deck:before{content:"\ea42"}.material-icons.dehaze:before{content:"\e3c7"}.material-icons.delete:before{content:"\e872"}.material-icons.delete_forever:before{content:"\e92b"}.material-icons.delete_outline:before{content:"\e92e"}.material-icons.delete_sweep:before{content:"\e16c"}.material-icons.delivery_dining:before{content:"\ea72"}.material-icons.departure_board:before{content:"\e576"}.material-icons.description:before{content:"\e873"}.material-icons.desktop_access_disabled:before{content:"\e99d"}.material-icons.desktop_mac:before{content:"\e30b"}.material-icons.desktop_windows:before{content:"\e30c"}.material-icons.details:before{content:"\e3c8"}.material-icons.developer_board:before{content:"\e30d"}.material-icons.developer_mode:before{content:"\e1b0"}.material-icons.device_hub:before{content:"\e335"}.material-icons.device_thermostat:before{content:"\e1ff"}.material-icons.device_unknown:before{content:"\e339"}.material-icons.devices:before{content:"\e1b1"}.material-icons.devices_other:before{content:"\e337"}.material-icons.dialer_sip:before{content:"\e0bb"}.material-icons.dialpad:before{content:"\e0bc"}.material-icons.dinner_dining:before{content:"\ea57"}.material-icons.directions:before{content:"\e52e"}.material-icons.directions_bike:before{content:"\e52f"}.material-icons.directions_boat:before{content:"\e532"}.material-icons.directions_bus:before{content:"\e530"}.material-icons.directions_car:before{content:"\e531"}.material-icons.directions_ferry:before{content:"\e532"}.material-icons.directions_railway:before{content:"\e534"}.material-icons.directions_run:before{content:"\e566"}.material-icons.directions_subway:before{content:"\e533"}.material-icons.directions_train:before{content:"\e534"}.material-icons.directions_transit:before{content:"\e535"}.material-icons.directions_walk:before{content:"\e536"}.material-icons.disc_full:before{content:"\e610"}.material-icons.dnd_forwardslash:before{content:"\e611"}.material-icons.dns:before{content:"\e875"}.material-icons.do_not_disturb:before{content:"\e612"}.material-icons.do_not_disturb_alt:before{content:"\e611"}.material-icons.do_not_disturb_off:before{content:"\e643"}.material-icons.do_not_disturb_on:before{content:"\e644"}.material-icons.dock:before{content:"\e30e"}.material-icons.domain:before{content:"\e7ee"}.material-icons.domain_disabled:before{content:"\e0ef"}.material-icons.done:before{content:"\e876"}.material-icons.done_all:before{content:"\e877"}.material-icons.done_outline:before{content:"\e92f"}.material-icons.donut_large:before{content:"\e917"}.material-icons.donut_small:before{content:"\e918"}.material-icons.double_arrow:before{content:"\ea50"}.material-icons.drafts:before{content:"\e151"}.material-icons.drag_handle:before{content:"\e25d"}.material-icons.drag_indicator:before{content:"\e945"}.material-icons.drive_eta:before{content:"\e613"}.material-icons.drive_file_move_outline:before{content:"\e9a1"}.material-icons.drive_file_rename_outline:before{content:"\e9a2"}.material-icons.drive_folder_upload:before{content:"\e9a3"}.material-icons.dry_cleaning:before{content:"\ea58"}.material-icons.duo:before{content:"\e9a5"}.material-icons.dvr:before{content:"\e1b2"}.material-icons.dynamic_feed:before{content:"\ea14"}.material-icons.eco:before{content:"\ea35"}.material-icons.edit:before{content:"\e3c9"}.material-icons.edit_attributes:before{content:"\e578"}.material-icons.edit_location:before{content:"\e568"}.material-icons.edit_off:before{content:"\e950"}.material-icons.eject:before{content:"\e8fb"}.material-icons.email:before{content:"\e0be"}.material-icons.emoji_emotions:before{content:"\ea22"}.material-icons.emoji_events:before{content:"\ea23"}.material-icons.emoji_flags:before{content:"\ea1a"}.material-icons.emoji_food_beverage:before{content:"\ea1b"}.material-icons.emoji_nature:before{content:"\ea1c"}.material-icons.emoji_objects:before{content:"\ea24"}.material-icons.emoji_people:before{content:"\ea1d"}.material-icons.emoji_symbols:before{content:"\ea1e"}.material-icons.emoji_transportation:before{content:"\ea1f"}.material-icons.enhance_photo_translate:before{content:"\e8fc"}.material-icons.enhanced_encryption:before{content:"\e63f"}.material-icons.equalizer:before{content:"\e01d"}.material-icons.error:before{content:"\e000"}.material-icons.error_outline:before{content:"\e001"}.material-icons.euro:before{content:"\ea15"}.material-icons.euro_symbol:before{content:"\e926"}.material-icons.ev_station:before{content:"\e56d"}.material-icons.event:before{content:"\e878"}.material-icons.event_available:before{content:"\e614"}.material-icons.event_busy:before{content:"\e615"}.material-icons.event_note:before{content:"\e616"}.material-icons.event_seat:before{content:"\e903"}.material-icons.exit_to_app:before{content:"\e879"}.material-icons.expand:before{content:"\e94f"}.material-icons.expand_less:before{content:"\e5ce"}.material-icons.expand_more:before{content:"\e5cf"}.material-icons.explicit:before{content:"\e01e"}.material-icons.explore:before{content:"\e87a"}.material-icons.explore_off:before{content:"\e9a8"}.material-icons.exposure:before{content:"\e3ca"}.material-icons.exposure_minus_1:before{content:"\e3cb"}.material-icons.exposure_minus_2:before{content:"\e3cc"}.material-icons.exposure_neg_1:before{content:"\e3cb"}.material-icons.exposure_neg_2:before{content:"\e3cc"}.material-icons.exposure_plus_1:before{content:"\e3cd"}.material-icons.exposure_plus_2:before{content:"\e3ce"}.material-icons.exposure_zero:before{content:"\e3cf"}.material-icons.extension:before{content:"\e87b"}.material-icons.face:before{content:"\e87c"}.material-icons.fast_forward:before{content:"\e01f"}.material-icons.fast_rewind:before{content:"\e020"}.material-icons.fastfood:before{content:"\e57a"}.material-icons.favorite:before{content:"\e87d"}.material-icons.favorite_border:before,.material-icons.favorite_outline:before{content:"\e87e"}.material-icons.featured_play_list:before{content:"\e06d"}.material-icons.featured_video:before{content:"\e06e"}.material-icons.feedback:before{content:"\e87f"}.material-icons.festival:before{content:"\ea68"}.material-icons.fiber_dvr:before{content:"\e05d"}.material-icons.fiber_manual_record:before{content:"\e061"}.material-icons.fiber_new:before{content:"\e05e"}.material-icons.fiber_pin:before{content:"\e06a"}.material-icons.fiber_smart_record:before{content:"\e062"}.material-icons.file_copy:before{content:"\e173"}.material-icons.file_download:before{content:"\e2c4"}.material-icons.file_download_done:before{content:"\e9aa"}.material-icons.file_present:before{content:"\ea0e"}.material-icons.file_upload:before{content:"\e2c6"}.material-icons.filter:before{content:"\e3d3"}.material-icons.filter_1:before{content:"\e3d0"}.material-icons.filter_2:before{content:"\e3d1"}.material-icons.filter_3:before{content:"\e3d2"}.material-icons.filter_4:before{content:"\e3d4"}.material-icons.filter_5:before{content:"\e3d5"}.material-icons.filter_6:before{content:"\e3d6"}.material-icons.filter_7:before{content:"\e3d7"}.material-icons.filter_8:before{content:"\e3d8"}.material-icons.filter_9:before{content:"\e3d9"}.material-icons.filter_9_plus:before{content:"\e3da"}.material-icons.filter_b_and_w:before{content:"\e3db"}.material-icons.filter_center_focus:before{content:"\e3dc"}.material-icons.filter_drama:before{content:"\e3dd"}.material-icons.filter_frames:before{content:"\e3de"}.material-icons.filter_hdr:before{content:"\e3df"}.material-icons.filter_list:before{content:"\e152"}.material-icons.filter_list_alt:before{content:"\e94e"}.material-icons.filter_none:before{content:"\e3e0"}.material-icons.filter_tilt_shift:before{content:"\e3e2"}.material-icons.filter_vintage:before{content:"\e3e3"}.material-icons.find_in_page:before{content:"\e880"}.material-icons.find_replace:before{content:"\e881"}.material-icons.fingerprint:before{content:"\e90d"}.material-icons.fireplace:before{content:"\ea43"}.material-icons.first_page:before{content:"\e5dc"}.material-icons.fit_screen:before{content:"\ea10"}.material-icons.fitness_center:before{content:"\eb43"}.material-icons.flag:before{content:"\e153"}.material-icons.flare:before{content:"\e3e4"}.material-icons.flash_auto:before{content:"\e3e5"}.material-icons.flash_off:before{content:"\e3e6"}.material-icons.flash_on:before{content:"\e3e7"}.material-icons.flight:before{content:"\e539"}.material-icons.flight_land:before{content:"\e904"}.material-icons.flight_takeoff:before{content:"\e905"}.material-icons.flip:before{content:"\e3e8"}.material-icons.flip_camera_android:before{content:"\ea37"}.material-icons.flip_camera_ios:before{content:"\ea38"}.material-icons.flip_to_back:before{content:"\e882"}.material-icons.flip_to_front:before{content:"\e883"}.material-icons.folder:before{content:"\e2c7"}.material-icons.folder_open:before{content:"\e2c8"}.material-icons.folder_shared:before{content:"\e2c9"}.material-icons.folder_special:before{content:"\e617"}.material-icons.font_download:before{content:"\e167"}.material-icons.format_align_center:before{content:"\e234"}.material-icons.format_align_justify:before{content:"\e235"}.material-icons.format_align_left:before{content:"\e236"}.material-icons.format_align_right:before{content:"\e237"}.material-icons.format_bold:before{content:"\e238"}.material-icons.format_clear:before{content:"\e239"}.material-icons.format_color_fill:before{content:"\e23a"}.material-icons.format_color_reset:before{content:"\e23b"}.material-icons.format_color_text:before{content:"\e23c"}.material-icons.format_indent_decrease:before{content:"\e23d"}.material-icons.format_indent_increase:before{content:"\e23e"}.material-icons.format_italic:before{content:"\e23f"}.material-icons.format_line_spacing:before{content:"\e240"}.material-icons.format_list_bulleted:before{content:"\e241"}.material-icons.format_list_numbered:before{content:"\e242"}.material-icons.format_list_numbered_rtl:before{content:"\e267"}.material-icons.format_paint:before{content:"\e243"}.material-icons.format_quote:before{content:"\e244"}.material-icons.format_shapes:before{content:"\e25e"}.material-icons.format_size:before{content:"\e245"}.material-icons.format_strikethrough:before{content:"\e246"}.material-icons.format_textdirection_l_to_r:before{content:"\e247"}.material-icons.format_textdirection_r_to_l:before{content:"\e248"}.material-icons.format_underline:before,.material-icons.format_underlined:before{content:"\e249"}.material-icons.forum:before{content:"\e0bf"}.material-icons.forward:before{content:"\e154"}.material-icons.forward_10:before{content:"\e056"}.material-icons.forward_30:before{content:"\e057"}.material-icons.forward_5:before{content:"\e058"}.material-icons.free_breakfast:before{content:"\eb44"}.material-icons.fullscreen:before{content:"\e5d0"}.material-icons.fullscreen_exit:before{content:"\e5d1"}.material-icons.functions:before{content:"\e24a"}.material-icons.g_translate:before{content:"\e927"}.material-icons.gamepad:before{content:"\e30f"}.material-icons.games:before{content:"\e021"}.material-icons.gavel:before{content:"\e90e"}.material-icons.gesture:before{content:"\e155"}.material-icons.get_app:before{content:"\e884"}.material-icons.gif:before{content:"\e908"}.material-icons.goat:before{content:"\dbff"}.material-icons.golf_course:before{content:"\eb45"}.material-icons.gps_fixed:before{content:"\e1b3"}.material-icons.gps_not_fixed:before{content:"\e1b4"}.material-icons.gps_off:before{content:"\e1b5"}.material-icons.grade:before{content:"\e885"}.material-icons.gradient:before{content:"\e3e9"}.material-icons.grain:before{content:"\e3ea"}.material-icons.graphic_eq:before{content:"\e1b8"}.material-icons.grid_off:before{content:"\e3eb"}.material-icons.grid_on:before{content:"\e3ec"}.material-icons.grid_view:before{content:"\e9b0"}.material-icons.group:before{content:"\e7ef"}.material-icons.group_add:before{content:"\e7f0"}.material-icons.group_work:before{content:"\e886"}.material-icons.hail:before{content:"\e9b1"}.material-icons.hardware:before{content:"\ea59"}.material-icons.hd:before{content:"\e052"}.material-icons.hdr_off:before{content:"\e3ed"}.material-icons.hdr_on:before{content:"\e3ee"}.material-icons.hdr_strong:before{content:"\e3f1"}.material-icons.hdr_weak:before{content:"\e3f2"}.material-icons.headset:before{content:"\e310"}.material-icons.headset_mic:before{content:"\e311"}.material-icons.headset_off:before{content:"\e33a"}.material-icons.healing:before{content:"\e3f3"}.material-icons.hearing:before{content:"\e023"}.material-icons.height:before{content:"\ea16"}.material-icons.help:before{content:"\e887"}.material-icons.help_outline:before{content:"\e8fd"}.material-icons.high_quality:before{content:"\e024"}.material-icons.highlight:before{content:"\e25f"}.material-icons.highlight_off:before,.material-icons.highlight_remove:before{content:"\e888"}.material-icons.history:before{content:"\e889"}.material-icons.home:before{content:"\e88a"}.material-icons.home_filled:before{content:"\e9b2"}.material-icons.home_work:before{content:"\ea09"}.material-icons.horizontal_split:before{content:"\e947"}.material-icons.hot_tub:before{content:"\eb46"}.material-icons.hotel:before{content:"\e53a"}.material-icons.hourglass_empty:before{content:"\e88b"}.material-icons.hourglass_full:before{content:"\e88c"}.material-icons.house:before{content:"\ea44"}.material-icons.how_to_reg:before{content:"\e174"}.material-icons.how_to_vote:before{content:"\e175"}.material-icons.http:before{content:"\e902"}.material-icons.https:before{content:"\e88d"}.material-icons.icecream:before{content:"\ea69"}.material-icons.image:before{content:"\e3f4"}.material-icons.image_aspect_ratio:before{content:"\e3f5"}.material-icons.image_search:before{content:"\e43f"}.material-icons.imagesearch_roller:before{content:"\e9b4"}.material-icons.import_contacts:before{content:"\e0e0"}.material-icons.import_export:before{content:"\e0c3"}.material-icons.important_devices:before{content:"\e912"}.material-icons.inbox:before{content:"\e156"}.material-icons.indeterminate_check_box:before{content:"\e909"}.material-icons.info:before{content:"\e88e"}.material-icons.info_outline:before{content:"\e88f"}.material-icons.input:before{content:"\e890"}.material-icons.insert_chart:before{content:"\e24b"}.material-icons.insert_chart_outlined:before{content:"\e26a"}.material-icons.insert_comment:before{content:"\e24c"}.material-icons.insert_drive_file:before{content:"\e24d"}.material-icons.insert_emoticon:before{content:"\e24e"}.material-icons.insert_invitation:before{content:"\e24f"}.material-icons.insert_link:before{content:"\e250"}.material-icons.insert_photo:before{content:"\e251"}.material-icons.inventory:before{content:"\e179"}.material-icons.invert_colors:before{content:"\e891"}.material-icons.invert_colors_off:before{content:"\e0c4"}.material-icons.invert_colors_on:before{content:"\e891"}.material-icons.iso:before{content:"\e3f6"}.material-icons.keyboard:before{content:"\e312"}.material-icons.keyboard_arrow_down:before{content:"\e313"}.material-icons.keyboard_arrow_left:before{content:"\e314"}.material-icons.keyboard_arrow_right:before{content:"\e315"}.material-icons.keyboard_arrow_up:before{content:"\e316"}.material-icons.keyboard_backspace:before{content:"\e317"}.material-icons.keyboard_capslock:before{content:"\e318"}.material-icons.keyboard_control:before{content:"\e5d3"}.material-icons.keyboard_hide:before{content:"\e31a"}.material-icons.keyboard_return:before{content:"\e31b"}.material-icons.keyboard_tab:before{content:"\e31c"}.material-icons.keyboard_voice:before{content:"\e31d"}.material-icons.king_bed:before{content:"\ea45"}.material-icons.kitchen:before{content:"\eb47"}.material-icons.label:before{content:"\e892"}.material-icons.label_important:before{content:"\e937"}.material-icons.label_important_outline:before{content:"\e948"}.material-icons.label_off:before{content:"\e9b6"}.material-icons.label_outline:before{content:"\e893"}.material-icons.landscape:before{content:"\e3f7"}.material-icons.language:before{content:"\e894"}.material-icons.laptop:before{content:"\e31e"}.material-icons.laptop_chromebook:before{content:"\e31f"}.material-icons.laptop_mac:before{content:"\e320"}.material-icons.laptop_windows:before{content:"\e321"}.material-icons.last_page:before{content:"\e5dd"}.material-icons.launch:before{content:"\e895"}.material-icons.layers:before{content:"\e53b"}.material-icons.layers_clear:before{content:"\e53c"}.material-icons.leak_add:before{content:"\e3f8"}.material-icons.leak_remove:before{content:"\e3f9"}.material-icons.lens:before{content:"\e3fa"}.material-icons.library_add:before{content:"\e02e"}.material-icons.library_add_check:before{content:"\e9b7"}.material-icons.library_books:before{content:"\e02f"}.material-icons.library_music:before{content:"\e030"}.material-icons.lightbulb:before{content:"\e0f0"}.material-icons.lightbulb_outline:before{content:"\e90f"}.material-icons.line_style:before{content:"\e919"}.material-icons.line_weight:before{content:"\e91a"}.material-icons.linear_scale:before{content:"\e260"}.material-icons.link:before{content:"\e157"}.material-icons.link_off:before{content:"\e16f"}.material-icons.linked_camera:before{content:"\e438"}.material-icons.liquor:before{content:"\ea60"}.material-icons.list:before{content:"\e896"}.material-icons.list_alt:before{content:"\e0ee"}.material-icons.live_help:before{content:"\e0c6"}.material-icons.live_tv:before{content:"\e639"}.material-icons.local_activity:before{content:"\e53f"}.material-icons.local_airport:before{content:"\e53d"}.material-icons.local_atm:before{content:"\e53e"}.material-icons.local_attraction:before{content:"\e53f"}.material-icons.local_bar:before{content:"\e540"}.material-icons.local_cafe:before{content:"\e541"}.material-icons.local_car_wash:before{content:"\e542"}.material-icons.local_convenience_store:before{content:"\e543"}.material-icons.local_dining:before{content:"\e556"}.material-icons.local_drink:before{content:"\e544"}.material-icons.local_florist:before{content:"\e545"}.material-icons.local_gas_station:before{content:"\e546"}.material-icons.local_grocery_store:before{content:"\e547"}.material-icons.local_hospital:before{content:"\e548"}.material-icons.local_hotel:before{content:"\e549"}.material-icons.local_laundry_service:before{content:"\e54a"}.material-icons.local_library:before{content:"\e54b"}.material-icons.local_mall:before{content:"\e54c"}.material-icons.local_movies:before{content:"\e54d"}.material-icons.local_offer:before{content:"\e54e"}.material-icons.local_parking:before{content:"\e54f"}.material-icons.local_pharmacy:before{content:"\e550"}.material-icons.local_phone:before{content:"\e551"}.material-icons.local_pizza:before{content:"\e552"}.material-icons.local_play:before{content:"\e553"}.material-icons.local_post_office:before{content:"\e554"}.material-icons.local_print_shop:before,.material-icons.local_printshop:before{content:"\e555"}.material-icons.local_restaurant:before{content:"\e556"}.material-icons.local_see:before{content:"\e557"}.material-icons.local_shipping:before{content:"\e558"}.material-icons.local_taxi:before{content:"\e559"}.material-icons.location_city:before{content:"\e7f1"}.material-icons.location_disabled:before{content:"\e1b6"}.material-icons.location_history:before{content:"\e55a"}.material-icons.location_off:before{content:"\e0c7"}.material-icons.location_on:before{content:"\e0c8"}.material-icons.location_searching:before{content:"\e1b7"}.material-icons.lock:before{content:"\e897"}.material-icons.lock_open:before{content:"\e898"}.material-icons.lock_outline:before{content:"\e899"}.material-icons.logout:before{content:"\e9ba"}.material-icons.looks:before{content:"\e3fc"}.material-icons.looks_3:before{content:"\e3fb"}.material-icons.looks_4:before{content:"\e3fd"}.material-icons.looks_5:before{content:"\e3fe"}.material-icons.looks_6:before{content:"\e3ff"}.material-icons.looks_one:before{content:"\e400"}.material-icons.looks_two:before{content:"\e401"}.material-icons.loop:before{content:"\e028"}.material-icons.loupe:before{content:"\e402"}.material-icons.low_priority:before{content:"\e16d"}.material-icons.loyalty:before{content:"\e89a"}.material-icons.lunch_dining:before{content:"\ea61"}.material-icons.mail:before{content:"\e158"}.material-icons.mail_outline:before{content:"\e0e1"}.material-icons.map:before{content:"\e55b"}.material-icons.margin:before{content:"\e9bb"}.material-icons.mark_as_unread:before{content:"\e9bc"}.material-icons.markunread:before{content:"\e159"}.material-icons.markunread_mailbox:before{content:"\e89b"}.material-icons.maximize:before{content:"\e930"}.material-icons.meeting_room:before{content:"\eb4f"}.material-icons.memory:before{content:"\e322"}.material-icons.menu:before{content:"\e5d2"}.material-icons.menu_book:before{content:"\ea19"}.material-icons.menu_open:before{content:"\e9bd"}.material-icons.merge_type:before{content:"\e252"}.material-icons.message:before{content:"\e0c9"}.material-icons.messenger:before{content:"\e0ca"}.material-icons.messenger_outline:before{content:"\e0cb"}.material-icons.mic:before{content:"\e029"}.material-icons.mic_none:before{content:"\e02a"}.material-icons.mic_off:before{content:"\e02b"}.material-icons.minimize:before{content:"\e931"}.material-icons.missed_video_call:before{content:"\e073"}.material-icons.mms:before{content:"\e618"}.material-icons.mobile_friendly:before{content:"\e200"}.material-icons.mobile_off:before{content:"\e201"}.material-icons.mobile_screen_share:before{content:"\e0e7"}.material-icons.mode_comment:before{content:"\e253"}.material-icons.mode_edit:before{content:"\e254"}.material-icons.monetization_on:before{content:"\e263"}.material-icons.money:before{content:"\e57d"}.material-icons.money_off:before{content:"\e25c"}.material-icons.monochrome_photos:before{content:"\e403"}.material-icons.mood:before{content:"\e7f2"}.material-icons.mood_bad:before{content:"\e7f3"}.material-icons.more:before{content:"\e619"}.material-icons.more_horiz:before{content:"\e5d3"}.material-icons.more_vert:before{content:"\e5d4"}.material-icons.motorcycle:before{content:"\e91b"}.material-icons.mouse:before{content:"\e323"}.material-icons.move_to_inbox:before{content:"\e168"}.material-icons.movie:before{content:"\e02c"}.material-icons.movie_creation:before{content:"\e404"}.material-icons.movie_filter:before{content:"\e43a"}.material-icons.mp:before{content:"\e9c3"}.material-icons.multiline_chart:before{content:"\e6df"}.material-icons.multitrack_audio:before{content:"\e1b8"}.material-icons.museum:before{content:"\ea36"}.material-icons.music_note:before{content:"\e405"}.material-icons.music_off:before{content:"\e440"}.material-icons.music_video:before{content:"\e063"}.material-icons.my_library_add:before{content:"\e02e"}.material-icons.my_library_books:before{content:"\e02f"}.material-icons.my_library_music:before{content:"\e030"}.material-icons.my_location:before{content:"\e55c"}.material-icons.nature:before{content:"\e406"}.material-icons.nature_people:before{content:"\e407"}.material-icons.navigate_before:before{content:"\e408"}.material-icons.navigate_next:before{content:"\e409"}.material-icons.navigation:before{content:"\e55d"}.material-icons.near_me:before{content:"\e569"}.material-icons.network_cell:before{content:"\e1b9"}.material-icons.network_check:before{content:"\e640"}.material-icons.network_locked:before{content:"\e61a"}.material-icons.network_wifi:before{content:"\e1ba"}.material-icons.new_releases:before{content:"\e031"}.material-icons.next_week:before{content:"\e16a"}.material-icons.nfc:before{content:"\e1bb"}.material-icons.nightlife:before{content:"\ea62"}.material-icons.nights_stay:before{content:"\ea46"}.material-icons.no_encryption:before{content:"\e641"}.material-icons.no_meeting_room:before{content:"\eb4e"}.material-icons.no_sim:before{content:"\e0cc"}.material-icons.not_interested:before{content:"\e033"}.material-icons.not_listed_location:before{content:"\e575"}.material-icons.note:before{content:"\e06f"}.material-icons.note_add:before{content:"\e89c"}.material-icons.notes:before{content:"\e26c"}.material-icons.notification_important:before{content:"\e004"}.material-icons.notifications:before{content:"\e7f4"}.material-icons.notifications_active:before{content:"\e7f7"}.material-icons.notifications_none:before{content:"\e7f5"}.material-icons.notifications_off:before{content:"\e7f6"}.material-icons.notifications_on:before{content:"\e7f7"}.material-icons.notifications_paused:before{content:"\e7f8"}.material-icons.now_wallpaper:before{content:"\e1bc"}.material-icons.now_widgets:before{content:"\e1bd"}.material-icons.offline_bolt:before{content:"\e932"}.material-icons.offline_pin:before{content:"\e90a"}.material-icons.offline_share:before{content:"\e9c5"}.material-icons.ondemand_video:before{content:"\e63a"}.material-icons.opacity:before{content:"\e91c"}.material-icons.open_in_browser:before{content:"\e89d"}.material-icons.open_in_new:before{content:"\e89e"}.material-icons.open_with:before{content:"\e89f"}.material-icons.outdoor_grill:before{content:"\ea47"}.material-icons.outlined_flag:before{content:"\e16e"}.material-icons.padding:before{content:"\e9c8"}.material-icons.pages:before{content:"\e7f9"}.material-icons.pageview:before{content:"\e8a0"}.material-icons.palette:before{content:"\e40a"}.material-icons.pan_tool:before{content:"\e925"}.material-icons.panorama:before{content:"\e40b"}.material-icons.panorama_fish_eye:before,.material-icons.panorama_fisheye:before{content:"\e40c"}.material-icons.panorama_horizontal:before{content:"\e40d"}.material-icons.panorama_photosphere:before{content:"\e9c9"}.material-icons.panorama_photosphere_select:before{content:"\e9ca"}.material-icons.panorama_vertical:before{content:"\e40e"}.material-icons.panorama_wide_angle:before{content:"\e40f"}.material-icons.park:before{content:"\ea63"}.material-icons.party_mode:before{content:"\e7fa"}.material-icons.pause:before{content:"\e034"}.material-icons.pause_circle_filled:before{content:"\e035"}.material-icons.pause_circle_outline:before{content:"\e036"}.material-icons.pause_presentation:before{content:"\e0ea"}.material-icons.payment:before{content:"\e8a1"}.material-icons.people:before{content:"\e7fb"}.material-icons.people_alt:before{content:"\ea21"}.material-icons.people_outline:before{content:"\e7fc"}.material-icons.perm_camera_mic:before{content:"\e8a2"}.material-icons.perm_contact_cal:before,.material-icons.perm_contact_calendar:before{content:"\e8a3"}.material-icons.perm_data_setting:before{content:"\e8a4"}.material-icons.perm_device_info:before,.material-icons.perm_device_information:before{content:"\e8a5"}.material-icons.perm_identity:before{content:"\e8a6"}.material-icons.perm_media:before{content:"\e8a7"}.material-icons.perm_phone_msg:before{content:"\e8a8"}.material-icons.perm_scan_wifi:before{content:"\e8a9"}.material-icons.person:before{content:"\e7fd"}.material-icons.person_add:before{content:"\e7fe"}.material-icons.person_add_disabled:before{content:"\e9cb"}.material-icons.person_outline:before{content:"\e7ff"}.material-icons.person_pin:before{content:"\e55a"}.material-icons.person_pin_circle:before{content:"\e56a"}.material-icons.personal_video:before{content:"\e63b"}.material-icons.pets:before{content:"\e91d"}.material-icons.phone:before{content:"\e0cd"}.material-icons.phone_android:before{content:"\e324"}.material-icons.phone_bluetooth_speaker:before{content:"\e61b"}.material-icons.phone_callback:before{content:"\e649"}.material-icons.phone_disabled:before{content:"\e9cc"}.material-icons.phone_enabled:before{content:"\e9cd"}.material-icons.phone_forwarded:before{content:"\e61c"}.material-icons.phone_in_talk:before{content:"\e61d"}.material-icons.phone_iphone:before{content:"\e325"}.material-icons.phone_locked:before{content:"\e61e"}.material-icons.phone_missed:before{content:"\e61f"}.material-icons.phone_paused:before{content:"\e620"}.material-icons.phonelink:before{content:"\e326"}.material-icons.phonelink_erase:before{content:"\e0db"}.material-icons.phonelink_lock:before{content:"\e0dc"}.material-icons.phonelink_off:before{content:"\e327"}.material-icons.phonelink_ring:before{content:"\e0dd"}.material-icons.phonelink_setup:before{content:"\e0de"}.material-icons.photo:before{content:"\e410"}.material-icons.photo_album:before{content:"\e411"}.material-icons.photo_camera:before{content:"\e412"}.material-icons.photo_filter:before{content:"\e43b"}.material-icons.photo_library:before{content:"\e413"}.material-icons.photo_size_select_actual:before{content:"\e432"}.material-icons.photo_size_select_large:before{content:"\e433"}.material-icons.photo_size_select_small:before{content:"\e434"}.material-icons.picture_as_pdf:before{content:"\e415"}.material-icons.picture_in_picture:before{content:"\e8aa"}.material-icons.picture_in_picture_alt:before{content:"\e911"}.material-icons.pie_chart:before{content:"\e6c4"}.material-icons.pie_chart_outlined:before{content:"\e6c5"}.material-icons.pin_drop:before{content:"\e55e"}.material-icons.pivot_table_chart:before{content:"\e9ce"}.material-icons.place:before{content:"\e55f"}.material-icons.play_arrow:before{content:"\e037"}.material-icons.play_circle_fill:before,.material-icons.play_circle_filled:before{content:"\e038"}.material-icons.play_circle_outline:before{content:"\e039"}.material-icons.play_for_work:before{content:"\e906"}.material-icons.playlist_add:before{content:"\e03b"}.material-icons.playlist_add_check:before{content:"\e065"}.material-icons.playlist_play:before{content:"\e05f"}.material-icons.plus_one:before{content:"\e800"}.material-icons.policy:before{content:"\ea17"}.material-icons.poll:before{content:"\e801"}.material-icons.polymer:before{content:"\e8ab"}.material-icons.pool:before{content:"\eb48"}.material-icons.portable_wifi_off:before{content:"\e0ce"}.material-icons.portrait:before{content:"\e416"}.material-icons.post_add:before{content:"\ea20"}.material-icons.power:before{content:"\e63c"}.material-icons.power_input:before{content:"\e336"}.material-icons.power_off:before{content:"\e646"}.material-icons.power_settings_new:before{content:"\e8ac"}.material-icons.pregnant_woman:before{content:"\e91e"}.material-icons.present_to_all:before{content:"\e0df"}.material-icons.print:before{content:"\e8ad"}.material-icons.print_disabled:before{content:"\e9cf"}.material-icons.priority_high:before{content:"\e645"}.material-icons.public:before{content:"\e80b"}.material-icons.publish:before{content:"\e255"}.material-icons.query_builder:before{content:"\e8ae"}.material-icons.question_answer:before{content:"\e8af"}.material-icons.queue:before{content:"\e03c"}.material-icons.queue_music:before{content:"\e03d"}.material-icons.queue_play_next:before{content:"\e066"}.material-icons.quick_contacts_dialer:before{content:"\e0cf"}.material-icons.quick_contacts_mail:before{content:"\e0d0"}.material-icons.radio:before{content:"\e03e"}.material-icons.radio_button_checked:before{content:"\e837"}.material-icons.radio_button_off:before{content:"\e836"}.material-icons.radio_button_on:before{content:"\e837"}.material-icons.radio_button_unchecked:before{content:"\e836"}.material-icons.railway_alert:before{content:"\e9d1"}.material-icons.ramen_dining:before{content:"\ea64"}.material-icons.rate_review:before{content:"\e560"}.material-icons.receipt:before{content:"\e8b0"}.material-icons.recent_actors:before{content:"\e03f"}.material-icons.recommend:before{content:"\e9d2"}.material-icons.record_voice_over:before{content:"\e91f"}.material-icons.redeem:before{content:"\e8b1"}.material-icons.redo:before{content:"\e15a"}.material-icons.refresh:before{content:"\e5d5"}.material-icons.remove:before{content:"\e15b"}.material-icons.remove_circle:before{content:"\e15c"}.material-icons.remove_circle_outline:before{content:"\e15d"}.material-icons.remove_done:before{content:"\e9d3"}.material-icons.remove_from_queue:before{content:"\e067"}.material-icons.remove_moderator:before{content:"\e9d4"}.material-icons.remove_red_eye:before{content:"\e417"}.material-icons.remove_shopping_cart:before{content:"\e928"}.material-icons.reorder:before{content:"\e8fe"}.material-icons.repeat:before{content:"\e040"}.material-icons.repeat_on:before{content:"\e9d6"}.material-icons.repeat_one:before{content:"\e041"}.material-icons.repeat_one_on:before{content:"\e9d7"}.material-icons.replay:before{content:"\e042"}.material-icons.replay_10:before{content:"\e059"}.material-icons.replay_30:before{content:"\e05a"}.material-icons.replay_5:before{content:"\e05b"}.material-icons.replay_circle_filled:before{content:"\e9d8"}.material-icons.reply:before{content:"\e15e"}.material-icons.reply_all:before{content:"\e15f"}.material-icons.report:before{content:"\e160"}.material-icons.report_off:before{content:"\e170"}.material-icons.report_problem:before{content:"\e8b2"}.material-icons.reset_tv:before{content:"\e9d9"}.material-icons.restaurant:before{content:"\e56c"}.material-icons.restaurant_menu:before{content:"\e561"}.material-icons.restore:before{content:"\e8b3"}.material-icons.restore_from_trash:before{content:"\e938"}.material-icons.restore_page:before{content:"\e929"}.material-icons.ring_volume:before{content:"\e0d1"}.material-icons.room:before{content:"\e8b4"}.material-icons.room_service:before{content:"\eb49"}.material-icons.rotate_90_degrees_ccw:before{content:"\e418"}.material-icons.rotate_left:before{content:"\e419"}.material-icons.rotate_right:before{content:"\e41a"}.material-icons.rounded_corner:before{content:"\e920"}.material-icons.router:before{content:"\e328"}.material-icons.rowing:before{content:"\e921"}.material-icons.rss_feed:before{content:"\e0e5"}.material-icons.rtt:before{content:"\e9ad"}.material-icons.rv_hookup:before{content:"\e642"}.material-icons.satellite:before{content:"\e562"}.material-icons.save:before{content:"\e161"}.material-icons.save_alt:before{content:"\e171"}.material-icons.saved_search:before{content:"\ea11"}.material-icons.scanner:before{content:"\e329"}.material-icons.scatter_plot:before{content:"\e268"}.material-icons.schedule:before{content:"\e8b5"}.material-icons.schedule_send:before{content:"\ea0a"}.material-icons.school:before{content:"\e80c"}.material-icons.score:before{content:"\e269"}.material-icons.screen_lock_landscape:before{content:"\e1be"}.material-icons.screen_lock_portrait:before{content:"\e1bf"}.material-icons.screen_lock_rotation:before{content:"\e1c0"}.material-icons.screen_rotation:before{content:"\e1c1"}.material-icons.screen_share:before{content:"\e0e2"}.material-icons.sd:before{content:"\e9dd"}.material-icons.sd_card:before{content:"\e623"}.material-icons.sd_storage:before{content:"\e1c2"}.material-icons.search:before{content:"\e8b6"}.material-icons.security:before{content:"\e32a"}.material-icons.segment:before{content:"\e94b"}.material-icons.select_all:before{content:"\e162"}.material-icons.send:before{content:"\e163"}.material-icons.send_and_archive:before{content:"\ea0c"}.material-icons.sentiment_dissatisfied:before{content:"\e811"}.material-icons.sentiment_neutral:before{content:"\e812"}.material-icons.sentiment_satisfied:before{content:"\e813"}.material-icons.sentiment_satisfied_alt:before{content:"\e0ed"}.material-icons.sentiment_very_dissatisfied:before{content:"\e814"}.material-icons.sentiment_very_satisfied:before{content:"\e815"}.material-icons.settings:before{content:"\e8b8"}.material-icons.settings_applications:before{content:"\e8b9"}.material-icons.settings_backup_restore:before{content:"\e8ba"}.material-icons.settings_bluetooth:before{content:"\e8bb"}.material-icons.settings_brightness:before{content:"\e8bd"}.material-icons.settings_cell:before{content:"\e8bc"}.material-icons.settings_display:before{content:"\e8bd"}.material-icons.settings_ethernet:before{content:"\e8be"}.material-icons.settings_input_antenna:before{content:"\e8bf"}.material-icons.settings_input_component:before{content:"\e8c0"}.material-icons.settings_input_composite:before{content:"\e8c1"}.material-icons.settings_input_hdmi:before{content:"\e8c2"}.material-icons.settings_input_svideo:before{content:"\e8c3"}.material-icons.settings_overscan:before{content:"\e8c4"}.material-icons.settings_phone:before{content:"\e8c5"}.material-icons.settings_power:before{content:"\e8c6"}.material-icons.settings_remote:before{content:"\e8c7"}.material-icons.settings_system_daydream:before{content:"\e1c3"}.material-icons.settings_voice:before{content:"\e8c8"}.material-icons.share:before{content:"\e80d"}.material-icons.shield:before{content:"\e9e0"}.material-icons.shop:before{content:"\e8c9"}.material-icons.shop_two:before{content:"\e8ca"}.material-icons.shopping_basket:before{content:"\e8cb"}.material-icons.shopping_cart:before{content:"\e8cc"}.material-icons.short_text:before{content:"\e261"}.material-icons.show_chart:before{content:"\e6e1"}.material-icons.shuffle:before{content:"\e043"}.material-icons.shuffle_on:before{content:"\e9e1"}.material-icons.shutter_speed:before{content:"\e43d"}.material-icons.signal_cellular_4_bar:before{content:"\e1c8"}.material-icons.signal_cellular_alt:before{content:"\e202"}.material-icons.signal_cellular_connected_no_internet_4_bar:before{content:"\e1cd"}.material-icons.signal_cellular_no_sim:before{content:"\e1ce"}.material-icons.signal_cellular_null:before{content:"\e1cf"}.material-icons.signal_cellular_off:before{content:"\e1d0"}.material-icons.signal_wifi_4_bar:before{content:"\e1d8"}.material-icons.signal_wifi_4_bar_lock:before{content:"\e1d9"}.material-icons.signal_wifi_off:before{content:"\e1da"}.material-icons.sim_card:before{content:"\e32b"}.material-icons.sim_card_alert:before{content:"\e624"}.material-icons.single_bed:before{content:"\ea48"}.material-icons.skip_next:before{content:"\e044"}.material-icons.skip_previous:before{content:"\e045"}.material-icons.slideshow:before{content:"\e41b"}.material-icons.slow_motion_video:before{content:"\e068"}.material-icons.smartphone:before{content:"\e32c"}.material-icons.smoke_free:before{content:"\eb4a"}.material-icons.smoking_rooms:before{content:"\eb4b"}.material-icons.sms:before{content:"\e625"}.material-icons.sms_failed:before{content:"\e626"}.material-icons.snooze:before{content:"\e046"}.material-icons.sort:before{content:"\e164"}.material-icons.sort_by_alpha:before{content:"\e053"}.material-icons.spa:before{content:"\eb4c"}.material-icons.space_bar:before{content:"\e256"}.material-icons.speaker:before{content:"\e32d"}.material-icons.speaker_group:before{content:"\e32e"}.material-icons.speaker_notes:before{content:"\e8cd"}.material-icons.speaker_notes_off:before{content:"\e92a"}.material-icons.speaker_phone:before{content:"\e0d2"}.material-icons.speed:before{content:"\e9e4"}.material-icons.spellcheck:before{content:"\e8ce"}.material-icons.sports:before{content:"\ea30"}.material-icons.sports_baseball:before{content:"\ea51"}.material-icons.sports_basketball:before{content:"\ea26"}.material-icons.sports_cricket:before{content:"\ea27"}.material-icons.sports_esports:before{content:"\ea28"}.material-icons.sports_football:before{content:"\ea29"}.material-icons.sports_golf:before{content:"\ea2a"}.material-icons.sports_handball:before{content:"\ea33"}.material-icons.sports_hockey:before{content:"\ea2b"}.material-icons.sports_kabaddi:before{content:"\ea34"}.material-icons.sports_mma:before{content:"\ea2c"}.material-icons.sports_motorsports:before{content:"\ea2d"}.material-icons.sports_rugby:before{content:"\ea2e"}.material-icons.sports_soccer:before{content:"\ea2f"}.material-icons.sports_tennis:before{content:"\ea32"}.material-icons.sports_volleyball:before{content:"\ea31"}.material-icons.square_foot:before{content:"\ea49"}.material-icons.stacked_bar_chart:before{content:"\e9e6"}.material-icons.star:before{content:"\e838"}.material-icons.star_border:before{content:"\e83a"}.material-icons.star_half:before{content:"\e839"}.material-icons.star_outline:before{content:"\e83a"}.material-icons.stars:before{content:"\e8d0"}.material-icons.stay_current_landscape:before{content:"\e0d3"}.material-icons.stay_current_portrait:before{content:"\e0d4"}.material-icons.stay_primary_landscape:before{content:"\e0d5"}.material-icons.stay_primary_portrait:before{content:"\e0d6"}.material-icons.stop:before{content:"\e047"}.material-icons.stop_screen_share:before{content:"\e0e3"}.material-icons.storage:before{content:"\e1db"}.material-icons.store:before{content:"\e8d1"}.material-icons.store_mall_directory:before{content:"\e563"}.material-icons.storefront:before{content:"\ea12"}.material-icons.straighten:before{content:"\e41c"}.material-icons.stream:before{content:"\e9e9"}.material-icons.streetview:before{content:"\e56e"}.material-icons.strikethrough_s:before{content:"\e257"}.material-icons.style:before{content:"\e41d"}.material-icons.subdirectory_arrow_left:before{content:"\e5d9"}.material-icons.subdirectory_arrow_right:before{content:"\e5da"}.material-icons.subject:before{content:"\e8d2"}.material-icons.subscriptions:before{content:"\e064"}.material-icons.subtitles:before{content:"\e048"}.material-icons.subway:before{content:"\e56f"}.material-icons.supervised_user_circle:before{content:"\e939"}.material-icons.supervisor_account:before{content:"\e8d3"}.material-icons.surround_sound:before{content:"\e049"}.material-icons.swap_calls:before{content:"\e0d7"}.material-icons.swap_horiz:before{content:"\e8d4"}.material-icons.swap_horizontal_circle:before{content:"\e933"}.material-icons.swap_vert:before{content:"\e8d5"}.material-icons.swap_vert_circle:before,.material-icons.swap_vertical_circle:before{content:"\e8d6"}.material-icons.swipe:before{content:"\e9ec"}.material-icons.switch_account:before{content:"\e9ed"}.material-icons.switch_camera:before{content:"\e41e"}.material-icons.switch_video:before{content:"\e41f"}.material-icons.sync:before{content:"\e627"}.material-icons.sync_alt:before{content:"\ea18"}.material-icons.sync_disabled:before{content:"\e628"}.material-icons.sync_problem:before{content:"\e629"}.material-icons.system_update:before{content:"\e62a"}.material-icons.system_update_alt:before,.material-icons.system_update_tv:before{content:"\e8d7"}.material-icons.tab:before{content:"\e8d8"}.material-icons.tab_unselected:before{content:"\e8d9"}.material-icons.table_chart:before{content:"\e265"}.material-icons.tablet:before{content:"\e32f"}.material-icons.tablet_android:before{content:"\e330"}.material-icons.tablet_mac:before{content:"\e331"}.material-icons.tag:before{content:"\e9ef"}.material-icons.tag_faces:before{content:"\e420"}.material-icons.takeout_dining:before{content:"\ea74"}.material-icons.tap_and_play:before{content:"\e62b"}.material-icons.terrain:before{content:"\e564"}.material-icons.text_fields:before{content:"\e262"}.material-icons.text_format:before{content:"\e165"}.material-icons.text_rotate_up:before{content:"\e93a"}.material-icons.text_rotate_vertical:before{content:"\e93b"}.material-icons.text_rotation_angledown:before{content:"\e93c"}.material-icons.text_rotation_angleup:before{content:"\e93d"}.material-icons.text_rotation_down:before{content:"\e93e"}.material-icons.text_rotation_none:before{content:"\e93f"}.material-icons.textsms:before{content:"\e0d8"}.material-icons.texture:before{content:"\e421"}.material-icons.theater_comedy:before{content:"\ea66"}.material-icons.theaters:before{content:"\e8da"}.material-icons.thumb_down:before{content:"\e8db"}.material-icons.thumb_down_alt:before{content:"\e816"}.material-icons.thumb_down_off_alt:before{content:"\e9f2"}.material-icons.thumb_up:before{content:"\e8dc"}.material-icons.thumb_up_alt:before{content:"\e817"}.material-icons.thumb_up_off_alt:before{content:"\e9f3"}.material-icons.thumbs_up_down:before{content:"\e8dd"}.material-icons.time_to_leave:before{content:"\e62c"}.material-icons.timelapse:before{content:"\e422"}.material-icons.timeline:before{content:"\e922"}.material-icons.timer:before{content:"\e425"}.material-icons.timer_10:before{content:"\e423"}.material-icons.timer_3:before{content:"\e424"}.material-icons.timer_off:before{content:"\e426"}.material-icons.title:before{content:"\e264"}.material-icons.toc:before{content:"\e8de"}.material-icons.today:before{content:"\e8df"}.material-icons.toggle_off:before{content:"\e9f5"}.material-icons.toggle_on:before{content:"\e9f6"}.material-icons.toll:before{content:"\e8e0"}.material-icons.tonality:before{content:"\e427"}.material-icons.touch_app:before{content:"\e913"}.material-icons.toys:before{content:"\e332"}.material-icons.track_changes:before{content:"\e8e1"}.material-icons.traffic:before{content:"\e565"}.material-icons.train:before{content:"\e570"}.material-icons.tram:before{content:"\e571"}.material-icons.transfer_within_a_station:before{content:"\e572"}.material-icons.transform:before{content:"\e428"}.material-icons.transit_enterexit:before{content:"\e579"}.material-icons.translate:before{content:"\e8e2"}.material-icons.trending_down:before{content:"\e8e3"}.material-icons.trending_flat:before,.material-icons.trending_neutral:before{content:"\e8e4"}.material-icons.trending_up:before{content:"\e8e5"}.material-icons.trip_origin:before{content:"\e57b"}.material-icons.tune:before{content:"\e429"}.material-icons.turned_in:before{content:"\e8e6"}.material-icons.turned_in_not:before{content:"\e8e7"}.material-icons.tv:before{content:"\e333"}.material-icons.tv_off:before{content:"\e647"}.material-icons.two_wheeler:before{content:"\e9f9"}.material-icons.unarchive:before{content:"\e169"}.material-icons.undo:before{content:"\e166"}.material-icons.unfold_less:before{content:"\e5d6"}.material-icons.unfold_more:before{content:"\e5d7"}.material-icons.unsubscribe:before{content:"\e0eb"}.material-icons.update:before{content:"\e923"}.material-icons.upload_file:before{content:"\e9fc"}.material-icons.usb:before{content:"\e1e0"}.material-icons.verified_user:before{content:"\e8e8"}.material-icons.vertical_align_bottom:before{content:"\e258"}.material-icons.vertical_align_center:before{content:"\e259"}.material-icons.vertical_align_top:before{content:"\e25a"}.material-icons.vertical_split:before{content:"\e949"}.material-icons.vibration:before{content:"\e62d"}.material-icons.video_call:before{content:"\e070"}.material-icons.video_collection:before{content:"\e04a"}.material-icons.video_label:before{content:"\e071"}.material-icons.video_library:before{content:"\e04a"}.material-icons.videocam:before{content:"\e04b"}.material-icons.videocam_off:before{content:"\e04c"}.material-icons.videogame_asset:before{content:"\e338"}.material-icons.view_agenda:before{content:"\e8e9"}.material-icons.view_array:before{content:"\e8ea"}.material-icons.view_carousel:before{content:"\e8eb"}.material-icons.view_column:before{content:"\e8ec"}.material-icons.view_comfortable:before,.material-icons.view_comfy:before{content:"\e42a"}.material-icons.view_compact:before{content:"\e42b"}.material-icons.view_day:before{content:"\e8ed"}.material-icons.view_headline:before{content:"\e8ee"}.material-icons.view_in_ar:before{content:"\e9fe"}.material-icons.view_list:before{content:"\e8ef"}.material-icons.view_module:before{content:"\e8f0"}.material-icons.view_quilt:before{content:"\e8f1"}.material-icons.view_stream:before{content:"\e8f2"}.material-icons.view_week:before{content:"\e8f3"}.material-icons.vignette:before{content:"\e435"}.material-icons.visibility:before{content:"\e8f4"}.material-icons.visibility_off:before{content:"\e8f5"}.material-icons.voice_chat:before{content:"\e62e"}.material-icons.voice_over_off:before{content:"\e94a"}.material-icons.voicemail:before{content:"\e0d9"}.material-icons.volume_down:before{content:"\e04d"}.material-icons.volume_mute:before{content:"\e04e"}.material-icons.volume_off:before{content:"\e04f"}.material-icons.volume_up:before{content:"\e050"}.material-icons.volunteer_activism:before{content:"\ea70"}.material-icons.vpn_key:before{content:"\e0da"}.material-icons.vpn_lock:before{content:"\e62f"}.material-icons.wallet_giftcard:before{content:"\e8f6"}.material-icons.wallet_membership:before{content:"\e8f7"}.material-icons.wallet_travel:before{content:"\e8f8"}.material-icons.wallpaper:before{content:"\e1bc"}.material-icons.warning:before{content:"\e002"}.material-icons.watch:before{content:"\e334"}.material-icons.watch_later:before{content:"\e924"}.material-icons.waterfall_chart:before{content:"\ea00"}.material-icons.waves:before{content:"\e176"}.material-icons.wb_auto:before{content:"\e42c"}.material-icons.wb_cloudy:before{content:"\e42d"}.material-icons.wb_incandescent:before{content:"\e42e"}.material-icons.wb_iridescent:before{content:"\e436"}.material-icons.wb_shade:before{content:"\ea01"}.material-icons.wb_sunny:before{content:"\e430"}.material-icons.wb_twighlight:before{content:"\ea02"}.material-icons.wc:before{content:"\e63d"}.material-icons.web:before{content:"\e051"}.material-icons.web_asset:before{content:"\e069"}.material-icons.weekend:before{content:"\e16b"}.material-icons.whatshot:before{content:"\e80e"}.material-icons.where_to_vote:before{content:"\e177"}.material-icons.widgets:before{content:"\e1bd"}.material-icons.wifi:before{content:"\e63e"}.material-icons.wifi_lock:before{content:"\e1e1"}.material-icons.wifi_off:before{content:"\e648"}.material-icons.wifi_tethering:before{content:"\e1e2"}.material-icons.work:before{content:"\e8f9"}.material-icons.work_off:before{content:"\e942"}.material-icons.work_outline:before{content:"\e943"}.material-icons.workspaces_filled:before{content:"\ea0d"}.material-icons.workspaces_outline:before{content:"\ea0f"}.material-icons.wrap_text:before{content:"\e25b"}.material-icons.youtube_searched_for:before{content:"\e8fa"}.material-icons.zoom_in:before{content:"\e8ff"}.material-icons.zoom_out:before{content:"\e900"}.material-icons.zoom_out_map:before{content:"\e56b"}#app{font-family:Fira Sans,sans-serif!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:0;display:inline!important}.app-background,.theme--light.application{background:rgba(0,0,0,.5)!important}@font-face{font-family:Fira Sans;font-style:normal;font-weight:400;src:local("Fira Sans Regular"),local("FiraSans-Regular"),url(fonts/fira-sans-v9-latin-regular.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-regular.woff) format("woff")}@font-face{font-family:Fira Sans;font-style:italic;font-weight:400;src:local("Fira Sans Italic"),local("FiraSans-Italic"),url(fonts/fira-sans-v9-latin-italic.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-italic.woff) format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-weight:700;src:local("Fira Sans Bold"),local("FiraSans-Bold"),url(fonts/fira-sans-v9-latin-700.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-700.woff) format("woff")}*{font-family:Fira Sans,"sans-serif"}.display-1,.display-2,.headline,.subheading,.title{font-family:Alegreya Sans,"sans-serif"!important}.application{display:flex}.application a{cursor:pointer}.application--is-rtl{direction:rtl}.application--wrap{flex:1 1 auto;backface-visibility:hidden;display:flex;flex-direction:column;min-height:100vh;max-width:100%;position:relative}.theme--light.application{background:#fafafa;color:rgba(0,0,0,.87)}.theme--light.application .text--primary{color:rgba(0,0,0,.87)!important}.theme--light.application .text--secondary{color:rgba(0,0,0,.54)!important}.theme--light.application .text--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.application{background:#303030;color:#fff}.theme--dark.application .text--primary{color:#fff!important}.theme--dark.application .text--secondary{color:hsla(0,0%,100%,.7)!important}.theme--dark.application .text--disabled{color:hsla(0,0%,100%,.5)!important}@-moz-document url-prefix(){@media print{.application,.application--wrap{display:block}}}.theme--light.v-card{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-card{background-color:#424242;border-color:#424242;color:#fff}.v-card{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);text-decoration:none}.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-card--hover{cursor:pointer;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:box-shadow}.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;padding:16px}.v-card__title--primary{padding-top:24px}.v-card__text{padding:16px;width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions .v-btn,.v-card__actions>*{margin:0}.v-card__actions .v-btn+.v-btn{margin-left:8px}.theme--light.v-sheet{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-sheet{background-color:#424242;border-color:#424242;color:#fff}.v-sheet{display:block;border-radius:2px;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-sheet--tile{border-radius:0}.container{flex:1 1 100%;margin:auto;padding:24px;width:100%}@media only screen and (min-width:960px){.container{max-width:900px}}@media only screen and (min-width:1264px){.container{max-width:1185px}}@media only screen and (min-width:1904px){.container{max-width:1785px}}@media only screen and (max-width:959px){.container{padding:16px}}.container.fluid{max-width:100%}.container.fill-height{align-items:center;display:flex}.container.fill-height>.layout{height:100%;flex:1 1 auto}.container.grid-list-xs .layout .flex{padding:1px}.container.grid-list-xs .layout:only-child{margin:-1px}.container.grid-list-xs .layout:not(:only-child){margin:auto -1px}.container.grid-list-xs :not(:only-child) .layout:first-child{margin-top:-1px}.container.grid-list-xs :not(:only-child) .layout:last-child{margin-bottom:-1px}.container.grid-list-sm .layout .flex{padding:2px}.container.grid-list-sm .layout:only-child{margin:-2px}.container.grid-list-sm .layout:not(:only-child){margin:auto -2px}.container.grid-list-sm :not(:only-child) .layout:first-child{margin-top:-2px}.container.grid-list-sm :not(:only-child) .layout:last-child{margin-bottom:-2px}.container.grid-list-md .layout .flex{padding:4px}.container.grid-list-md .layout:only-child{margin:-4px}.container.grid-list-md .layout:not(:only-child){margin:auto -4px}.container.grid-list-md :not(:only-child) .layout:first-child{margin-top:-4px}.container.grid-list-md :not(:only-child) .layout:last-child{margin-bottom:-4px}.container.grid-list-lg .layout .flex{padding:8px}.container.grid-list-lg .layout:only-child{margin:-8px}.container.grid-list-lg .layout:not(:only-child){margin:auto -8px}.container.grid-list-lg :not(:only-child) .layout:first-child{margin-top:-8px}.container.grid-list-lg :not(:only-child) .layout:last-child{margin-bottom:-8px}.container.grid-list-xl .layout .flex{padding:12px}.container.grid-list-xl .layout:only-child{margin:-12px}.container.grid-list-xl .layout:not(:only-child){margin:auto -12px}.container.grid-list-xl :not(:only-child) .layout:first-child{margin-top:-12px}.container.grid-list-xl :not(:only-child) .layout:last-child{margin-bottom:-12px}.layout{display:flex;flex:1 1 auto;flex-wrap:nowrap;min-width:0}.layout.row{flex-direction:row}.layout.row.reverse{flex-direction:row-reverse}.layout.column{flex-direction:column}.layout.column.reverse{flex-direction:column-reverse}.layout.column>.flex{max-width:100%}.layout.wrap{flex-wrap:wrap}@media (min-width:0){.flex.xs1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xs1{order:1}.flex.xs2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xs2{order:2}.flex.xs3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xs3{order:3}.flex.xs4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xs4{order:4}.flex.xs5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xs5{order:5}.flex.xs6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xs6{order:6}.flex.xs7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xs7{order:7}.flex.xs8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xs8{order:8}.flex.xs9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xs9{order:9}.flex.xs10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xs10{order:10}.flex.xs11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xs11{order:11}.flex.xs12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xs12{order:12}.flex.offset-xs0{margin-left:0}.flex.offset-xs1{margin-left:8.333333333333332%}.flex.offset-xs2{margin-left:16.666666666666664%}.flex.offset-xs3{margin-left:25%}.flex.offset-xs4{margin-left:33.33333333333333%}.flex.offset-xs5{margin-left:41.66666666666667%}.flex.offset-xs6{margin-left:50%}.flex.offset-xs7{margin-left:58.333333333333336%}.flex.offset-xs8{margin-left:66.66666666666666%}.flex.offset-xs9{margin-left:75%}.flex.offset-xs10{margin-left:83.33333333333334%}.flex.offset-xs11{margin-left:91.66666666666666%}.flex.offset-xs12{margin-left:100%}}@media (min-width:600px){.flex.sm1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-sm1{order:1}.flex.sm2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-sm2{order:2}.flex.sm3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-sm3{order:3}.flex.sm4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-sm4{order:4}.flex.sm5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-sm5{order:5}.flex.sm6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-sm6{order:6}.flex.sm7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-sm7{order:7}.flex.sm8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-sm8{order:8}.flex.sm9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-sm9{order:9}.flex.sm10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-sm10{order:10}.flex.sm11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-sm11{order:11}.flex.sm12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-sm12{order:12}.flex.offset-sm0{margin-left:0}.flex.offset-sm1{margin-left:8.333333333333332%}.flex.offset-sm2{margin-left:16.666666666666664%}.flex.offset-sm3{margin-left:25%}.flex.offset-sm4{margin-left:33.33333333333333%}.flex.offset-sm5{margin-left:41.66666666666667%}.flex.offset-sm6{margin-left:50%}.flex.offset-sm7{margin-left:58.333333333333336%}.flex.offset-sm8{margin-left:66.66666666666666%}.flex.offset-sm9{margin-left:75%}.flex.offset-sm10{margin-left:83.33333333333334%}.flex.offset-sm11{margin-left:91.66666666666666%}.flex.offset-sm12{margin-left:100%}}@media (min-width:960px){.flex.md1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-md1{order:1}.flex.md2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-md2{order:2}.flex.md3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-md3{order:3}.flex.md4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-md4{order:4}.flex.md5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-md5{order:5}.flex.md6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-md6{order:6}.flex.md7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-md7{order:7}.flex.md8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-md8{order:8}.flex.md9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-md9{order:9}.flex.md10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-md10{order:10}.flex.md11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-md11{order:11}.flex.md12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-md12{order:12}.flex.offset-md0{margin-left:0}.flex.offset-md1{margin-left:8.333333333333332%}.flex.offset-md2{margin-left:16.666666666666664%}.flex.offset-md3{margin-left:25%}.flex.offset-md4{margin-left:33.33333333333333%}.flex.offset-md5{margin-left:41.66666666666667%}.flex.offset-md6{margin-left:50%}.flex.offset-md7{margin-left:58.333333333333336%}.flex.offset-md8{margin-left:66.66666666666666%}.flex.offset-md9{margin-left:75%}.flex.offset-md10{margin-left:83.33333333333334%}.flex.offset-md11{margin-left:91.66666666666666%}.flex.offset-md12{margin-left:100%}}@media (min-width:1264px){.flex.lg1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-lg1{order:1}.flex.lg2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-lg2{order:2}.flex.lg3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-lg3{order:3}.flex.lg4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-lg4{order:4}.flex.lg5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-lg5{order:5}.flex.lg6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-lg6{order:6}.flex.lg7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-lg7{order:7}.flex.lg8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-lg8{order:8}.flex.lg9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-lg9{order:9}.flex.lg10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-lg10{order:10}.flex.lg11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-lg11{order:11}.flex.lg12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-lg12{order:12}.flex.offset-lg0{margin-left:0}.flex.offset-lg1{margin-left:8.333333333333332%}.flex.offset-lg2{margin-left:16.666666666666664%}.flex.offset-lg3{margin-left:25%}.flex.offset-lg4{margin-left:33.33333333333333%}.flex.offset-lg5{margin-left:41.66666666666667%}.flex.offset-lg6{margin-left:50%}.flex.offset-lg7{margin-left:58.333333333333336%}.flex.offset-lg8{margin-left:66.66666666666666%}.flex.offset-lg9{margin-left:75%}.flex.offset-lg10{margin-left:83.33333333333334%}.flex.offset-lg11{margin-left:91.66666666666666%}.flex.offset-lg12{margin-left:100%}}@media (min-width:1904px){.flex.xl1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xl1{order:1}.flex.xl2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xl2{order:2}.flex.xl3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xl3{order:3}.flex.xl4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xl4{order:4}.flex.xl5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xl5{order:5}.flex.xl6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xl6{order:6}.flex.xl7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xl7{order:7}.flex.xl8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xl8{order:8}.flex.xl9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xl9{order:9}.flex.xl10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xl10{order:10}.flex.xl11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xl11{order:11}.flex.xl12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xl12{order:12}.flex.offset-xl0{margin-left:0}.flex.offset-xl1{margin-left:8.333333333333332%}.flex.offset-xl2{margin-left:16.666666666666664%}.flex.offset-xl3{margin-left:25%}.flex.offset-xl4{margin-left:33.33333333333333%}.flex.offset-xl5{margin-left:41.66666666666667%}.flex.offset-xl6{margin-left:50%}.flex.offset-xl7{margin-left:58.333333333333336%}.flex.offset-xl8{margin-left:66.66666666666666%}.flex.offset-xl9{margin-left:75%}.flex.offset-xl10{margin-left:83.33333333333334%}.flex.offset-xl11{margin-left:91.66666666666666%}.flex.offset-xl12{margin-left:100%}}.child-flex>*,.flex{flex:1 1 auto;max-width:100%}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-baseline{align-items:baseline}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-space-between{align-content:space-between}.align-content-space-around{align-content:space-around}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-space-around{justify-content:space-around}.justify-space-between{justify-content:space-between}.justify-self-start{justify-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-center{justify-self:center}.justify-self-baseline{justify-self:baseline}.grow,.spacer{flex-grow:1!important}.grow{flex-shrink:0!important}.shrink{flex-grow:0!important;flex-shrink:1!important}.scroll-y{overflow-y:auto}.fill-height{height:100%}.hide-overflow{overflow:hidden!important}.show-overflow{overflow:visible!important}.ellipsis,.no-wrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-flex>*,.d-inline-flex>*{flex:1 1 auto!important}.d-block{display:block!important}.d-inline-block{display:inline-block!important}.d-inline{display:inline!important}.d-none{display:none!important}.v-content{transition:none;display:flex;flex:1 0 auto;max-width:100%}.v-content[data-booted=true]{transition:.2s cubic-bezier(.4,0,.2,1)}.v-content__wrap{flex:1 1 auto;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-content{display:block}}}.theme--light.v-table{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-table thead tr:first-child{border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table thead th{color:rgba(0,0,0,.54)}.theme--light.v-table tbody tr:not(:last-child){border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table tbody tr[active]{background:#f5f5f5}.theme--light.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#eee}.theme--light.v-table tfoot tr{border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-table{background-color:#424242;color:#fff}.theme--dark.v-table thead tr:first-child{border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table thead th{color:hsla(0,0%,100%,.7)}.theme--dark.v-table tbody tr:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table tbody tr[active]{background:#505050}.theme--dark.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#616161}.theme--dark.v-table tfoot tr{border-top:1px solid hsla(0,0%,100%,.12)}.v-table__overflow{width:100%;overflow-x:auto;overflow-y:hidden}table.v-table{border-radius:2px;border-collapse:collapse;border-spacing:0;width:100%;max-width:100%}table.v-table tbody td:first-child,table.v-table tbody td:not(:first-child),table.v-table tbody th:first-child,table.v-table tbody th:not(:first-child),table.v-table thead td:first-child,table.v-table thead td:not(:first-child),table.v-table thead th:first-child,table.v-table thead th:not(:first-child){padding:0 24px}table.v-table thead tr{height:56px}table.v-table thead th{font-weight:500;font-size:12px;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;user-select:none}table.v-table thead th.sortable{pointer-events:auto}table.v-table thead th>div{width:100%}table.v-table tbody tr{transition:background .3s cubic-bezier(.25,.8,.5,1);will-change:background}table.v-table tbody td,table.v-table tbody th{height:48px}table.v-table tbody td{font-weight:400;font-size:13px}table.v-table .input-group--selection-controls{padding:0}table.v-table .input-group--selection-controls .input-group__details{display:none}table.v-table .input-group--selection-controls.checkbox .v-icon{left:50%;transform:translateX(-50%)}table.v-table .input-group--selection-controls.checkbox .input-group--selection-controls__ripple{left:50%;transform:translate(-50%,-50%)}table.v-table tfoot tr{height:48px}table.v-table tfoot tr td{padding:0 24px}.theme--light.v-datatable thead th.column.sortable .v-icon{color:rgba(0,0,0,.38)}.theme--light.v-datatable thead th.column.sortable.active,.theme--light.v-datatable thead th.column.sortable.active .v-icon,.theme--light.v-datatable thead th.column.sortable:hover{color:rgba(0,0,0,.87)}.theme--light.v-datatable .v-datatable__actions{background-color:#fff;color:rgba(0,0,0,.54);border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-datatable thead th.column.sortable .v-icon{color:hsla(0,0%,100%,.5)}.theme--dark.v-datatable thead th.column.sortable.active,.theme--dark.v-datatable thead th.column.sortable.active .v-icon,.theme--dark.v-datatable thead th.column.sortable:hover{color:#fff}.theme--dark.v-datatable .v-datatable__actions{background-color:#424242;color:hsla(0,0%,100%,.7);border-top:1px solid hsla(0,0%,100%,.12)}.v-datatable .v-input--selection-controls{margin:0;padding:0}.v-datatable thead th.column.sortable{cursor:pointer;outline:0}.v-datatable thead th.column.sortable .v-icon{font-size:16px;display:inline-block;opacity:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-datatable thead th.column.sortable:focus .v-icon,.v-datatable thead th.column.sortable:hover .v-icon{opacity:.6}.v-datatable thead th.column.sortable.active{transform:none}.v-datatable thead th.column.sortable.active .v-icon{opacity:1}.v-datatable thead th.column.sortable.active.desc .v-icon{transform:rotate(-180deg)}.v-datatable__actions{display:flex;justify-content:flex-end;align-items:center;font-size:12px;flex-wrap:wrap-reverse}.v-datatable__actions .v-btn{color:inherit}.v-datatable__actions .v-btn:last-of-type{margin-left:14px}.v-datatable__actions__range-controls{display:flex;align-items:center;min-height:48px}.v-datatable__actions__pagination{display:block;text-align:center;margin:0 32px 0 24px}.v-datatable__actions__select{display:flex;align-items:center;justify-content:flex-end;margin-right:14px;white-space:nowrap}.v-datatable__actions__select .v-select{flex:0 1 0;margin:13px 0 13px 34px;padding:0;position:static}.v-datatable__actions__select .v-select__selections{flex-wrap:nowrap}.v-datatable__actions__select .v-select__selections .v-select__selection--comma{font-size:12px}.v-datatable__progress,.v-datatable__progress td,.v-datatable__progress th,.v-datatable__progress tr{height:auto!important}.v-datatable__progress th{padding:0!important}.v-datatable__progress th .v-progress-linear{margin:0}.v-datatable__expand-row{border:none!important}.v-datatable__expand-col{padding:0!important;height:0!important}.v-datatable__expand-col--expanded{border-bottom:1px solid rgba(0,0,0,.12)}.v-datatable__expand-content{transition:height .3s cubic-bezier(.25,.8,.5,1)}.v-datatable__expand-content>.card{border-radius:0;box-shadow:none}.v-progress-linear{background:transparent;margin:1rem 0;overflow:hidden;width:100%;position:relative}.v-progress-linear__bar{width:100%;position:relative;z-index:1}.v-progress-linear__bar,.v-progress-linear__bar__determinate{height:inherit;transition:.2s cubic-bezier(.4,0,.6,1)}.v-progress-linear__bar__indeterminate .long,.v-progress-linear__bar__indeterminate .short{height:inherit;position:absolute;left:0;top:0;bottom:0;will-change:left,right;width:auto;background-color:inherit}.v-progress-linear__bar__indeterminate--active .long{animation:indeterminate;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__bar__indeterminate--active .short{animation:indeterminate-short;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__background{position:absolute;top:0;left:0;bottom:0;transition:.3s ease-in}.v-progress-linear__content{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .long{animation:query;animation-duration:2s;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .short{animation:query-short;animation-duration:2s;animation-iteration-count:infinite}@-moz-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-webkit-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-o-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-moz-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-o-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-moz-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-webkit-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-o-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-moz-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-webkit-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-o-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}.v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#f5f5f5}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#212121}.v-btn{align-items:center;border-radius:2px;display:inline-flex;height:36px;flex:0 0 auto;font-size:14px;font-weight:500;justify-content:center;margin:6px 8px;min-width:88px;outline:0;text-transform:uppercase;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1),color 1ms;position:relative;vertical-align:middle;user-select:none}.v-btn:before{border-radius:inherit;color:inherit;content:"";position:absolute;left:0;top:0;height:100%;opacity:.12;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-btn{padding:0 16px}.v-btn--active,.v-btn:focus,.v-btn:hover{position:relative}.v-btn--active:before,.v-btn:focus:before,.v-btn:hover:before{background-color:currentColor}@media (hover:none){.v-btn:hover:before{background-color:transparent}}.v-btn__content{align-items:center;border-radius:inherit;color:inherit;display:flex;flex:1 0 auto;justify-content:center;margin:0 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;width:inherit}.v-btn--small{font-size:13px;height:28px;padding:0 8px}.v-btn--large{font-size:15px;height:44px;padding:0 32px}.v-btn .v-btn__content .v-icon{color:inherit}.v-btn:not(.v-btn--depressed):not(.v-btn--flat){will-change:box-shadow;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--icon{background:transparent;box-shadow:none!important;border-radius:50%;justify-content:center;min-width:0;width:36px}.v-btn--icon.v-btn--small{width:28px}.v-btn--icon.v-btn--large{width:44px}.v-btn--floating,.v-btn--icon:before{border-radius:50%}.v-btn--floating{min-width:0;height:56px;width:56px;padding:0}.v-btn--floating.v-btn--absolute,.v-btn--floating.v-btn--fixed{z-index:4}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--floating .v-btn__content{flex:1 1 auto;margin:0;height:100%}.v-btn--floating:after{border-radius:50%}.v-btn--floating .v-btn__content>:not(:only-child){transition:.3s cubic-bezier(.25,.8,.5,1)}.v-btn--floating .v-btn__content>:not(:only-child):first-child{opacity:1}.v-btn--floating .v-btn__content>:not(:only-child):last-child{opacity:0;transform:rotate(-45deg)}.v-btn--floating .v-btn__content>:not(:only-child):first-child,.v-btn--floating .v-btn__content>:not(:only-child):last-child{-webkit-backface-visibility:hidden;position:absolute;left:0;top:0}.v-btn--floating.v-btn--active .v-btn__content>:not(:only-child):first-child{opacity:0;transform:rotate(45deg)}.v-btn--floating.v-btn--active .v-btn__content>:not(:only-child):last-child{opacity:1;transform:rotate(0)}.v-btn--floating .v-icon{height:inherit;width:inherit}.v-btn--floating.v-btn--small{height:40px;width:40px}.v-btn--floating.v-btn--small .v-icon{font-size:18px}.v-btn--floating.v-btn--large{height:72px;width:72px}.v-btn--floating.v-btn--large .v-icon{font-size:30px}.v-btn--reverse .v-btn__content{flex-direction:row-reverse}.v-btn--reverse.v-btn--column .v-btn__content{flex-direction:column-reverse}.v-btn--absolute,.v-btn--fixed{margin:0}.v-btn.v-btn--absolute{position:absolute}.v-btn.v-btn--fixed{position:fixed}.v-btn--top:not(.v-btn--absolute){top:16px}.v-btn--top.v-btn--absolute{top:-28px}.v-btn--top.v-btn--absolute.v-btn--small{top:-20px}.v-btn--top.v-btn--absolute.v-btn--large{top:-36px}.v-btn--bottom:not(.v-btn--absolute){bottom:16px}.v-btn--bottom.v-btn--absolute{bottom:-28px}.v-btn--bottom.v-btn--absolute.v-btn--small{bottom:-20px}.v-btn--bottom.v-btn--absolute.v-btn--large{bottom:-36px}.v-btn--left{left:16px}.v-btn--right{right:16px}.v-btn.v-btn--disabled{box-shadow:none!important;pointer-events:none}.v-btn:not(.v-btn--disabled):not(.v-btn--floating):not(.v-btn--icon) .v-btn__content .v-icon{transition:none}.v-btn--icon{padding:0}.v-btn--loader{pointer-events:none}.v-btn--loader .v-btn__content{opacity:0}.v-btn__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__loading .v-icon--left{margin-right:1rem;line-height:inherit}.v-btn__loading .v-icon--right{margin-left:1rem;line-height:inherit}.v-btn.v-btn--outline{border:1px solid currentColor;background:transparent!important;box-shadow:none}.v-btn.v-btn--outline:hover{box-shadow:none}.v-btn--block{display:flex;flex:1;margin:6px 0;width:100%}.v-btn--round,.v-btn--round:after{border-radius:28px}.v-btn:not(.v-btn--outline).accent,.v-btn:not(.v-btn--outline).error,.v-btn:not(.v-btn--outline).info,.v-btn:not(.v-btn--outline).primary,.v-btn:not(.v-btn--outline).secondary,.v-btn:not(.v-btn--outline).success,.v-btn:not(.v-btn--outline).warning{color:#fff}.v-progress-circular{position:relative;display:inline-flex;vertical-align:middle}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}.v-progress-circular__info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@-moz-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-webkit-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-o-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-moz-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@-webkit-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@-o-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}.theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon{align-items:center;display:inline-flex;font-feature-settings:"liga";font-size:24px;justify-content:center;line-height:1;transition:.3s cubic-bezier(.25,.8,.5,1);vertical-align:text-bottom}.v-icon--right{margin-left:16px}.v-icon--left{margin-right:16px}.v-icon.v-icon.v-icon--link{cursor:pointer}.v-icon--disabled{pointer-events:none;opacity:.6}.v-icon--is-component{height:24px}.theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:rgba(0,0,0,.38)}.theme--light.v-text-field__prefix,.theme--light.v-text-field__suffix{color:rgba(0,0,0,.54)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#fff}.theme--light.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:rgba(0,0,0,.16)}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--light.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--light.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--light.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid rgba(0,0,0,.54)}.theme--light.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid rgba(0,0,0,.87)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:hsla(0,0%,100%,.5)}.theme--dark.v-text-field__prefix,.theme--dark.v-text-field__suffix{color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#424242}.theme--dark.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.1)}.theme--dark.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--dark.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--dark.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--dark.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--dark.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.2)}.theme--dark.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid hsla(0,0%,100%,.7)}.theme--dark.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid #fff}.application--is-rtl .v-text-field .v-label{transform-origin:top right}.application--is-rtl .v-text-field .v-counter{margin-left:0;margin-right:8px}.application--is-rtl .v-text-field--enclosed .v-input__append-outer{margin-left:0;margin-right:16px}.application--is-rtl .v-text-field--enclosed .v-input__prepend-outer{margin-left:16px;margin-right:0}.application--is-rtl .v-text-field--reverse input{text-align:left}.application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.application--is-rtl .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.application--is-rtl .v-text-field__suffix{padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0 8px;max-width:100%;min-width:0;width:100%}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;user-select:none}.v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-text-field .v-input__append-inner{margin-left:auto;padding-left:4px}.v-text-field .v-counter{margin-left:8px;white-space:nowrap}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;transform-origin:top left;white-space:nowrap;pointer-events:none}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentColor;border-style:solid;border-width:thin 0 thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default}.v-text-field__prefix{text-align:right;padding-right:4px}.v-text-field__suffix{padding-left:4px;white-space:nowrap}.v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field--box,.v-text-field--full-width,.v-text-field--outline{position:relative}.v-text-field--box>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outline>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--box input,.v-text-field--full-width input,.v-text-field--outline input{margin-top:22px}.v-text-field--box.v-text-field--single-line input,.v-text-field--full-width.v-text-field--single-line input,.v-text-field--outline.v-text-field--single-line input{margin-top:12px}.v-text-field--box .v-label,.v-text-field--full-width .v-label,.v-text-field--outline .v-label{top:18px}.v-text-field--box .v-label--active,.v-text-field--full-width .v-label--active,.v-text-field--outline .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--box>.v-input__control>.v-input__slot{border-top-left-radius:4px;border-top-right-radius:4px}.v-text-field--box>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 thin 0}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--box) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-input__append-inner,.v-text-field.v-text-field--enclosed .v-input__append-outer,.v-text-field.v-text-field--enclosed .v-input__prepend-inner,.v-text-field.v-text-field--enclosed .v-input__prepend-outer{margin-top:16px}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-text-field--reverse input{text-align:right}.v-text-field--reverse .v-label{transform-origin:top right}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--full-width>.v-input__control>.v-input__slot:after,.v-text-field--full-width>.v-input__control>.v-input__slot:before,.v-text-field--outline>.v-input__control>.v-input__slot:after,.v-text-field--outline>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outline{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline>.v-input__control>.v-input__slot{background:transparent!important;border-radius:4px}.v-text-field--outline .v-text-field__prefix{margin-top:22px;max-height:32px}.v-text-field--outline .v-input__append-outer,.v-text-field--outline .v-input__prepend-outer{margin-top:18px}.v-text-field--outline.v-input--is-dirty .v-text-field__prefix,.v-text-field--outline.v-input--is-focused .v-text-field__prefix,.v-text-field--outline.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline.v-input--has-state>.v-input__control>.v-input__slot,.v-text-field--outline.v-input--is-focused>.v-input__control>.v-input__slot{border:2px solid currentColor;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 10px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-text-field__slot{align-items:center}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}.theme--light.v-select .v-select__selections{color:rgba(0,0,0,.87)}.theme--light.v-select .v-chip--disabled,.theme--light.v-select.v-input--is-disabled .v-select__selections,.theme--light.v-select .v-select__selection--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-select .v-select__selections,.theme--light.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:#fff}.theme--dark.v-select .v-chip--disabled,.theme--dark.v-select.v-input--is-disabled .v-select__selections,.theme--dark.v-select .v-select__selection--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:rgba(0,0,0,.87)}.v-select{position:relative}.v-select>.v-input__control>.v-input__slot{cursor:pointer}.v-select .v-chip{flex:0 1 auto}.v-select .fade-transition-leave-active{position:absolute;left:0}.v-select.v-input--is-dirty ::placeholder{color:transparent!important}.v-select:not(.v-input--is-dirty):not(.v-input--is-focused) .v-text-field__prefix{line-height:20px;position:absolute;top:7px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-select.v-text-field--enclosed:not(.v-text-field--single-line) .v-select__selections{padding-top:24px}.v-select.v-text-field input{flex:1 1;margin-top:0;min-width:0;pointer-events:none;position:relative}.v-select.v-select--is-menu-active .v-input__icon--append .v-icon{transform:rotate(180deg)}.v-select.v-select--chips input{margin:0}.v-select.v-select--chips .v-select__selections{min-height:42px}.v-select.v-select--chips.v-select--chips--small .v-select__selections{min-height:32px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed .v-select__selections{min-height:68px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small .v-select__selections{min-height:56px}.v-select.v-text-field--reverse .v-select__selections,.v-select.v-text-field--reverse .v-select__slot{flex-direction:row-reverse}.v-select__selections{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;line-height:18px}.v-select__selection{max-width:90%}.v-select__selection--comma{align-items:center;display:inline-flex;margin:7px 4px 7px 0}.v-select__slot{position:relative;align-items:center;display:flex;width:100%}.v-select:not(.v-text-field--single-line) .v-select__slot>input{align-self:flex-end}.theme--light.v-input:not(.v-input--is-disabled) input,.theme--light.v-input:not(.v-input--is-disabled) textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled .v-label,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input:not(.v-input--is-disabled) input,.theme--dark.v-input:not(.v-input--is-disabled) textarea{color:#fff}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled .v-label,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0;margin:0;position:absolute}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{user-select:none}.v-input__append-outer{margin-left:9px}.v-input__prepend-outer{margin-right:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{animation:shake .6s cubic-bezier(.25,.8,.5,1)}.theme--light.v-label{color:rgba(0,0,0,.54)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-messages{color:rgba(0,0,0,.54)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.application--is-rtl .v-messages{text-align:right}.v-messages{flex:1 1 auto;font-size:12px;min-height:12px;min-width:1px;position:relative}.v-messages__message{line-height:normal;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}.theme--light.v-counter{color:rgba(0,0,0,.54)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:1}.theme--light.v-input--selection-controls.v-input--is-disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-input--selection-controls.v-input--is-disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.application--is-rtl .v-input--selection-controls .v-input--selection-controls__input{margin-right:0;margin-left:8px}.v-input--selection-controls{margin-top:16px;padding-top:4px}.v-input--selection-controls .v-input__append-outer,.v-input--selection-controls .v-input__prepend-outer{margin-top:0;margin-bottom:0}.v-input--selection-controls .v-input__control{flex-grow:0;width:auto}.v-input--selection-controls:not(.v-input--hide-details) .v-input__slot{margin-bottom:12px}.v-input--selection-controls__input{color:inherit;display:inline-flex;flex:0 0 auto;height:24px;position:relative;margin-right:8px;transition:.3s cubic-bezier(.25,.8,.25,1);transition-property:color,transform;width:24px;user-select:none}.v-input--selection-controls__input input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;user-select:none}.v-input--selection-controls__input+.v-label{cursor:pointer;user-select:none}.v-input--selection-controls__ripple{border-radius:50%;cursor:pointer;height:34px;position:absolute;transition:inherit;width:34px;left:-12px;top:calc(50% - 24px);margin:7px}.v-input--selection-controls__ripple:before{border-radius:inherit;bottom:0;content:"";position:absolute;opacity:.2;left:0;right:0;top:0;transform-origin:center center;transform:scale(.2);transition:inherit}.v-input--selection-controls__ripple .v-ripple__container{transform:scale(1.4)}.v-input--selection-controls.v-input .v-label{align-items:center;display:inline-flex;top:0;height:auto}.v-input--selection-controls.v-input--is-focused .v-input--selection-controls__ripple:before,.v-input--selection-controls .v-radio--is-focused .v-input--selection-controls__ripple:before{background:currentColor;transform:scale(.8)}.theme--light.v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-divider{border-color:hsla(0,0%,100%,.12)}.v-divider{display:block;flex:1 1 0px;max-width:100%;height:0;max-height:0;border:solid;border-width:thin 0 0 0;transition:inherit}.v-divider--inset:not(.v-divider--vertical){margin-left:72px;max-width:calc(100% - 72px)}.v-divider--vertical{align-self:stretch;border:solid;border-width:0 thin 0 0;display:inline-flex;height:inherit;min-height:100%;max-height:100%;max-width:0;width:0;vertical-align:text-bottom}.v-divider--vertical.v-divider--inset{margin-top:8px;min-height:0;max-height:calc(100% - 16px)}.theme--light.v-subheader{color:rgba(0,0,0,.54)}.theme--dark.v-subheader{color:hsla(0,0%,100%,.7)}.v-subheader{align-items:center;display:flex;height:48px;font-size:14px;font-weight:500;padding:0 16px 0 16px}.v-subheader--inset{margin-left:56px}.theme--light.v-list{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-list .v-list--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list .v-list__tile__sub-title{color:rgba(0,0,0,.54)}.theme--light.v-list .v-list__tile__mask{color:rgba(0,0,0,.38);background:#eee}.theme--light.v-list .v-list__group__header:hover,.theme--light.v-list .v-list__tile--highlighted,.theme--light.v-list .v-list__tile--link:hover{background:rgba(0,0,0,.04)}.theme--light.v-list .v-list__group--active:after,.theme--light.v-list .v-list__group--active:before{background:rgba(0,0,0,.12)}.theme--light.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--light.v-list .v-list__group--disabled .v-list__tile{color:rgba(0,0,0,.38)!important}.theme--dark.v-list{background:#424242;color:#fff}.theme--dark.v-list .v-list--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list .v-list__tile__sub-title{color:hsla(0,0%,100%,.7)}.theme--dark.v-list .v-list__tile__mask{color:hsla(0,0%,100%,.5);background:#494949}.theme--dark.v-list .v-list__group__header:hover,.theme--dark.v-list .v-list__tile--highlighted,.theme--dark.v-list .v-list__tile--link:hover{background:hsla(0,0%,100%,.08)}.theme--dark.v-list .v-list__group--active:after,.theme--dark.v-list .v-list__group--active:before{background:hsla(0,0%,100%,.12)}.theme--dark.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--dark.v-list .v-list__group--disabled .v-list__tile{color:hsla(0,0%,100%,.5)!important}.application--is-rtl .v-list__tile__content,.application--is-rtl .v-list__tile__title{text-align:right}.v-list{list-style-type:none;padding:8px 0 8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list>div{transition:inherit}.v-list__tile{align-items:center;color:inherit;display:flex;font-size:16px;font-weight:400;height:48px;margin:0;padding:0 16px;position:relative;text-decoration:none;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-list__tile--link{cursor:pointer;user-select:none}.v-list__tile__action,.v-list__tile__content{height:100%}.v-list__tile__sub-title,.v-list__tile__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__tile__title{height:24px;line-height:24px;position:relative;text-align:left}.v-list__tile__sub-title{font-size:14px}.v-list__tile__action,.v-list__tile__avatar{display:flex;justify-content:flex-start;min-width:56px}.v-list__tile__action{align-items:center}.v-list__tile__action .v-btn{padding:0;margin:0}.v-list__tile__action .v-btn--icon{margin:-6px}.v-list__tile__action .v-radio.v-radio{margin:0}.v-list__tile__action .v-input--selection-controls{padding:0;margin:0}.v-list__tile__action .v-input--selection-controls .v-messages{display:none}.v-list__tile__action .v-input--selection-controls .v-input__slot{margin:0}.v-list__tile__action-text{color:#9e9e9e;font-size:12px}.v-list__tile__action--stack{align-items:flex-end;justify-content:space-between;padding-top:8px;padding-bottom:8px;white-space:nowrap;flex-direction:column}.v-list__tile__content{text-align:left;flex:1 1 auto;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.v-list__tile__content~.v-list__tile__action:not(.v-list__tile__action--stack),.v-list__tile__content~.v-list__tile__avatar{justify-content:flex-end}.v-list__tile--active .v-list__tile__action:first-of-type .v-icon{color:inherit}.v-list__tile--avatar{height:56px}.v-list--dense{padding-top:4px;padding-bottom:4px}.v-list--dense .v-subheader{font-size:13px;height:40px}.v-list--dense .v-list__group .v-subheader{height:40px}.v-list--dense .v-list__tile{font-size:13px}.v-list--dense .v-list__tile--avatar{height:48px}.v-list--dense .v-list__tile:not(.v-list__tile--avatar){height:40px}.v-list--dense .v-list__tile .v-icon{font-size:22px}.v-list--dense .v-list__tile__sub-title{font-size:13px}.v-list--disabled{pointer-events:none}.v-list--two-line .v-list__tile{height:72px}.v-list--two-line.v-list--dense .v-list__tile{height:60px}.v-list--three-line .v-list__tile{height:88px}.v-list--three-line .v-list__tile__avatar{margin-top:-18px}.v-list--three-line .v-list__tile__sub-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.v-list--three-line.v-list--dense .v-list__tile{height:76px}.v-list>.v-list__group:before{top:0}.v-list>.v-list__group:before .v-list__tile__avatar{margin-top:-14px}.v-list__group{padding:0;position:relative;transition:inherit}.v-list__group:after,.v-list__group:before{content:"";height:1px;left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__group--active~.v-list__group:before{display:none}.v-list__group__header{align-items:center;cursor:pointer;display:flex;list-style-type:none}.v-list__group__header>div:not(.v-list__group__header__prepend-icon):not(.v-list__group__header__append-icon){flex:1 1 auto;overflow:hidden}.v-list__group__header .v-list__group__header__append-icon,.v-list__group__header .v-list__group__header__prepend-icon{padding:0 16px;user-select:none}.v-list__group__header--sub-group{align-items:center;display:flex}.v-list__group__header--sub-group div .v-list__tile{padding-left:0}.v-list__group__header--sub-group .v-list__group__header__prepend-icon{padding:0 0 0 40px;margin-right:8px}.v-list__group__header .v-list__group__header__prepend-icon{display:flex;justify-content:flex-start;min-width:56px}.v-list__group__header--active .v-list__group__header__append-icon .v-icon{transform:rotate(-180deg)}.v-list__group__header--active .v-list__group__header__prepend-icon .v-icon{color:inherit}.v-list__group__header--active.v-list__group__header--sub-group .v-list__group__header__prepend-icon .v-icon{transform:rotate(-180deg)}.v-list__group__items{position:relative;padding:0;transition:inherit}.v-list__group__items>div{display:block}.v-list__group__items--no-action .v-list__tile{padding-left:72px}.v-list__group--disabled{pointer-events:none}.v-list--subheader{padding-top:0}.v-avatar{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;position:relative;text-align:center;vertical-align:middle}.v-avatar .v-icon,.v-avatar .v-image,.v-avatar img{border-radius:50%;display:inline-flex;height:inherit;width:inherit}.v-avatar--tile,.v-avatar--tile .v-icon,.v-avatar--tile .v-image,.v-avatar--tile img{border-radius:0}.theme--light.v-chip{background:#e0e0e0;color:rgba(0,0,0,.87)}.theme--light.v-chip--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-chip{background:#555;color:#fff}.theme--dark.v-chip--disabled{color:hsla(0,0%,100%,.5)}.application--is-rtl .v-chip__close{margin:0 8px 0 2px}.application--is-rtl .v-chip--removable .v-chip__content{padding:0 12px 0 4px}.application--is-rtl .v-chip--select-multi{margin:4px 0 4px 4px}.application--is-rtl .v-chip .v-avatar{margin-right:-12px;margin-left:8px}.application--is-rtl .v-chip .v-icon--right{margin-right:12px;margin-left:-8px}.application--is-rtl .v-chip .v-icon--left{margin-right:-8px;margin-left:12px}.v-chip{font-size:13px;margin:4px;outline:none;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-chip,.v-chip .v-chip__content{align-items:center;border-radius:28px;display:inline-flex;vertical-align:middle}.v-chip .v-chip__content{cursor:default;height:32px;justify-content:space-between;padding:0 12px;white-space:nowrap;z-index:1}.v-chip--removable .v-chip__content{padding:0 4px 0 12px}.v-chip .v-avatar{height:32px!important;margin-left:-12px;margin-right:8px;min-width:32px;width:32px!important}.v-chip .v-avatar img{height:100%;width:100%}.v-chip--active,.v-chip--selected,.v-chip:focus:not(.v-chip--disabled){border-color:rgba(0,0,0,.13);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-chip--active:after,.v-chip--selected:after,.v-chip:focus:not(.v-chip--disabled):after{background:currentColor;border-radius:inherit;content:"";height:100%;position:absolute;top:0;left:0;transition:inherit;width:100%;pointer-events:none;opacity:.13}.v-chip--label,.v-chip--label .v-chip__content{border-radius:2px}.v-chip.v-chip.v-chip--outline{background:transparent!important;border:1px solid currentColor;color:#9e9e9e;height:32px}.v-chip.v-chip.v-chip--outline .v-avatar{margin-left:-13px}.v-chip--small{height:24px!important}.v-chip--small .v-avatar{height:24px!important;min-width:24px;width:24px!important}.v-chip--small .v-icon{font-size:20px}.v-chip__close{align-items:center;color:inherit;display:flex;font-size:20px;margin:0 2px 0 8px;text-decoration:none;user-select:none}.v-chip__close>.v-icon{color:inherit!important;font-size:20px;cursor:pointer;opacity:.5}.v-chip__close>.v-icon:hover{opacity:1}.v-chip--disabled .v-chip__close{pointer-events:none}.v-chip--select-multi{margin:4px 4px 4px 0}.v-chip .v-icon{color:inherit}.v-chip .v-icon--right{margin-left:12px;margin-right:-8px}.v-chip .v-icon--left{margin-left:-8px;margin-right:12px}.v-menu{display:block;vertical-align:middle}.v-menu--inline{display:inline-block}.v-menu__activator{align-items:center;cursor:pointer;display:flex}.v-menu__activator *{cursor:pointer}.v-menu__content{position:absolute;display:inline-block;border-radius:2px;max-width:80%;overflow-y:auto;overflow-x:hidden;contain:content;will-change:transform;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-menu__content--active{pointer-events:none}.v-menu__content--fixed{position:fixed}.v-menu__content>.card{contain:content;backface-visibility:hidden}.v-menu>.v-menu__content{max-width:none}.v-menu-transition-enter .v-list__tile{min-width:0;pointer-events:none}.v-menu-transition-enter-to .v-list__tile{pointer-events:auto;transition-delay:.1s}.v-menu-transition-leave-active,.v-menu-transition-leave-to{pointer-events:none}.v-menu-transition-enter,.v-menu-transition-leave-to{opacity:0}.v-menu-transition-enter-active,.v-menu-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.25,1)}.v-menu-transition-enter.v-menu__content--auto{transition:none!important}.v-menu-transition-enter.v-menu__content--auto .v-list__tile{opacity:0;transform:translateY(-15px)}.v-menu-transition-enter.v-menu__content--auto .v-list__tile--active{opacity:1;transform:none!important;pointer-events:auto}.v-autocomplete.v-input>.v-input__control>.v-input__slot{cursor:text}.v-autocomplete input{align-self:center}.v-autocomplete--is-selecting-index input{opacity:0}.v-autocomplete.v-text-field--enclosed:not(.v-text-field--solo):not(.v-text-field--single-line) .v-select__slot>input{margin-top:24px}.v-autocomplete:not(.v-input--is-disabled).v-select.v-text-field input{pointer-events:inherit}.v-autocomplete__content.v-menu__content,.v-autocomplete__content.v-menu__content .v-card{border-radius:0}.theme--light.v-overflow-btn .v-input__control:before,.theme--light.v-overflow-btn .v-input__slot:before{background-color:rgba(0,0,0,.12)!important}.theme--light.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--light.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--light.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--light.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--light.v-overflow-btn--editable:hover .v-input__append-inner,.theme--light.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid rgba(0,0,0,.12)}.theme--light.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--light.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--light.v-overflow-btn:hover .v-input__slot{background:#fff}.theme--dark.v-overflow-btn .v-input__control:before,.theme--dark.v-overflow-btn .v-input__slot:before{background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--dark.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--dark.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--dark.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--dark.v-overflow-btn--editable:hover .v-input__append-inner,.theme--dark.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--dark.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--dark.v-overflow-btn:hover .v-input__slot{background:#424242}.v-overflow-btn{margin-top:12px;padding-top:0}.v-overflow-btn:not(.v-overflow-btn--editable)>.v-input__control>.v-input__slot{cursor:pointer}.v-overflow-btn .v-select__slot{height:48px}.v-overflow-btn .v-select__slot input{margin-left:16px;cursor:pointer}.v-overflow-btn .v-select__selection--comma:first-child{margin-left:16px}.v-overflow-btn .v-input__slot{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-overflow-btn .v-input__slot:after{content:none}.v-overflow-btn .v-label{margin-left:16px;top:calc(50% - 10px)}.v-overflow-btn .v-input__append-inner{width:48px;height:48px;align-self:auto;align-items:center;margin-top:0;padding:0;flex-shrink:0}.v-overflow-btn .v-input__append-outer,.v-overflow-btn .v-input__prepend-outer{margin-top:12px;margin-bottom:12px}.v-overflow-btn .v-input__control:before{height:1px;top:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-overflow-btn.v-input--is-focused .v-input__slot,.v-overflow-btn.v-select--is-menu-active .v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-overflow-btn .v-select__selections{width:0}.v-overflow-btn--segmented .v-select__selections{flex-wrap:nowrap}.v-overflow-btn--segmented .v-select__selections .v-btn{border-radius:0;margin:0;margin-right:-16px;height:48px;width:100%}.v-overflow-btn--segmented .v-select__selections .v-btn__content{justify-content:start}.v-overflow-btn--segmented .v-select__selections .v-btn__content:before{background-color:transparent}.v-overflow-btn--editable .v-select__slot input{cursor:text}.v-overflow-btn--editable .v-input__append-inner,.v-overflow-btn--editable .v-input__append-inner *{cursor:pointer}.theme--light.v-footer{background:#f5f5f5;color:rgba(0,0,0,.87)}.theme--dark.v-footer{background:#212121;color:#fff}.v-footer{align-items:center;display:flex;flex:0 1 auto!important;min-height:36px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-footer--absolute,.v-footer--fixed{bottom:0;left:0;width:100%;z-index:3}.v-footer--inset{z-index:2}.v-footer--absolute{position:absolute}.v-footer--fixed{position:fixed}.theme--light.v-system-bar{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.theme--light.v-system-bar .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-system-bar--lights-out{background-color:hsla(0,0%,100%,.7)!important}.theme--dark.v-system-bar{background-color:#000;color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar .v-icon{color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar--lights-out{background-color:rgba(0,0,0,.2)!important}.v-system-bar{align-items:center;display:flex;font-size:14px;font-weight:500;padding:0 8px}.v-system-bar .v-icon{font-size:16px}.v-system-bar--absolute,.v-system-bar--fixed{left:0;top:0;width:100%;z-index:3}.v-system-bar--fixed{position:fixed}.v-system-bar--absolute{position:absolute}.v-system-bar--status .v-icon{margin-right:4px}.v-system-bar--window .v-icon{font-size:20px;margin-right:8px}.theme--light.v-tabs__bar{background-color:#fff}.theme--light.v-tabs__bar .v-tabs__div{color:rgba(0,0,0,.87)}.theme--light.v-tabs__bar .v-tabs__item--disabled{color:rgba(0,0,0,.26)}.theme--dark.v-tabs__bar{background-color:#424242}.theme--dark.v-tabs__bar .v-tabs__div{color:#fff}.theme--dark.v-tabs__bar .v-tabs__item--disabled{color:hsla(0,0%,100%,.3)}.v-tabs,.v-tabs__bar{position:relative}.v-tabs__bar{border-radius:inherit}.v-tabs__icon{align-items:center;cursor:pointer;display:inline-flex;height:100%;position:absolute;top:0;user-select:none;width:32px}.v-tabs__icon--prev{left:4px}.v-tabs__icon--next{right:4px}.v-tabs__wrapper{overflow:hidden;contain:content;display:flex}.v-tabs__wrapper--show-arrows{margin-left:40px;margin-right:40px}.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:16px}@media only screen and (max-width:599px){.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:24px}}.v-tabs__container{flex:1 0 auto;display:flex;height:48px;list-style-type:none;transition:transform .6s cubic-bezier(.86,0,.07,1);white-space:nowrap;position:relative}.v-tabs__container--overflow .v-tabs__div{flex:1 0 auto}.v-tabs__container--grow .v-tabs__div{flex:1 0 auto;max-width:none}.v-tabs__container--icons-and-text{height:72px}.v-tabs__container--align-with-title{padding-left:56px}.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:72px}@media only screen and (min-width:600px){.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:160px}}@media only screen and (max-width:599px){.v-tabs__container--fixed-tabs .v-tabs__div{flex:1 0 auto}}.v-tabs__container--centered .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--centered>.v-tabs__div:first-child,.v-tabs__container--fixed-tabs .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--fixed-tabs>.v-tabs__div:first-child,.v-tabs__container--right .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--right>.v-tabs__div:first-child{margin-left:auto}.v-tabs__container--centered>.v-tabs__div:last-child,.v-tabs__container--fixed-tabs>.v-tabs__div:last-child{margin-right:auto}.v-tabs__container--icons-and-text .v-tabs__item{flex-direction:column-reverse}.v-tabs__container--icons-and-text .v-tabs__item .v-icon{margin-bottom:6px}.v-tabs__div{align-items:center;display:inline-flex;flex:0 1 auto;font-size:14px;font-weight:500;line-height:normal;height:inherit;max-width:264px;text-align:center;text-transform:uppercase;vertical-align:middle}.v-tabs__item{align-items:center;color:inherit;display:flex;flex:1 1 auto;height:100%;justify-content:center;max-width:inherit;padding:6px 12px;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1);user-select:none;white-space:normal}.v-tabs__item:not(.v-tabs__item--active){opacity:.7}.v-tabs__item--disabled{pointer-events:none}.v-tabs__slider{height:2px;width:100%}.v-tabs__slider-wrapper{bottom:0;margin:0!important;position:absolute}.v-item-group,.v-tabs__slider-wrapper{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-item-group{flex:0 1 auto;position:relative}.v-item-group>*{cursor:pointer;flex:1 1 auto}.v-window__container{position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__container--is-active{overflow:hidden}.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-x-reverse-transition-leave,.v-window-x-reverse-transition-leave-to,.v-window-x-transition-leave,.v-window-x-transition-leave-to,.v-window-y-reverse-transition-leave,.v-window-y-reverse-transition-leave-to,.v-window-y-transition-leave,.v-window-y-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter{transform:translateX(100%)}.v-window-x-reverse-transition-enter,.v-window-x-transition-leave-to{transform:translateX(-100%)}.v-window-x-reverse-transition-leave-to{transform:translateX(100%)}.v-window-y-transition-enter{transform:translateY(100%)}.v-window-y-reverse-transition-enter,.v-window-y-transition-leave-to{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)} \ No newline at end of file +@charset "UTF-8";@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(fonts/MaterialIcons-Regular.eot);src:local("☺"),url(fonts/MaterialIcons-Regular.woff2) format("woff2"),url(fonts/MaterialIcons-Regular.woff) format("woff"),url(fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons._10k:before{content:"\e951"}.material-icons._10mp:before{content:"\e952"}.material-icons._11mp:before{content:"\e953"}.material-icons._12mp:before{content:"\e954"}.material-icons._13mp:before{content:"\e955"}.material-icons._14mp:before{content:"\e956"}.material-icons._15mp:before{content:"\e957"}.material-icons._16mp:before{content:"\e958"}.material-icons._17mp:before{content:"\e959"}.material-icons._18mp:before{content:"\e95a"}.material-icons._19mp:before{content:"\e95b"}.material-icons._1k:before{content:"\e95c"}.material-icons._1k_plus:before{content:"\e95d"}.material-icons._20mp:before{content:"\e95e"}.material-icons._21mp:before{content:"\e95f"}.material-icons._22mp:before{content:"\e960"}.material-icons._23mp:before{content:"\e961"}.material-icons._24mp:before{content:"\e962"}.material-icons._2k:before{content:"\e963"}.material-icons._2k_plus:before{content:"\e964"}.material-icons._2mp:before{content:"\e965"}.material-icons._360:before{content:"\e577"}.material-icons._3d_rotation:before{content:"\e84d"}.material-icons._3k:before{content:"\e966"}.material-icons._3k_plus:before{content:"\e967"}.material-icons._3mp:before{content:"\e968"}.material-icons._4k:before{content:"\e072"}.material-icons._4k_plus:before{content:"\e969"}.material-icons._4mp:before{content:"\e96a"}.material-icons._5k:before{content:"\e96b"}.material-icons._5k_plus:before{content:"\e96c"}.material-icons._5mp:before{content:"\e96d"}.material-icons._6k:before{content:"\e96e"}.material-icons._6k_plus:before{content:"\e96f"}.material-icons._6mp:before{content:"\e970"}.material-icons._7k:before{content:"\e971"}.material-icons._7k_plus:before{content:"\e972"}.material-icons._7mp:before{content:"\e973"}.material-icons._8k:before{content:"\e974"}.material-icons._8k_plus:before{content:"\e975"}.material-icons._8mp:before{content:"\e976"}.material-icons._9k:before{content:"\e977"}.material-icons._9k_plus:before{content:"\e978"}.material-icons._9mp:before{content:"\e979"}.material-icons.ac_unit:before{content:"\eb3b"}.material-icons.access_alarm:before{content:"\e190"}.material-icons.access_alarms:before{content:"\e191"}.material-icons.access_time:before{content:"\e192"}.material-icons.accessibility:before{content:"\e84e"}.material-icons.accessibility_new:before{content:"\e92c"}.material-icons.accessible:before{content:"\e914"}.material-icons.accessible_forward:before{content:"\e934"}.material-icons.account_balance:before{content:"\e84f"}.material-icons.account_balance_wallet:before{content:"\e850"}.material-icons.account_box:before{content:"\e851"}.material-icons.account_circle:before{content:"\e853"}.material-icons.account_tree:before{content:"\e97a"}.material-icons.adb:before{content:"\e60e"}.material-icons.add:before{content:"\e145"}.material-icons.add_a_photo:before{content:"\e439"}.material-icons.add_alarm:before{content:"\e193"}.material-icons.add_alert:before{content:"\e003"}.material-icons.add_box:before{content:"\e146"}.material-icons.add_call:before{content:"\e0e8"}.material-icons.add_chart:before{content:"\e97b"}.material-icons.add_circle:before{content:"\e147"}.material-icons.add_circle_outline:before{content:"\e148"}.material-icons.add_comment:before{content:"\e266"}.material-icons.add_ic_call:before{content:"\e97c"}.material-icons.add_link:before{content:"\e178"}.material-icons.add_location:before{content:"\e567"}.material-icons.add_moderator:before{content:"\e97d"}.material-icons.add_photo_alternate:before{content:"\e43e"}.material-icons.add_shopping_cart:before{content:"\e854"}.material-icons.add_to_home_screen:before{content:"\e1fe"}.material-icons.add_to_photos:before{content:"\e39d"}.material-icons.add_to_queue:before{content:"\e05c"}.material-icons.adjust:before{content:"\e39e"}.material-icons.airline_seat_flat:before{content:"\e630"}.material-icons.airline_seat_flat_angled:before{content:"\e631"}.material-icons.airline_seat_individual_suite:before{content:"\e632"}.material-icons.airline_seat_legroom_extra:before{content:"\e633"}.material-icons.airline_seat_legroom_normal:before{content:"\e634"}.material-icons.airline_seat_legroom_reduced:before{content:"\e635"}.material-icons.airline_seat_recline_extra:before{content:"\e636"}.material-icons.airline_seat_recline_normal:before{content:"\e637"}.material-icons.airplanemode_active:before{content:"\e195"}.material-icons.airplanemode_inactive:before,.material-icons.airplanemode_off:before{content:"\e194"}.material-icons.airplanemode_on:before{content:"\e195"}.material-icons.airplay:before{content:"\e055"}.material-icons.airport_shuttle:before{content:"\eb3c"}.material-icons.alarm:before{content:"\e855"}.material-icons.alarm_add:before{content:"\e856"}.material-icons.alarm_off:before{content:"\e857"}.material-icons.alarm_on:before{content:"\e858"}.material-icons.album:before{content:"\e019"}.material-icons.all_inbox:before{content:"\e97f"}.material-icons.all_inclusive:before{content:"\eb3d"}.material-icons.all_out:before{content:"\e90b"}.material-icons.alternate_email:before{content:"\e0e6"}.material-icons.amp_stories:before{content:"\ea13"}.material-icons.android:before{content:"\e859"}.material-icons.announcement:before{content:"\e85a"}.material-icons.apartment:before{content:"\ea40"}.material-icons.approval:before{content:"\e982"}.material-icons.apps:before{content:"\e5c3"}.material-icons.archive:before{content:"\e149"}.material-icons.arrow_back:before{content:"\e5c4"}.material-icons.arrow_back_ios:before{content:"\e5e0"}.material-icons.arrow_downward:before{content:"\e5db"}.material-icons.arrow_drop_down:before{content:"\e5c5"}.material-icons.arrow_drop_down_circle:before{content:"\e5c6"}.material-icons.arrow_drop_up:before{content:"\e5c7"}.material-icons.arrow_forward:before{content:"\e5c8"}.material-icons.arrow_forward_ios:before{content:"\e5e1"}.material-icons.arrow_left:before{content:"\e5de"}.material-icons.arrow_right:before{content:"\e5df"}.material-icons.arrow_right_alt:before{content:"\e941"}.material-icons.arrow_upward:before{content:"\e5d8"}.material-icons.art_track:before{content:"\e060"}.material-icons.aspect_ratio:before{content:"\e85b"}.material-icons.assessment:before{content:"\e85c"}.material-icons.assignment:before{content:"\e85d"}.material-icons.assignment_ind:before{content:"\e85e"}.material-icons.assignment_late:before{content:"\e85f"}.material-icons.assignment_return:before{content:"\e860"}.material-icons.assignment_returned:before{content:"\e861"}.material-icons.assignment_turned_in:before{content:"\e862"}.material-icons.assistant:before{content:"\e39f"}.material-icons.assistant_direction:before{content:"\e988"}.material-icons.assistant_navigation:before{content:"\e989"}.material-icons.assistant_photo:before{content:"\e3a0"}.material-icons.atm:before{content:"\e573"}.material-icons.attach_file:before{content:"\e226"}.material-icons.attach_money:before{content:"\e227"}.material-icons.attachment:before{content:"\e2bc"}.material-icons.attractions:before{content:"\ea52"}.material-icons.audiotrack:before{content:"\e3a1"}.material-icons.autorenew:before{content:"\e863"}.material-icons.av_timer:before{content:"\e01b"}.material-icons.backspace:before{content:"\e14a"}.material-icons.backup:before{content:"\e864"}.material-icons.badge:before{content:"\ea67"}.material-icons.bakery_dining:before{content:"\ea53"}.material-icons.ballot:before{content:"\e172"}.material-icons.bar_chart:before{content:"\e26b"}.material-icons.bathtub:before{content:"\ea41"}.material-icons.battery_alert:before{content:"\e19c"}.material-icons.battery_charging_full:before{content:"\e1a3"}.material-icons.battery_full:before{content:"\e1a4"}.material-icons.battery_std:before{content:"\e1a5"}.material-icons.battery_unknown:before{content:"\e1a6"}.material-icons.beach_access:before{content:"\eb3e"}.material-icons.beenhere:before{content:"\e52d"}.material-icons.block:before{content:"\e14b"}.material-icons.bluetooth:before{content:"\e1a7"}.material-icons.bluetooth_audio:before{content:"\e60f"}.material-icons.bluetooth_connected:before{content:"\e1a8"}.material-icons.bluetooth_disabled:before{content:"\e1a9"}.material-icons.bluetooth_searching:before{content:"\e1aa"}.material-icons.blur_circular:before{content:"\e3a2"}.material-icons.blur_linear:before{content:"\e3a3"}.material-icons.blur_off:before{content:"\e3a4"}.material-icons.blur_on:before{content:"\e3a5"}.material-icons.bolt:before{content:"\ea0b"}.material-icons.book:before{content:"\e865"}.material-icons.bookmark:before{content:"\e866"}.material-icons.bookmark_border:before,.material-icons.bookmark_outline:before{content:"\e867"}.material-icons.bookmarks:before{content:"\e98b"}.material-icons.border_all:before{content:"\e228"}.material-icons.border_bottom:before{content:"\e229"}.material-icons.border_clear:before{content:"\e22a"}.material-icons.border_color:before{content:"\e22b"}.material-icons.border_horizontal:before{content:"\e22c"}.material-icons.border_inner:before{content:"\e22d"}.material-icons.border_left:before{content:"\e22e"}.material-icons.border_outer:before{content:"\e22f"}.material-icons.border_right:before{content:"\e230"}.material-icons.border_style:before{content:"\e231"}.material-icons.border_top:before{content:"\e232"}.material-icons.border_vertical:before{content:"\e233"}.material-icons.branding_watermark:before{content:"\e06b"}.material-icons.breakfast_dining:before{content:"\ea54"}.material-icons.brightness_1:before{content:"\e3a6"}.material-icons.brightness_2:before{content:"\e3a7"}.material-icons.brightness_3:before{content:"\e3a8"}.material-icons.brightness_4:before{content:"\e3a9"}.material-icons.brightness_5:before{content:"\e3aa"}.material-icons.brightness_6:before{content:"\e3ab"}.material-icons.brightness_7:before{content:"\e3ac"}.material-icons.brightness_auto:before{content:"\e1ab"}.material-icons.brightness_high:before{content:"\e1ac"}.material-icons.brightness_low:before{content:"\e1ad"}.material-icons.brightness_medium:before{content:"\e1ae"}.material-icons.broken_image:before{content:"\e3ad"}.material-icons.brunch_dining:before{content:"\ea73"}.material-icons.brush:before{content:"\e3ae"}.material-icons.bubble_chart:before{content:"\e6dd"}.material-icons.bug_report:before{content:"\e868"}.material-icons.build:before{content:"\e869"}.material-icons.burst_mode:before{content:"\e43c"}.material-icons.bus_alert:before{content:"\e98f"}.material-icons.business:before{content:"\e0af"}.material-icons.business_center:before{content:"\eb3f"}.material-icons.cached:before{content:"\e86a"}.material-icons.cake:before{content:"\e7e9"}.material-icons.calendar_today:before{content:"\e935"}.material-icons.calendar_view_day:before{content:"\e936"}.material-icons.call:before{content:"\e0b0"}.material-icons.call_end:before{content:"\e0b1"}.material-icons.call_made:before{content:"\e0b2"}.material-icons.call_merge:before{content:"\e0b3"}.material-icons.call_missed:before{content:"\e0b4"}.material-icons.call_missed_outgoing:before{content:"\e0e4"}.material-icons.call_received:before{content:"\e0b5"}.material-icons.call_split:before{content:"\e0b6"}.material-icons.call_to_action:before{content:"\e06c"}.material-icons.camera:before{content:"\e3af"}.material-icons.camera_alt:before{content:"\e3b0"}.material-icons.camera_enhance:before{content:"\e8fc"}.material-icons.camera_front:before{content:"\e3b1"}.material-icons.camera_rear:before{content:"\e3b2"}.material-icons.camera_roll:before{content:"\e3b3"}.material-icons.cancel:before{content:"\e5c9"}.material-icons.cancel_presentation:before{content:"\e0e9"}.material-icons.cancel_schedule_send:before{content:"\ea39"}.material-icons.car_rental:before{content:"\ea55"}.material-icons.car_repair:before{content:"\ea56"}.material-icons.card_giftcard:before{content:"\e8f6"}.material-icons.card_membership:before{content:"\e8f7"}.material-icons.card_travel:before{content:"\e8f8"}.material-icons.cases:before{content:"\e992"}.material-icons.casino:before{content:"\eb40"}.material-icons.cast:before{content:"\e307"}.material-icons.cast_connected:before{content:"\e308"}.material-icons.category:before{content:"\e574"}.material-icons.celebration:before{content:"\ea65"}.material-icons.cell_wifi:before{content:"\e0ec"}.material-icons.center_focus_strong:before{content:"\e3b4"}.material-icons.center_focus_weak:before{content:"\e3b5"}.material-icons.change_history:before{content:"\e86b"}.material-icons.chat:before{content:"\e0b7"}.material-icons.chat_bubble:before{content:"\e0ca"}.material-icons.chat_bubble_outline:before{content:"\e0cb"}.material-icons.check:before{content:"\e5ca"}.material-icons.check_box:before{content:"\e834"}.material-icons.check_box_outline_blank:before{content:"\e835"}.material-icons.check_circle:before{content:"\e86c"}.material-icons.check_circle_outline:before{content:"\e92d"}.material-icons.chevron_left:before{content:"\e5cb"}.material-icons.chevron_right:before{content:"\e5cc"}.material-icons.child_care:before{content:"\eb41"}.material-icons.child_friendly:before{content:"\eb42"}.material-icons.chrome_reader_mode:before{content:"\e86d"}.material-icons.circle_notifications:before{content:"\e994"}.material-icons.class:before{content:"\e86e"}.material-icons.clear:before{content:"\e14c"}.material-icons.clear_all:before{content:"\e0b8"}.material-icons.close:before{content:"\e5cd"}.material-icons.closed_caption:before{content:"\e01c"}.material-icons.closed_caption_off:before{content:"\e996"}.material-icons.cloud:before{content:"\e2bd"}.material-icons.cloud_circle:before{content:"\e2be"}.material-icons.cloud_done:before{content:"\e2bf"}.material-icons.cloud_download:before{content:"\e2c0"}.material-icons.cloud_off:before{content:"\e2c1"}.material-icons.cloud_queue:before{content:"\e2c2"}.material-icons.cloud_upload:before{content:"\e2c3"}.material-icons.code:before{content:"\e86f"}.material-icons.collections:before{content:"\e3b6"}.material-icons.collections_bookmark:before{content:"\e431"}.material-icons.color_lens:before{content:"\e3b7"}.material-icons.colorize:before{content:"\e3b8"}.material-icons.comment:before{content:"\e0b9"}.material-icons.commute:before{content:"\e940"}.material-icons.compare:before{content:"\e3b9"}.material-icons.compare_arrows:before{content:"\e915"}.material-icons.compass_calibration:before{content:"\e57c"}.material-icons.compress:before{content:"\e94d"}.material-icons.computer:before{content:"\e30a"}.material-icons.confirmation_num:before,.material-icons.confirmation_number:before{content:"\e638"}.material-icons.connected_tv:before{content:"\e998"}.material-icons.contact_mail:before{content:"\e0d0"}.material-icons.contact_phone:before{content:"\e0cf"}.material-icons.contact_support:before{content:"\e94c"}.material-icons.contactless:before{content:"\ea71"}.material-icons.contacts:before{content:"\e0ba"}.material-icons.content_copy:before{content:"\e14d"}.material-icons.content_cut:before{content:"\e14e"}.material-icons.content_paste:before{content:"\e14f"}.material-icons.control_camera:before{content:"\e074"}.material-icons.control_point:before{content:"\e3ba"}.material-icons.control_point_duplicate:before{content:"\e3bb"}.material-icons.copyright:before{content:"\e90c"}.material-icons.create:before{content:"\e150"}.material-icons.create_new_folder:before{content:"\e2cc"}.material-icons.credit_card:before{content:"\e870"}.material-icons.crop:before{content:"\e3be"}.material-icons.crop_16_9:before{content:"\e3bc"}.material-icons.crop_3_2:before{content:"\e3bd"}.material-icons.crop_5_4:before{content:"\e3bf"}.material-icons.crop_7_5:before{content:"\e3c0"}.material-icons.crop_din:before{content:"\e3c1"}.material-icons.crop_free:before{content:"\e3c2"}.material-icons.crop_landscape:before{content:"\e3c3"}.material-icons.crop_original:before{content:"\e3c4"}.material-icons.crop_portrait:before{content:"\e3c5"}.material-icons.crop_rotate:before{content:"\e437"}.material-icons.crop_square:before{content:"\e3c6"}.material-icons.dangerous:before{content:"\e99a"}.material-icons.dashboard:before{content:"\e871"}.material-icons.dashboard_customize:before{content:"\e99b"}.material-icons.data_usage:before{content:"\e1af"}.material-icons.date_range:before{content:"\e916"}.material-icons.deck:before{content:"\ea42"}.material-icons.dehaze:before{content:"\e3c7"}.material-icons.delete:before{content:"\e872"}.material-icons.delete_forever:before{content:"\e92b"}.material-icons.delete_outline:before{content:"\e92e"}.material-icons.delete_sweep:before{content:"\e16c"}.material-icons.delivery_dining:before{content:"\ea72"}.material-icons.departure_board:before{content:"\e576"}.material-icons.description:before{content:"\e873"}.material-icons.desktop_access_disabled:before{content:"\e99d"}.material-icons.desktop_mac:before{content:"\e30b"}.material-icons.desktop_windows:before{content:"\e30c"}.material-icons.details:before{content:"\e3c8"}.material-icons.developer_board:before{content:"\e30d"}.material-icons.developer_mode:before{content:"\e1b0"}.material-icons.device_hub:before{content:"\e335"}.material-icons.device_thermostat:before{content:"\e1ff"}.material-icons.device_unknown:before{content:"\e339"}.material-icons.devices:before{content:"\e1b1"}.material-icons.devices_other:before{content:"\e337"}.material-icons.dialer_sip:before{content:"\e0bb"}.material-icons.dialpad:before{content:"\e0bc"}.material-icons.dinner_dining:before{content:"\ea57"}.material-icons.directions:before{content:"\e52e"}.material-icons.directions_bike:before{content:"\e52f"}.material-icons.directions_boat:before{content:"\e532"}.material-icons.directions_bus:before{content:"\e530"}.material-icons.directions_car:before{content:"\e531"}.material-icons.directions_ferry:before{content:"\e532"}.material-icons.directions_railway:before{content:"\e534"}.material-icons.directions_run:before{content:"\e566"}.material-icons.directions_subway:before{content:"\e533"}.material-icons.directions_train:before{content:"\e534"}.material-icons.directions_transit:before{content:"\e535"}.material-icons.directions_walk:before{content:"\e536"}.material-icons.disc_full:before{content:"\e610"}.material-icons.dnd_forwardslash:before{content:"\e611"}.material-icons.dns:before{content:"\e875"}.material-icons.do_not_disturb:before{content:"\e612"}.material-icons.do_not_disturb_alt:before{content:"\e611"}.material-icons.do_not_disturb_off:before{content:"\e643"}.material-icons.do_not_disturb_on:before{content:"\e644"}.material-icons.dock:before{content:"\e30e"}.material-icons.domain:before{content:"\e7ee"}.material-icons.domain_disabled:before{content:"\e0ef"}.material-icons.done:before{content:"\e876"}.material-icons.done_all:before{content:"\e877"}.material-icons.done_outline:before{content:"\e92f"}.material-icons.donut_large:before{content:"\e917"}.material-icons.donut_small:before{content:"\e918"}.material-icons.double_arrow:before{content:"\ea50"}.material-icons.drafts:before{content:"\e151"}.material-icons.drag_handle:before{content:"\e25d"}.material-icons.drag_indicator:before{content:"\e945"}.material-icons.drive_eta:before{content:"\e613"}.material-icons.drive_file_move_outline:before{content:"\e9a1"}.material-icons.drive_file_rename_outline:before{content:"\e9a2"}.material-icons.drive_folder_upload:before{content:"\e9a3"}.material-icons.dry_cleaning:before{content:"\ea58"}.material-icons.duo:before{content:"\e9a5"}.material-icons.dvr:before{content:"\e1b2"}.material-icons.dynamic_feed:before{content:"\ea14"}.material-icons.eco:before{content:"\ea35"}.material-icons.edit:before{content:"\e3c9"}.material-icons.edit_attributes:before{content:"\e578"}.material-icons.edit_location:before{content:"\e568"}.material-icons.edit_off:before{content:"\e950"}.material-icons.eject:before{content:"\e8fb"}.material-icons.email:before{content:"\e0be"}.material-icons.emoji_emotions:before{content:"\ea22"}.material-icons.emoji_events:before{content:"\ea23"}.material-icons.emoji_flags:before{content:"\ea1a"}.material-icons.emoji_food_beverage:before{content:"\ea1b"}.material-icons.emoji_nature:before{content:"\ea1c"}.material-icons.emoji_objects:before{content:"\ea24"}.material-icons.emoji_people:before{content:"\ea1d"}.material-icons.emoji_symbols:before{content:"\ea1e"}.material-icons.emoji_transportation:before{content:"\ea1f"}.material-icons.enhance_photo_translate:before{content:"\e8fc"}.material-icons.enhanced_encryption:before{content:"\e63f"}.material-icons.equalizer:before{content:"\e01d"}.material-icons.error:before{content:"\e000"}.material-icons.error_outline:before{content:"\e001"}.material-icons.euro:before{content:"\ea15"}.material-icons.euro_symbol:before{content:"\e926"}.material-icons.ev_station:before{content:"\e56d"}.material-icons.event:before{content:"\e878"}.material-icons.event_available:before{content:"\e614"}.material-icons.event_busy:before{content:"\e615"}.material-icons.event_note:before{content:"\e616"}.material-icons.event_seat:before{content:"\e903"}.material-icons.exit_to_app:before{content:"\e879"}.material-icons.expand:before{content:"\e94f"}.material-icons.expand_less:before{content:"\e5ce"}.material-icons.expand_more:before{content:"\e5cf"}.material-icons.explicit:before{content:"\e01e"}.material-icons.explore:before{content:"\e87a"}.material-icons.explore_off:before{content:"\e9a8"}.material-icons.exposure:before{content:"\e3ca"}.material-icons.exposure_minus_1:before{content:"\e3cb"}.material-icons.exposure_minus_2:before{content:"\e3cc"}.material-icons.exposure_neg_1:before{content:"\e3cb"}.material-icons.exposure_neg_2:before{content:"\e3cc"}.material-icons.exposure_plus_1:before{content:"\e3cd"}.material-icons.exposure_plus_2:before{content:"\e3ce"}.material-icons.exposure_zero:before{content:"\e3cf"}.material-icons.extension:before{content:"\e87b"}.material-icons.face:before{content:"\e87c"}.material-icons.fast_forward:before{content:"\e01f"}.material-icons.fast_rewind:before{content:"\e020"}.material-icons.fastfood:before{content:"\e57a"}.material-icons.favorite:before{content:"\e87d"}.material-icons.favorite_border:before,.material-icons.favorite_outline:before{content:"\e87e"}.material-icons.featured_play_list:before{content:"\e06d"}.material-icons.featured_video:before{content:"\e06e"}.material-icons.feedback:before{content:"\e87f"}.material-icons.festival:before{content:"\ea68"}.material-icons.fiber_dvr:before{content:"\e05d"}.material-icons.fiber_manual_record:before{content:"\e061"}.material-icons.fiber_new:before{content:"\e05e"}.material-icons.fiber_pin:before{content:"\e06a"}.material-icons.fiber_smart_record:before{content:"\e062"}.material-icons.file_copy:before{content:"\e173"}.material-icons.file_download:before{content:"\e2c4"}.material-icons.file_download_done:before{content:"\e9aa"}.material-icons.file_present:before{content:"\ea0e"}.material-icons.file_upload:before{content:"\e2c6"}.material-icons.filter:before{content:"\e3d3"}.material-icons.filter_1:before{content:"\e3d0"}.material-icons.filter_2:before{content:"\e3d1"}.material-icons.filter_3:before{content:"\e3d2"}.material-icons.filter_4:before{content:"\e3d4"}.material-icons.filter_5:before{content:"\e3d5"}.material-icons.filter_6:before{content:"\e3d6"}.material-icons.filter_7:before{content:"\e3d7"}.material-icons.filter_8:before{content:"\e3d8"}.material-icons.filter_9:before{content:"\e3d9"}.material-icons.filter_9_plus:before{content:"\e3da"}.material-icons.filter_b_and_w:before{content:"\e3db"}.material-icons.filter_center_focus:before{content:"\e3dc"}.material-icons.filter_drama:before{content:"\e3dd"}.material-icons.filter_frames:before{content:"\e3de"}.material-icons.filter_hdr:before{content:"\e3df"}.material-icons.filter_list:before{content:"\e152"}.material-icons.filter_list_alt:before{content:"\e94e"}.material-icons.filter_none:before{content:"\e3e0"}.material-icons.filter_tilt_shift:before{content:"\e3e2"}.material-icons.filter_vintage:before{content:"\e3e3"}.material-icons.find_in_page:before{content:"\e880"}.material-icons.find_replace:before{content:"\e881"}.material-icons.fingerprint:before{content:"\e90d"}.material-icons.fireplace:before{content:"\ea43"}.material-icons.first_page:before{content:"\e5dc"}.material-icons.fit_screen:before{content:"\ea10"}.material-icons.fitness_center:before{content:"\eb43"}.material-icons.flag:before{content:"\e153"}.material-icons.flare:before{content:"\e3e4"}.material-icons.flash_auto:before{content:"\e3e5"}.material-icons.flash_off:before{content:"\e3e6"}.material-icons.flash_on:before{content:"\e3e7"}.material-icons.flight:before{content:"\e539"}.material-icons.flight_land:before{content:"\e904"}.material-icons.flight_takeoff:before{content:"\e905"}.material-icons.flip:before{content:"\e3e8"}.material-icons.flip_camera_android:before{content:"\ea37"}.material-icons.flip_camera_ios:before{content:"\ea38"}.material-icons.flip_to_back:before{content:"\e882"}.material-icons.flip_to_front:before{content:"\e883"}.material-icons.folder:before{content:"\e2c7"}.material-icons.folder_open:before{content:"\e2c8"}.material-icons.folder_shared:before{content:"\e2c9"}.material-icons.folder_special:before{content:"\e617"}.material-icons.font_download:before{content:"\e167"}.material-icons.format_align_center:before{content:"\e234"}.material-icons.format_align_justify:before{content:"\e235"}.material-icons.format_align_left:before{content:"\e236"}.material-icons.format_align_right:before{content:"\e237"}.material-icons.format_bold:before{content:"\e238"}.material-icons.format_clear:before{content:"\e239"}.material-icons.format_color_fill:before{content:"\e23a"}.material-icons.format_color_reset:before{content:"\e23b"}.material-icons.format_color_text:before{content:"\e23c"}.material-icons.format_indent_decrease:before{content:"\e23d"}.material-icons.format_indent_increase:before{content:"\e23e"}.material-icons.format_italic:before{content:"\e23f"}.material-icons.format_line_spacing:before{content:"\e240"}.material-icons.format_list_bulleted:before{content:"\e241"}.material-icons.format_list_numbered:before{content:"\e242"}.material-icons.format_list_numbered_rtl:before{content:"\e267"}.material-icons.format_paint:before{content:"\e243"}.material-icons.format_quote:before{content:"\e244"}.material-icons.format_shapes:before{content:"\e25e"}.material-icons.format_size:before{content:"\e245"}.material-icons.format_strikethrough:before{content:"\e246"}.material-icons.format_textdirection_l_to_r:before{content:"\e247"}.material-icons.format_textdirection_r_to_l:before{content:"\e248"}.material-icons.format_underline:before,.material-icons.format_underlined:before{content:"\e249"}.material-icons.forum:before{content:"\e0bf"}.material-icons.forward:before{content:"\e154"}.material-icons.forward_10:before{content:"\e056"}.material-icons.forward_30:before{content:"\e057"}.material-icons.forward_5:before{content:"\e058"}.material-icons.free_breakfast:before{content:"\eb44"}.material-icons.fullscreen:before{content:"\e5d0"}.material-icons.fullscreen_exit:before{content:"\e5d1"}.material-icons.functions:before{content:"\e24a"}.material-icons.g_translate:before{content:"\e927"}.material-icons.gamepad:before{content:"\e30f"}.material-icons.games:before{content:"\e021"}.material-icons.gavel:before{content:"\e90e"}.material-icons.gesture:before{content:"\e155"}.material-icons.get_app:before{content:"\e884"}.material-icons.gif:before{content:"\e908"}.material-icons.goat:before{content:"\dbff"}.material-icons.golf_course:before{content:"\eb45"}.material-icons.gps_fixed:before{content:"\e1b3"}.material-icons.gps_not_fixed:before{content:"\e1b4"}.material-icons.gps_off:before{content:"\e1b5"}.material-icons.grade:before{content:"\e885"}.material-icons.gradient:before{content:"\e3e9"}.material-icons.grain:before{content:"\e3ea"}.material-icons.graphic_eq:before{content:"\e1b8"}.material-icons.grid_off:before{content:"\e3eb"}.material-icons.grid_on:before{content:"\e3ec"}.material-icons.grid_view:before{content:"\e9b0"}.material-icons.group:before{content:"\e7ef"}.material-icons.group_add:before{content:"\e7f0"}.material-icons.group_work:before{content:"\e886"}.material-icons.hail:before{content:"\e9b1"}.material-icons.hardware:before{content:"\ea59"}.material-icons.hd:before{content:"\e052"}.material-icons.hdr_off:before{content:"\e3ed"}.material-icons.hdr_on:before{content:"\e3ee"}.material-icons.hdr_strong:before{content:"\e3f1"}.material-icons.hdr_weak:before{content:"\e3f2"}.material-icons.headset:before{content:"\e310"}.material-icons.headset_mic:before{content:"\e311"}.material-icons.headset_off:before{content:"\e33a"}.material-icons.healing:before{content:"\e3f3"}.material-icons.hearing:before{content:"\e023"}.material-icons.height:before{content:"\ea16"}.material-icons.help:before{content:"\e887"}.material-icons.help_outline:before{content:"\e8fd"}.material-icons.high_quality:before{content:"\e024"}.material-icons.highlight:before{content:"\e25f"}.material-icons.highlight_off:before,.material-icons.highlight_remove:before{content:"\e888"}.material-icons.history:before{content:"\e889"}.material-icons.home:before{content:"\e88a"}.material-icons.home_filled:before{content:"\e9b2"}.material-icons.home_work:before{content:"\ea09"}.material-icons.horizontal_split:before{content:"\e947"}.material-icons.hot_tub:before{content:"\eb46"}.material-icons.hotel:before{content:"\e53a"}.material-icons.hourglass_empty:before{content:"\e88b"}.material-icons.hourglass_full:before{content:"\e88c"}.material-icons.house:before{content:"\ea44"}.material-icons.how_to_reg:before{content:"\e174"}.material-icons.how_to_vote:before{content:"\e175"}.material-icons.http:before{content:"\e902"}.material-icons.https:before{content:"\e88d"}.material-icons.icecream:before{content:"\ea69"}.material-icons.image:before{content:"\e3f4"}.material-icons.image_aspect_ratio:before{content:"\e3f5"}.material-icons.image_search:before{content:"\e43f"}.material-icons.imagesearch_roller:before{content:"\e9b4"}.material-icons.import_contacts:before{content:"\e0e0"}.material-icons.import_export:before{content:"\e0c3"}.material-icons.important_devices:before{content:"\e912"}.material-icons.inbox:before{content:"\e156"}.material-icons.indeterminate_check_box:before{content:"\e909"}.material-icons.info:before{content:"\e88e"}.material-icons.info_outline:before{content:"\e88f"}.material-icons.input:before{content:"\e890"}.material-icons.insert_chart:before{content:"\e24b"}.material-icons.insert_chart_outlined:before{content:"\e26a"}.material-icons.insert_comment:before{content:"\e24c"}.material-icons.insert_drive_file:before{content:"\e24d"}.material-icons.insert_emoticon:before{content:"\e24e"}.material-icons.insert_invitation:before{content:"\e24f"}.material-icons.insert_link:before{content:"\e250"}.material-icons.insert_photo:before{content:"\e251"}.material-icons.inventory:before{content:"\e179"}.material-icons.invert_colors:before{content:"\e891"}.material-icons.invert_colors_off:before{content:"\e0c4"}.material-icons.invert_colors_on:before{content:"\e891"}.material-icons.iso:before{content:"\e3f6"}.material-icons.keyboard:before{content:"\e312"}.material-icons.keyboard_arrow_down:before{content:"\e313"}.material-icons.keyboard_arrow_left:before{content:"\e314"}.material-icons.keyboard_arrow_right:before{content:"\e315"}.material-icons.keyboard_arrow_up:before{content:"\e316"}.material-icons.keyboard_backspace:before{content:"\e317"}.material-icons.keyboard_capslock:before{content:"\e318"}.material-icons.keyboard_control:before{content:"\e5d3"}.material-icons.keyboard_hide:before{content:"\e31a"}.material-icons.keyboard_return:before{content:"\e31b"}.material-icons.keyboard_tab:before{content:"\e31c"}.material-icons.keyboard_voice:before{content:"\e31d"}.material-icons.king_bed:before{content:"\ea45"}.material-icons.kitchen:before{content:"\eb47"}.material-icons.label:before{content:"\e892"}.material-icons.label_important:before{content:"\e937"}.material-icons.label_important_outline:before{content:"\e948"}.material-icons.label_off:before{content:"\e9b6"}.material-icons.label_outline:before{content:"\e893"}.material-icons.landscape:before{content:"\e3f7"}.material-icons.language:before{content:"\e894"}.material-icons.laptop:before{content:"\e31e"}.material-icons.laptop_chromebook:before{content:"\e31f"}.material-icons.laptop_mac:before{content:"\e320"}.material-icons.laptop_windows:before{content:"\e321"}.material-icons.last_page:before{content:"\e5dd"}.material-icons.launch:before{content:"\e895"}.material-icons.layers:before{content:"\e53b"}.material-icons.layers_clear:before{content:"\e53c"}.material-icons.leak_add:before{content:"\e3f8"}.material-icons.leak_remove:before{content:"\e3f9"}.material-icons.lens:before{content:"\e3fa"}.material-icons.library_add:before{content:"\e02e"}.material-icons.library_add_check:before{content:"\e9b7"}.material-icons.library_books:before{content:"\e02f"}.material-icons.library_music:before{content:"\e030"}.material-icons.lightbulb:before{content:"\e0f0"}.material-icons.lightbulb_outline:before{content:"\e90f"}.material-icons.line_style:before{content:"\e919"}.material-icons.line_weight:before{content:"\e91a"}.material-icons.linear_scale:before{content:"\e260"}.material-icons.link:before{content:"\e157"}.material-icons.link_off:before{content:"\e16f"}.material-icons.linked_camera:before{content:"\e438"}.material-icons.liquor:before{content:"\ea60"}.material-icons.list:before{content:"\e896"}.material-icons.list_alt:before{content:"\e0ee"}.material-icons.live_help:before{content:"\e0c6"}.material-icons.live_tv:before{content:"\e639"}.material-icons.local_activity:before{content:"\e53f"}.material-icons.local_airport:before{content:"\e53d"}.material-icons.local_atm:before{content:"\e53e"}.material-icons.local_attraction:before{content:"\e53f"}.material-icons.local_bar:before{content:"\e540"}.material-icons.local_cafe:before{content:"\e541"}.material-icons.local_car_wash:before{content:"\e542"}.material-icons.local_convenience_store:before{content:"\e543"}.material-icons.local_dining:before{content:"\e556"}.material-icons.local_drink:before{content:"\e544"}.material-icons.local_florist:before{content:"\e545"}.material-icons.local_gas_station:before{content:"\e546"}.material-icons.local_grocery_store:before{content:"\e547"}.material-icons.local_hospital:before{content:"\e548"}.material-icons.local_hotel:before{content:"\e549"}.material-icons.local_laundry_service:before{content:"\e54a"}.material-icons.local_library:before{content:"\e54b"}.material-icons.local_mall:before{content:"\e54c"}.material-icons.local_movies:before{content:"\e54d"}.material-icons.local_offer:before{content:"\e54e"}.material-icons.local_parking:before{content:"\e54f"}.material-icons.local_pharmacy:before{content:"\e550"}.material-icons.local_phone:before{content:"\e551"}.material-icons.local_pizza:before{content:"\e552"}.material-icons.local_play:before{content:"\e553"}.material-icons.local_post_office:before{content:"\e554"}.material-icons.local_print_shop:before,.material-icons.local_printshop:before{content:"\e555"}.material-icons.local_restaurant:before{content:"\e556"}.material-icons.local_see:before{content:"\e557"}.material-icons.local_shipping:before{content:"\e558"}.material-icons.local_taxi:before{content:"\e559"}.material-icons.location_city:before{content:"\e7f1"}.material-icons.location_disabled:before{content:"\e1b6"}.material-icons.location_history:before{content:"\e55a"}.material-icons.location_off:before{content:"\e0c7"}.material-icons.location_on:before{content:"\e0c8"}.material-icons.location_searching:before{content:"\e1b7"}.material-icons.lock:before{content:"\e897"}.material-icons.lock_open:before{content:"\e898"}.material-icons.lock_outline:before{content:"\e899"}.material-icons.logout:before{content:"\e9ba"}.material-icons.looks:before{content:"\e3fc"}.material-icons.looks_3:before{content:"\e3fb"}.material-icons.looks_4:before{content:"\e3fd"}.material-icons.looks_5:before{content:"\e3fe"}.material-icons.looks_6:before{content:"\e3ff"}.material-icons.looks_one:before{content:"\e400"}.material-icons.looks_two:before{content:"\e401"}.material-icons.loop:before{content:"\e028"}.material-icons.loupe:before{content:"\e402"}.material-icons.low_priority:before{content:"\e16d"}.material-icons.loyalty:before{content:"\e89a"}.material-icons.lunch_dining:before{content:"\ea61"}.material-icons.mail:before{content:"\e158"}.material-icons.mail_outline:before{content:"\e0e1"}.material-icons.map:before{content:"\e55b"}.material-icons.margin:before{content:"\e9bb"}.material-icons.mark_as_unread:before{content:"\e9bc"}.material-icons.markunread:before{content:"\e159"}.material-icons.markunread_mailbox:before{content:"\e89b"}.material-icons.maximize:before{content:"\e930"}.material-icons.meeting_room:before{content:"\eb4f"}.material-icons.memory:before{content:"\e322"}.material-icons.menu:before{content:"\e5d2"}.material-icons.menu_book:before{content:"\ea19"}.material-icons.menu_open:before{content:"\e9bd"}.material-icons.merge_type:before{content:"\e252"}.material-icons.message:before{content:"\e0c9"}.material-icons.messenger:before{content:"\e0ca"}.material-icons.messenger_outline:before{content:"\e0cb"}.material-icons.mic:before{content:"\e029"}.material-icons.mic_none:before{content:"\e02a"}.material-icons.mic_off:before{content:"\e02b"}.material-icons.minimize:before{content:"\e931"}.material-icons.missed_video_call:before{content:"\e073"}.material-icons.mms:before{content:"\e618"}.material-icons.mobile_friendly:before{content:"\e200"}.material-icons.mobile_off:before{content:"\e201"}.material-icons.mobile_screen_share:before{content:"\e0e7"}.material-icons.mode_comment:before{content:"\e253"}.material-icons.mode_edit:before{content:"\e254"}.material-icons.monetization_on:before{content:"\e263"}.material-icons.money:before{content:"\e57d"}.material-icons.money_off:before{content:"\e25c"}.material-icons.monochrome_photos:before{content:"\e403"}.material-icons.mood:before{content:"\e7f2"}.material-icons.mood_bad:before{content:"\e7f3"}.material-icons.more:before{content:"\e619"}.material-icons.more_horiz:before{content:"\e5d3"}.material-icons.more_vert:before{content:"\e5d4"}.material-icons.motorcycle:before{content:"\e91b"}.material-icons.mouse:before{content:"\e323"}.material-icons.move_to_inbox:before{content:"\e168"}.material-icons.movie:before{content:"\e02c"}.material-icons.movie_creation:before{content:"\e404"}.material-icons.movie_filter:before{content:"\e43a"}.material-icons.mp:before{content:"\e9c3"}.material-icons.multiline_chart:before{content:"\e6df"}.material-icons.multitrack_audio:before{content:"\e1b8"}.material-icons.museum:before{content:"\ea36"}.material-icons.music_note:before{content:"\e405"}.material-icons.music_off:before{content:"\e440"}.material-icons.music_video:before{content:"\e063"}.material-icons.my_library_add:before{content:"\e02e"}.material-icons.my_library_books:before{content:"\e02f"}.material-icons.my_library_music:before{content:"\e030"}.material-icons.my_location:before{content:"\e55c"}.material-icons.nature:before{content:"\e406"}.material-icons.nature_people:before{content:"\e407"}.material-icons.navigate_before:before{content:"\e408"}.material-icons.navigate_next:before{content:"\e409"}.material-icons.navigation:before{content:"\e55d"}.material-icons.near_me:before{content:"\e569"}.material-icons.network_cell:before{content:"\e1b9"}.material-icons.network_check:before{content:"\e640"}.material-icons.network_locked:before{content:"\e61a"}.material-icons.network_wifi:before{content:"\e1ba"}.material-icons.new_releases:before{content:"\e031"}.material-icons.next_week:before{content:"\e16a"}.material-icons.nfc:before{content:"\e1bb"}.material-icons.nightlife:before{content:"\ea62"}.material-icons.nights_stay:before{content:"\ea46"}.material-icons.no_encryption:before{content:"\e641"}.material-icons.no_meeting_room:before{content:"\eb4e"}.material-icons.no_sim:before{content:"\e0cc"}.material-icons.not_interested:before{content:"\e033"}.material-icons.not_listed_location:before{content:"\e575"}.material-icons.note:before{content:"\e06f"}.material-icons.note_add:before{content:"\e89c"}.material-icons.notes:before{content:"\e26c"}.material-icons.notification_important:before{content:"\e004"}.material-icons.notifications:before{content:"\e7f4"}.material-icons.notifications_active:before{content:"\e7f7"}.material-icons.notifications_none:before{content:"\e7f5"}.material-icons.notifications_off:before{content:"\e7f6"}.material-icons.notifications_on:before{content:"\e7f7"}.material-icons.notifications_paused:before{content:"\e7f8"}.material-icons.now_wallpaper:before{content:"\e1bc"}.material-icons.now_widgets:before{content:"\e1bd"}.material-icons.offline_bolt:before{content:"\e932"}.material-icons.offline_pin:before{content:"\e90a"}.material-icons.offline_share:before{content:"\e9c5"}.material-icons.ondemand_video:before{content:"\e63a"}.material-icons.opacity:before{content:"\e91c"}.material-icons.open_in_browser:before{content:"\e89d"}.material-icons.open_in_new:before{content:"\e89e"}.material-icons.open_with:before{content:"\e89f"}.material-icons.outdoor_grill:before{content:"\ea47"}.material-icons.outlined_flag:before{content:"\e16e"}.material-icons.padding:before{content:"\e9c8"}.material-icons.pages:before{content:"\e7f9"}.material-icons.pageview:before{content:"\e8a0"}.material-icons.palette:before{content:"\e40a"}.material-icons.pan_tool:before{content:"\e925"}.material-icons.panorama:before{content:"\e40b"}.material-icons.panorama_fish_eye:before,.material-icons.panorama_fisheye:before{content:"\e40c"}.material-icons.panorama_horizontal:before{content:"\e40d"}.material-icons.panorama_photosphere:before{content:"\e9c9"}.material-icons.panorama_photosphere_select:before{content:"\e9ca"}.material-icons.panorama_vertical:before{content:"\e40e"}.material-icons.panorama_wide_angle:before{content:"\e40f"}.material-icons.park:before{content:"\ea63"}.material-icons.party_mode:before{content:"\e7fa"}.material-icons.pause:before{content:"\e034"}.material-icons.pause_circle_filled:before{content:"\e035"}.material-icons.pause_circle_outline:before{content:"\e036"}.material-icons.pause_presentation:before{content:"\e0ea"}.material-icons.payment:before{content:"\e8a1"}.material-icons.people:before{content:"\e7fb"}.material-icons.people_alt:before{content:"\ea21"}.material-icons.people_outline:before{content:"\e7fc"}.material-icons.perm_camera_mic:before{content:"\e8a2"}.material-icons.perm_contact_cal:before,.material-icons.perm_contact_calendar:before{content:"\e8a3"}.material-icons.perm_data_setting:before{content:"\e8a4"}.material-icons.perm_device_info:before,.material-icons.perm_device_information:before{content:"\e8a5"}.material-icons.perm_identity:before{content:"\e8a6"}.material-icons.perm_media:before{content:"\e8a7"}.material-icons.perm_phone_msg:before{content:"\e8a8"}.material-icons.perm_scan_wifi:before{content:"\e8a9"}.material-icons.person:before{content:"\e7fd"}.material-icons.person_add:before{content:"\e7fe"}.material-icons.person_add_disabled:before{content:"\e9cb"}.material-icons.person_outline:before{content:"\e7ff"}.material-icons.person_pin:before{content:"\e55a"}.material-icons.person_pin_circle:before{content:"\e56a"}.material-icons.personal_video:before{content:"\e63b"}.material-icons.pets:before{content:"\e91d"}.material-icons.phone:before{content:"\e0cd"}.material-icons.phone_android:before{content:"\e324"}.material-icons.phone_bluetooth_speaker:before{content:"\e61b"}.material-icons.phone_callback:before{content:"\e649"}.material-icons.phone_disabled:before{content:"\e9cc"}.material-icons.phone_enabled:before{content:"\e9cd"}.material-icons.phone_forwarded:before{content:"\e61c"}.material-icons.phone_in_talk:before{content:"\e61d"}.material-icons.phone_iphone:before{content:"\e325"}.material-icons.phone_locked:before{content:"\e61e"}.material-icons.phone_missed:before{content:"\e61f"}.material-icons.phone_paused:before{content:"\e620"}.material-icons.phonelink:before{content:"\e326"}.material-icons.phonelink_erase:before{content:"\e0db"}.material-icons.phonelink_lock:before{content:"\e0dc"}.material-icons.phonelink_off:before{content:"\e327"}.material-icons.phonelink_ring:before{content:"\e0dd"}.material-icons.phonelink_setup:before{content:"\e0de"}.material-icons.photo:before{content:"\e410"}.material-icons.photo_album:before{content:"\e411"}.material-icons.photo_camera:before{content:"\e412"}.material-icons.photo_filter:before{content:"\e43b"}.material-icons.photo_library:before{content:"\e413"}.material-icons.photo_size_select_actual:before{content:"\e432"}.material-icons.photo_size_select_large:before{content:"\e433"}.material-icons.photo_size_select_small:before{content:"\e434"}.material-icons.picture_as_pdf:before{content:"\e415"}.material-icons.picture_in_picture:before{content:"\e8aa"}.material-icons.picture_in_picture_alt:before{content:"\e911"}.material-icons.pie_chart:before{content:"\e6c4"}.material-icons.pie_chart_outlined:before{content:"\e6c5"}.material-icons.pin_drop:before{content:"\e55e"}.material-icons.pivot_table_chart:before{content:"\e9ce"}.material-icons.place:before{content:"\e55f"}.material-icons.play_arrow:before{content:"\e037"}.material-icons.play_circle_fill:before,.material-icons.play_circle_filled:before{content:"\e038"}.material-icons.play_circle_outline:before{content:"\e039"}.material-icons.play_for_work:before{content:"\e906"}.material-icons.playlist_add:before{content:"\e03b"}.material-icons.playlist_add_check:before{content:"\e065"}.material-icons.playlist_play:before{content:"\e05f"}.material-icons.plus_one:before{content:"\e800"}.material-icons.policy:before{content:"\ea17"}.material-icons.poll:before{content:"\e801"}.material-icons.polymer:before{content:"\e8ab"}.material-icons.pool:before{content:"\eb48"}.material-icons.portable_wifi_off:before{content:"\e0ce"}.material-icons.portrait:before{content:"\e416"}.material-icons.post_add:before{content:"\ea20"}.material-icons.power:before{content:"\e63c"}.material-icons.power_input:before{content:"\e336"}.material-icons.power_off:before{content:"\e646"}.material-icons.power_settings_new:before{content:"\e8ac"}.material-icons.pregnant_woman:before{content:"\e91e"}.material-icons.present_to_all:before{content:"\e0df"}.material-icons.print:before{content:"\e8ad"}.material-icons.print_disabled:before{content:"\e9cf"}.material-icons.priority_high:before{content:"\e645"}.material-icons.public:before{content:"\e80b"}.material-icons.publish:before{content:"\e255"}.material-icons.query_builder:before{content:"\e8ae"}.material-icons.question_answer:before{content:"\e8af"}.material-icons.queue:before{content:"\e03c"}.material-icons.queue_music:before{content:"\e03d"}.material-icons.queue_play_next:before{content:"\e066"}.material-icons.quick_contacts_dialer:before{content:"\e0cf"}.material-icons.quick_contacts_mail:before{content:"\e0d0"}.material-icons.radio:before{content:"\e03e"}.material-icons.radio_button_checked:before{content:"\e837"}.material-icons.radio_button_off:before{content:"\e836"}.material-icons.radio_button_on:before{content:"\e837"}.material-icons.radio_button_unchecked:before{content:"\e836"}.material-icons.railway_alert:before{content:"\e9d1"}.material-icons.ramen_dining:before{content:"\ea64"}.material-icons.rate_review:before{content:"\e560"}.material-icons.receipt:before{content:"\e8b0"}.material-icons.recent_actors:before{content:"\e03f"}.material-icons.recommend:before{content:"\e9d2"}.material-icons.record_voice_over:before{content:"\e91f"}.material-icons.redeem:before{content:"\e8b1"}.material-icons.redo:before{content:"\e15a"}.material-icons.refresh:before{content:"\e5d5"}.material-icons.remove:before{content:"\e15b"}.material-icons.remove_circle:before{content:"\e15c"}.material-icons.remove_circle_outline:before{content:"\e15d"}.material-icons.remove_done:before{content:"\e9d3"}.material-icons.remove_from_queue:before{content:"\e067"}.material-icons.remove_moderator:before{content:"\e9d4"}.material-icons.remove_red_eye:before{content:"\e417"}.material-icons.remove_shopping_cart:before{content:"\e928"}.material-icons.reorder:before{content:"\e8fe"}.material-icons.repeat:before{content:"\e040"}.material-icons.repeat_on:before{content:"\e9d6"}.material-icons.repeat_one:before{content:"\e041"}.material-icons.repeat_one_on:before{content:"\e9d7"}.material-icons.replay:before{content:"\e042"}.material-icons.replay_10:before{content:"\e059"}.material-icons.replay_30:before{content:"\e05a"}.material-icons.replay_5:before{content:"\e05b"}.material-icons.replay_circle_filled:before{content:"\e9d8"}.material-icons.reply:before{content:"\e15e"}.material-icons.reply_all:before{content:"\e15f"}.material-icons.report:before{content:"\e160"}.material-icons.report_off:before{content:"\e170"}.material-icons.report_problem:before{content:"\e8b2"}.material-icons.reset_tv:before{content:"\e9d9"}.material-icons.restaurant:before{content:"\e56c"}.material-icons.restaurant_menu:before{content:"\e561"}.material-icons.restore:before{content:"\e8b3"}.material-icons.restore_from_trash:before{content:"\e938"}.material-icons.restore_page:before{content:"\e929"}.material-icons.ring_volume:before{content:"\e0d1"}.material-icons.room:before{content:"\e8b4"}.material-icons.room_service:before{content:"\eb49"}.material-icons.rotate_90_degrees_ccw:before{content:"\e418"}.material-icons.rotate_left:before{content:"\e419"}.material-icons.rotate_right:before{content:"\e41a"}.material-icons.rounded_corner:before{content:"\e920"}.material-icons.router:before{content:"\e328"}.material-icons.rowing:before{content:"\e921"}.material-icons.rss_feed:before{content:"\e0e5"}.material-icons.rtt:before{content:"\e9ad"}.material-icons.rv_hookup:before{content:"\e642"}.material-icons.satellite:before{content:"\e562"}.material-icons.save:before{content:"\e161"}.material-icons.save_alt:before{content:"\e171"}.material-icons.saved_search:before{content:"\ea11"}.material-icons.scanner:before{content:"\e329"}.material-icons.scatter_plot:before{content:"\e268"}.material-icons.schedule:before{content:"\e8b5"}.material-icons.schedule_send:before{content:"\ea0a"}.material-icons.school:before{content:"\e80c"}.material-icons.score:before{content:"\e269"}.material-icons.screen_lock_landscape:before{content:"\e1be"}.material-icons.screen_lock_portrait:before{content:"\e1bf"}.material-icons.screen_lock_rotation:before{content:"\e1c0"}.material-icons.screen_rotation:before{content:"\e1c1"}.material-icons.screen_share:before{content:"\e0e2"}.material-icons.sd:before{content:"\e9dd"}.material-icons.sd_card:before{content:"\e623"}.material-icons.sd_storage:before{content:"\e1c2"}.material-icons.search:before{content:"\e8b6"}.material-icons.security:before{content:"\e32a"}.material-icons.segment:before{content:"\e94b"}.material-icons.select_all:before{content:"\e162"}.material-icons.send:before{content:"\e163"}.material-icons.send_and_archive:before{content:"\ea0c"}.material-icons.sentiment_dissatisfied:before{content:"\e811"}.material-icons.sentiment_neutral:before{content:"\e812"}.material-icons.sentiment_satisfied:before{content:"\e813"}.material-icons.sentiment_satisfied_alt:before{content:"\e0ed"}.material-icons.sentiment_very_dissatisfied:before{content:"\e814"}.material-icons.sentiment_very_satisfied:before{content:"\e815"}.material-icons.settings:before{content:"\e8b8"}.material-icons.settings_applications:before{content:"\e8b9"}.material-icons.settings_backup_restore:before{content:"\e8ba"}.material-icons.settings_bluetooth:before{content:"\e8bb"}.material-icons.settings_brightness:before{content:"\e8bd"}.material-icons.settings_cell:before{content:"\e8bc"}.material-icons.settings_display:before{content:"\e8bd"}.material-icons.settings_ethernet:before{content:"\e8be"}.material-icons.settings_input_antenna:before{content:"\e8bf"}.material-icons.settings_input_component:before{content:"\e8c0"}.material-icons.settings_input_composite:before{content:"\e8c1"}.material-icons.settings_input_hdmi:before{content:"\e8c2"}.material-icons.settings_input_svideo:before{content:"\e8c3"}.material-icons.settings_overscan:before{content:"\e8c4"}.material-icons.settings_phone:before{content:"\e8c5"}.material-icons.settings_power:before{content:"\e8c6"}.material-icons.settings_remote:before{content:"\e8c7"}.material-icons.settings_system_daydream:before{content:"\e1c3"}.material-icons.settings_voice:before{content:"\e8c8"}.material-icons.share:before{content:"\e80d"}.material-icons.shield:before{content:"\e9e0"}.material-icons.shop:before{content:"\e8c9"}.material-icons.shop_two:before{content:"\e8ca"}.material-icons.shopping_basket:before{content:"\e8cb"}.material-icons.shopping_cart:before{content:"\e8cc"}.material-icons.short_text:before{content:"\e261"}.material-icons.show_chart:before{content:"\e6e1"}.material-icons.shuffle:before{content:"\e043"}.material-icons.shuffle_on:before{content:"\e9e1"}.material-icons.shutter_speed:before{content:"\e43d"}.material-icons.signal_cellular_4_bar:before{content:"\e1c8"}.material-icons.signal_cellular_alt:before{content:"\e202"}.material-icons.signal_cellular_connected_no_internet_4_bar:before{content:"\e1cd"}.material-icons.signal_cellular_no_sim:before{content:"\e1ce"}.material-icons.signal_cellular_null:before{content:"\e1cf"}.material-icons.signal_cellular_off:before{content:"\e1d0"}.material-icons.signal_wifi_4_bar:before{content:"\e1d8"}.material-icons.signal_wifi_4_bar_lock:before{content:"\e1d9"}.material-icons.signal_wifi_off:before{content:"\e1da"}.material-icons.sim_card:before{content:"\e32b"}.material-icons.sim_card_alert:before{content:"\e624"}.material-icons.single_bed:before{content:"\ea48"}.material-icons.skip_next:before{content:"\e044"}.material-icons.skip_previous:before{content:"\e045"}.material-icons.slideshow:before{content:"\e41b"}.material-icons.slow_motion_video:before{content:"\e068"}.material-icons.smartphone:before{content:"\e32c"}.material-icons.smoke_free:before{content:"\eb4a"}.material-icons.smoking_rooms:before{content:"\eb4b"}.material-icons.sms:before{content:"\e625"}.material-icons.sms_failed:before{content:"\e626"}.material-icons.snooze:before{content:"\e046"}.material-icons.sort:before{content:"\e164"}.material-icons.sort_by_alpha:before{content:"\e053"}.material-icons.spa:before{content:"\eb4c"}.material-icons.space_bar:before{content:"\e256"}.material-icons.speaker:before{content:"\e32d"}.material-icons.speaker_group:before{content:"\e32e"}.material-icons.speaker_notes:before{content:"\e8cd"}.material-icons.speaker_notes_off:before{content:"\e92a"}.material-icons.speaker_phone:before{content:"\e0d2"}.material-icons.speed:before{content:"\e9e4"}.material-icons.spellcheck:before{content:"\e8ce"}.material-icons.sports:before{content:"\ea30"}.material-icons.sports_baseball:before{content:"\ea51"}.material-icons.sports_basketball:before{content:"\ea26"}.material-icons.sports_cricket:before{content:"\ea27"}.material-icons.sports_esports:before{content:"\ea28"}.material-icons.sports_football:before{content:"\ea29"}.material-icons.sports_golf:before{content:"\ea2a"}.material-icons.sports_handball:before{content:"\ea33"}.material-icons.sports_hockey:before{content:"\ea2b"}.material-icons.sports_kabaddi:before{content:"\ea34"}.material-icons.sports_mma:before{content:"\ea2c"}.material-icons.sports_motorsports:before{content:"\ea2d"}.material-icons.sports_rugby:before{content:"\ea2e"}.material-icons.sports_soccer:before{content:"\ea2f"}.material-icons.sports_tennis:before{content:"\ea32"}.material-icons.sports_volleyball:before{content:"\ea31"}.material-icons.square_foot:before{content:"\ea49"}.material-icons.stacked_bar_chart:before{content:"\e9e6"}.material-icons.star:before{content:"\e838"}.material-icons.star_border:before{content:"\e83a"}.material-icons.star_half:before{content:"\e839"}.material-icons.star_outline:before{content:"\e83a"}.material-icons.stars:before{content:"\e8d0"}.material-icons.stay_current_landscape:before{content:"\e0d3"}.material-icons.stay_current_portrait:before{content:"\e0d4"}.material-icons.stay_primary_landscape:before{content:"\e0d5"}.material-icons.stay_primary_portrait:before{content:"\e0d6"}.material-icons.stop:before{content:"\e047"}.material-icons.stop_screen_share:before{content:"\e0e3"}.material-icons.storage:before{content:"\e1db"}.material-icons.store:before{content:"\e8d1"}.material-icons.store_mall_directory:before{content:"\e563"}.material-icons.storefront:before{content:"\ea12"}.material-icons.straighten:before{content:"\e41c"}.material-icons.stream:before{content:"\e9e9"}.material-icons.streetview:before{content:"\e56e"}.material-icons.strikethrough_s:before{content:"\e257"}.material-icons.style:before{content:"\e41d"}.material-icons.subdirectory_arrow_left:before{content:"\e5d9"}.material-icons.subdirectory_arrow_right:before{content:"\e5da"}.material-icons.subject:before{content:"\e8d2"}.material-icons.subscriptions:before{content:"\e064"}.material-icons.subtitles:before{content:"\e048"}.material-icons.subway:before{content:"\e56f"}.material-icons.supervised_user_circle:before{content:"\e939"}.material-icons.supervisor_account:before{content:"\e8d3"}.material-icons.surround_sound:before{content:"\e049"}.material-icons.swap_calls:before{content:"\e0d7"}.material-icons.swap_horiz:before{content:"\e8d4"}.material-icons.swap_horizontal_circle:before{content:"\e933"}.material-icons.swap_vert:before{content:"\e8d5"}.material-icons.swap_vert_circle:before,.material-icons.swap_vertical_circle:before{content:"\e8d6"}.material-icons.swipe:before{content:"\e9ec"}.material-icons.switch_account:before{content:"\e9ed"}.material-icons.switch_camera:before{content:"\e41e"}.material-icons.switch_video:before{content:"\e41f"}.material-icons.sync:before{content:"\e627"}.material-icons.sync_alt:before{content:"\ea18"}.material-icons.sync_disabled:before{content:"\e628"}.material-icons.sync_problem:before{content:"\e629"}.material-icons.system_update:before{content:"\e62a"}.material-icons.system_update_alt:before,.material-icons.system_update_tv:before{content:"\e8d7"}.material-icons.tab:before{content:"\e8d8"}.material-icons.tab_unselected:before{content:"\e8d9"}.material-icons.table_chart:before{content:"\e265"}.material-icons.tablet:before{content:"\e32f"}.material-icons.tablet_android:before{content:"\e330"}.material-icons.tablet_mac:before{content:"\e331"}.material-icons.tag:before{content:"\e9ef"}.material-icons.tag_faces:before{content:"\e420"}.material-icons.takeout_dining:before{content:"\ea74"}.material-icons.tap_and_play:before{content:"\e62b"}.material-icons.terrain:before{content:"\e564"}.material-icons.text_fields:before{content:"\e262"}.material-icons.text_format:before{content:"\e165"}.material-icons.text_rotate_up:before{content:"\e93a"}.material-icons.text_rotate_vertical:before{content:"\e93b"}.material-icons.text_rotation_angledown:before{content:"\e93c"}.material-icons.text_rotation_angleup:before{content:"\e93d"}.material-icons.text_rotation_down:before{content:"\e93e"}.material-icons.text_rotation_none:before{content:"\e93f"}.material-icons.textsms:before{content:"\e0d8"}.material-icons.texture:before{content:"\e421"}.material-icons.theater_comedy:before{content:"\ea66"}.material-icons.theaters:before{content:"\e8da"}.material-icons.thumb_down:before{content:"\e8db"}.material-icons.thumb_down_alt:before{content:"\e816"}.material-icons.thumb_down_off_alt:before{content:"\e9f2"}.material-icons.thumb_up:before{content:"\e8dc"}.material-icons.thumb_up_alt:before{content:"\e817"}.material-icons.thumb_up_off_alt:before{content:"\e9f3"}.material-icons.thumbs_up_down:before{content:"\e8dd"}.material-icons.time_to_leave:before{content:"\e62c"}.material-icons.timelapse:before{content:"\e422"}.material-icons.timeline:before{content:"\e922"}.material-icons.timer:before{content:"\e425"}.material-icons.timer_10:before{content:"\e423"}.material-icons.timer_3:before{content:"\e424"}.material-icons.timer_off:before{content:"\e426"}.material-icons.title:before{content:"\e264"}.material-icons.toc:before{content:"\e8de"}.material-icons.today:before{content:"\e8df"}.material-icons.toggle_off:before{content:"\e9f5"}.material-icons.toggle_on:before{content:"\e9f6"}.material-icons.toll:before{content:"\e8e0"}.material-icons.tonality:before{content:"\e427"}.material-icons.touch_app:before{content:"\e913"}.material-icons.toys:before{content:"\e332"}.material-icons.track_changes:before{content:"\e8e1"}.material-icons.traffic:before{content:"\e565"}.material-icons.train:before{content:"\e570"}.material-icons.tram:before{content:"\e571"}.material-icons.transfer_within_a_station:before{content:"\e572"}.material-icons.transform:before{content:"\e428"}.material-icons.transit_enterexit:before{content:"\e579"}.material-icons.translate:before{content:"\e8e2"}.material-icons.trending_down:before{content:"\e8e3"}.material-icons.trending_flat:before,.material-icons.trending_neutral:before{content:"\e8e4"}.material-icons.trending_up:before{content:"\e8e5"}.material-icons.trip_origin:before{content:"\e57b"}.material-icons.tune:before{content:"\e429"}.material-icons.turned_in:before{content:"\e8e6"}.material-icons.turned_in_not:before{content:"\e8e7"}.material-icons.tv:before{content:"\e333"}.material-icons.tv_off:before{content:"\e647"}.material-icons.two_wheeler:before{content:"\e9f9"}.material-icons.unarchive:before{content:"\e169"}.material-icons.undo:before{content:"\e166"}.material-icons.unfold_less:before{content:"\e5d6"}.material-icons.unfold_more:before{content:"\e5d7"}.material-icons.unsubscribe:before{content:"\e0eb"}.material-icons.update:before{content:"\e923"}.material-icons.upload_file:before{content:"\e9fc"}.material-icons.usb:before{content:"\e1e0"}.material-icons.verified_user:before{content:"\e8e8"}.material-icons.vertical_align_bottom:before{content:"\e258"}.material-icons.vertical_align_center:before{content:"\e259"}.material-icons.vertical_align_top:before{content:"\e25a"}.material-icons.vertical_split:before{content:"\e949"}.material-icons.vibration:before{content:"\e62d"}.material-icons.video_call:before{content:"\e070"}.material-icons.video_collection:before{content:"\e04a"}.material-icons.video_label:before{content:"\e071"}.material-icons.video_library:before{content:"\e04a"}.material-icons.videocam:before{content:"\e04b"}.material-icons.videocam_off:before{content:"\e04c"}.material-icons.videogame_asset:before{content:"\e338"}.material-icons.view_agenda:before{content:"\e8e9"}.material-icons.view_array:before{content:"\e8ea"}.material-icons.view_carousel:before{content:"\e8eb"}.material-icons.view_column:before{content:"\e8ec"}.material-icons.view_comfortable:before,.material-icons.view_comfy:before{content:"\e42a"}.material-icons.view_compact:before{content:"\e42b"}.material-icons.view_day:before{content:"\e8ed"}.material-icons.view_headline:before{content:"\e8ee"}.material-icons.view_in_ar:before{content:"\e9fe"}.material-icons.view_list:before{content:"\e8ef"}.material-icons.view_module:before{content:"\e8f0"}.material-icons.view_quilt:before{content:"\e8f1"}.material-icons.view_stream:before{content:"\e8f2"}.material-icons.view_week:before{content:"\e8f3"}.material-icons.vignette:before{content:"\e435"}.material-icons.visibility:before{content:"\e8f4"}.material-icons.visibility_off:before{content:"\e8f5"}.material-icons.voice_chat:before{content:"\e62e"}.material-icons.voice_over_off:before{content:"\e94a"}.material-icons.voicemail:before{content:"\e0d9"}.material-icons.volume_down:before{content:"\e04d"}.material-icons.volume_mute:before{content:"\e04e"}.material-icons.volume_off:before{content:"\e04f"}.material-icons.volume_up:before{content:"\e050"}.material-icons.volunteer_activism:before{content:"\ea70"}.material-icons.vpn_key:before{content:"\e0da"}.material-icons.vpn_lock:before{content:"\e62f"}.material-icons.wallet_giftcard:before{content:"\e8f6"}.material-icons.wallet_membership:before{content:"\e8f7"}.material-icons.wallet_travel:before{content:"\e8f8"}.material-icons.wallpaper:before{content:"\e1bc"}.material-icons.warning:before{content:"\e002"}.material-icons.watch:before{content:"\e334"}.material-icons.watch_later:before{content:"\e924"}.material-icons.waterfall_chart:before{content:"\ea00"}.material-icons.waves:before{content:"\e176"}.material-icons.wb_auto:before{content:"\e42c"}.material-icons.wb_cloudy:before{content:"\e42d"}.material-icons.wb_incandescent:before{content:"\e42e"}.material-icons.wb_iridescent:before{content:"\e436"}.material-icons.wb_shade:before{content:"\ea01"}.material-icons.wb_sunny:before{content:"\e430"}.material-icons.wb_twighlight:before{content:"\ea02"}.material-icons.wc:before{content:"\e63d"}.material-icons.web:before{content:"\e051"}.material-icons.web_asset:before{content:"\e069"}.material-icons.weekend:before{content:"\e16b"}.material-icons.whatshot:before{content:"\e80e"}.material-icons.where_to_vote:before{content:"\e177"}.material-icons.widgets:before{content:"\e1bd"}.material-icons.wifi:before{content:"\e63e"}.material-icons.wifi_lock:before{content:"\e1e1"}.material-icons.wifi_off:before{content:"\e648"}.material-icons.wifi_tethering:before{content:"\e1e2"}.material-icons.work:before{content:"\e8f9"}.material-icons.work_off:before{content:"\e942"}.material-icons.work_outline:before{content:"\e943"}.material-icons.workspaces_filled:before{content:"\ea0d"}.material-icons.workspaces_outline:before{content:"\ea0f"}.material-icons.wrap_text:before{content:"\e25b"}.material-icons.youtube_searched_for:before{content:"\e8fa"}.material-icons.zoom_in:before{content:"\e8ff"}.material-icons.zoom_out:before{content:"\e900"}.material-icons.zoom_out_map:before{content:"\e56b"}@-moz-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@-webkit-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@-o-keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.black{background-color:#000!important;border-color:#000!important}.black--text{color:#000!important;caret-color:#000!important}.white{background-color:#fff!important;border-color:#fff!important}.white--text{color:#fff!important;caret-color:#fff!important}.transparent{background-color:transparent!important;border-color:transparent!important}.transparent--text{color:transparent!important;caret-color:transparent!important}.red{background-color:#f44336!important;border-color:#f44336!important}.red--text{color:#f44336!important;caret-color:#f44336!important}.red.lighten-5{background-color:#ffebee!important;border-color:#ffebee!important}.red--text.text--lighten-5{color:#ffebee!important;caret-color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important;border-color:#ffcdd2!important}.red--text.text--lighten-4{color:#ffcdd2!important;caret-color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important;border-color:#ef9a9a!important}.red--text.text--lighten-3{color:#ef9a9a!important;caret-color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important;border-color:#e57373!important}.red--text.text--lighten-2{color:#e57373!important;caret-color:#e57373!important}.red.lighten-1{background-color:#ef5350!important;border-color:#ef5350!important}.red--text.text--lighten-1{color:#ef5350!important;caret-color:#ef5350!important}.red.darken-1{background-color:#e53935!important;border-color:#e53935!important}.red--text.text--darken-1{color:#e53935!important;caret-color:#e53935!important}.red.darken-2{background-color:#d32f2f!important;border-color:#d32f2f!important}.red--text.text--darken-2{color:#d32f2f!important;caret-color:#d32f2f!important}.red.darken-3{background-color:#c62828!important;border-color:#c62828!important}.red--text.text--darken-3{color:#c62828!important;caret-color:#c62828!important}.red.darken-4{background-color:#b71c1c!important;border-color:#b71c1c!important}.red--text.text--darken-4{color:#b71c1c!important;caret-color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important;border-color:#ff8a80!important}.red--text.text--accent-1{color:#ff8a80!important;caret-color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important;border-color:#ff5252!important}.red--text.text--accent-2{color:#ff5252!important;caret-color:#ff5252!important}.red.accent-3{background-color:#ff1744!important;border-color:#ff1744!important}.red--text.text--accent-3{color:#ff1744!important;caret-color:#ff1744!important}.red.accent-4{background-color:#d50000!important;border-color:#d50000!important}.red--text.text--accent-4{color:#d50000!important;caret-color:#d50000!important}.pink{background-color:#e91e63!important;border-color:#e91e63!important}.pink--text{color:#e91e63!important;caret-color:#e91e63!important}.pink.lighten-5{background-color:#fce4ec!important;border-color:#fce4ec!important}.pink--text.text--lighten-5{color:#fce4ec!important;caret-color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important;border-color:#f8bbd0!important}.pink--text.text--lighten-4{color:#f8bbd0!important;caret-color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important;border-color:#f48fb1!important}.pink--text.text--lighten-3{color:#f48fb1!important;caret-color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important;border-color:#f06292!important}.pink--text.text--lighten-2{color:#f06292!important;caret-color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important;border-color:#ec407a!important}.pink--text.text--lighten-1{color:#ec407a!important;caret-color:#ec407a!important}.pink.darken-1{background-color:#d81b60!important;border-color:#d81b60!important}.pink--text.text--darken-1{color:#d81b60!important;caret-color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important;border-color:#c2185b!important}.pink--text.text--darken-2{color:#c2185b!important;caret-color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important;border-color:#ad1457!important}.pink--text.text--darken-3{color:#ad1457!important;caret-color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important;border-color:#880e4f!important}.pink--text.text--darken-4{color:#880e4f!important;caret-color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important;border-color:#ff80ab!important}.pink--text.text--accent-1{color:#ff80ab!important;caret-color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important;border-color:#ff4081!important}.pink--text.text--accent-2{color:#ff4081!important;caret-color:#ff4081!important}.pink.accent-3{background-color:#f50057!important;border-color:#f50057!important}.pink--text.text--accent-3{color:#f50057!important;caret-color:#f50057!important}.pink.accent-4{background-color:#c51162!important;border-color:#c51162!important}.pink--text.text--accent-4{color:#c51162!important;caret-color:#c51162!important}.purple{background-color:#9c27b0!important;border-color:#9c27b0!important}.purple--text{color:#9c27b0!important;caret-color:#9c27b0!important}.purple.lighten-5{background-color:#f3e5f5!important;border-color:#f3e5f5!important}.purple--text.text--lighten-5{color:#f3e5f5!important;caret-color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important;border-color:#e1bee7!important}.purple--text.text--lighten-4{color:#e1bee7!important;caret-color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important;border-color:#ce93d8!important}.purple--text.text--lighten-3{color:#ce93d8!important;caret-color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important;border-color:#ba68c8!important}.purple--text.text--lighten-2{color:#ba68c8!important;caret-color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important;border-color:#ab47bc!important}.purple--text.text--lighten-1{color:#ab47bc!important;caret-color:#ab47bc!important}.purple.darken-1{background-color:#8e24aa!important;border-color:#8e24aa!important}.purple--text.text--darken-1{color:#8e24aa!important;caret-color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important;border-color:#7b1fa2!important}.purple--text.text--darken-2{color:#7b1fa2!important;caret-color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important;border-color:#6a1b9a!important}.purple--text.text--darken-3{color:#6a1b9a!important;caret-color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important;border-color:#4a148c!important}.purple--text.text--darken-4{color:#4a148c!important;caret-color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important;border-color:#ea80fc!important}.purple--text.text--accent-1{color:#ea80fc!important;caret-color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important;border-color:#e040fb!important}.purple--text.text--accent-2{color:#e040fb!important;caret-color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important;border-color:#d500f9!important}.purple--text.text--accent-3{color:#d500f9!important;caret-color:#d500f9!important}.purple.accent-4{background-color:#a0f!important;border-color:#a0f!important}.purple--text.text--accent-4{color:#a0f!important;caret-color:#a0f!important}.deep-purple{background-color:#673ab7!important;border-color:#673ab7!important}.deep-purple--text{color:#673ab7!important;caret-color:#673ab7!important}.deep-purple.lighten-5{background-color:#ede7f6!important;border-color:#ede7f6!important}.deep-purple--text.text--lighten-5{color:#ede7f6!important;caret-color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important;border-color:#d1c4e9!important}.deep-purple--text.text--lighten-4{color:#d1c4e9!important;caret-color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important;border-color:#b39ddb!important}.deep-purple--text.text--lighten-3{color:#b39ddb!important;caret-color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important;border-color:#9575cd!important}.deep-purple--text.text--lighten-2{color:#9575cd!important;caret-color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important;border-color:#7e57c2!important}.deep-purple--text.text--lighten-1{color:#7e57c2!important;caret-color:#7e57c2!important}.deep-purple.darken-1{background-color:#5e35b1!important;border-color:#5e35b1!important}.deep-purple--text.text--darken-1{color:#5e35b1!important;caret-color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important;border-color:#512da8!important}.deep-purple--text.text--darken-2{color:#512da8!important;caret-color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important;border-color:#4527a0!important}.deep-purple--text.text--darken-3{color:#4527a0!important;caret-color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important;border-color:#311b92!important}.deep-purple--text.text--darken-4{color:#311b92!important;caret-color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important;border-color:#b388ff!important}.deep-purple--text.text--accent-1{color:#b388ff!important;caret-color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important;border-color:#7c4dff!important}.deep-purple--text.text--accent-2{color:#7c4dff!important;caret-color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important;border-color:#651fff!important}.deep-purple--text.text--accent-3{color:#651fff!important;caret-color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important;border-color:#6200ea!important}.deep-purple--text.text--accent-4{color:#6200ea!important;caret-color:#6200ea!important}.indigo{background-color:#3f51b5!important;border-color:#3f51b5!important}.indigo--text{color:#3f51b5!important;caret-color:#3f51b5!important}.indigo.lighten-5{background-color:#e8eaf6!important;border-color:#e8eaf6!important}.indigo--text.text--lighten-5{color:#e8eaf6!important;caret-color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important;border-color:#c5cae9!important}.indigo--text.text--lighten-4{color:#c5cae9!important;caret-color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important;border-color:#9fa8da!important}.indigo--text.text--lighten-3{color:#9fa8da!important;caret-color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important;border-color:#7986cb!important}.indigo--text.text--lighten-2{color:#7986cb!important;caret-color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important;border-color:#5c6bc0!important}.indigo--text.text--lighten-1{color:#5c6bc0!important;caret-color:#5c6bc0!important}.indigo.darken-1{background-color:#3949ab!important;border-color:#3949ab!important}.indigo--text.text--darken-1{color:#3949ab!important;caret-color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important;border-color:#303f9f!important}.indigo--text.text--darken-2{color:#303f9f!important;caret-color:#303f9f!important}.indigo.darken-3{background-color:#283593!important;border-color:#283593!important}.indigo--text.text--darken-3{color:#283593!important;caret-color:#283593!important}.indigo.darken-4{background-color:#1a237e!important;border-color:#1a237e!important}.indigo--text.text--darken-4{color:#1a237e!important;caret-color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important;border-color:#8c9eff!important}.indigo--text.text--accent-1{color:#8c9eff!important;caret-color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important;border-color:#536dfe!important}.indigo--text.text--accent-2{color:#536dfe!important;caret-color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important;border-color:#3d5afe!important}.indigo--text.text--accent-3{color:#3d5afe!important;caret-color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important;border-color:#304ffe!important}.indigo--text.text--accent-4{color:#304ffe!important;caret-color:#304ffe!important}.blue{background-color:#2196f3!important;border-color:#2196f3!important}.blue--text{color:#2196f3!important;caret-color:#2196f3!important}.blue.lighten-5{background-color:#e3f2fd!important;border-color:#e3f2fd!important}.blue--text.text--lighten-5{color:#e3f2fd!important;caret-color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important;border-color:#bbdefb!important}.blue--text.text--lighten-4{color:#bbdefb!important;caret-color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important;border-color:#90caf9!important}.blue--text.text--lighten-3{color:#90caf9!important;caret-color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important;border-color:#64b5f6!important}.blue--text.text--lighten-2{color:#64b5f6!important;caret-color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important;border-color:#42a5f5!important}.blue--text.text--lighten-1{color:#42a5f5!important;caret-color:#42a5f5!important}.blue.darken-1{background-color:#1e88e5!important;border-color:#1e88e5!important}.blue--text.text--darken-1{color:#1e88e5!important;caret-color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important;border-color:#1976d2!important}.blue--text.text--darken-2{color:#1976d2!important;caret-color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important;border-color:#1565c0!important}.blue--text.text--darken-3{color:#1565c0!important;caret-color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important;border-color:#0d47a1!important}.blue--text.text--darken-4{color:#0d47a1!important;caret-color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important;border-color:#82b1ff!important}.blue--text.text--accent-1{color:#82b1ff!important;caret-color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important;border-color:#448aff!important}.blue--text.text--accent-2{color:#448aff!important;caret-color:#448aff!important}.blue.accent-3{background-color:#2979ff!important;border-color:#2979ff!important}.blue--text.text--accent-3{color:#2979ff!important;caret-color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important;border-color:#2962ff!important}.blue--text.text--accent-4{color:#2962ff!important;caret-color:#2962ff!important}.light-blue{background-color:#03a9f4!important;border-color:#03a9f4!important}.light-blue--text{color:#03a9f4!important;caret-color:#03a9f4!important}.light-blue.lighten-5{background-color:#e1f5fe!important;border-color:#e1f5fe!important}.light-blue--text.text--lighten-5{color:#e1f5fe!important;caret-color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important;border-color:#b3e5fc!important}.light-blue--text.text--lighten-4{color:#b3e5fc!important;caret-color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important;border-color:#81d4fa!important}.light-blue--text.text--lighten-3{color:#81d4fa!important;caret-color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important;border-color:#4fc3f7!important}.light-blue--text.text--lighten-2{color:#4fc3f7!important;caret-color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important;border-color:#29b6f6!important}.light-blue--text.text--lighten-1{color:#29b6f6!important;caret-color:#29b6f6!important}.light-blue.darken-1{background-color:#039be5!important;border-color:#039be5!important}.light-blue--text.text--darken-1{color:#039be5!important;caret-color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important;border-color:#0288d1!important}.light-blue--text.text--darken-2{color:#0288d1!important;caret-color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important;border-color:#0277bd!important}.light-blue--text.text--darken-3{color:#0277bd!important;caret-color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important;border-color:#01579b!important}.light-blue--text.text--darken-4{color:#01579b!important;caret-color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important;border-color:#80d8ff!important}.light-blue--text.text--accent-1{color:#80d8ff!important;caret-color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important;border-color:#40c4ff!important}.light-blue--text.text--accent-2{color:#40c4ff!important;caret-color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important;border-color:#00b0ff!important}.light-blue--text.text--accent-3{color:#00b0ff!important;caret-color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important;border-color:#0091ea!important}.light-blue--text.text--accent-4{color:#0091ea!important;caret-color:#0091ea!important}.cyan{background-color:#00bcd4!important;border-color:#00bcd4!important}.cyan--text{color:#00bcd4!important;caret-color:#00bcd4!important}.cyan.lighten-5{background-color:#e0f7fa!important;border-color:#e0f7fa!important}.cyan--text.text--lighten-5{color:#e0f7fa!important;caret-color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important;border-color:#b2ebf2!important}.cyan--text.text--lighten-4{color:#b2ebf2!important;caret-color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important;border-color:#80deea!important}.cyan--text.text--lighten-3{color:#80deea!important;caret-color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important;border-color:#4dd0e1!important}.cyan--text.text--lighten-2{color:#4dd0e1!important;caret-color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important;border-color:#26c6da!important}.cyan--text.text--lighten-1{color:#26c6da!important;caret-color:#26c6da!important}.cyan.darken-1{background-color:#00acc1!important;border-color:#00acc1!important}.cyan--text.text--darken-1{color:#00acc1!important;caret-color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important;border-color:#0097a7!important}.cyan--text.text--darken-2{color:#0097a7!important;caret-color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important;border-color:#00838f!important}.cyan--text.text--darken-3{color:#00838f!important;caret-color:#00838f!important}.cyan.darken-4{background-color:#006064!important;border-color:#006064!important}.cyan--text.text--darken-4{color:#006064!important;caret-color:#006064!important}.cyan.accent-1{background-color:#84ffff!important;border-color:#84ffff!important}.cyan--text.text--accent-1{color:#84ffff!important;caret-color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important;border-color:#18ffff!important}.cyan--text.text--accent-2{color:#18ffff!important;caret-color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important;border-color:#00e5ff!important}.cyan--text.text--accent-3{color:#00e5ff!important;caret-color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important;border-color:#00b8d4!important}.cyan--text.text--accent-4{color:#00b8d4!important;caret-color:#00b8d4!important}.teal{background-color:#009688!important;border-color:#009688!important}.teal--text{color:#009688!important;caret-color:#009688!important}.teal.lighten-5{background-color:#e0f2f1!important;border-color:#e0f2f1!important}.teal--text.text--lighten-5{color:#e0f2f1!important;caret-color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important;border-color:#b2dfdb!important}.teal--text.text--lighten-4{color:#b2dfdb!important;caret-color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important;border-color:#80cbc4!important}.teal--text.text--lighten-3{color:#80cbc4!important;caret-color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important;border-color:#4db6ac!important}.teal--text.text--lighten-2{color:#4db6ac!important;caret-color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important;border-color:#26a69a!important}.teal--text.text--lighten-1{color:#26a69a!important;caret-color:#26a69a!important}.teal.darken-1{background-color:#00897b!important;border-color:#00897b!important}.teal--text.text--darken-1{color:#00897b!important;caret-color:#00897b!important}.teal.darken-2{background-color:#00796b!important;border-color:#00796b!important}.teal--text.text--darken-2{color:#00796b!important;caret-color:#00796b!important}.teal.darken-3{background-color:#00695c!important;border-color:#00695c!important}.teal--text.text--darken-3{color:#00695c!important;caret-color:#00695c!important}.teal.darken-4{background-color:#004d40!important;border-color:#004d40!important}.teal--text.text--darken-4{color:#004d40!important;caret-color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important;border-color:#a7ffeb!important}.teal--text.text--accent-1{color:#a7ffeb!important;caret-color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important;border-color:#64ffda!important}.teal--text.text--accent-2{color:#64ffda!important;caret-color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important;border-color:#1de9b6!important}.teal--text.text--accent-3{color:#1de9b6!important;caret-color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important;border-color:#00bfa5!important}.teal--text.text--accent-4{color:#00bfa5!important;caret-color:#00bfa5!important}.green{background-color:#4caf50!important;border-color:#4caf50!important}.green--text{color:#4caf50!important;caret-color:#4caf50!important}.green.lighten-5{background-color:#e8f5e9!important;border-color:#e8f5e9!important}.green--text.text--lighten-5{color:#e8f5e9!important;caret-color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important;border-color:#c8e6c9!important}.green--text.text--lighten-4{color:#c8e6c9!important;caret-color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important;border-color:#a5d6a7!important}.green--text.text--lighten-3{color:#a5d6a7!important;caret-color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important;border-color:#81c784!important}.green--text.text--lighten-2{color:#81c784!important;caret-color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important;border-color:#66bb6a!important}.green--text.text--lighten-1{color:#66bb6a!important;caret-color:#66bb6a!important}.green.darken-1{background-color:#43a047!important;border-color:#43a047!important}.green--text.text--darken-1{color:#43a047!important;caret-color:#43a047!important}.green.darken-2{background-color:#388e3c!important;border-color:#388e3c!important}.green--text.text--darken-2{color:#388e3c!important;caret-color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important;border-color:#2e7d32!important}.green--text.text--darken-3{color:#2e7d32!important;caret-color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important;border-color:#1b5e20!important}.green--text.text--darken-4{color:#1b5e20!important;caret-color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important;border-color:#b9f6ca!important}.green--text.text--accent-1{color:#b9f6ca!important;caret-color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important;border-color:#69f0ae!important}.green--text.text--accent-2{color:#69f0ae!important;caret-color:#69f0ae!important}.green.accent-3{background-color:#00e676!important;border-color:#00e676!important}.green--text.text--accent-3{color:#00e676!important;caret-color:#00e676!important}.green.accent-4{background-color:#00c853!important;border-color:#00c853!important}.green--text.text--accent-4{color:#00c853!important;caret-color:#00c853!important}.light-green{background-color:#8bc34a!important;border-color:#8bc34a!important}.light-green--text{color:#8bc34a!important;caret-color:#8bc34a!important}.light-green.lighten-5{background-color:#f1f8e9!important;border-color:#f1f8e9!important}.light-green--text.text--lighten-5{color:#f1f8e9!important;caret-color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important;border-color:#dcedc8!important}.light-green--text.text--lighten-4{color:#dcedc8!important;caret-color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important;border-color:#c5e1a5!important}.light-green--text.text--lighten-3{color:#c5e1a5!important;caret-color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important;border-color:#aed581!important}.light-green--text.text--lighten-2{color:#aed581!important;caret-color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important;border-color:#9ccc65!important}.light-green--text.text--lighten-1{color:#9ccc65!important;caret-color:#9ccc65!important}.light-green.darken-1{background-color:#7cb342!important;border-color:#7cb342!important}.light-green--text.text--darken-1{color:#7cb342!important;caret-color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important;border-color:#689f38!important}.light-green--text.text--darken-2{color:#689f38!important;caret-color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important;border-color:#558b2f!important}.light-green--text.text--darken-3{color:#558b2f!important;caret-color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important;border-color:#33691e!important}.light-green--text.text--darken-4{color:#33691e!important;caret-color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important;border-color:#ccff90!important}.light-green--text.text--accent-1{color:#ccff90!important;caret-color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important;border-color:#b2ff59!important}.light-green--text.text--accent-2{color:#b2ff59!important;caret-color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important;border-color:#76ff03!important}.light-green--text.text--accent-3{color:#76ff03!important;caret-color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important;border-color:#64dd17!important}.light-green--text.text--accent-4{color:#64dd17!important;caret-color:#64dd17!important}.lime{background-color:#cddc39!important;border-color:#cddc39!important}.lime--text{color:#cddc39!important;caret-color:#cddc39!important}.lime.lighten-5{background-color:#f9fbe7!important;border-color:#f9fbe7!important}.lime--text.text--lighten-5{color:#f9fbe7!important;caret-color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important;border-color:#f0f4c3!important}.lime--text.text--lighten-4{color:#f0f4c3!important;caret-color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important;border-color:#e6ee9c!important}.lime--text.text--lighten-3{color:#e6ee9c!important;caret-color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important;border-color:#dce775!important}.lime--text.text--lighten-2{color:#dce775!important;caret-color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important;border-color:#d4e157!important}.lime--text.text--lighten-1{color:#d4e157!important;caret-color:#d4e157!important}.lime.darken-1{background-color:#c0ca33!important;border-color:#c0ca33!important}.lime--text.text--darken-1{color:#c0ca33!important;caret-color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important;border-color:#afb42b!important}.lime--text.text--darken-2{color:#afb42b!important;caret-color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important;border-color:#9e9d24!important}.lime--text.text--darken-3{color:#9e9d24!important;caret-color:#9e9d24!important}.lime.darken-4{background-color:#827717!important;border-color:#827717!important}.lime--text.text--darken-4{color:#827717!important;caret-color:#827717!important}.lime.accent-1{background-color:#f4ff81!important;border-color:#f4ff81!important}.lime--text.text--accent-1{color:#f4ff81!important;caret-color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important;border-color:#eeff41!important}.lime--text.text--accent-2{color:#eeff41!important;caret-color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important;border-color:#c6ff00!important}.lime--text.text--accent-3{color:#c6ff00!important;caret-color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important;border-color:#aeea00!important}.lime--text.text--accent-4{color:#aeea00!important;caret-color:#aeea00!important}.yellow{background-color:#ffeb3b!important;border-color:#ffeb3b!important}.yellow--text{color:#ffeb3b!important;caret-color:#ffeb3b!important}.yellow.lighten-5{background-color:#fffde7!important;border-color:#fffde7!important}.yellow--text.text--lighten-5{color:#fffde7!important;caret-color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important;border-color:#fff9c4!important}.yellow--text.text--lighten-4{color:#fff9c4!important;caret-color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important;border-color:#fff59d!important}.yellow--text.text--lighten-3{color:#fff59d!important;caret-color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important;border-color:#fff176!important}.yellow--text.text--lighten-2{color:#fff176!important;caret-color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important;border-color:#ffee58!important}.yellow--text.text--lighten-1{color:#ffee58!important;caret-color:#ffee58!important}.yellow.darken-1{background-color:#fdd835!important;border-color:#fdd835!important}.yellow--text.text--darken-1{color:#fdd835!important;caret-color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important;border-color:#fbc02d!important}.yellow--text.text--darken-2{color:#fbc02d!important;caret-color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important;border-color:#f9a825!important}.yellow--text.text--darken-3{color:#f9a825!important;caret-color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important;border-color:#f57f17!important}.yellow--text.text--darken-4{color:#f57f17!important;caret-color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important;border-color:#ffff8d!important}.yellow--text.text--accent-1{color:#ffff8d!important;caret-color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important;border-color:#ff0!important}.yellow--text.text--accent-2{color:#ff0!important;caret-color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important;border-color:#ffea00!important}.yellow--text.text--accent-3{color:#ffea00!important;caret-color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important;border-color:#ffd600!important}.yellow--text.text--accent-4{color:#ffd600!important;caret-color:#ffd600!important}.amber{background-color:#ffc107!important;border-color:#ffc107!important}.amber--text{color:#ffc107!important;caret-color:#ffc107!important}.amber.lighten-5{background-color:#fff8e1!important;border-color:#fff8e1!important}.amber--text.text--lighten-5{color:#fff8e1!important;caret-color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important;border-color:#ffecb3!important}.amber--text.text--lighten-4{color:#ffecb3!important;caret-color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important;border-color:#ffe082!important}.amber--text.text--lighten-3{color:#ffe082!important;caret-color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important;border-color:#ffd54f!important}.amber--text.text--lighten-2{color:#ffd54f!important;caret-color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important;border-color:#ffca28!important}.amber--text.text--lighten-1{color:#ffca28!important;caret-color:#ffca28!important}.amber.darken-1{background-color:#ffb300!important;border-color:#ffb300!important}.amber--text.text--darken-1{color:#ffb300!important;caret-color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important;border-color:#ffa000!important}.amber--text.text--darken-2{color:#ffa000!important;caret-color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important;border-color:#ff8f00!important}.amber--text.text--darken-3{color:#ff8f00!important;caret-color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important;border-color:#ff6f00!important}.amber--text.text--darken-4{color:#ff6f00!important;caret-color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important;border-color:#ffe57f!important}.amber--text.text--accent-1{color:#ffe57f!important;caret-color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important;border-color:#ffd740!important}.amber--text.text--accent-2{color:#ffd740!important;caret-color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important;border-color:#ffc400!important}.amber--text.text--accent-3{color:#ffc400!important;caret-color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important;border-color:#ffab00!important}.amber--text.text--accent-4{color:#ffab00!important;caret-color:#ffab00!important}.orange{background-color:#ff9800!important;border-color:#ff9800!important}.orange--text{color:#ff9800!important;caret-color:#ff9800!important}.orange.lighten-5{background-color:#fff3e0!important;border-color:#fff3e0!important}.orange--text.text--lighten-5{color:#fff3e0!important;caret-color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important;border-color:#ffe0b2!important}.orange--text.text--lighten-4{color:#ffe0b2!important;caret-color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important;border-color:#ffcc80!important}.orange--text.text--lighten-3{color:#ffcc80!important;caret-color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important;border-color:#ffb74d!important}.orange--text.text--lighten-2{color:#ffb74d!important;caret-color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important;border-color:#ffa726!important}.orange--text.text--lighten-1{color:#ffa726!important;caret-color:#ffa726!important}.orange.darken-1{background-color:#fb8c00!important;border-color:#fb8c00!important}.orange--text.text--darken-1{color:#fb8c00!important;caret-color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important;border-color:#f57c00!important}.orange--text.text--darken-2{color:#f57c00!important;caret-color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important;border-color:#ef6c00!important}.orange--text.text--darken-3{color:#ef6c00!important;caret-color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important;border-color:#e65100!important}.orange--text.text--darken-4{color:#e65100!important;caret-color:#e65100!important}.orange.accent-1{background-color:#ffd180!important;border-color:#ffd180!important}.orange--text.text--accent-1{color:#ffd180!important;caret-color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important;border-color:#ffab40!important}.orange--text.text--accent-2{color:#ffab40!important;caret-color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important;border-color:#ff9100!important}.orange--text.text--accent-3{color:#ff9100!important;caret-color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important;border-color:#ff6d00!important}.orange--text.text--accent-4{color:#ff6d00!important;caret-color:#ff6d00!important}.deep-orange{background-color:#ff5722!important;border-color:#ff5722!important}.deep-orange--text{color:#ff5722!important;caret-color:#ff5722!important}.deep-orange.lighten-5{background-color:#fbe9e7!important;border-color:#fbe9e7!important}.deep-orange--text.text--lighten-5{color:#fbe9e7!important;caret-color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important;border-color:#ffccbc!important}.deep-orange--text.text--lighten-4{color:#ffccbc!important;caret-color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important;border-color:#ffab91!important}.deep-orange--text.text--lighten-3{color:#ffab91!important;caret-color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important;border-color:#ff8a65!important}.deep-orange--text.text--lighten-2{color:#ff8a65!important;caret-color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important;border-color:#ff7043!important}.deep-orange--text.text--lighten-1{color:#ff7043!important;caret-color:#ff7043!important}.deep-orange.darken-1{background-color:#f4511e!important;border-color:#f4511e!important}.deep-orange--text.text--darken-1{color:#f4511e!important;caret-color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important;border-color:#e64a19!important}.deep-orange--text.text--darken-2{color:#e64a19!important;caret-color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important;border-color:#d84315!important}.deep-orange--text.text--darken-3{color:#d84315!important;caret-color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important;border-color:#bf360c!important}.deep-orange--text.text--darken-4{color:#bf360c!important;caret-color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important;border-color:#ff9e80!important}.deep-orange--text.text--accent-1{color:#ff9e80!important;caret-color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important;border-color:#ff6e40!important}.deep-orange--text.text--accent-2{color:#ff6e40!important;caret-color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important;border-color:#ff3d00!important}.deep-orange--text.text--accent-3{color:#ff3d00!important;caret-color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important;border-color:#dd2c00!important}.deep-orange--text.text--accent-4{color:#dd2c00!important;caret-color:#dd2c00!important}.brown{background-color:#795548!important;border-color:#795548!important}.brown--text{color:#795548!important;caret-color:#795548!important}.brown.lighten-5{background-color:#efebe9!important;border-color:#efebe9!important}.brown--text.text--lighten-5{color:#efebe9!important;caret-color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important;border-color:#d7ccc8!important}.brown--text.text--lighten-4{color:#d7ccc8!important;caret-color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important;border-color:#bcaaa4!important}.brown--text.text--lighten-3{color:#bcaaa4!important;caret-color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important;border-color:#a1887f!important}.brown--text.text--lighten-2{color:#a1887f!important;caret-color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important;border-color:#8d6e63!important}.brown--text.text--lighten-1{color:#8d6e63!important;caret-color:#8d6e63!important}.brown.darken-1{background-color:#6d4c41!important;border-color:#6d4c41!important}.brown--text.text--darken-1{color:#6d4c41!important;caret-color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important;border-color:#5d4037!important}.brown--text.text--darken-2{color:#5d4037!important;caret-color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important;border-color:#4e342e!important}.brown--text.text--darken-3{color:#4e342e!important;caret-color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important;border-color:#3e2723!important}.brown--text.text--darken-4{color:#3e2723!important;caret-color:#3e2723!important}.blue-grey{background-color:#607d8b!important;border-color:#607d8b!important}.blue-grey--text{color:#607d8b!important;caret-color:#607d8b!important}.blue-grey.lighten-5{background-color:#eceff1!important;border-color:#eceff1!important}.blue-grey--text.text--lighten-5{color:#eceff1!important;caret-color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important;border-color:#cfd8dc!important}.blue-grey--text.text--lighten-4{color:#cfd8dc!important;caret-color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important;border-color:#b0bec5!important}.blue-grey--text.text--lighten-3{color:#b0bec5!important;caret-color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important;border-color:#90a4ae!important}.blue-grey--text.text--lighten-2{color:#90a4ae!important;caret-color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important;border-color:#78909c!important}.blue-grey--text.text--lighten-1{color:#78909c!important;caret-color:#78909c!important}.blue-grey.darken-1{background-color:#546e7a!important;border-color:#546e7a!important}.blue-grey--text.text--darken-1{color:#546e7a!important;caret-color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important;border-color:#455a64!important}.blue-grey--text.text--darken-2{color:#455a64!important;caret-color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important;border-color:#37474f!important}.blue-grey--text.text--darken-3{color:#37474f!important;caret-color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important;border-color:#263238!important}.blue-grey--text.text--darken-4{color:#263238!important;caret-color:#263238!important}.grey{background-color:#9e9e9e!important;border-color:#9e9e9e!important}.grey--text{color:#9e9e9e!important;caret-color:#9e9e9e!important}.grey.lighten-5{background-color:#fafafa!important;border-color:#fafafa!important}.grey--text.text--lighten-5{color:#fafafa!important;caret-color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.grey--text.text--lighten-4{color:#f5f5f5!important;caret-color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important;border-color:#eee!important}.grey--text.text--lighten-3{color:#eee!important;caret-color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important;border-color:#e0e0e0!important}.grey--text.text--lighten-2{color:#e0e0e0!important;caret-color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important;border-color:#bdbdbd!important}.grey--text.text--lighten-1{color:#bdbdbd!important;caret-color:#bdbdbd!important}.grey.darken-1{background-color:#757575!important;border-color:#757575!important}.grey--text.text--darken-1{color:#757575!important;caret-color:#757575!important}.grey.darken-2{background-color:#616161!important;border-color:#616161!important}.grey--text.text--darken-2{color:#616161!important;caret-color:#616161!important}.grey.darken-3{background-color:#424242!important;border-color:#424242!important}.grey--text.text--darken-3{color:#424242!important;caret-color:#424242!important}.grey.darken-4{background-color:#212121!important;border-color:#212121!important}.grey--text.text--darken-4{color:#212121!important;caret-color:#212121!important}.shades.black{background-color:#000!important;border-color:#000!important}.shades--text.text--black{color:#000!important;caret-color:#000!important}.shades.white{background-color:#fff!important;border-color:#fff!important}.shades--text.text--white{color:#fff!important;caret-color:#fff!important}.shades.transparent{background-color:transparent!important;border-color:transparent!important}.shades--text.text--transparent{color:transparent!important;caret-color:transparent!important}.elevation-0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.elevation-1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.elevation-2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.elevation-3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.elevation-4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.elevation-5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.elevation-6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.elevation-7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.elevation-8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.elevation-9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.elevation-10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.elevation-11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.elevation-12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.elevation-13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.elevation-14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.elevation-15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.elevation-16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.elevation-17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.elevation-18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.elevation-19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.elevation-20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.elevation-21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.elevation-22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.elevation-23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.elevation-24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{background-repeat:no-repeat;padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:0;border:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.bottom-sheet-transition-enter,.bottom-sheet-transition-leave-to{transform:translateY(100%)}.carousel-transition-enter{transform:translate(100%)}.carousel-transition-leave,.carousel-transition-leave-to{position:absolute;top:0;transform:translate(-100%)}.carousel-reverse-transition-enter{transform:translate(-100%)}.carousel-reverse-transition-leave,.carousel-reverse-transition-leave-to{position:absolute;top:0;transform:translate(100%)}.dialog-transition-enter,.dialog-transition-leave-to{transform:scale(.5);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave{opacity:1}.dialog-bottom-transition-enter,.dialog-bottom-transition-leave-to{transform:translateY(100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active,.picker-transition-enter-active,.picker-transition-leave-active{transition:.3s cubic-bezier(0,0,.2,1)}.picker-reverse-transition-enter,.picker-reverse-transition-leave-to,.picker-transition-enter,.picker-transition-leave-to{opacity:0}.picker-reverse-transition-leave,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to,.picker-transition-leave,.picker-transition-leave-active,.picker-transition-leave-to{position:absolute!important}.picker-transition-enter{transform:translateY(100%)}.picker-reverse-transition-enter,.picker-transition-leave-to{transform:translateY(-100%)}.picker-reverse-transition-leave-to{transform:translateY(100%)}.picker-title-transition-enter-to,.picker-title-transition-leave{transform:translate(0)}.picker-title-transition-enter{transform:translate(-100%)}.picker-title-transition-leave-to{opacity:0;transform:translate(100%)}.picker-title-transition-leave,.picker-title-transition-leave-active,.picker-title-transition-leave-to{position:absolute!important}.tab-transition-enter{transform:translate(100%)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute}.tab-reverse-transition-enter,.tab-transition-leave-to{transform:translate(-100%)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-transition-move{transition:transform .6s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-x-transition-move{transition:transform .6s}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scale-transition-move{transition:transform .6s}.scale-transition-enter,.scale-transition-leave,.scale-transition-leave-to{opacity:0;transform:scale(0)}.message-transition-enter-active,.message-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.message-transition-move{transition:transform .6s}.message-transition-enter,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave,.message-transition-leave-active{position:absolute}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-transition-move{transition:transform .6s}.slide-y-transition-enter,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-reverse-transition-move{transition:transform .6s}.slide-y-reverse-transition-enter,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-transition-move{transition:transform .6s}.scroll-y-transition-enter,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-reverse-transition-move{transition:transform .6s}.scroll-y-reverse-transition-enter,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-transition-move{transition:transform .6s}.scroll-x-transition-enter,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter{transform:translateX(-15px)}.scroll-x-transition-leave-to{transform:translateX(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-reverse-transition-move{transition:transform .6s}.scroll-x-reverse-transition-enter,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter{transform:translateX(15px)}.scroll-x-reverse-transition-leave-to{transform:translateX(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-transition-move{transition:transform .6s}.slide-x-transition-enter,.slide-x-transition-leave-to{opacity:0;transform:translateX(-15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-reverse-transition-move{transition:transform .6s}.slide-x-reverse-transition-enter,.slide-x-reverse-transition-leave-to{opacity:0;transform:translateX(15px)}.fade-transition-enter-active,.fade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fade-transition-move{transition:transform .6s}.fade-transition-enter,.fade-transition-leave-to{opacity:0}.fab-transition-enter-active,.fab-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fab-transition-move{transition:transform .6s}.fab-transition-enter,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}code,kbd{display:inline-block;border-radius:3px;white-space:pre-wrap;font-size:85%;font-weight:900}code:after,code:before,kbd:after,kbd:before{content:"\00a0";letter-spacing:-1px}code{background-color:#f5f5f5;color:#bd4147;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}kbd{background:#616161;color:#fff}html{font-size:14px;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}.application{font-family:Fira Sans,sans-serif;line-height:1.5}::-ms-clear,::-ms-reveal{display:none}ol,ul{padding-left:24px}.display-4{font-size:112px!important;font-weight:300;line-height:1!important;letter-spacing:-.04em!important;font-family:Fira Sans,sans-serif!important}.display-3{font-size:56px!important;line-height:1.35!important;letter-spacing:-.02em!important}.display-2,.display-3{font-weight:400;font-family:Fira Sans,sans-serif!important}.display-2{font-size:45px!important;line-height:48px!important;letter-spacing:normal!important}.display-1{font-size:34px!important;line-height:40px!important}.display-1,.headline{font-weight:400;letter-spacing:normal!important;font-family:Fira Sans,sans-serif!important}.headline{font-size:24px!important;line-height:32px!important}.title{font-size:20px!important;font-weight:500;line-height:1!important;letter-spacing:.02em!important;font-family:Fira Sans,sans-serif!important}.subheading{font-size:16px!important;font-weight:400}.body-2{font-weight:500}.body-1,.body-2{font-size:14px!important}.body-1,.caption{font-weight:400}.caption{font-size:12px!important}p{margin-bottom:16px}@media only print{.hidden-print-only{display:none!important}}@media only screen{.hidden-screen-only{display:none!important}}@media only screen and (max-width:599px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:600px) and (max-width:959px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:959px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:600px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:960px) and (max-width:1263px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1263px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:960px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:1264px) and (max-width:1903px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1903px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1264px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1904px){.hidden-xl-only{display:none!important}}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.right{float:right!important}.left{float:left!important}.ma-auto{margin-right:auto!important;margin-left:auto!important}.ma-auto,.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.ma-0{margin:0 0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.pa-0{padding:0 0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.px-0{padding-left:0!important;padding-right:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.ma-1{margin:4px 4px!important}.my-1{margin-top:4px!important;margin-bottom:4px!important}.mx-1{margin-left:4px!important;margin-right:4px!important}.mt-1{margin-top:4px!important}.mr-1{margin-right:4px!important}.mb-1{margin-bottom:4px!important}.ml-1{margin-left:4px!important}.pa-1{padding:4px 4px!important}.py-1{padding-top:4px!important;padding-bottom:4px!important}.px-1{padding-left:4px!important;padding-right:4px!important}.pt-1{padding-top:4px!important}.pr-1{padding-right:4px!important}.pb-1{padding-bottom:4px!important}.pl-1{padding-left:4px!important}.ma-2{margin:8px 8px!important}.my-2{margin-top:8px!important;margin-bottom:8px!important}.mx-2{margin-left:8px!important;margin-right:8px!important}.mt-2{margin-top:8px!important}.mr-2{margin-right:8px!important}.mb-2{margin-bottom:8px!important}.ml-2{margin-left:8px!important}.pa-2{padding:8px 8px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.px-2{padding-left:8px!important;padding-right:8px!important}.pt-2{padding-top:8px!important}.pr-2{padding-right:8px!important}.pb-2{padding-bottom:8px!important}.pl-2{padding-left:8px!important}.ma-3{margin:16px 16px!important}.my-3{margin-top:16px!important;margin-bottom:16px!important}.mx-3{margin-left:16px!important;margin-right:16px!important}.mt-3{margin-top:16px!important}.mr-3{margin-right:16px!important}.mb-3{margin-bottom:16px!important}.ml-3{margin-left:16px!important}.pa-3{padding:16px 16px!important}.py-3{padding-top:16px!important;padding-bottom:16px!important}.px-3{padding-left:16px!important;padding-right:16px!important}.pt-3{padding-top:16px!important}.pr-3{padding-right:16px!important}.pb-3{padding-bottom:16px!important}.pl-3{padding-left:16px!important}.ma-4{margin:24px 24px!important}.my-4{margin-top:24px!important;margin-bottom:24px!important}.mx-4{margin-left:24px!important;margin-right:24px!important}.mt-4{margin-top:24px!important}.mr-4{margin-right:24px!important}.mb-4{margin-bottom:24px!important}.ml-4{margin-left:24px!important}.pa-4{padding:24px 24px!important}.py-4{padding-top:24px!important;padding-bottom:24px!important}.px-4{padding-left:24px!important;padding-right:24px!important}.pt-4{padding-top:24px!important}.pr-4{padding-right:24px!important}.pb-4{padding-bottom:24px!important}.pl-4{padding-left:24px!important}.ma-5{margin:48px 48px!important}.my-5{margin-top:48px!important;margin-bottom:48px!important}.mx-5{margin-left:48px!important;margin-right:48px!important}.mt-5{margin-top:48px!important}.mr-5{margin-right:48px!important}.mb-5{margin-bottom:48px!important}.ml-5{margin-left:48px!important}.pa-5{padding:48px 48px!important}.py-5{padding-top:48px!important;padding-bottom:48px!important}.px-5{padding-left:48px!important;padding-right:48px!important}.pt-5{padding-top:48px!important}.pr-5{padding-right:48px!important}.pb-5{padding-bottom:48px!important}.pl-5{padding-left:48px!important}@media (min-width:0){.text-xs-left{text-align:left!important}.text-xs-center{text-align:center!important}.text-xs-right{text-align:right!important}.text-xs-justify{text-align:justify!important}}@media (min-width:600px){.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}.text-sm-justify{text-align:justify!important}}@media (min-width:960px){.text-md-left{text-align:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}.text-md-justify{text-align:justify!important}}@media (min-width:1264px){.text-lg-left{text-align:left!important}.text-lg-center{text-align:center!important}.text-lg-right{text-align:right!important}.text-lg-justify{text-align:justify!important}}@media (min-width:1904px){.text-xl-left{text-align:left!important}.text-xl-center{text-align:center!important}.text-xl-right{text-align:right!important}.text-xl-justify{text-align:justify!important}}.font-weight-thin{font-weight:100!important}.font-weight-light{font-weight:300!important}.font-weight-regular{font-weight:400!important}.font-weight-medium{font-weight:500!important}.font-weight-bold{font-weight:700!important}.font-weight-black{font-weight:900!important}.font-italic{font-style:italic!important}.text-capitalize{text-transform:capitalize!important}.text-lowercase{text-transform:lowercase!important}.text-none{text-transform:none!important}.text-uppercase{text-transform:uppercase!important}.text-no-wrap,.text-truncate{white-space:nowrap!important}.text-truncate{overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.1!important}.transition-fast-out-slow-in{transition:.3s cubic-bezier(.4,0,.2,1)!important}.transition-linear-out-slow-in{transition:.3s cubic-bezier(0,0,.2,1)!important}.transition-fast-out-linear-in{transition:.3s cubic-bezier(.4,0,1,1)!important}.transition-ease-in-out{transition:.3s cubic-bezier(.4,0,.6,1)!important}.transition-fast-in-fast-out{transition:.3s cubic-bezier(.25,.8,.25,1)!important}.transition-swing{transition:.3s cubic-bezier(.25,.8,.5,1)!important}html{overflow-y:auto}.app-background,.theme--light.application{background:rgba(0,0,0,.5)!important}@font-face{font-family:Fira Sans;font-style:"normal";font-weight:400;src:url(fonts/fira-sans-v9-latin-regular.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-regular.woff) format("woff")}@font-face{font-family:Fira Sans;font-style:italic;font-weight:400;src:url(fonts/fira-sans-v9-latin-italic.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-italic.woff) format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-weight:700;src:url(fonts/fira-sans-v9-latin-700.woff2) format("woff2"),url(fonts/fira-sans-v9-latin-700.woff) format("woff")}.application{display:flex}.application a{cursor:pointer}.application--is-rtl{direction:rtl}.application--wrap{flex:1 1 auto;backface-visibility:hidden;display:flex;flex-direction:column;min-height:100vh;max-width:100%;position:relative}.theme--light.application{background:#fafafa;color:rgba(0,0,0,.87)}.theme--light.application .text--primary{color:rgba(0,0,0,.87)!important}.theme--light.application .text--secondary{color:rgba(0,0,0,.54)!important}.theme--light.application .text--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.application{background:#303030;color:#fff}.theme--dark.application .text--primary{color:#fff!important}.theme--dark.application .text--secondary{color:hsla(0,0%,100%,.7)!important}.theme--dark.application .text--disabled{color:hsla(0,0%,100%,.5)!important}@-moz-document url-prefix(){@media print{.application,.application--wrap{display:block}}}.theme--light.v-card{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-card{background-color:#424242;border-color:#424242;color:#fff}.v-card{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);text-decoration:none}.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-card--hover{cursor:pointer;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:box-shadow}.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;padding:16px}.v-card__title--primary{padding-top:24px}.v-card__text{padding:16px;width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions .v-btn,.v-card__actions>*{margin:0}.v-card__actions .v-btn+.v-btn{margin-left:8px}.theme--light.v-sheet{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-sheet{background-color:#424242;border-color:#424242;color:#fff}.v-sheet{display:block;border-radius:2px;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-sheet--tile{border-radius:0}.container{flex:1 1 100%;margin:auto;padding:24px;width:100%}@media only screen and (min-width:960px){.container{max-width:900px}}@media only screen and (min-width:1264px){.container{max-width:1185px}}@media only screen and (min-width:1904px){.container{max-width:1785px}}@media only screen and (max-width:959px){.container{padding:16px}}.container.fluid{max-width:100%}.container.fill-height{align-items:center;display:flex}.container.fill-height>.layout{height:100%;flex:1 1 auto}.container.grid-list-xs .layout .flex{padding:1px}.container.grid-list-xs .layout:only-child{margin:-1px}.container.grid-list-xs .layout:not(:only-child){margin:auto -1px}.container.grid-list-xs :not(:only-child) .layout:first-child{margin-top:-1px}.container.grid-list-xs :not(:only-child) .layout:last-child{margin-bottom:-1px}.container.grid-list-sm .layout .flex{padding:2px}.container.grid-list-sm .layout:only-child{margin:-2px}.container.grid-list-sm .layout:not(:only-child){margin:auto -2px}.container.grid-list-sm :not(:only-child) .layout:first-child{margin-top:-2px}.container.grid-list-sm :not(:only-child) .layout:last-child{margin-bottom:-2px}.container.grid-list-md .layout .flex{padding:4px}.container.grid-list-md .layout:only-child{margin:-4px}.container.grid-list-md .layout:not(:only-child){margin:auto -4px}.container.grid-list-md :not(:only-child) .layout:first-child{margin-top:-4px}.container.grid-list-md :not(:only-child) .layout:last-child{margin-bottom:-4px}.container.grid-list-lg .layout .flex{padding:8px}.container.grid-list-lg .layout:only-child{margin:-8px}.container.grid-list-lg .layout:not(:only-child){margin:auto -8px}.container.grid-list-lg :not(:only-child) .layout:first-child{margin-top:-8px}.container.grid-list-lg :not(:only-child) .layout:last-child{margin-bottom:-8px}.container.grid-list-xl .layout .flex{padding:12px}.container.grid-list-xl .layout:only-child{margin:-12px}.container.grid-list-xl .layout:not(:only-child){margin:auto -12px}.container.grid-list-xl :not(:only-child) .layout:first-child{margin-top:-12px}.container.grid-list-xl :not(:only-child) .layout:last-child{margin-bottom:-12px}.layout{display:flex;flex:1 1 auto;flex-wrap:nowrap;min-width:0}.layout.row{flex-direction:row}.layout.row.reverse{flex-direction:row-reverse}.layout.column{flex-direction:column}.layout.column.reverse{flex-direction:column-reverse}.layout.column>.flex{max-width:100%}.layout.wrap{flex-wrap:wrap}@media (min-width:0){.flex.xs1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xs1{order:1}.flex.xs2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xs2{order:2}.flex.xs3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xs3{order:3}.flex.xs4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xs4{order:4}.flex.xs5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xs5{order:5}.flex.xs6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xs6{order:6}.flex.xs7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xs7{order:7}.flex.xs8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xs8{order:8}.flex.xs9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xs9{order:9}.flex.xs10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xs10{order:10}.flex.xs11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xs11{order:11}.flex.xs12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xs12{order:12}.flex.offset-xs0{margin-left:0}.flex.offset-xs1{margin-left:8.333333333333332%}.flex.offset-xs2{margin-left:16.666666666666664%}.flex.offset-xs3{margin-left:25%}.flex.offset-xs4{margin-left:33.33333333333333%}.flex.offset-xs5{margin-left:41.66666666666667%}.flex.offset-xs6{margin-left:50%}.flex.offset-xs7{margin-left:58.333333333333336%}.flex.offset-xs8{margin-left:66.66666666666666%}.flex.offset-xs9{margin-left:75%}.flex.offset-xs10{margin-left:83.33333333333334%}.flex.offset-xs11{margin-left:91.66666666666666%}.flex.offset-xs12{margin-left:100%}}@media (min-width:600px){.flex.sm1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-sm1{order:1}.flex.sm2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-sm2{order:2}.flex.sm3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-sm3{order:3}.flex.sm4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-sm4{order:4}.flex.sm5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-sm5{order:5}.flex.sm6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-sm6{order:6}.flex.sm7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-sm7{order:7}.flex.sm8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-sm8{order:8}.flex.sm9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-sm9{order:9}.flex.sm10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-sm10{order:10}.flex.sm11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-sm11{order:11}.flex.sm12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-sm12{order:12}.flex.offset-sm0{margin-left:0}.flex.offset-sm1{margin-left:8.333333333333332%}.flex.offset-sm2{margin-left:16.666666666666664%}.flex.offset-sm3{margin-left:25%}.flex.offset-sm4{margin-left:33.33333333333333%}.flex.offset-sm5{margin-left:41.66666666666667%}.flex.offset-sm6{margin-left:50%}.flex.offset-sm7{margin-left:58.333333333333336%}.flex.offset-sm8{margin-left:66.66666666666666%}.flex.offset-sm9{margin-left:75%}.flex.offset-sm10{margin-left:83.33333333333334%}.flex.offset-sm11{margin-left:91.66666666666666%}.flex.offset-sm12{margin-left:100%}}@media (min-width:960px){.flex.md1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-md1{order:1}.flex.md2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-md2{order:2}.flex.md3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-md3{order:3}.flex.md4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-md4{order:4}.flex.md5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-md5{order:5}.flex.md6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-md6{order:6}.flex.md7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-md7{order:7}.flex.md8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-md8{order:8}.flex.md9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-md9{order:9}.flex.md10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-md10{order:10}.flex.md11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-md11{order:11}.flex.md12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-md12{order:12}.flex.offset-md0{margin-left:0}.flex.offset-md1{margin-left:8.333333333333332%}.flex.offset-md2{margin-left:16.666666666666664%}.flex.offset-md3{margin-left:25%}.flex.offset-md4{margin-left:33.33333333333333%}.flex.offset-md5{margin-left:41.66666666666667%}.flex.offset-md6{margin-left:50%}.flex.offset-md7{margin-left:58.333333333333336%}.flex.offset-md8{margin-left:66.66666666666666%}.flex.offset-md9{margin-left:75%}.flex.offset-md10{margin-left:83.33333333333334%}.flex.offset-md11{margin-left:91.66666666666666%}.flex.offset-md12{margin-left:100%}}@media (min-width:1264px){.flex.lg1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-lg1{order:1}.flex.lg2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-lg2{order:2}.flex.lg3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-lg3{order:3}.flex.lg4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-lg4{order:4}.flex.lg5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-lg5{order:5}.flex.lg6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-lg6{order:6}.flex.lg7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-lg7{order:7}.flex.lg8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-lg8{order:8}.flex.lg9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-lg9{order:9}.flex.lg10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-lg10{order:10}.flex.lg11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-lg11{order:11}.flex.lg12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-lg12{order:12}.flex.offset-lg0{margin-left:0}.flex.offset-lg1{margin-left:8.333333333333332%}.flex.offset-lg2{margin-left:16.666666666666664%}.flex.offset-lg3{margin-left:25%}.flex.offset-lg4{margin-left:33.33333333333333%}.flex.offset-lg5{margin-left:41.66666666666667%}.flex.offset-lg6{margin-left:50%}.flex.offset-lg7{margin-left:58.333333333333336%}.flex.offset-lg8{margin-left:66.66666666666666%}.flex.offset-lg9{margin-left:75%}.flex.offset-lg10{margin-left:83.33333333333334%}.flex.offset-lg11{margin-left:91.66666666666666%}.flex.offset-lg12{margin-left:100%}}@media (min-width:1904px){.flex.xl1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xl1{order:1}.flex.xl2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xl2{order:2}.flex.xl3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xl3{order:3}.flex.xl4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xl4{order:4}.flex.xl5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xl5{order:5}.flex.xl6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xl6{order:6}.flex.xl7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xl7{order:7}.flex.xl8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xl8{order:8}.flex.xl9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xl9{order:9}.flex.xl10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xl10{order:10}.flex.xl11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xl11{order:11}.flex.xl12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xl12{order:12}.flex.offset-xl0{margin-left:0}.flex.offset-xl1{margin-left:8.333333333333332%}.flex.offset-xl2{margin-left:16.666666666666664%}.flex.offset-xl3{margin-left:25%}.flex.offset-xl4{margin-left:33.33333333333333%}.flex.offset-xl5{margin-left:41.66666666666667%}.flex.offset-xl6{margin-left:50%}.flex.offset-xl7{margin-left:58.333333333333336%}.flex.offset-xl8{margin-left:66.66666666666666%}.flex.offset-xl9{margin-left:75%}.flex.offset-xl10{margin-left:83.33333333333334%}.flex.offset-xl11{margin-left:91.66666666666666%}.flex.offset-xl12{margin-left:100%}}.child-flex>*,.flex{flex:1 1 auto;max-width:100%}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-baseline{align-items:baseline}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-space-between{align-content:space-between}.align-content-space-around{align-content:space-around}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-space-around{justify-content:space-around}.justify-space-between{justify-content:space-between}.justify-self-start{justify-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-center{justify-self:center}.justify-self-baseline{justify-self:baseline}.grow,.spacer{flex-grow:1!important}.grow{flex-shrink:0!important}.shrink{flex-grow:0!important;flex-shrink:1!important}.scroll-y{overflow-y:auto}.fill-height{height:100%}.hide-overflow{overflow:hidden!important}.show-overflow{overflow:visible!important}.ellipsis,.no-wrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-flex>*,.d-inline-flex>*{flex:1 1 auto!important}.d-block{display:block!important}.d-inline-block{display:inline-block!important}.d-inline{display:inline!important}.d-none{display:none!important}.v-content{transition:none;display:flex;flex:1 0 auto;max-width:100%}.v-content[data-booted=true]{transition:.2s cubic-bezier(.4,0,.2,1)}.v-content__wrap{flex:1 1 auto;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-content{display:block}}}.theme--light.v-table{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-table thead tr:first-child{border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table thead th{color:rgba(0,0,0,.54)}.theme--light.v-table tbody tr:not(:last-child){border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table tbody tr[active]{background:#f5f5f5}.theme--light.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#eee}.theme--light.v-table tfoot tr{border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-table{background-color:#424242;color:#fff}.theme--dark.v-table thead tr:first-child{border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table thead th{color:hsla(0,0%,100%,.7)}.theme--dark.v-table tbody tr:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table tbody tr[active]{background:#505050}.theme--dark.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#616161}.theme--dark.v-table tfoot tr{border-top:1px solid hsla(0,0%,100%,.12)}.v-table__overflow{width:100%;overflow-x:auto;overflow-y:hidden}table.v-table{border-radius:2px;border-collapse:collapse;border-spacing:0;width:100%;max-width:100%}table.v-table tbody td:first-child,table.v-table tbody td:not(:first-child),table.v-table tbody th:first-child,table.v-table tbody th:not(:first-child),table.v-table thead td:first-child,table.v-table thead td:not(:first-child),table.v-table thead th:first-child,table.v-table thead th:not(:first-child){padding:0 24px}table.v-table thead tr{height:56px}table.v-table thead th{font-weight:500;font-size:12px;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;user-select:none}table.v-table thead th.sortable{pointer-events:auto}table.v-table thead th>div{width:100%}table.v-table tbody tr{transition:background .3s cubic-bezier(.25,.8,.5,1);will-change:background}table.v-table tbody td,table.v-table tbody th{height:48px}table.v-table tbody td{font-weight:400;font-size:13px}table.v-table .input-group--selection-controls{padding:0}table.v-table .input-group--selection-controls .input-group__details{display:none}table.v-table .input-group--selection-controls.checkbox .v-icon{left:50%;transform:translateX(-50%)}table.v-table .input-group--selection-controls.checkbox .input-group--selection-controls__ripple{left:50%;transform:translate(-50%,-50%)}table.v-table tfoot tr{height:48px}table.v-table tfoot tr td{padding:0 24px}.theme--light.v-datatable thead th.column.sortable .v-icon{color:rgba(0,0,0,.38)}.theme--light.v-datatable thead th.column.sortable.active,.theme--light.v-datatable thead th.column.sortable.active .v-icon,.theme--light.v-datatable thead th.column.sortable:hover{color:rgba(0,0,0,.87)}.theme--light.v-datatable .v-datatable__actions{background-color:#fff;color:rgba(0,0,0,.54);border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-datatable thead th.column.sortable .v-icon{color:hsla(0,0%,100%,.5)}.theme--dark.v-datatable thead th.column.sortable.active,.theme--dark.v-datatable thead th.column.sortable.active .v-icon,.theme--dark.v-datatable thead th.column.sortable:hover{color:#fff}.theme--dark.v-datatable .v-datatable__actions{background-color:#424242;color:hsla(0,0%,100%,.7);border-top:1px solid hsla(0,0%,100%,.12)}.v-datatable .v-input--selection-controls{margin:0;padding:0}.v-datatable thead th.column.sortable{cursor:pointer;outline:0}.v-datatable thead th.column.sortable .v-icon{font-size:16px;display:inline-block;opacity:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-datatable thead th.column.sortable:focus .v-icon,.v-datatable thead th.column.sortable:hover .v-icon{opacity:.6}.v-datatable thead th.column.sortable.active{transform:none}.v-datatable thead th.column.sortable.active .v-icon{opacity:1}.v-datatable thead th.column.sortable.active.desc .v-icon{transform:rotate(-180deg)}.v-datatable__actions{display:flex;justify-content:flex-end;align-items:center;font-size:12px;flex-wrap:wrap-reverse}.v-datatable__actions .v-btn{color:inherit}.v-datatable__actions .v-btn:last-of-type{margin-left:14px}.v-datatable__actions__range-controls{display:flex;align-items:center;min-height:48px}.v-datatable__actions__pagination{display:block;text-align:center;margin:0 32px 0 24px}.v-datatable__actions__select{display:flex;align-items:center;justify-content:flex-end;margin-right:14px;white-space:nowrap}.v-datatable__actions__select .v-select{flex:0 1 0;margin:13px 0 13px 34px;padding:0;position:static}.v-datatable__actions__select .v-select__selections{flex-wrap:nowrap}.v-datatable__actions__select .v-select__selections .v-select__selection--comma{font-size:12px}.v-datatable__progress,.v-datatable__progress td,.v-datatable__progress th,.v-datatable__progress tr{height:auto!important}.v-datatable__progress th{padding:0!important}.v-datatable__progress th .v-progress-linear{margin:0}.v-datatable__expand-row{border:none!important}.v-datatable__expand-col{padding:0!important;height:0!important}.v-datatable__expand-col--expanded{border-bottom:1px solid rgba(0,0,0,.12)}.v-datatable__expand-content{transition:height .3s cubic-bezier(.25,.8,.5,1)}.v-datatable__expand-content>.card{border-radius:0;box-shadow:none}.v-progress-linear{background:transparent;margin:1rem 0;overflow:hidden;width:100%;position:relative}.v-progress-linear__bar{width:100%;position:relative;z-index:1}.v-progress-linear__bar,.v-progress-linear__bar__determinate{height:inherit;transition:.2s cubic-bezier(.4,0,.6,1)}.v-progress-linear__bar__indeterminate .long,.v-progress-linear__bar__indeterminate .short{height:inherit;position:absolute;left:0;top:0;bottom:0;will-change:left,right;width:auto;background-color:inherit}.v-progress-linear__bar__indeterminate--active .long{animation:indeterminate;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__bar__indeterminate--active .short{animation:indeterminate-short;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__background{position:absolute;top:0;left:0;bottom:0;transition:.3s ease-in}.v-progress-linear__content{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .long{animation:query;animation-duration:2s;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .short{animation:query-short;animation-duration:2s;animation-iteration-count:infinite}@-moz-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-webkit-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-o-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-moz-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-o-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-moz-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-webkit-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-o-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-moz-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-webkit-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-o-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}.v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#f5f5f5}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#212121}.v-btn{align-items:center;border-radius:2px;display:inline-flex;height:36px;flex:0 0 auto;font-size:14px;font-weight:500;justify-content:center;margin:6px 8px;min-width:88px;outline:0;text-transform:uppercase;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1),color 1ms;position:relative;vertical-align:middle;user-select:none}.v-btn:before{border-radius:inherit;color:inherit;content:"";position:absolute;left:0;top:0;height:100%;opacity:.12;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-btn{padding:0 16px}.v-btn--active,.v-btn:focus,.v-btn:hover{position:relative}.v-btn--active:before,.v-btn:focus:before,.v-btn:hover:before{background-color:currentColor}@media (hover:none){.v-btn:hover:before{background-color:transparent}}.v-btn__content{align-items:center;border-radius:inherit;color:inherit;display:flex;flex:1 0 auto;justify-content:center;margin:0 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;width:inherit}.v-btn--small{font-size:13px;height:28px;padding:0 8px}.v-btn--large{font-size:15px;height:44px;padding:0 32px}.v-btn .v-btn__content .v-icon{color:inherit}.v-btn:not(.v-btn--depressed):not(.v-btn--flat){will-change:box-shadow;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--icon{background:transparent;box-shadow:none!important;border-radius:50%;justify-content:center;min-width:0;width:36px}.v-btn--icon.v-btn--small{width:28px}.v-btn--icon.v-btn--large{width:44px}.v-btn--floating,.v-btn--icon:before{border-radius:50%}.v-btn--floating{min-width:0;height:56px;width:56px;padding:0}.v-btn--floating.v-btn--absolute,.v-btn--floating.v-btn--fixed{z-index:4}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--floating .v-btn__content{flex:1 1 auto;margin:0;height:100%}.v-btn--floating:after{border-radius:50%}.v-btn--floating .v-btn__content>:not(:only-child){transition:.3s cubic-bezier(.25,.8,.5,1)}.v-btn--floating .v-btn__content>:not(:only-child):first-child{opacity:1}.v-btn--floating .v-btn__content>:not(:only-child):last-child{opacity:0;transform:rotate(-45deg)}.v-btn--floating .v-btn__content>:not(:only-child):first-child,.v-btn--floating .v-btn__content>:not(:only-child):last-child{-webkit-backface-visibility:hidden;position:absolute;left:0;top:0}.v-btn--floating.v-btn--active .v-btn__content>:not(:only-child):first-child{opacity:0;transform:rotate(45deg)}.v-btn--floating.v-btn--active .v-btn__content>:not(:only-child):last-child{opacity:1;transform:rotate(0)}.v-btn--floating .v-icon{height:inherit;width:inherit}.v-btn--floating.v-btn--small{height:40px;width:40px}.v-btn--floating.v-btn--small .v-icon{font-size:18px}.v-btn--floating.v-btn--large{height:72px;width:72px}.v-btn--floating.v-btn--large .v-icon{font-size:30px}.v-btn--reverse .v-btn__content{flex-direction:row-reverse}.v-btn--reverse.v-btn--column .v-btn__content{flex-direction:column-reverse}.v-btn--absolute,.v-btn--fixed{margin:0}.v-btn.v-btn--absolute{position:absolute}.v-btn.v-btn--fixed{position:fixed}.v-btn--top:not(.v-btn--absolute){top:16px}.v-btn--top.v-btn--absolute{top:-28px}.v-btn--top.v-btn--absolute.v-btn--small{top:-20px}.v-btn--top.v-btn--absolute.v-btn--large{top:-36px}.v-btn--bottom:not(.v-btn--absolute){bottom:16px}.v-btn--bottom.v-btn--absolute{bottom:-28px}.v-btn--bottom.v-btn--absolute.v-btn--small{bottom:-20px}.v-btn--bottom.v-btn--absolute.v-btn--large{bottom:-36px}.v-btn--left{left:16px}.v-btn--right{right:16px}.v-btn.v-btn--disabled{box-shadow:none!important;pointer-events:none}.v-btn:not(.v-btn--disabled):not(.v-btn--floating):not(.v-btn--icon) .v-btn__content .v-icon{transition:none}.v-btn--icon{padding:0}.v-btn--loader{pointer-events:none}.v-btn--loader .v-btn__content{opacity:0}.v-btn__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__loading .v-icon--left{margin-right:1rem;line-height:inherit}.v-btn__loading .v-icon--right{margin-left:1rem;line-height:inherit}.v-btn.v-btn--outline{border:1px solid currentColor;background:transparent!important;box-shadow:none}.v-btn.v-btn--outline:hover{box-shadow:none}.v-btn--block{display:flex;flex:1;margin:6px 0;width:100%}.v-btn--round,.v-btn--round:after{border-radius:28px}.v-btn:not(.v-btn--outline).accent,.v-btn:not(.v-btn--outline).error,.v-btn:not(.v-btn--outline).info,.v-btn:not(.v-btn--outline).primary,.v-btn:not(.v-btn--outline).secondary,.v-btn:not(.v-btn--outline).success,.v-btn:not(.v-btn--outline).warning{color:#fff}.v-progress-circular{position:relative;display:inline-flex;vertical-align:middle}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}.v-progress-circular__info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@-moz-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-webkit-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-o-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-moz-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@-webkit-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@-o-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}.theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon{align-items:center;display:inline-flex;font-feature-settings:"liga";font-size:24px;justify-content:center;line-height:1;transition:.3s cubic-bezier(.25,.8,.5,1);vertical-align:text-bottom}.v-icon--right{margin-left:16px}.v-icon--left{margin-right:16px}.v-icon.v-icon.v-icon--link{cursor:pointer}.v-icon--disabled{pointer-events:none;opacity:.6}.v-icon--is-component{height:24px}.theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:rgba(0,0,0,.38)}.theme--light.v-text-field__prefix,.theme--light.v-text-field__suffix{color:rgba(0,0,0,.54)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#fff}.theme--light.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:rgba(0,0,0,.16)}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--light.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--light.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--light.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid rgba(0,0,0,.54)}.theme--light.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid rgba(0,0,0,.87)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:hsla(0,0%,100%,.5)}.theme--dark.v-text-field__prefix,.theme--dark.v-text-field__suffix{color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#424242}.theme--dark.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.1)}.theme--dark.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--dark.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--dark.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--dark.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--dark.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.2)}.theme--dark.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid hsla(0,0%,100%,.7)}.theme--dark.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid #fff}.application--is-rtl .v-text-field .v-label{transform-origin:top right}.application--is-rtl .v-text-field .v-counter{margin-left:0;margin-right:8px}.application--is-rtl .v-text-field--enclosed .v-input__append-outer{margin-left:0;margin-right:16px}.application--is-rtl .v-text-field--enclosed .v-input__prepend-outer{margin-left:16px;margin-right:0}.application--is-rtl .v-text-field--reverse input{text-align:left}.application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.application--is-rtl .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.application--is-rtl .v-text-field__suffix{padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0 8px;max-width:100%;min-width:0;width:100%}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;user-select:none}.v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-text-field .v-input__append-inner{margin-left:auto;padding-left:4px}.v-text-field .v-counter{margin-left:8px;white-space:nowrap}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;transform-origin:top left;white-space:nowrap;pointer-events:none}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentColor;border-style:solid;border-width:thin 0 thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default}.v-text-field__prefix{text-align:right;padding-right:4px}.v-text-field__suffix{padding-left:4px;white-space:nowrap}.v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field--box,.v-text-field--full-width,.v-text-field--outline{position:relative}.v-text-field--box>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outline>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--box input,.v-text-field--full-width input,.v-text-field--outline input{margin-top:22px}.v-text-field--box.v-text-field--single-line input,.v-text-field--full-width.v-text-field--single-line input,.v-text-field--outline.v-text-field--single-line input{margin-top:12px}.v-text-field--box .v-label,.v-text-field--full-width .v-label,.v-text-field--outline .v-label{top:18px}.v-text-field--box .v-label--active,.v-text-field--full-width .v-label--active,.v-text-field--outline .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--box>.v-input__control>.v-input__slot{border-top-left-radius:4px;border-top-right-radius:4px}.v-text-field--box>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 thin 0}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--box) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-input__append-inner,.v-text-field.v-text-field--enclosed .v-input__append-outer,.v-text-field.v-text-field--enclosed .v-input__prepend-inner,.v-text-field.v-text-field--enclosed .v-input__prepend-outer{margin-top:16px}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-text-field--reverse input{text-align:right}.v-text-field--reverse .v-label{transform-origin:top right}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--full-width>.v-input__control>.v-input__slot:after,.v-text-field--full-width>.v-input__control>.v-input__slot:before,.v-text-field--outline>.v-input__control>.v-input__slot:after,.v-text-field--outline>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outline{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline>.v-input__control>.v-input__slot{background:transparent!important;border-radius:4px}.v-text-field--outline .v-text-field__prefix{margin-top:22px;max-height:32px}.v-text-field--outline .v-input__append-outer,.v-text-field--outline .v-input__prepend-outer{margin-top:18px}.v-text-field--outline.v-input--is-dirty .v-text-field__prefix,.v-text-field--outline.v-input--is-focused .v-text-field__prefix,.v-text-field--outline.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline.v-input--has-state>.v-input__control>.v-input__slot,.v-text-field--outline.v-input--is-focused>.v-input__control>.v-input__slot{border:2px solid currentColor;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 10px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-text-field__slot{align-items:center}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}.theme--light.v-select .v-select__selections{color:rgba(0,0,0,.87)}.theme--light.v-select .v-chip--disabled,.theme--light.v-select.v-input--is-disabled .v-select__selections,.theme--light.v-select .v-select__selection--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-select .v-select__selections,.theme--light.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:#fff}.theme--dark.v-select .v-chip--disabled,.theme--dark.v-select.v-input--is-disabled .v-select__selections,.theme--dark.v-select .v-select__selection--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:rgba(0,0,0,.87)}.v-select{position:relative}.v-select>.v-input__control>.v-input__slot{cursor:pointer}.v-select .v-chip{flex:0 1 auto}.v-select .fade-transition-leave-active{position:absolute;left:0}.v-select.v-input--is-dirty ::placeholder{color:transparent!important}.v-select:not(.v-input--is-dirty):not(.v-input--is-focused) .v-text-field__prefix{line-height:20px;position:absolute;top:7px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-select.v-text-field--enclosed:not(.v-text-field--single-line) .v-select__selections{padding-top:24px}.v-select.v-text-field input{flex:1 1;margin-top:0;min-width:0;pointer-events:none;position:relative}.v-select.v-select--is-menu-active .v-input__icon--append .v-icon{transform:rotate(180deg)}.v-select.v-select--chips input{margin:0}.v-select.v-select--chips .v-select__selections{min-height:42px}.v-select.v-select--chips.v-select--chips--small .v-select__selections{min-height:32px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed .v-select__selections{min-height:68px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small .v-select__selections{min-height:56px}.v-select.v-text-field--reverse .v-select__selections,.v-select.v-text-field--reverse .v-select__slot{flex-direction:row-reverse}.v-select__selections{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;line-height:18px}.v-select__selection{max-width:90%}.v-select__selection--comma{align-items:center;display:inline-flex;margin:7px 4px 7px 0}.v-select__slot{position:relative;align-items:center;display:flex;width:100%}.v-select:not(.v-text-field--single-line) .v-select__slot>input{align-self:flex-end}.theme--light.v-input:not(.v-input--is-disabled) input,.theme--light.v-input:not(.v-input--is-disabled) textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled .v-label,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input:not(.v-input--is-disabled) input,.theme--dark.v-input:not(.v-input--is-disabled) textarea{color:#fff}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled .v-label,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0;margin:0;position:absolute}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{user-select:none}.v-input__append-outer{margin-left:9px}.v-input__prepend-outer{margin-right:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{animation:shake .6s cubic-bezier(.25,.8,.5,1)}.theme--light.v-label{color:rgba(0,0,0,.54)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-messages{color:rgba(0,0,0,.54)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.application--is-rtl .v-messages{text-align:right}.v-messages{flex:1 1 auto;font-size:12px;min-height:12px;min-width:1px;position:relative}.v-messages__message{line-height:normal;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}.theme--light.v-counter{color:rgba(0,0,0,.54)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:1}.theme--light.v-input--selection-controls.v-input--is-disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-input--selection-controls.v-input--is-disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.application--is-rtl .v-input--selection-controls .v-input--selection-controls__input{margin-right:0;margin-left:8px}.v-input--selection-controls{margin-top:16px;padding-top:4px}.v-input--selection-controls .v-input__append-outer,.v-input--selection-controls .v-input__prepend-outer{margin-top:0;margin-bottom:0}.v-input--selection-controls .v-input__control{flex-grow:0;width:auto}.v-input--selection-controls:not(.v-input--hide-details) .v-input__slot{margin-bottom:12px}.v-input--selection-controls__input{color:inherit;display:inline-flex;flex:0 0 auto;height:24px;position:relative;margin-right:8px;transition:.3s cubic-bezier(.25,.8,.25,1);transition-property:color,transform;width:24px;user-select:none}.v-input--selection-controls__input input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;user-select:none}.v-input--selection-controls__input+.v-label{cursor:pointer;user-select:none}.v-input--selection-controls__ripple{border-radius:50%;cursor:pointer;height:34px;position:absolute;transition:inherit;width:34px;left:-12px;top:calc(50% - 24px);margin:7px}.v-input--selection-controls__ripple:before{border-radius:inherit;bottom:0;content:"";position:absolute;opacity:.2;left:0;right:0;top:0;transform-origin:center center;transform:scale(.2);transition:inherit}.v-input--selection-controls__ripple .v-ripple__container{transform:scale(1.4)}.v-input--selection-controls.v-input .v-label{align-items:center;display:inline-flex;top:0;height:auto}.v-input--selection-controls.v-input--is-focused .v-input--selection-controls__ripple:before,.v-input--selection-controls .v-radio--is-focused .v-input--selection-controls__ripple:before{background:currentColor;transform:scale(.8)}.theme--light.v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-divider{border-color:hsla(0,0%,100%,.12)}.v-divider{display:block;flex:1 1 0px;max-width:100%;height:0;max-height:0;border:solid;border-width:thin 0 0 0;transition:inherit}.v-divider--inset:not(.v-divider--vertical){margin-left:72px;max-width:calc(100% - 72px)}.v-divider--vertical{align-self:stretch;border:solid;border-width:0 thin 0 0;display:inline-flex;height:inherit;min-height:100%;max-height:100%;max-width:0;width:0;vertical-align:text-bottom}.v-divider--vertical.v-divider--inset{margin-top:8px;min-height:0;max-height:calc(100% - 16px)}.theme--light.v-subheader{color:rgba(0,0,0,.54)}.theme--dark.v-subheader{color:hsla(0,0%,100%,.7)}.v-subheader{align-items:center;display:flex;height:48px;font-size:14px;font-weight:500;padding:0 16px 0 16px}.v-subheader--inset{margin-left:56px}.theme--light.v-list{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-list .v-list--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list .v-list__tile__sub-title{color:rgba(0,0,0,.54)}.theme--light.v-list .v-list__tile__mask{color:rgba(0,0,0,.38);background:#eee}.theme--light.v-list .v-list__group__header:hover,.theme--light.v-list .v-list__tile--highlighted,.theme--light.v-list .v-list__tile--link:hover{background:rgba(0,0,0,.04)}.theme--light.v-list .v-list__group--active:after,.theme--light.v-list .v-list__group--active:before{background:rgba(0,0,0,.12)}.theme--light.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--light.v-list .v-list__group--disabled .v-list__tile{color:rgba(0,0,0,.38)!important}.theme--dark.v-list{background:#424242;color:#fff}.theme--dark.v-list .v-list--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list .v-list__tile__sub-title{color:hsla(0,0%,100%,.7)}.theme--dark.v-list .v-list__tile__mask{color:hsla(0,0%,100%,.5);background:#494949}.theme--dark.v-list .v-list__group__header:hover,.theme--dark.v-list .v-list__tile--highlighted,.theme--dark.v-list .v-list__tile--link:hover{background:hsla(0,0%,100%,.08)}.theme--dark.v-list .v-list__group--active:after,.theme--dark.v-list .v-list__group--active:before{background:hsla(0,0%,100%,.12)}.theme--dark.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--dark.v-list .v-list__group--disabled .v-list__tile{color:hsla(0,0%,100%,.5)!important}.application--is-rtl .v-list__tile__content,.application--is-rtl .v-list__tile__title{text-align:right}.v-list{list-style-type:none;padding:8px 0 8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list>div{transition:inherit}.v-list__tile{align-items:center;color:inherit;display:flex;font-size:16px;font-weight:400;height:48px;margin:0;padding:0 16px;position:relative;text-decoration:none;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-list__tile--link{cursor:pointer;user-select:none}.v-list__tile__action,.v-list__tile__content{height:100%}.v-list__tile__sub-title,.v-list__tile__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__tile__title{height:24px;line-height:24px;position:relative;text-align:left}.v-list__tile__sub-title{font-size:14px}.v-list__tile__action,.v-list__tile__avatar{display:flex;justify-content:flex-start;min-width:56px}.v-list__tile__action{align-items:center}.v-list__tile__action .v-btn{padding:0;margin:0}.v-list__tile__action .v-btn--icon{margin:-6px}.v-list__tile__action .v-radio.v-radio{margin:0}.v-list__tile__action .v-input--selection-controls{padding:0;margin:0}.v-list__tile__action .v-input--selection-controls .v-messages{display:none}.v-list__tile__action .v-input--selection-controls .v-input__slot{margin:0}.v-list__tile__action-text{color:#9e9e9e;font-size:12px}.v-list__tile__action--stack{align-items:flex-end;justify-content:space-between;padding-top:8px;padding-bottom:8px;white-space:nowrap;flex-direction:column}.v-list__tile__content{text-align:left;flex:1 1 auto;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.v-list__tile__content~.v-list__tile__action:not(.v-list__tile__action--stack),.v-list__tile__content~.v-list__tile__avatar{justify-content:flex-end}.v-list__tile--active .v-list__tile__action:first-of-type .v-icon{color:inherit}.v-list__tile--avatar{height:56px}.v-list--dense{padding-top:4px;padding-bottom:4px}.v-list--dense .v-subheader{font-size:13px;height:40px}.v-list--dense .v-list__group .v-subheader{height:40px}.v-list--dense .v-list__tile{font-size:13px}.v-list--dense .v-list__tile--avatar{height:48px}.v-list--dense .v-list__tile:not(.v-list__tile--avatar){height:40px}.v-list--dense .v-list__tile .v-icon{font-size:22px}.v-list--dense .v-list__tile__sub-title{font-size:13px}.v-list--disabled{pointer-events:none}.v-list--two-line .v-list__tile{height:72px}.v-list--two-line.v-list--dense .v-list__tile{height:60px}.v-list--three-line .v-list__tile{height:88px}.v-list--three-line .v-list__tile__avatar{margin-top:-18px}.v-list--three-line .v-list__tile__sub-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.v-list--three-line.v-list--dense .v-list__tile{height:76px}.v-list>.v-list__group:before{top:0}.v-list>.v-list__group:before .v-list__tile__avatar{margin-top:-14px}.v-list__group{padding:0;position:relative;transition:inherit}.v-list__group:after,.v-list__group:before{content:"";height:1px;left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__group--active~.v-list__group:before{display:none}.v-list__group__header{align-items:center;cursor:pointer;display:flex;list-style-type:none}.v-list__group__header>div:not(.v-list__group__header__prepend-icon):not(.v-list__group__header__append-icon){flex:1 1 auto;overflow:hidden}.v-list__group__header .v-list__group__header__append-icon,.v-list__group__header .v-list__group__header__prepend-icon{padding:0 16px;user-select:none}.v-list__group__header--sub-group{align-items:center;display:flex}.v-list__group__header--sub-group div .v-list__tile{padding-left:0}.v-list__group__header--sub-group .v-list__group__header__prepend-icon{padding:0 0 0 40px;margin-right:8px}.v-list__group__header .v-list__group__header__prepend-icon{display:flex;justify-content:flex-start;min-width:56px}.v-list__group__header--active .v-list__group__header__append-icon .v-icon{transform:rotate(-180deg)}.v-list__group__header--active .v-list__group__header__prepend-icon .v-icon{color:inherit}.v-list__group__header--active.v-list__group__header--sub-group .v-list__group__header__prepend-icon .v-icon{transform:rotate(-180deg)}.v-list__group__items{position:relative;padding:0;transition:inherit}.v-list__group__items>div{display:block}.v-list__group__items--no-action .v-list__tile{padding-left:72px}.v-list__group--disabled{pointer-events:none}.v-list--subheader{padding-top:0}.v-avatar{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;position:relative;text-align:center;vertical-align:middle}.v-avatar .v-icon,.v-avatar .v-image,.v-avatar img{border-radius:50%;display:inline-flex;height:inherit;width:inherit}.v-avatar--tile,.v-avatar--tile .v-icon,.v-avatar--tile .v-image,.v-avatar--tile img{border-radius:0}.theme--light.v-chip{background:#e0e0e0;color:rgba(0,0,0,.87)}.theme--light.v-chip--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-chip{background:#555;color:#fff}.theme--dark.v-chip--disabled{color:hsla(0,0%,100%,.5)}.application--is-rtl .v-chip__close{margin:0 8px 0 2px}.application--is-rtl .v-chip--removable .v-chip__content{padding:0 12px 0 4px}.application--is-rtl .v-chip--select-multi{margin:4px 0 4px 4px}.application--is-rtl .v-chip .v-avatar{margin-right:-12px;margin-left:8px}.application--is-rtl .v-chip .v-icon--right{margin-right:12px;margin-left:-8px}.application--is-rtl .v-chip .v-icon--left{margin-right:-8px;margin-left:12px}.v-chip{font-size:13px;margin:4px;outline:none;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-chip,.v-chip .v-chip__content{align-items:center;border-radius:28px;display:inline-flex;vertical-align:middle}.v-chip .v-chip__content{cursor:default;height:32px;justify-content:space-between;padding:0 12px;white-space:nowrap;z-index:1}.v-chip--removable .v-chip__content{padding:0 4px 0 12px}.v-chip .v-avatar{height:32px!important;margin-left:-12px;margin-right:8px;min-width:32px;width:32px!important}.v-chip .v-avatar img{height:100%;width:100%}.v-chip--active,.v-chip--selected,.v-chip:focus:not(.v-chip--disabled){border-color:rgba(0,0,0,.13);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-chip--active:after,.v-chip--selected:after,.v-chip:focus:not(.v-chip--disabled):after{background:currentColor;border-radius:inherit;content:"";height:100%;position:absolute;top:0;left:0;transition:inherit;width:100%;pointer-events:none;opacity:.13}.v-chip--label,.v-chip--label .v-chip__content{border-radius:2px}.v-chip.v-chip.v-chip--outline{background:transparent!important;border:1px solid currentColor;color:#9e9e9e;height:32px}.v-chip.v-chip.v-chip--outline .v-avatar{margin-left:-13px}.v-chip--small{height:24px!important}.v-chip--small .v-avatar{height:24px!important;min-width:24px;width:24px!important}.v-chip--small .v-icon{font-size:20px}.v-chip__close{align-items:center;color:inherit;display:flex;font-size:20px;margin:0 2px 0 8px;text-decoration:none;user-select:none}.v-chip__close>.v-icon{color:inherit!important;font-size:20px;cursor:pointer;opacity:.5}.v-chip__close>.v-icon:hover{opacity:1}.v-chip--disabled .v-chip__close{pointer-events:none}.v-chip--select-multi{margin:4px 4px 4px 0}.v-chip .v-icon{color:inherit}.v-chip .v-icon--right{margin-left:12px;margin-right:-8px}.v-chip .v-icon--left{margin-left:-8px;margin-right:12px}.v-menu{display:block;vertical-align:middle}.v-menu--inline{display:inline-block}.v-menu__activator{align-items:center;cursor:pointer;display:flex}.v-menu__activator *{cursor:pointer}.v-menu__content{position:absolute;display:inline-block;border-radius:2px;max-width:80%;overflow-y:auto;overflow-x:hidden;contain:content;will-change:transform;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-menu__content--active{pointer-events:none}.v-menu__content--fixed{position:fixed}.v-menu__content>.card{contain:content;backface-visibility:hidden}.v-menu>.v-menu__content{max-width:none}.v-menu-transition-enter .v-list__tile{min-width:0;pointer-events:none}.v-menu-transition-enter-to .v-list__tile{pointer-events:auto;transition-delay:.1s}.v-menu-transition-leave-active,.v-menu-transition-leave-to{pointer-events:none}.v-menu-transition-enter,.v-menu-transition-leave-to{opacity:0}.v-menu-transition-enter-active,.v-menu-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.25,1)}.v-menu-transition-enter.v-menu__content--auto{transition:none!important}.v-menu-transition-enter.v-menu__content--auto .v-list__tile{opacity:0;transform:translateY(-15px)}.v-menu-transition-enter.v-menu__content--auto .v-list__tile--active{opacity:1;transform:none!important;pointer-events:auto}.v-autocomplete.v-input>.v-input__control>.v-input__slot{cursor:text}.v-autocomplete input{align-self:center}.v-autocomplete--is-selecting-index input{opacity:0}.v-autocomplete.v-text-field--enclosed:not(.v-text-field--solo):not(.v-text-field--single-line) .v-select__slot>input{margin-top:24px}.v-autocomplete:not(.v-input--is-disabled).v-select.v-text-field input{pointer-events:inherit}.v-autocomplete__content.v-menu__content,.v-autocomplete__content.v-menu__content .v-card{border-radius:0}.theme--light.v-overflow-btn .v-input__control:before,.theme--light.v-overflow-btn .v-input__slot:before{background-color:rgba(0,0,0,.12)!important}.theme--light.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--light.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--light.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--light.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--light.v-overflow-btn--editable:hover .v-input__append-inner,.theme--light.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid rgba(0,0,0,.12)}.theme--light.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--light.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--light.v-overflow-btn:hover .v-input__slot{background:#fff}.theme--dark.v-overflow-btn .v-input__control:before,.theme--dark.v-overflow-btn .v-input__slot:before{background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--dark.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--dark.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--dark.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--dark.v-overflow-btn--editable:hover .v-input__append-inner,.theme--dark.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--dark.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--dark.v-overflow-btn:hover .v-input__slot{background:#424242}.v-overflow-btn{margin-top:12px;padding-top:0}.v-overflow-btn:not(.v-overflow-btn--editable)>.v-input__control>.v-input__slot{cursor:pointer}.v-overflow-btn .v-select__slot{height:48px}.v-overflow-btn .v-select__slot input{margin-left:16px;cursor:pointer}.v-overflow-btn .v-select__selection--comma:first-child{margin-left:16px}.v-overflow-btn .v-input__slot{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-overflow-btn .v-input__slot:after{content:none}.v-overflow-btn .v-label{margin-left:16px;top:calc(50% - 10px)}.v-overflow-btn .v-input__append-inner{width:48px;height:48px;align-self:auto;align-items:center;margin-top:0;padding:0;flex-shrink:0}.v-overflow-btn .v-input__append-outer,.v-overflow-btn .v-input__prepend-outer{margin-top:12px;margin-bottom:12px}.v-overflow-btn .v-input__control:before{height:1px;top:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-overflow-btn.v-input--is-focused .v-input__slot,.v-overflow-btn.v-select--is-menu-active .v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-overflow-btn .v-select__selections{width:0}.v-overflow-btn--segmented .v-select__selections{flex-wrap:nowrap}.v-overflow-btn--segmented .v-select__selections .v-btn{border-radius:0;margin:0;margin-right:-16px;height:48px;width:100%}.v-overflow-btn--segmented .v-select__selections .v-btn__content{justify-content:start}.v-overflow-btn--segmented .v-select__selections .v-btn__content:before{background-color:transparent}.v-overflow-btn--editable .v-select__slot input{cursor:text}.v-overflow-btn--editable .v-input__append-inner,.v-overflow-btn--editable .v-input__append-inner *{cursor:pointer}.theme--light.v-footer{background:#f5f5f5;color:rgba(0,0,0,.87)}.theme--dark.v-footer{background:#212121;color:#fff}.v-footer{align-items:center;display:flex;flex:0 1 auto!important;min-height:36px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-footer--absolute,.v-footer--fixed{bottom:0;left:0;width:100%;z-index:3}.v-footer--inset{z-index:2}.v-footer--absolute{position:absolute}.v-footer--fixed{position:fixed}.theme--light.v-system-bar{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.theme--light.v-system-bar .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-system-bar--lights-out{background-color:hsla(0,0%,100%,.7)!important}.theme--dark.v-system-bar{background-color:#000;color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar .v-icon{color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar--lights-out{background-color:rgba(0,0,0,.2)!important}.v-system-bar{align-items:center;display:flex;font-size:14px;font-weight:500;padding:0 8px}.v-system-bar .v-icon{font-size:16px}.v-system-bar--absolute,.v-system-bar--fixed{left:0;top:0;width:100%;z-index:3}.v-system-bar--fixed{position:fixed}.v-system-bar--absolute{position:absolute}.v-system-bar--status .v-icon{margin-right:4px}.v-system-bar--window .v-icon{font-size:20px;margin-right:8px}.theme--light.v-tabs__bar{background-color:#fff}.theme--light.v-tabs__bar .v-tabs__div{color:rgba(0,0,0,.87)}.theme--light.v-tabs__bar .v-tabs__item--disabled{color:rgba(0,0,0,.26)}.theme--dark.v-tabs__bar{background-color:#424242}.theme--dark.v-tabs__bar .v-tabs__div{color:#fff}.theme--dark.v-tabs__bar .v-tabs__item--disabled{color:hsla(0,0%,100%,.3)}.v-tabs,.v-tabs__bar{position:relative}.v-tabs__bar{border-radius:inherit}.v-tabs__icon{align-items:center;cursor:pointer;display:inline-flex;height:100%;position:absolute;top:0;user-select:none;width:32px}.v-tabs__icon--prev{left:4px}.v-tabs__icon--next{right:4px}.v-tabs__wrapper{overflow:hidden;contain:content;display:flex}.v-tabs__wrapper--show-arrows{margin-left:40px;margin-right:40px}.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:16px}@media only screen and (max-width:599px){.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:24px}}.v-tabs__container{flex:1 0 auto;display:flex;height:48px;list-style-type:none;transition:transform .6s cubic-bezier(.86,0,.07,1);white-space:nowrap;position:relative}.v-tabs__container--overflow .v-tabs__div{flex:1 0 auto}.v-tabs__container--grow .v-tabs__div{flex:1 0 auto;max-width:none}.v-tabs__container--icons-and-text{height:72px}.v-tabs__container--align-with-title{padding-left:56px}.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:72px}@media only screen and (min-width:600px){.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:160px}}@media only screen and (max-width:599px){.v-tabs__container--fixed-tabs .v-tabs__div{flex:1 0 auto}}.v-tabs__container--centered .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--centered>.v-tabs__div:first-child,.v-tabs__container--fixed-tabs .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--fixed-tabs>.v-tabs__div:first-child,.v-tabs__container--right .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--right>.v-tabs__div:first-child{margin-left:auto}.v-tabs__container--centered>.v-tabs__div:last-child,.v-tabs__container--fixed-tabs>.v-tabs__div:last-child{margin-right:auto}.v-tabs__container--icons-and-text .v-tabs__item{flex-direction:column-reverse}.v-tabs__container--icons-and-text .v-tabs__item .v-icon{margin-bottom:6px}.v-tabs__div{align-items:center;display:inline-flex;flex:0 1 auto;font-size:14px;font-weight:500;line-height:normal;height:inherit;max-width:264px;text-align:center;text-transform:uppercase;vertical-align:middle}.v-tabs__item{align-items:center;color:inherit;display:flex;flex:1 1 auto;height:100%;justify-content:center;max-width:inherit;padding:6px 12px;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1);user-select:none;white-space:normal}.v-tabs__item:not(.v-tabs__item--active){opacity:.7}.v-tabs__item--disabled{pointer-events:none}.v-tabs__slider{height:2px;width:100%}.v-tabs__slider-wrapper{bottom:0;margin:0!important;position:absolute}.v-item-group,.v-tabs__slider-wrapper{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-item-group{flex:0 1 auto;position:relative}.v-item-group>*{cursor:pointer;flex:1 1 auto}.v-window__container{position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__container--is-active{overflow:hidden}.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-x-reverse-transition-leave,.v-window-x-reverse-transition-leave-to,.v-window-x-transition-leave,.v-window-x-transition-leave-to,.v-window-y-reverse-transition-leave,.v-window-y-reverse-transition-leave-to,.v-window-y-transition-leave,.v-window-y-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter{transform:translateX(100%)}.v-window-x-reverse-transition-enter,.v-window-x-transition-leave-to{transform:translateX(-100%)}.v-window-x-reverse-transition-leave-to{transform:translateX(100%)}.v-window-y-transition-enter{transform:translateY(100%)}.v-window-y-reverse-transition-enter,.v-window-y-transition-leave-to{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)} \ No newline at end of file diff --git a/ui/app.js b/ui/app.js index 8a09676..e851a3c 100644 --- a/ui/app.js +++ b/ui/app.js @@ -1,14 +1,14 @@ -!function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=46)}([function(t,e,n){"use strict";(function(t,n){ +!function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=45)}([function(t,e,n){"use strict";(function(t,n){ /*! * Vue.js v2.6.10 * (c) 2014-2019 Evan You * Released under the MIT License. */ -var i=Object.freeze({});function r(t){return null==t}function a(t){return null!=t}function o(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function c(t){return"[object Object]"===u.call(t)}function h(t){return"[object RegExp]"===u.call(t)}function d(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function f(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||c(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function x(t,e){return b.call(t,e)}function _(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,k=_(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),C=_(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),S=/\B([A-Z])/g,I=_(function(t){return t.replace(S,"-$1").toLowerCase()});var A=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function M(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function T(t,e){for(var n in e)t[n]=e[n];return t}function O(t){for(var e={},n=0;n0,Q=K&&K.indexOf("edge/")>0,J=(K&&K.indexOf("android"),K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===X),tt=(K&&/chrome\/\d+/.test(K),K&&/phantomjs/.test(K),K&&K.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(U)try{var it={};Object.defineProperty(it,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,it)}catch(t){}var rt=function(){return void 0===H&&(H=!U&&!Y&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),H},at=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ot(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,lt="undefined"!=typeof Symbol&&ot(Symbol)&&"undefined"!=typeof Reflect&&ot(Reflect.ownKeys);st="undefined"!=typeof Set&&ot(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=P,ct=0,ht=function(){this.id=ct++,this.subs=[]};ht.prototype.addSub=function(t){this.subs.push(t)},ht.prototype.removeSub=function(t){y(this.subs,t)},ht.prototype.depend=function(){ht.target&&ht.target.addDep(this)},ht.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(a&&!x(r,"default"))o=!1;else if(""===o||o===I(t)){var l=zt(String,r.type);(l<0||s0&&(ce((u=t(u,(n||"")+"_"+l))[0])&&ce(h)&&(i[c]=yt(h.text+u[0].text),u.shift()),i.push.apply(i,u)):s(u)?ce(h)?i[c]=yt(h.text+u):""!==u&&i.push(yt(u)):ce(u)&&ce(h)?i[c]=yt(h.text+u.text):(o(e._isVList)&&a(u.tag)&&r(u.key)&&a(n)&&(u.key="__vlist"+n+"_"+l+"__"),i.push(u)));return i}(t):void 0}function ce(t){return a(t)&&a(t.text)&&!1===t.isComment}function he(t,e){if(t){for(var n=Object.create(null),i=lt?Reflect.ownKeys(t):Object.keys(t),r=0;r0,o=t?!!t.$stable:!a,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(o&&n&&n!==i&&s===n.$key&&!a&&!n.$hasNormal)return n;for(var l in r={},t)t[l]&&"$"!==l[0]&&(r[l]=ve(e,l,t[l]))}else r={};for(var u in e)u in r||(r[u]=ge(e,u));return t&&Object.isExtensible(t)&&(t._normalized=r),j(r,"$stable",o),j(r,"$key",s),j(r,"$hasNormal",a),r}function ve(t,e,n){var i=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:i,enumerable:!0,configurable:!0}),i}function ge(t,e){return function(){return t[e]}}function me(t,e){var n,i,r,o,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),i=0,r=t.length;idocument.createEvent("Event").timeStamp&&(cn=function(){return hn.now()})}function dn(){var t,e;for(un=cn(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),ln=0;lnln&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);on||(on=!0,ee(dn))}}(this)},pn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){jt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:P,set:P};function gn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function mn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[];t.$parent&&Ct(!1);var a=function(a){r.push(a);var o=Vt(a,e,n,t);At(i,a,o),a in t||gn(t,"_props",a)};for(var o in e)a(o);Ct(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?P:A(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;c(e=t._data="function"==typeof e?function(t,e){ft();try{return t.call(e,e)}catch(t){return jt(t,e,"data()"),{}}finally{pt()}}(e,t):e||{})||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);for(;r--;){var a=n[r];0,i&&x(i,a)||(o=void 0,36!==(o=(a+"").charCodeAt(0))&&95!==o&&gn(t,"_data",a))}var o;It(e,!0)}(t):It(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),i=rt();for(var r in e){var a=e[r],o="function"==typeof a?a:a.get;0,i||(n[r]=new pn(t,o||P,P,yn)),r in t||bn(t,r,a)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!h(t)&&t.test(e)}function Tn(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var a in n){var o=n[a];if(o){var s=An(o.componentOptions);s&&!e(s)&&On(n,a,i,r)}}}function On(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=kn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),i=e._parentVnode;n.parent=e.parent,n._parentVnode=i;var r=i.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Et(Cn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ge(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,r=n&&n.context;t.$slots=de(e._renderChildren,r),t.$scopedSlots=i,t._c=function(e,n,i,r){return ze(t,e,n,i,r,!1)},t.$createElement=function(e,n,i,r){return ze(t,e,n,i,r,!0)};var a=n&&n.data;At(t,"$attrs",a&&a.attrs||i,null,!0),At(t,"$listeners",e._parentListeners||i,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=he(t.$options.inject,t);e&&(Ct(!1),Object.keys(e).forEach(function(n){At(t,n,e[n])}),Ct(!0))}(e),mn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Sn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Mt,t.prototype.$delete=Tt,t.prototype.$watch=function(t,e,n){if(c(e))return wn(this,t,e,n);(n=n||{}).user=!0;var i=new pn(this,t,e,n);if(n.immediate)try{e.call(this,i.value)}catch(t){jt(t,this,'callback for immediate watcher "'+i.expression+'"')}return function(){i.teardown()}}}(Sn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var i=this;if(Array.isArray(t))for(var r=0,a=t.length;r1?M(e):e;for(var n=M(arguments,1),i='event handler for "'+t+'"',r=0,a=e.length;rparseInt(this.max)&&On(o,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return R}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:T,mergeOptions:Et,defineReactive:At},t.set=Mt,t.delete=Tt,t.nextTick=ee,t.observable=function(t){return It(t),t},t.options=Object.create(null),V.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,T(t.options.components,$n),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=M(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Et(this.options,t),this}}(t),In(t),function(t){V.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(Sn),Object.defineProperty(Sn.prototype,"$isServer",{get:rt}),Object.defineProperty(Sn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Sn,"FunctionalRenderContext",{value:$e}),Sn.version="2.6.10";var Dn=g("style,class"),Ln=g("input,textarea,option,select,progress"),Bn=g("contenteditable,draggable,spellcheck"),En=g("events,caret,typing,plaintext-only"),Fn=function(t,e){return jn(e)||"false"===e?"false":"contenteditable"===t&&En(e)?e:"true"},Vn=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Rn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Rn(t)?t.slice(6,t.length):""},jn=function(t){return null==t||!1===t};function Wn(t){for(var e=t.data,n=t,i=t;a(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=Hn(i.data,e));for(;a(n=n.parent);)n&&n.data&&(e=Hn(e,n.data));return function(t,e){if(a(t)||a(e))return qn(t,Un(e));return""}(e.staticClass,e.class)}function Hn(t,e){return{staticClass:qn(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function qn(t,e){return t?e?t+" "+e:t:e||""}function Un(t){return Array.isArray(t)?function(t){for(var e,n="",i=0,r=t.length;i-1?vi(t,e,n):Vn(e)?jn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Bn(e)?t.setAttribute(e,Fn(e,n)):Rn(e)?jn(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):vi(t,e,n)}function vi(t,e,n){if(jn(n))t.removeAttribute(e);else{if(G&&!Z&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var gi={create:fi,update:fi};function mi(t,e){var n=e.elm,i=e.data,o=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(o)||r(o.staticClass)&&r(o.class)))){var s=Wn(e),l=n._transitionClasses;a(l)&&(s=qn(s,Un(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var yi,bi={create:mi,update:mi},xi="__r",_i="__c";function wi(t,e,n){var i=yi;return function r(){null!==e.apply(null,arguments)&&Si(t,r,n,i)}}var ki=Yt&&!(tt&&Number(tt[1])<=53);function Ci(t,e,n,i){if(ki){var r=un,a=e;e=a._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return a.apply(this,arguments)}}yi.addEventListener(t,e,nt?{capture:n,passive:i}:n)}function Si(t,e,n,i){(i||yi).removeEventListener(t,e._wrapper||e,n)}function Ii(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},i=t.data.on||{};yi=e.elm,function(t){if(a(t[xi])){var e=G?"change":"input";t[e]=[].concat(t[xi],t[e]||[]),delete t[xi]}a(t[_i])&&(t.change=[].concat(t[_i],t.change||[]),delete t[_i])}(n),oe(n,i,Ci,Si,wi,e.context),yi=void 0}}var Ai,Mi={create:Ii,update:Ii};function Ti(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,o=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in a(l.__ob__)&&(l=e.data.domProps=T({},l)),s)n in l||(o[n]="");for(n in l){if(i=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=i;var u=r(i)?"":String(i);Oi(o,u)&&(o.value=u)}else if("innerHTML"===n&&Kn(o.tagName)&&r(o.innerHTML)){(Ai=Ai||document.createElement("div")).innerHTML=""+i+"";for(var c=Ai.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;c.firstChild;)o.appendChild(c.firstChild)}else if(i!==s[n])try{o[n]=i}catch(t){}}}}function Oi(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,i=t._vModifiers;if(a(i)){if(i.number)return v(n)!==v(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Pi={create:Ti,update:Ti},$i=_(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var i=t.split(n);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e});function Di(t){var e=Li(t.style);return t.staticStyle?T(t.staticStyle,e):e}function Li(t){return Array.isArray(t)?O(t):"string"==typeof t?$i(t):t}var Bi,Ei=/^--/,Fi=/\s*!important$/,Vi=function(t,e,n){if(Ei.test(e))t.style.setProperty(e,n);else if(Fi.test(n))t.style.setProperty(I(e),n.replace(Fi,""),"important");else{var i=Ri(e);if(Array.isArray(n))for(var r=0,a=n.length;r-1?e.split(Wi).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function qi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Wi).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Ui(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&T(e,Yi(t.name||"v")),T(e,t),e}return"string"==typeof t?Yi(t):void 0}}var Yi=_(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xi=U&&!Z,Ki="transition",Gi="animation",Zi="transition",Qi="transitionend",Ji="animation",tr="animationend";Xi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Zi="WebkitTransition",Qi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ji="WebkitAnimation",tr="webkitAnimationEnd"));var er=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function nr(t){er(function(){er(t)})}function ir(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Hi(t,e))}function rr(t,e){t._transitionClasses&&y(t._transitionClasses,e),qi(t,e)}function ar(t,e,n){var i=sr(t,e),r=i.type,a=i.timeout,o=i.propCount;if(!r)return n();var s=r===Ki?Qi:tr,l=0,u=function(){t.removeEventListener(s,c),n()},c=function(e){e.target===t&&++l>=o&&u()};setTimeout(function(){l0&&(n=Ki,c=o,h=a.length):e===Gi?u>0&&(n=Gi,c=u,h=l.length):h=(n=(c=Math.max(o,u))>0?o>u?Ki:Gi:null)?n===Ki?a.length:l.length:0,{type:n,timeout:c,propCount:h,hasTransform:n===Ki&&or.test(i[Zi+"Property"])}}function lr(t,e){for(;t.length1}function pr(t,e){!0!==e.data.show&&cr(e)}var vr=function(t){var e,n,i={},l=t.modules,u=t.nodeOps;for(e=0;ep?b(t,r(n[m+1])?null:n[m+1].elm,n,f,m,i):f>m&&_(0,e,d,p)}(d,g,m,n,c):a(m)?(a(t.text)&&u.setTextContent(d,""),b(d,null,m,0,m.length-1,n)):a(g)?_(0,g,0,g.length-1):a(t.text)&&u.setTextContent(d,""):t.text!==e.text&&u.setTextContent(d,e.text),a(p)&&a(f=p.hook)&&a(f=f.postpatch)&&f(t,e)}}}function S(t,e,n){if(o(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,o.selected!==a&&(o.selected=a);else if(L(xr(o),i))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function br(t,e){return e.every(function(e){return!L(e,t)})}function xr(t){return"_value"in t?t._value:t.value}function _r(t){t.target.composing=!0}function wr(t){t.target.composing&&(t.target.composing=!1,kr(t.target,"input"))}function kr(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Cr(t){return!t.componentInstance||t.data&&t.data.transition?t:Cr(t.componentInstance._vnode)}var Sr={model:gr,show:{bind:function(t,e,n){var i=e.value,r=(n=Cr(n)).data&&n.data.transition,a=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,cr(n,function(){t.style.display=a})):t.style.display=i?a:"none"},update:function(t,e,n){var i=e.value;!i!=!e.oldValue&&((n=Cr(n)).data&&n.data.transition?(n.data.show=!0,i?cr(n,function(){t.style.display=t.__vOriginalDisplay}):hr(n,function(){t.style.display="none"})):t.style.display=i?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}}},Ir={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ar(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ar(Ue(e.children)):t}function Mr(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var a in r)e[k(a)]=r[a];return e}function Tr(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Or=function(t){return t.tag||qe(t)},Pr=function(t){return"show"===t.name},$r={name:"transition",props:Ir,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Or)).length){0;var i=this.mode;0;var r=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return r;var a=Ar(r);if(!a)return r;if(this._leaving)return Tr(t,r);var o="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?o+"comment":o+a.tag:s(a.key)?0===String(a.key).indexOf(o)?a.key:o+a.key:a.key;var l=(a.data||(a.data={})).transition=Mr(this),u=this._vnode,c=Ar(u);if(a.data.directives&&a.data.directives.some(Pr)&&(a.data.show=!0),c&&c.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,c)&&!qe(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var h=c.data.transition=T({},l);if("out-in"===i)return this._leaving=!0,se(h,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Tr(t,r);if("in-out"===i){if(qe(a))return u;var d,f=function(){d()};se(l,"afterEnter",f),se(l,"enterCancelled",f),se(h,"delayLeave",function(t){d=t})}}return r}}},Dr=T({tag:String,moveClass:String},Ir);function Lr(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Br(t){t.data.newPos=t.elm.getBoundingClientRect()}function Er(t){var e=t.data.pos,n=t.data.newPos,i=e.left-n.left,r=e.top-n.top;if(i||r){t.data.moved=!0;var a=t.elm.style;a.transform=a.WebkitTransform="translate("+i+"px,"+r+"px)",a.transitionDuration="0s"}}delete Dr.mode;var Fr={Transition:$r,TransitionGroup:{props:Dr,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Qe(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],a=this.children=[],o=Mr(this),s=0;s-1?Zn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Zn[t]=/HTMLUnknownElement/.test(e.toString())},T(Sn.options.directives,Sr),T(Sn.options.components,Fr),Sn.prototype.__patch__=U?vr:P,Sn.prototype.$mount=function(t,e){return function(t,e,n){var i;return t.$el=e,t.$options.render||(t.$options.render=mt),en(t,"beforeMount"),i=function(){t._update(t._render(),n)},new pn(t,i,P,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&U?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},U&&setTimeout(function(){R.devtools&&at&&at.emit("init",Sn)},0),e.a=Sn}).call(this,n(2),n(14).setImmediate)},function(t,e,n){},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){},function(t,e,n){ +var i=Object.freeze({});function r(t){return null==t}function a(t){return null!=t}function o(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function c(t){return"[object Object]"===u.call(t)}function h(t){return"[object RegExp]"===u.call(t)}function d(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function f(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||c(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function x(t,e){return b.call(t,e)}function _(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,k=_(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),C=_(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),S=/\B([A-Z])/g,I=_(function(t){return t.replace(S,"-$1").toLowerCase()});var A=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function M(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function T(t,e){for(var n in e)t[n]=e[n];return t}function O(t){for(var e={},n=0;n0,Q=K&&K.indexOf("edge/")>0,J=(K&&K.indexOf("android"),K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===X),tt=(K&&/chrome\/\d+/.test(K),K&&/phantomjs/.test(K),K&&K.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(U)try{var it={};Object.defineProperty(it,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,it)}catch(t){}var rt=function(){return void 0===H&&(H=!U&&!Y&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),H},at=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ot(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,lt="undefined"!=typeof Symbol&&ot(Symbol)&&"undefined"!=typeof Reflect&&ot(Reflect.ownKeys);st="undefined"!=typeof Set&&ot(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=P,ct=0,ht=function(){this.id=ct++,this.subs=[]};ht.prototype.addSub=function(t){this.subs.push(t)},ht.prototype.removeSub=function(t){y(this.subs,t)},ht.prototype.depend=function(){ht.target&&ht.target.addDep(this)},ht.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(a&&!x(r,"default"))o=!1;else if(""===o||o===I(t)){var l=zt(String,r.type);(l<0||s0&&(ce((u=t(u,(n||"")+"_"+l))[0])&&ce(h)&&(i[c]=yt(h.text+u[0].text),u.shift()),i.push.apply(i,u)):s(u)?ce(h)?i[c]=yt(h.text+u):""!==u&&i.push(yt(u)):ce(u)&&ce(h)?i[c]=yt(h.text+u.text):(o(e._isVList)&&a(u.tag)&&r(u.key)&&a(n)&&(u.key="__vlist"+n+"_"+l+"__"),i.push(u)));return i}(t):void 0}function ce(t){return a(t)&&a(t.text)&&!1===t.isComment}function he(t,e){if(t){for(var n=Object.create(null),i=lt?Reflect.ownKeys(t):Object.keys(t),r=0;r0,o=t?!!t.$stable:!a,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(o&&n&&n!==i&&s===n.$key&&!a&&!n.$hasNormal)return n;for(var l in r={},t)t[l]&&"$"!==l[0]&&(r[l]=ve(e,l,t[l]))}else r={};for(var u in e)u in r||(r[u]=ge(e,u));return t&&Object.isExtensible(t)&&(t._normalized=r),j(r,"$stable",o),j(r,"$key",s),j(r,"$hasNormal",a),r}function ve(t,e,n){var i=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:i,enumerable:!0,configurable:!0}),i}function ge(t,e){return function(){return t[e]}}function me(t,e){var n,i,r,o,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),i=0,r=t.length;idocument.createEvent("Event").timeStamp&&(cn=function(){return hn.now()})}function dn(){var t,e;for(un=cn(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),ln=0;lnln&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);on||(on=!0,ee(dn))}}(this)},pn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){jt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:P,set:P};function gn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function mn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[];t.$parent&&Ct(!1);var a=function(a){r.push(a);var o=Vt(a,e,n,t);At(i,a,o),a in t||gn(t,"_props",a)};for(var o in e)a(o);Ct(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?P:A(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;c(e=t._data="function"==typeof e?function(t,e){ft();try{return t.call(e,e)}catch(t){return jt(t,e,"data()"),{}}finally{pt()}}(e,t):e||{})||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);for(;r--;){var a=n[r];0,i&&x(i,a)||(o=void 0,36!==(o=(a+"").charCodeAt(0))&&95!==o&&gn(t,"_data",a))}var o;It(e,!0)}(t):It(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),i=rt();for(var r in e){var a=e[r],o="function"==typeof a?a:a.get;0,i||(n[r]=new pn(t,o||P,P,yn)),r in t||bn(t,r,a)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!h(t)&&t.test(e)}function Tn(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var a in n){var o=n[a];if(o){var s=An(o.componentOptions);s&&!e(s)&&On(n,a,i,r)}}}function On(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=kn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),i=e._parentVnode;n.parent=e.parent,n._parentVnode=i;var r=i.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Et(Cn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ge(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,r=n&&n.context;t.$slots=de(e._renderChildren,r),t.$scopedSlots=i,t._c=function(e,n,i,r){return ze(t,e,n,i,r,!1)},t.$createElement=function(e,n,i,r){return ze(t,e,n,i,r,!0)};var a=n&&n.data;At(t,"$attrs",a&&a.attrs||i,null,!0),At(t,"$listeners",e._parentListeners||i,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=he(t.$options.inject,t);e&&(Ct(!1),Object.keys(e).forEach(function(n){At(t,n,e[n])}),Ct(!0))}(e),mn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Sn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Mt,t.prototype.$delete=Tt,t.prototype.$watch=function(t,e,n){if(c(e))return wn(this,t,e,n);(n=n||{}).user=!0;var i=new pn(this,t,e,n);if(n.immediate)try{e.call(this,i.value)}catch(t){jt(t,this,'callback for immediate watcher "'+i.expression+'"')}return function(){i.teardown()}}}(Sn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var i=this;if(Array.isArray(t))for(var r=0,a=t.length;r1?M(e):e;for(var n=M(arguments,1),i='event handler for "'+t+'"',r=0,a=e.length;rparseInt(this.max)&&On(o,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return R}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:T,mergeOptions:Et,defineReactive:At},t.set=Mt,t.delete=Tt,t.nextTick=ee,t.observable=function(t){return It(t),t},t.options=Object.create(null),V.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,T(t.options.components,$n),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=M(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Et(this.options,t),this}}(t),In(t),function(t){V.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(Sn),Object.defineProperty(Sn.prototype,"$isServer",{get:rt}),Object.defineProperty(Sn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Sn,"FunctionalRenderContext",{value:$e}),Sn.version="2.6.10";var Dn=g("style,class"),Ln=g("input,textarea,option,select,progress"),Bn=g("contenteditable,draggable,spellcheck"),En=g("events,caret,typing,plaintext-only"),Fn=function(t,e){return jn(e)||"false"===e?"false":"contenteditable"===t&&En(e)?e:"true"},Vn=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Rn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Rn(t)?t.slice(6,t.length):""},jn=function(t){return null==t||!1===t};function Wn(t){for(var e=t.data,n=t,i=t;a(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=Hn(i.data,e));for(;a(n=n.parent);)n&&n.data&&(e=Hn(e,n.data));return function(t,e){if(a(t)||a(e))return qn(t,Un(e));return""}(e.staticClass,e.class)}function Hn(t,e){return{staticClass:qn(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function qn(t,e){return t?e?t+" "+e:t:e||""}function Un(t){return Array.isArray(t)?function(t){for(var e,n="",i=0,r=t.length;i-1?vi(t,e,n):Vn(e)?jn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Bn(e)?t.setAttribute(e,Fn(e,n)):Rn(e)?jn(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):vi(t,e,n)}function vi(t,e,n){if(jn(n))t.removeAttribute(e);else{if(G&&!Z&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var gi={create:fi,update:fi};function mi(t,e){var n=e.elm,i=e.data,o=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(o)||r(o.staticClass)&&r(o.class)))){var s=Wn(e),l=n._transitionClasses;a(l)&&(s=qn(s,Un(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var yi,bi={create:mi,update:mi},xi="__r",_i="__c";function wi(t,e,n){var i=yi;return function r(){null!==e.apply(null,arguments)&&Si(t,r,n,i)}}var ki=Yt&&!(tt&&Number(tt[1])<=53);function Ci(t,e,n,i){if(ki){var r=un,a=e;e=a._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return a.apply(this,arguments)}}yi.addEventListener(t,e,nt?{capture:n,passive:i}:n)}function Si(t,e,n,i){(i||yi).removeEventListener(t,e._wrapper||e,n)}function Ii(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},i=t.data.on||{};yi=e.elm,function(t){if(a(t[xi])){var e=G?"change":"input";t[e]=[].concat(t[xi],t[e]||[]),delete t[xi]}a(t[_i])&&(t.change=[].concat(t[_i],t.change||[]),delete t[_i])}(n),oe(n,i,Ci,Si,wi,e.context),yi=void 0}}var Ai,Mi={create:Ii,update:Ii};function Ti(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,o=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in a(l.__ob__)&&(l=e.data.domProps=T({},l)),s)n in l||(o[n]="");for(n in l){if(i=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=i;var u=r(i)?"":String(i);Oi(o,u)&&(o.value=u)}else if("innerHTML"===n&&Kn(o.tagName)&&r(o.innerHTML)){(Ai=Ai||document.createElement("div")).innerHTML=""+i+"";for(var c=Ai.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;c.firstChild;)o.appendChild(c.firstChild)}else if(i!==s[n])try{o[n]=i}catch(t){}}}}function Oi(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,i=t._vModifiers;if(a(i)){if(i.number)return v(n)!==v(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Pi={create:Ti,update:Ti},$i=_(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var i=t.split(n);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e});function Di(t){var e=Li(t.style);return t.staticStyle?T(t.staticStyle,e):e}function Li(t){return Array.isArray(t)?O(t):"string"==typeof t?$i(t):t}var Bi,Ei=/^--/,Fi=/\s*!important$/,Vi=function(t,e,n){if(Ei.test(e))t.style.setProperty(e,n);else if(Fi.test(n))t.style.setProperty(I(e),n.replace(Fi,""),"important");else{var i=Ri(e);if(Array.isArray(n))for(var r=0,a=n.length;r-1?e.split(Wi).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function qi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Wi).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Ui(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&T(e,Yi(t.name||"v")),T(e,t),e}return"string"==typeof t?Yi(t):void 0}}var Yi=_(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xi=U&&!Z,Ki="transition",Gi="animation",Zi="transition",Qi="transitionend",Ji="animation",tr="animationend";Xi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Zi="WebkitTransition",Qi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ji="WebkitAnimation",tr="webkitAnimationEnd"));var er=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function nr(t){er(function(){er(t)})}function ir(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Hi(t,e))}function rr(t,e){t._transitionClasses&&y(t._transitionClasses,e),qi(t,e)}function ar(t,e,n){var i=sr(t,e),r=i.type,a=i.timeout,o=i.propCount;if(!r)return n();var s=r===Ki?Qi:tr,l=0,u=function(){t.removeEventListener(s,c),n()},c=function(e){e.target===t&&++l>=o&&u()};setTimeout(function(){l0&&(n=Ki,c=o,h=a.length):e===Gi?u>0&&(n=Gi,c=u,h=l.length):h=(n=(c=Math.max(o,u))>0?o>u?Ki:Gi:null)?n===Ki?a.length:l.length:0,{type:n,timeout:c,propCount:h,hasTransform:n===Ki&&or.test(i[Zi+"Property"])}}function lr(t,e){for(;t.length1}function pr(t,e){!0!==e.data.show&&cr(e)}var vr=function(t){var e,n,i={},l=t.modules,u=t.nodeOps;for(e=0;ep?b(t,r(n[m+1])?null:n[m+1].elm,n,f,m,i):f>m&&_(0,e,d,p)}(d,g,m,n,c):a(m)?(a(t.text)&&u.setTextContent(d,""),b(d,null,m,0,m.length-1,n)):a(g)?_(0,g,0,g.length-1):a(t.text)&&u.setTextContent(d,""):t.text!==e.text&&u.setTextContent(d,e.text),a(p)&&a(f=p.hook)&&a(f=f.postpatch)&&f(t,e)}}}function S(t,e,n){if(o(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,o.selected!==a&&(o.selected=a);else if(L(xr(o),i))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function br(t,e){return e.every(function(e){return!L(e,t)})}function xr(t){return"_value"in t?t._value:t.value}function _r(t){t.target.composing=!0}function wr(t){t.target.composing&&(t.target.composing=!1,kr(t.target,"input"))}function kr(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Cr(t){return!t.componentInstance||t.data&&t.data.transition?t:Cr(t.componentInstance._vnode)}var Sr={model:gr,show:{bind:function(t,e,n){var i=e.value,r=(n=Cr(n)).data&&n.data.transition,a=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,cr(n,function(){t.style.display=a})):t.style.display=i?a:"none"},update:function(t,e,n){var i=e.value;!i!=!e.oldValue&&((n=Cr(n)).data&&n.data.transition?(n.data.show=!0,i?cr(n,function(){t.style.display=t.__vOriginalDisplay}):hr(n,function(){t.style.display="none"})):t.style.display=i?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}}},Ir={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ar(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ar(Ue(e.children)):t}function Mr(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var a in r)e[k(a)]=r[a];return e}function Tr(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Or=function(t){return t.tag||qe(t)},Pr=function(t){return"show"===t.name},$r={name:"transition",props:Ir,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Or)).length){0;var i=this.mode;0;var r=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return r;var a=Ar(r);if(!a)return r;if(this._leaving)return Tr(t,r);var o="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?o+"comment":o+a.tag:s(a.key)?0===String(a.key).indexOf(o)?a.key:o+a.key:a.key;var l=(a.data||(a.data={})).transition=Mr(this),u=this._vnode,c=Ar(u);if(a.data.directives&&a.data.directives.some(Pr)&&(a.data.show=!0),c&&c.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,c)&&!qe(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var h=c.data.transition=T({},l);if("out-in"===i)return this._leaving=!0,se(h,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Tr(t,r);if("in-out"===i){if(qe(a))return u;var d,f=function(){d()};se(l,"afterEnter",f),se(l,"enterCancelled",f),se(h,"delayLeave",function(t){d=t})}}return r}}},Dr=T({tag:String,moveClass:String},Ir);function Lr(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Br(t){t.data.newPos=t.elm.getBoundingClientRect()}function Er(t){var e=t.data.pos,n=t.data.newPos,i=e.left-n.left,r=e.top-n.top;if(i||r){t.data.moved=!0;var a=t.elm.style;a.transform=a.WebkitTransform="translate("+i+"px,"+r+"px)",a.transitionDuration="0s"}}delete Dr.mode;var Fr={Transition:$r,TransitionGroup:{props:Dr,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Qe(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],a=this.children=[],o=Mr(this),s=0;s-1?Zn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Zn[t]=/HTMLUnknownElement/.test(e.toString())},T(Sn.options.directives,Sr),T(Sn.options.components,Fr),Sn.prototype.__patch__=U?vr:P,Sn.prototype.$mount=function(t,e){return function(t,e,n){var i;return t.$el=e,t.$options.render||(t.$options.render=mt),en(t,"beforeMount"),i=function(){t._update(t._render(),n)},new pn(t,i,P,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&U?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},U&&setTimeout(function(){R.devtools&&at&&at.emit("init",Sn)},0),e.a=Sn}).call(this,n(2),n(13).setImmediate)},function(t,e,n){},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){},function(t,e,n){ /*! * Chart.js v2.8.0 * https://www.chartjs.org * (c) 2019 Chart.js Contributors * Released under the MIT License */ -t.exports=function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:n,rgb2hsv:i,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:u,rgb2lch:function(t){return y(u(t))},hsl2rgb:c,hsl2hsv:function(t){var e=t[0],n=t[1]/100,i=t[2]/100;return 0===i?[0,0,0]:[e,2*(n*=(i*=2)<=1?i:2-i)/(i+n)*100,(i+n)/2*100]},hsl2hwb:function(t){return a(c(t))},hsl2cmyk:function(t){return o(c(t))},hsl2keyword:function(t){return s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],r=t[1]/100,a=t[2]/100;return e=r*a,[i,100*(e=(e/=(n=(2-r)*a)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:d,hwb2hsl:function(t){return n(d(t))},hwb2hsv:function(t){return i(d(t))},hwb2cmyk:function(t){return o(d(t))},hwb2keyword:function(t){return s(d(t))},cmyk2rgb:f,cmyk2hsl:function(t){return n(f(t))},cmyk2hsv:function(t){return i(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return n(w(t))},keyword2hsv:function(t){return i(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return u(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:v,xyz2lch:function(t){return y(v(t))},lab2xyz:m,lab2rgb:x,lab2lch:y,lch2lab:_,lch2xyz:function(t){return m(_(t))},lch2rgb:function(t){return x(_(t))}};function n(t){var e,n,i=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(i,r,a),s=Math.max(i,r,a),l=s-o;return s==o?e=0:i==s?e=(r-a)/l:r==s?e=2+(a-i)/l:a==s&&(e=4+(i-r)/l),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s==o?0:n<=.5?l/(s+o):l/(2-s-o)),100*n]}function i(t){var e,n,i=t[0],r=t[1],a=t[2],o=Math.min(i,r,a),s=Math.max(i,r,a),l=s-o;return n=0==s?0:l/s*1e3/10,s==o?e=0:i==s?e=(r-a)/l:r==s?e=2+(a-i)/l:a==s&&(e=4+(i-r)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,s/255*1e3/10]}function a(t){var e=t[0],i=t[1],r=t[2],a=n(t)[0],o=1/255*Math.min(e,Math.min(i,r)),r=1-1/255*Math.max(e,Math.max(i,r));return[a,100*o,100*r]}function o(t){var e,n=t[0]/255,i=t[1]/255,r=t[2]/255;return e=Math.min(1-n,1-i,1-r),[100*((1-n-e)/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-r-e)/(1-e)||0),100*e]}function s(t){return C[JSON.stringify(t)]}function l(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var r=.4124*e+.3576*n+.1805*i,a=.2126*e+.7152*n+.0722*i,o=.0193*e+.1192*n+.9505*i;return[100*r,100*a,100*o]}function u(t){var e=l(t),n=e[0],i=e[1],r=e[2];return i/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,[116*i-16,500*(n-i),200*(i-r)]}function c(t){var e,n,i,r,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[a=255*l,a,a];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),r=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,a=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,r[u]=255*a;return r}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,r=Math.floor(e)%6,a=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*a),l=255*i*(1-n*(1-a)),i=255*i;switch(r){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}}function d(t){var e,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),e=Math.floor(6*o),i=6*o-e,0!=(1&e)&&(i=1-i),a=s+i*((n=1-l)-s),e){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e,n,i,r=t[0]/100,a=t[1]/100,o=t[2]/100,s=t[3]/100;return e=1-Math.min(1,r*(1-s)+s),n=1-Math.min(1,a*(1-s)+s),i=1-Math.min(1,o*(1-s)+s),[255*e,255*n,255*i]}function p(t){var e,n,i,r=t[0]/100,a=t[1]/100,o=t[2]/100;return n=-.9689*r+1.8758*a+.0415*o,i=.0557*r+-.204*a+1.057*o,e=(e=3.2406*r+-1.5372*a+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function v(t){var e=t[0],n=t[1],i=t[2];return n/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*n-16,500*(e-n),200*(n-i)]}function m(t){var e,n,i,r,a=t[0],o=t[1],s=t[2];return a<=8?r=(n=100*a/903.3)/100*7.787+16/116:(n=100*Math.pow((a+16)/116,3),r=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(o/500+r-16/116)/7.787:95.047*Math.pow(o/500+r,3),i=i/108.883<=.008859?i=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3),[e,n,i]}function y(t){var e,n,i,r=t[0],a=t[1],o=t[2];return e=Math.atan2(o,a),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(a*a+o*o),[r,i,n]}function x(t){return p(m(t))}function _(t){var e,n,i,r=t[0],a=t[1],o=t[2];return i=o/360*2*Math.PI,e=a*Math.cos(i),n=a*Math.sin(i),[r,e,n]}function w(t){return k[t]}var k={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var S in k)C[JSON.stringify(k[S])]=S;var I=function(){return new P};for(var A in e){I[A+"Raw"]=function(t){return function(n){return"number"==typeof n&&(n=Array.prototype.slice.call(arguments)),e[t](n)}}(A);var M=/(\w+)2(\w+)/.exec(A),T=M[1],O=M[2];(I[T]=I[T]||{})[O]=I[A]=function(t){return function(n){"number"==typeof n&&(n=Array.prototype.slice.call(arguments));var i=e[t](n);if("string"==typeof i||void 0===i)return i;for(var r=0;r=0&&e<1?j(Math.round(255*e)):"")},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?V(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:V,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+r+"%)"},percentaString:N,hslString:function(t,e){return e<1||t[3]&&t[3]<1?R(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:R,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return W[t.slice(0,3)]}};function B(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(i){i=i[1],r=i[3];for(var a=0;an?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,i=void 0===e?.5:e,r=2*i-1,a=this.alpha()-n.alpha(),o=((r*a==-1?r:(r+a)/(1+r*a))+1)/2,s=1-o;return this.rgb(o*this.red()+s*n.red(),o*this.green()+s*n.green(),o*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new q,i=this.values,r=n.values;for(var a in i)i.hasOwnProperty(a)&&(t=i[a],"[object Array]"===(e={}.toString.call(t))?r[a]=t.slice(0):"[object Number]"===e?r[a]=t:console.error("unexpected color value:",t));return n}},q.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},q.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},q.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i=0;r--)e.call(n,t[r],r);else for(r=0;r=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-G.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*G.easeInBounce(2*t):.5*G.easeOutBounce(2*t-1)+.5}},Z={effects:G};K.easingEffects=G;var Q=Math.PI,J=Q/180,tt=2*Q,et=Q/2,nt=Q/4,it=2*Q/3,rt={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,r,a){if(a){var o=Math.min(a,r/2,i/2),s=e+o,l=n+o,u=e+i-o,c=n+r-o;t.moveTo(e,l),se.left-1e-6&&t.xe.top-1e-6&&t.y0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,i,r=this.animations,a=0;a=n?(ct.callback(t.onAnimationComplete,[t],e),e.animating=!1,r.splice(a,1)):++a}},bt=ct.options.resolve,xt=["push","pop","shift","splice","unshift"];function _t(t,e){var n=t._chartjs;if(n){var i=n.listeners,r=i.indexOf(e);-1!==r&&i.splice(r,1),i.length>0||(xt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ct.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&_t(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),i=this.getDataset().data||[],r=n.data;for(t=0,e=i.length;tn&&this.insertElements(n,i-n)},insertElements:function(t,e){for(var n=0;ns;)r-=2*Math.PI;for(;r=o&&r<=s,u=a>=n.innerRadius&&a<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,i=n.startAngle,r=n.endAngle,a="inner"===n.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(n.x,n.y,Math.max(n.outerRadius-a,0),i,r),e.arc(n.x,n.y,n.innerRadius,r,i,!0),e.closePath(),e.fillStyle=n.backgroundColor,e.fill(),n.borderWidth&&("inner"===n.borderAlign?(e.beginPath(),t=a/n.outerRadius,e.arc(n.x,n.y,n.outerRadius,i-t,r+t),n.innerRadius>a?(t=a/n.innerRadius,e.arc(n.x,n.y,n.innerRadius-a,r+t,i-t,!0)):e.arc(n.x,n.y,a,r+Math.PI/2,i-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(n.x,n.y,n.outerRadius,i,r),e.arc(n.x,n.y,n.innerRadius,r,i,!0),e.closePath(),e.lineWidth=2*n.borderWidth,e.lineJoin="round"):(e.lineWidth=n.borderWidth,e.lineJoin="bevel"),e.strokeStyle=n.borderColor,e.stroke()),e.restore()}}),St=ct.valueOrDefault,It=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:It,borderWidth:3,borderColor:It,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var At=vt.extend({draw:function(){var t,e,n,i,r=this._view,a=this._chart.ctx,o=r.spanGaps,s=this._children.slice(),l=st.global,u=l.elements.line,c=-1;for(this._loop&&s.length&&s.push(s[0]),a.save(),a.lineCap=r.borderCapStyle||u.borderCapStyle,a.setLineDash&&a.setLineDash(r.borderDash||u.borderDash),a.lineDashOffset=St(r.borderDashOffset,u.borderDashOffset),a.lineJoin=r.borderJoinStyle||u.borderJoinStyle,a.lineWidth=St(r.borderWidth,u.borderWidth),a.strokeStyle=r.borderColor||l.defaultColor,a.beginPath(),c=-1,t=0;tt.x&&(e=Bt(e,"left","right")):t.basen?n:i,r:l.right||r<0?0:r>e?e:r,b:l.bottom||a<0?0:a>n?n:a,l:l.left||o<0?0:o>e?e:o}}function Ft(t,e,n){var i=null===e,r=null===n,a=!(!t||i&&r)&&Lt(t);return a&&(i||e>=a.left&&e<=a.right)&&(r||n>=a.top&&n<=a.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:$t,borderColor:$t,borderSkipped:"bottom",borderWidth:0}}});var Vt=vt.extend({draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=Lt(t),n=e.right-e.left,i=e.bottom-e.top,r=Et(t,n/2,i/2);return{outer:{x:e.left,y:e.top,w:n,h:i},inner:{x:e.left+r.l,y:e.top+r.t,w:n-r.l-r.r,h:i-r.t-r.b}}}(e),i=n.outer,r=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(i.x,i.y,i.w,i.h),i.w===r.w&&i.h===r.h||(t.save(),t.beginPath(),t.rect(i.x,i.y,i.w,i.h),t.clip(),t.fillStyle=e.borderColor,t.rect(r.x,r.y,r.w,r.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Ft(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return Dt(n)?Ft(n,t,null):Ft(n,null,e)},inXRange:function(t){return Ft(this._view,t,null)},inYRange:function(t){return Ft(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return Dt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return Dt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Nt={},Rt=Ct,zt=At,jt=Pt,Wt=Vt;Nt.Arc=Rt,Nt.Line=zt,Nt.Point=jt,Nt.Rectangle=Wt;var Ht=ct.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var qt=kt.extend({dataElementType:Nt.Rectangle,initialize:function(){var t;kt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=i.length;e0?Math.min(o,i-n):o,n=i;return o}(n,l):-1,pixels:l,start:o,end:s,stackCount:i,scale:n}},calculateBarValuePixels:function(t,e){var n,i,r,a,o,s,l=this.chart,u=this.getMeta(),c=this._getValueScale(),h=c.isHorizontal(),d=l.data.datasets,f=+c.getRightValue(d[t].data[e]),p=c.options.minBarLength,v=c.options.stacked,g=u.stack,m=0;if(v||void 0===v&&void 0!==g)for(n=0;n=0&&r>0)&&(m+=r));return a=c.getPixelForValue(m),o=c.getPixelForValue(m+f),s=o-a,void 0!==p&&Math.abs(s)=0&&!h||f<0&&h?a-p:a+p),{size:s,base:a,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var i=n.scale.options,r="flex"===i.barThickness?function(t,e,n){var i,r=e.pixels,a=r[t],o=t>0?r[t-1]:null,s=t');var n=t.data,i=n.datasets,r=n.labels;if(i.length)for(var a=0;a'),r[a]&&e.push(r[a]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var r=t.getDatasetMeta(0),a=e.datasets[0],o=r.data[i],s=o&&o.custom||{},l=t.options.elements.arc,u=Kt([s.backgroundColor,a.backgroundColor,l.backgroundColor],void 0,i),c=Kt([s.borderColor,a.borderColor,l.borderColor],void 0,i),h=Kt([s.borderWidth,a.borderWidth,l.borderWidth],void 0,i);return{text:n,fillStyle:u,strokeStyle:c,lineWidth:h,hidden:isNaN(a.data[i])||r.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,r,a=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n=Math.PI?-1:g<-Math.PI?1:0))+p,y={x:Math.cos(g),y:Math.sin(g)},b={x:Math.cos(m),y:Math.sin(m)},x=g<=0&&m>=0||g<=2*Math.PI&&2*Math.PI<=m,_=g<=.5*Math.PI&&.5*Math.PI<=m||g<=2.5*Math.PI&&2.5*Math.PI<=m,w=g<=-Math.PI&&-Math.PI<=m||g<=Math.PI&&Math.PI<=m,k=g<=.5*-Math.PI&&.5*-Math.PI<=m||g<=1.5*Math.PI&&1.5*Math.PI<=m,C=f/100,S={x:w?-1:Math.min(y.x*(y.x<0?1:C),b.x*(b.x<0?1:C)),y:k?-1:Math.min(y.y*(y.y<0?1:C),b.y*(b.y<0?1:C))},I={x:x?1:Math.max(y.x*(y.x>0?1:C),b.x*(b.x>0?1:C)),y:_?1:Math.max(y.y*(y.y>0?1:C),b.y*(b.y>0?1:C))},A={width:.5*(I.x-S.x),height:.5*(I.y-S.y)};u=Math.min(s/A.width,l/A.height),c={x:-.5*(I.x+S.x),y:-.5*(I.y+S.y)}}for(e=0,n=d.length;e0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,i,r,a,o,s,l,u=0,c=this.chart;if(!t)for(e=0,n=c.data.datasets.length;e(u=s>u?s:u)?l:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,i=ct.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Gt(n.hoverBackgroundColor,i(n.backgroundColor)),e.borderColor=Gt(n.hoverBorderColor,i(n.borderColor)),e.borderWidth=Gt(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,i,r,a=this.chart,o=this.getDataset(),s=t.custom||{},l=a.options.elements.arc,u={},c={chart:a,dataIndex:e,dataset:o,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,i=h.length;n0&&ee(l[t-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),t');var n=t.data,i=n.datasets,r=n.labels;if(i.length)for(var a=0;a'),r[a]&&e.push(r[a]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var r=t.getDatasetMeta(0),a=e.datasets[0],o=r.data[i],s=o.custom||{},l=t.options.elements.arc,u=re([s.backgroundColor,a.backgroundColor,l.backgroundColor],void 0,i),c=re([s.borderColor,a.borderColor,l.borderColor],void 0,i),h=re([s.borderWidth,a.borderWidth,l.borderWidth],void 0,i);return{text:n,fillStyle:u,strokeStyle:c,lineWidth:h,hidden:isNaN(a.data[i])||r.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,r,a=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n0&&(a=t.getDatasetMeta(a[0]._datasetIndex).data),a},"x-axis":function(t,e){return ge(t,e,{intersect:!1})},point:function(t,e){var n=he(e,t);return fe(t,n)},nearest:function(t,e,n){var i=he(e,t);n.axis=n.axis||"xy";var r=ve(n.axis);return pe(t,i,n.intersect,r)},x:function(t,e,n){var i=he(e,t),r=[],a=!1;return de(t,function(t){t.inXRange(i.x)&&r.push(t),t.inRange(i.x,i.y)&&(a=!0)}),n.intersect&&!a&&(r=[]),r},y:function(t,e,n){var i=he(e,t),r=[],a=!1;return de(t,function(t){t.inYRange(i.y)&&r.push(t),t.inRange(i.x,i.y)&&(a=!0)}),n.intersect&&!a&&(r=[]),r}}};function ye(t,e){return ct.where(t,function(t){return t.position===e})}function be(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,r=e?t:n;return i.weight===r.weight?i._tmpIndex_-r._tmpIndex_:i.weight-r.weight}),t.forEach(function(t){delete t._tmpIndex_})}function xe(t,e){ct.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var _e,we={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,r=["fullWidth","position","weight"],a=r.length,o=0;o div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"}))&&_e.default||_e,Ce="$chartjs",Se="chartjs-size-monitor",Ie="chartjs-render-monitor",Ae="chartjs-render-animation",Me=["animationstart","webkitAnimationStart"],Te={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function Oe(t,e){var n=ct.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var Pe=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function $e(t,e,n){t.addEventListener(e,n,Pe)}function De(t,e,n){t.removeEventListener(e,n,Pe)}function Le(t,e,n,i,r){return{type:t,chart:e,native:r||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Be(t){var e=document.createElement("div");return e.className=t||"",e}function Ee(t,e,n){var i,r,a,o,s=t[Ce]||(t[Ce]={}),l=s.resizer=function(t){var e=Be(Se),n=Be(Se+"-expand"),i=Be(Se+"-shrink");n.appendChild(Be()),i.appendChild(Be()),e.appendChild(n),e.appendChild(i),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var r=function(){e._reset(),t()};return $e(n,"scroll",r.bind(n,"expand")),$e(i,"scroll",r.bind(i,"shrink")),e}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&t.parentNode,r=i?i.clientWidth:0;e(Le("resize",n)),i&&i.clientWidth0){var a=t[0];a.label?n=a.label:a.xLabel?n=a.xLabel:r>0&&a.index-1?t.split("\n"):t}function Ye(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:We(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:We(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:We(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:We(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:We(t.titleFontStyle,e.defaultFontStyle),titleFontSize:We(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:We(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:We(t.footerFontStyle,e.defaultFontStyle),footerFontSize:We(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Xe(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ke(t){return qe([],Ue(t))}var Ge=vt.extend({initialize:function(){this._model=Ye(this._options),this._lastActive=[]},getTitle:function(){var t=this._options,e=t.callbacks,n=e.beforeTitle.apply(this,arguments),i=e.title.apply(this,arguments),r=e.afterTitle.apply(this,arguments),a=[];return a=qe(a,Ue(n)),a=qe(a,Ue(i)),a=qe(a,Ue(r))},getBeforeBody:function(){return Ke(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,i=n._options.callbacks,r=[];return ct.each(t,function(t){var a={before:[],lines:[],after:[]};qe(a.before,Ue(i.beforeLabel.call(n,t,e))),qe(a.lines,i.label.call(n,t,e)),qe(a.after,Ue(i.afterLabel.call(n,t,e))),r.push(a)}),r},getAfterBody:function(){return Ke(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),n=t.footer.apply(this,arguments),i=t.afterFooter.apply(this,arguments),r=[];return r=qe(r,Ue(e)),r=qe(r,Ue(n)),r=qe(r,Ue(i))},update:function(t){var e,n,i,r,a,o,s,l,u,c,h=this,d=h._options,f=h._model,p=h._model=Ye(d),v=h._active,g=h._data,m={xAlign:f.xAlign,yAlign:f.yAlign},y={x:f.x,y:f.y},b={width:f.width,height:f.height},x={x:f.caretX,y:f.caretY};if(v.length){p.opacity=1;var _=[],w=[];x=He[d.position].call(h,v,h._eventPosition);var k=[];for(e=0,n=v.length;el.height-e.height&&(h="bottom");var d=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===h?(n=function(t){return t<=d},i=function(t){return t>d}):(n=function(t){return t<=e.width/2},i=function(t){return t>=l.width-e.width/2}),r=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},a=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(c="left",r(s.x)&&(c="center",h=o(s.y))):i(s.x)&&(c="right",a(s.x)&&(c="center",h=o(s.y)));var p=t._options;return{xAlign:p.xAlign?p.xAlign:c,yAlign:p.yAlign?p.yAlign:h}}(this,b),y=function(t,e,n,i){var r=t.x,a=t.y,o=t.caretSize,s=t.caretPadding,l=t.cornerRadius,u=n.xAlign,c=n.yAlign,h=o+s,d=l+s;return"right"===u?r-=e.width:"center"===u&&((r-=e.width/2)+e.width>i.width&&(r=i.width-e.width),r<0&&(r=0)),"top"===c?a+=h:a-="bottom"===c?e.height+h:e.height/2,"center"===c?"left"===u?r+=h:"right"===u&&(r-=h):"left"===u?r-=d:"right"===u&&(r+=d),{x:r,y:a}}(p,b,m,h._chart)}else p.opacity=0;return p.xAlign=m.xAlign,p.yAlign=m.yAlign,p.x=y.x,p.y=y.y,p.width=b.width,p.height=b.height,p.caretX=x.x,p.caretY=x.y,h._model=p,t&&d.custom&&d.custom.call(h,p),h},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,r=this.getCaretPosition(t,e,i);n.lineTo(r.x1,r.y1),n.lineTo(r.x2,r.y2),n.lineTo(r.x3,r.y3)},getCaretPosition:function(t,e,n){var i,r,a,o,s,l,u=n.caretSize,c=n.cornerRadius,h=n.xAlign,d=n.yAlign,f=t.x,p=t.y,v=e.width,g=e.height;if("center"===d)s=p+g/2,"left"===h?(r=(i=f)-u,a=i,o=s+u,l=s-u):(r=(i=f+v)+u,a=i,o=s-u,l=s+u);else if("left"===h?(i=(r=f+c+u)-u,a=r+u):"right"===h?(i=(r=f+v-c-u)-u,a=r+u):(r=n.caretX,i=r-u,a=r+u),"top"===d)s=(o=p)-u,l=o;else{s=(o=p+g)+u,l=o;var m=a;a=i,i=m}return{x1:i,x2:r,x3:a,y1:o,y2:s,y3:l}},drawTitle:function(t,e,n){var i=e.title;if(i.length){t.x=Xe(e,e._titleAlign),n.textAlign=e._titleAlign,n.textBaseline="top";var r,a,o=e.titleFontSize,s=e.titleSpacing;for(n.fillStyle=e.titleFontColor,n.font=ct.fontString(o,e._titleFontStyle,e._titleFontFamily),r=0,a=i.length;r0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity,a=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(i,e,t,n),i.y+=e.yPadding,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),t.restore())}},handleEvent:function(t){var e=this,n=e._options,i=!1;return e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),(i=!ct.arrayEquals(e._active,e._lastActive))&&(e._lastActive=e._active,(n.enabled||n.custom)&&(e._eventPosition={x:t.x,y:t.y},e.update(!0),e.pivot())),i}}),Ze=He,Qe=Ge;Qe.positioners=Ze;var Je=ct.valueOrDefault;function tn(){return ct.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var r,a,o,s=n[t].length;for(e[t]||(e[t]=[]),r=0;r=e[t].length&&e[t].push({}),!e[t][r].type||o.type&&o.type!==e[t][r].type?ct.merge(e[t][r],[je.getScaleDefaults(a),o]):ct.merge(e[t][r],o)}else ct._merger(t,e,n,i)}})}function en(){return ct.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){var r=e[t]||{},a=n[t];"scales"===t?e[t]=tn(r,a):"scale"===t?e[t]=ct.merge(r,[je.getScaleDefaults(a.type),a]):ct._merger(t,e,n,i)}})}function nn(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var rn=function(t,e){return this.construct(t,e),this};ct.extend(rn.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=en(st.global,st[t.type],t.options||{}),t}(e);var i=Re.acquireContext(t,e),r=i&&i.canvas,a=r&&r.height,o=r&&r.width;n.id=ct.uid(),n.ctx=i,n.canvas=r,n.config=e,n.width=o,n.height=a,n.aspectRatio=a?o/a:null,n.options=e.options,n._bufferedRender=!1,n.chart=n,n.controller=n,rn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),i&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return ze.notify(t,"beforeInit"),ct.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),ze.notify(t,"afterInit"),t},clear:function(){return ct.canvas.clear(this),this},stop:function(){return yt.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,a=Math.max(0,Math.floor(ct.getMaximumWidth(i))),o=Math.max(0,Math.floor(r?a/r:ct.getMaximumHeight(i)));if((e.width!==a||e.height!==o)&&(i.width=e.width=a,i.height=e.height=o,i.style.width=a+"px",i.style.height=o+"px",ct.retinaScale(e,n.devicePixelRatio),!t)){var s={width:a,height:o};ze.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;ct.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ct.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},i=[],r=Object.keys(n).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(i=i.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&i.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ct.each(i,function(e){var i=e.options,a=i.id,o=Je(i.type,e.dtype);nn(i.position)!==nn(e.dposition)&&(i.position=e.dposition),r[a]=!0;var s=null;if(a in n&&n[a].type===o)(s=n[a]).options=i,s.ctx=t.ctx,s.chart=t;else{var l=je.getScaleConstructor(o);if(!l)return;s=new l({id:a,type:o,options:i,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ct.each(r,function(t,e){t||delete n[e]}),t.scales=n,je.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ct.each(t.data.datasets,function(n,i){var r=t.getDatasetMeta(i),a=n.type||t.config.type;if(r.type&&r.type!==a&&(t.destroyDatasetMeta(i),r=t.getDatasetMeta(i)),r.type=a,r.controller)r.controller.updateIndex(i),r.controller.linkScales();else{var o=ce[r.type];if(void 0===o)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new o(t,i),e.push(r.controller)}},t),e},resetElements:function(){var t=this;ct.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,n,i=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n=(e=i).options,ct.each(e.scales,function(t){we.removeBox(e,t)}),n=en(st.global,st[e.config.type],n),e.options=e.config.options=n,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=n.tooltips,e.tooltip.initialize(),ze._invalidate(i),!1!==ze.notify(i,"beforeUpdate")){i.tooltip._data=i.data;var r=i.buildOrUpdateControllers();ct.each(i.data.datasets,function(t,e){i.getDatasetMeta(e).controller.buildOrUpdateElements()},i),i.updateLayout(),i.options.animation&&i.options.animation.duration&&ct.each(r,function(t){t.reset()}),i.updateDatasets(),i.tooltip.initialize(),i.lastActive=[],ze.notify(i,"afterUpdate"),i._bufferedRender?i._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:i.render(t)}},updateLayout:function(){!1!==ze.notify(this,"beforeLayout")&&(we.update(this,this.width,this.height),ze.notify(this,"afterScaleUpdate"),ze.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==ze.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);ze.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),i={meta:n,index:t,easingValue:e};!1!==ze.notify(this,"beforeDatasetDraw",[i])&&(n.controller.draw(e),ze.notify(this,"afterDatasetDraw",[i]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==ze.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),ze.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return me.modes.single(this,t)},getElementsAtEvent:function(t){return me.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return me.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=me.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return me.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&t!==Math.floor(t)&&(i=t-Math.floor(t));var r=ct.log10(Math.abs(i)),a="";if(0!==t){var o=Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]));if(o<1e-4){var s=ct.log10(Math.abs(t));a=t.toExponential(Math.floor(s)-Math.floor(r))}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),a=t.toFixed(l)}}else a="0";return a},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(ct.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}},cn=ct.valueOrDefault,hn=ct.valueAtIndexOrDefault;function dn(t){var e,n,i=[];for(e=0,n=t.length;eu&&at.maxHeight){a--;break}a++,l=o*s}t.labelRotation=a},afterCalculateTickRotation:function(){ct.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ct.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=dn(t._ticks),i=t.options,r=i.ticks,a=i.scaleLabel,o=i.gridLines,s=t._isVisible(),l=i.position,u=t.isHorizontal(),c=ct.options._parseFont,h=c(r),d=i.gridLines.tickMarkLength;if(e.width=u?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&o.drawTicks?d:0,e.height=u?s&&o.drawTicks?d:0:t.maxHeight,a.display&&s){var f=c(a),p=ct.options.toPadding(a.padding),v=f.lineHeight+p.height;u?e.height+=v:e.width+=v}if(r.display&&s){var g=ct.longestText(t.ctx,h.string,n,t.longestTextCache),m=ct.numberOfLabelLines(n),y=.5*h.size,b=t.options.ticks.padding;if(t._maxLabelLines=m,t.longestLabelWidth=g,u){var x=ct.toRadians(t.labelRotation),_=Math.cos(x),w=Math.sin(x),k=w*g+h.lineHeight*m+y;e.height=Math.min(t.maxHeight,e.height+k+b),t.ctx.font=h.string;var C,S,I=fn(t.ctx,n[0],h.string),A=fn(t.ctx,n[n.length-1],h.string),M=t.getPixelForTick(0)-t.left,T=t.right-t.getPixelForTick(n.length-1);0!==t.labelRotation?(C="bottom"===l?_*I:_*y,S="bottom"===l?_*y:_*A):(C=I/2,S=A/2),t.paddingLeft=Math.max(C-M,0)+3,t.paddingRight=Math.max(S-T,0)+3}else r.mirror?g=0:g+=b+y,e.width=Math.min(t.maxWidth,e.width+g),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ct.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ct.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ct.noop,getPixelForValue:ct.noop,getValueForPixel:ct.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=e.width-(e.paddingLeft+e.paddingRight),r=i/Math.max(e._ticks.length-(n?0:1),1),a=r*t+e.paddingLeft;n&&(a+=r/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var s=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(s/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=e.width-(e.paddingLeft+e.paddingRight),i=n*t+e.paddingLeft,r=e.left+i;return r+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,i=this,r=i.isHorizontal(),a=i.options.ticks.minor,o=t.length,s=!1,l=a.maxTicksLimit,u=i._tickSize()*(o-1),c=r?i.width-(i.paddingLeft+i.paddingRight):i.height-(i.paddingTop+i.PaddingBottom),h=[];for(u>c&&(s=1+Math.floor(u/c)),o>l&&(s=Math.max(s,1+Math.floor(o/l))),e=0;e1&&e%s>0&&delete n.label,h.push(n);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),n=t.options.ticks.minor,i=ct.toRadians(t.labelRotation),r=Math.abs(Math.cos(i)),a=Math.abs(Math.sin(i)),o=n.autoSkipPadding||0,s=t.longestLabelWidth+o||0,l=ct.options._parseFont(n),u=t._maxLabelLines*l.lineHeight+o||0;return e?u*r>s*a?s/r:u/a:u*a0&&r>0&&(t.min=0)}var a=void 0!==n.min||void 0!==n.suggestedMin,o=void 0!==n.max||void 0!==n.suggestedMax;void 0!==n.min?t.min=n.min:void 0!==n.suggestedMin&&(null===t.min?t.min=n.suggestedMin:t.min=Math.min(t.min,n.suggestedMin)),void 0!==n.max?t.max=n.max:void 0!==n.suggestedMax&&(null===t.max?t.max=n.suggestedMax:t.max=Math.max(t.max,n.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,n.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,i=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),i=i||11),i&&(t=Math.min(i,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mn,buildTicks:function(){var t=this,e=t.options,n=e.ticks,i=t.getTickLimit(),r={maxTicks:i=Math.max(2,i),min:n.min,max:n.max,precision:n.precision,stepSize:ct.valueOrDefault(n.fixedStepSize,n.stepSize)},a=t.ticks=function(t,e){var n,i,r,a,o=[],s=t.stepSize,l=s||1,u=t.maxTicks-1,c=t.min,h=t.max,d=t.precision,f=e.min,p=e.max,v=ct.niceNum((p-f)/u/l)*l;if(v<1e-14&&yn(c)&&yn(h))return[f,p];(a=Math.ceil(p/v)-Math.floor(f/v))>u&&(v=ct.niceNum(a*v/u/l)*l),s||yn(d)?n=Math.pow(10,ct._decimalPlaces(v)):(n=Math.pow(10,d),v=Math.ceil(v*n)/n),i=Math.floor(f/v)*v,r=Math.ceil(p/v)*v,s&&(!yn(c)&&ct.almostWhole(c/v,v/1e3)&&(i=c),!yn(h)&&ct.almostWhole(h/v,v/1e3)&&(r=h)),a=(r-i)/v,a=ct.almostEquals(a,Math.round(a),v/1e3)?Math.round(a):Math.ceil(a),i=Math.round(i*n)/n,r=Math.round(r*n)/n,o.push(yn(c)?i:c);for(var g=1;gt.max&&(t.max=i))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ct.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,n=e.start,i=+e.getRightValue(t),r=e.end-n;return e.isHorizontal()?e.left+e.width/r*(i-n):e.bottom-e.height/r*(i-n)},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,r=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*r},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),wn=xn;_n._defaults=wn;var kn=ct.valueOrDefault,Cn={position:"left",ticks:{callback:un.formatters.logarithmic}};function Sn(t,e){return ct.isFinite(t)&&t>=0?t:e}var In=pn.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,i=n.data,r=i.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var s=e.stacked;if(void 0===s&&ct.each(r,function(t,e){if(!s){var i=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(i)&&void 0!==i.stack&&(s=!0)}}),e.stacked||s){var l={};ct.each(r,function(i,r){var a=n.getDatasetMeta(r),s=[a.type,void 0===e.stacked&&void 0===a.stack?r:"",a.stack].join(".");n.isDatasetVisible(r)&&o(a)&&(void 0===l[s]&&(l[s]=[]),ct.each(i.data,function(e,n){var i=l[s],r=+t.getRightValue(e);isNaN(r)||a.data[n].hidden||r<0||(i[n]=i[n]||0,i[n]+=r)}))}),ct.each(l,function(e){if(e.length>0){var n=ct.min(e),i=ct.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?i:Math.max(t.max,i)}})}else ct.each(r,function(e,i){var r=n.getDatasetMeta(i);n.isDatasetVisible(i)&&o(r)&&ct.each(e.data,function(e,n){var i=+t.getRightValue(e);isNaN(i)||r.data[n].hidden||i<0||(null===t.min?t.min=i:it.max&&(t.max=i),0!==i&&(null===t.minNotZero||i0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ct.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:Sn(e.min),max:Sn(e.max)},r=t.ticks=function(t,e){var n,i,r=[],a=kn(t.min,Math.pow(10,Math.floor(ct.log10(e.min)))),o=Math.floor(ct.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===a?(n=Math.floor(ct.log10(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),r.push(a),a=i*Math.pow(10,n)):(n=Math.floor(ct.log10(a)),i=Math.floor(a/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(a),10==++i&&(i=1,l=++n>=0?1:l),a=Math.round(i*Math.pow(10,n)*l)/l}while(nr?{start:e-n,end:e}:{start:e,end:e+n}}function Bn(t){return 0===t||180===t?"center":t<180?"left":"right"}function En(t,e,n,i){var r,a,o=n.y+i/2;if(ct.isArray(e))for(r=0,a=e.length;r270||t<90)&&(n.y-=e.h)}function Vn(t){return ct.isNumber(t)?t:0}var Nn=bn.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Dn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;ct.each(e.data.datasets,function(r,a){if(e.isDatasetVisible(a)){var o=e.getDatasetMeta(a);ct.each(r.data,function(e,r){var a=+t.getRightValue(e);isNaN(a)||o.data[r].hidden||(n=Math.min(a,n),i=Math.max(a,i))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Dn(this.options))},convertTicksToLabels:function(){var t=this;bn.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,i,r=ct.options._parseFont(t.options.pointLabels),a={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=r.string,t._pointLabelSizes=[];var s,l,u,c=$n(t);for(e=0;ea.r&&(a.r=f.end,o.r=h),p.starta.b&&(a.b=p.end,o.b=h)}t.setReductions(t.drawingArea,a,o)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var i=this,r=e.l/Math.sin(n.l),a=Math.max(e.r-i.width,0)/Math.sin(n.r),o=-e.t/Math.cos(n.t),s=-Math.max(e.b-(i.height-i.paddingTop),0)/Math.cos(n.b);r=Vn(r),a=Vn(a),o=Vn(o),s=Vn(s),i.drawingArea=Math.min(Math.floor(t-(r+a)/2),Math.floor(t-(o+s)/2)),i.setCenterPoint(r,a,o,s)},setCenterPoint:function(t,e,n,i){var r=this,a=r.width-e-r.drawingArea,o=t+r.drawingArea,s=n+r.drawingArea,l=r.height-r.paddingTop-i-r.drawingArea;r.xCenter=Math.floor((o+a)/2+r.left),r.yCenter=Math.floor((s+l)/2+r.top+r.paddingTop)},getIndexAngle:function(t){var e=2*Math.PI/$n(this),n=this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0,i=n*Math.PI*2/360;return t*e+i},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks;if(e.display){var r=t.ctx,a=this.getIndexAngle(0),o=ct.options._parseFont(i);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,n=t.options,i=n.angleLines,r=n.gridLines,a=n.pointLabels,o=Mn(i.lineWidth,r.lineWidth),s=Mn(i.color,r.color),l=Dn(n);e.save(),e.lineWidth=o,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(On([i.borderDash,r.borderDash,[]])),e.lineDashOffset=On([i.borderDashOffset,r.borderDashOffset,0]));var u=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),c=ct.options._parseFont(a);e.font=c.string,e.textBaseline="middle";for(var h=$n(t)-1;h>=0;h--){if(i.display&&o&&s){var d=t.getPointPosition(h,u);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(d.x,d.y),e.stroke()}if(a.display){var f=0===h?l/2:0,p=t.getPointPosition(h,u+f+5),v=Tn(a.fontColor,h,st.global.defaultFontColor);e.fillStyle=v;var g=t.getIndexAngle(h),m=ct.toDegrees(g);e.textAlign=Bn(m),Fn(m,t._pointLabelSizes[h],p),En(e,t.pointLabels[h]||"",p,c.lineHeight)}}e.restore()}(t),ct.each(t.ticks,function(e,s){if(s>0||i.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t,e,n,i){var r,a=t.ctx,o=e.circular,s=$n(t),l=Tn(e.color,i-1),u=Tn(e.lineWidth,i-1);if((o||s)&&l&&u){if(a.save(),a.strokeStyle=l,a.lineWidth=u,a.setLineDash&&(a.setLineDash(e.borderDash||[]),a.lineDashOffset=e.borderDashOffset||0),a.beginPath(),o)a.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{r=t.getPointPosition(0,n),a.moveTo(r.x,r.y);for(var c=1;c=0&&o<=s;){if(r=t[(i=o+s>>1)-1]||null,a=t[i],!r)return{lo:null,hi:a};if(a[e]n))return{lo:r,hi:a};s=i-1}}return{lo:a,hi:null}}(t,e,n),a=r.lo?r.hi?r.lo:t[t.length-2]:t[0],o=r.lo?r.hi?r.hi:t[t.length-1]:t[1],s=o[e]-a[e],l=s?(n-a[e])/s:0,u=(o[i]-a[i])*l;return a[i]+u}function Kn(t,e){var n=t._adapter,i=t.options.time,r=i.parser,a=r||i.format,o=e;return"function"==typeof r&&(o=r(o)),ct.isFinite(o)||(o="string"==typeof a?n.parse(o,a):n.parse(o)),null!==o?+o:(r||"function"!=typeof a||(o=a(e),ct.isFinite(o)||(o=n.parse(o))),o)}function Gn(t,e){if(ct.isNullOrUndef(e))return null;var n=t.options.time,i=Kn(t,t.getRightValue(e));return null===i?i:(n.round&&(i=+t._adapter.startOf(i,n.round)),i)}function Zn(t){for(var e=qn.indexOf(t)+1,n=qn.length;e=r&&n<=a&&u.push(n);return i.min=r,i.max=a,i._unit=s.unit||function(t,e,n,i,r){var a,o,s=qn.length;for(a=s-1;a>=qn.indexOf(n);a--)if(o=qn[a],Hn[o].common&&t._adapter.diff(r,i,o)>=e.length)return o;return qn[n?qn.indexOf(n):0]}(i,u,s.minUnit,i.min,i.max),i._majorUnit=Zn(i._unit),i._table=function(t,e,n,i){if("linear"===i||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var r,a,o,s,l,u=[],c=[e];for(r=0,a=t.length;re&&s=0&&t0?o:1}}),ti={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Jn._defaults=ti;var ei={category:vn,linear:_n,logarithmic:In,radialLinear:Nn,time:Jn},ni={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};ln._date.override("function"==typeof t?{_id:"moment",formats:function(){return ni},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,i){return t(e).add(n,i).valueOf()},diff:function(e,n,i){return t.duration(t(e).diff(t(n))).as(i)},startOf:function(e,n,i){return e=t(e),"isoWeek"===n?e.isoWeekday(i).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var ii={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),r=i&&n.isDatasetVisible(e),a=r&&i.dataset._children||[],o=a.length||0;return o?function(t,e){return e=n)&&i;switch(a){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return a;default:return!1}}function ai(t){var e,n=t.el._model||{},i=t.el._scale||{},r=t.fill,a=null;if(isFinite(r))return null;if("start"===r?a=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===r?a=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?a=n.scaleZero:i.getBasePosition?a=i.getBasePosition():i.getBasePixel&&(a=i.getBasePixel()),null!=a){if(void 0!==a.x&&void 0!==a.y)return a;if(ct.isFinite(a))return{x:(e=i.isHorizontal())?a:null,y:e?null:a}}return null}function oi(t,e,n){var i,r=t[e],a=r.fill,o=[e];if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function si(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),ii[n](t))}function li(t){return t&&!t.skip}function ui(t,e,n,i,r){var a;if(i&&r){for(t.moveTo(e[0].x,e[0].y),a=1;a0;--a)ct.canvas.lineTo(t,n[a],n[a-1],!0)}}var ci={id:"filler",afterDatasetsUpdate:function(t,e){var n,i,r,a,o=(t.data.datasets||[]).length,s=e.propagate,l=[];for(i=0;ie?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,r=i.getDatasetMeta(n);r.hidden=null===r.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ct.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:ct.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},legendCallback:function(t){var e=[];e.push('
    ');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push("
"),e.join("")}});var pi=vt.extend({initialize:function(t){ct.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hi,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:hi,beforeSetDimensions:hi,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hi,beforeBuildLabels:hi,buildLabels:function(){var t=this,e=t.options.labels||{},n=ct.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:hi,beforeFit:hi,fit:function(){var t=this,e=t.options,n=e.labels,i=e.display,r=t.ctx,a=ct.options._parseFont(n),o=a.size,s=t.legendHitBoxes=[],l=t.minSize,u=t.isHorizontal();if(u?(l.width=t.maxWidth,l.height=i?10:0):(l.width=i?10:0,l.height=t.maxHeight),i)if(r.font=a.string,u){var c=t.lineWidths=[0],h=0;r.textAlign="left",r.textBaseline="top",ct.each(t.legendItems,function(t,e){var i=fi(n,o),a=i+o/2+r.measureText(t.text).width;(0===e||c[c.length-1]+a+n.padding>l.width)&&(h+=o+n.padding,c[c.length-(e>0?0:1)]=n.padding),s[e]={left:0,top:0,width:a,height:o},c[c.length-1]+=a+n.padding}),l.height+=h}else{var d=n.padding,f=t.columnWidths=[],p=n.padding,v=0,g=0,m=o+d;ct.each(t.legendItems,function(t,e){var i=fi(n,o),a=i+o/2+r.measureText(t.text).width;e>0&&g+m>l.height-d&&(p+=v+n.padding,f.push(v),v=0,g=0),v=Math.max(v,a),g+=m,s[e]={left:0,top:0,width:a,height:o}}),p+=v,f.push(v),l.width+=p}t.width=l.width,t.height=l.height},afterFit:hi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,i=st.global,r=i.defaultColor,a=i.elements.line,o=t.width,s=t.lineWidths;if(e.display){var l,u=t.ctx,c=di(n.fontColor,i.defaultFontColor),h=ct.options._parseFont(n),d=h.size;u.textAlign="left",u.textBaseline="middle",u.lineWidth=.5,u.strokeStyle=c,u.fillStyle=c,u.font=h.string;var f=fi(n,d),p=t.legendHitBoxes,v=t.isHorizontal();l=v?{x:t.left+(o-s[0])/2+n.padding,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var g=d+n.padding;ct.each(t.legendItems,function(i,c){var h=u.measureText(i.text).width,m=f+d/2+h,y=l.x,b=l.y;v?c>0&&y+m+n.padding>t.left+t.minSize.width&&(b=l.y+=g,l.line++,y=l.x=t.left+(o-s[l.line])/2+n.padding):c>0&&b+g>t.top+t.minSize.height&&(y=l.x=y+t.columnWidths[l.line]+n.padding,b=l.y=t.top+n.padding,l.line++),function(t,n,i){if(!(isNaN(f)||f<=0)){u.save();var o=di(i.lineWidth,a.borderWidth);if(u.fillStyle=di(i.fillStyle,r),u.lineCap=di(i.lineCap,a.borderCapStyle),u.lineDashOffset=di(i.lineDashOffset,a.borderDashOffset),u.lineJoin=di(i.lineJoin,a.borderJoinStyle),u.lineWidth=o,u.strokeStyle=di(i.strokeStyle,r),u.setLineDash&&u.setLineDash(di(i.lineDash,a.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,c=n+d/2;ct.canvas.drawPoint(u,i.pointStyle,s,l,c)}else 0!==o&&u.strokeRect(t,n,f,d),u.fillRect(t,n,f,d);u.restore()}}(y,b,i),p[c].left=y,p[c].top=b,function(t,e,n,i){var r=d/2,a=f+r+t,o=e+r;u.fillText(n.text,a,o),n.hidden&&(u.beginPath(),u.lineWidth=2,u.moveTo(a,o),u.lineTo(a+i,o),u.stroke())}(y,b,i,h),v?l.x+=m+n.padding:l.y+=g})}},_getLegendItemAt:function(t,e){var n,i,r,a=this;if(t>=a.left&&t<=a.right&&e>=a.top&&e<=a.bottom)for(r=a.legendHitBoxes,n=0;n=i.left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height)return a.legendItems[n];return null},handleEvent:function(t){var e,n=this,i=n.options,r="mouseup"===t.type?"click":t.type;if("mousemove"===r){if(!i.onHover&&!i.onLeave)return}else{if("click"!==r)return;if(!i.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===r?e&&i.onClick&&i.onClick.call(n,t.native,e):(i.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),i.onHover&&e&&i.onHover.call(n,t.native,e))}});function vi(t,e){var n=new pi({ctx:t.ctx,options:e,chart:t});we.configure(t,n,e),we.addBox(t,n),t.legend=n}var gi={id:"legend",_element:pi,beforeInit:function(t){var e=t.options.legend;e&&vi(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(ct.mergeIf(e,st.global.legend),n?(we.configure(t,n,e),n.options=e):vi(t,e)):n&&(we.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},mi=ct.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var yi=vt.extend({initialize:function(t){ct.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:mi,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:mi,beforeSetDimensions:mi,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:mi,beforeBuildLabels:mi,buildLabels:mi,afterBuildLabels:mi,beforeFit:mi,fit:function(){var t=this,e=t.options,n=e.display,i=t.minSize,r=ct.isArray(e.text)?e.text.length:1,a=ct.options._parseFont(e),o=n?r*a.lineHeight+2*e.padding:0;t.isHorizontal()?(i.width=t.maxWidth,i.height=o):(i.width=o,i.height=t.maxHeight),t.width=i.width,t.height=i.height},afterFit:mi,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var i,r,a,o=ct.options._parseFont(n),s=o.lineHeight,l=s/2+n.padding,u=0,c=t.top,h=t.left,d=t.bottom,f=t.right;e.fillStyle=ct.valueOrDefault(n.fontColor,st.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(r=h+(f-h)/2,a=c+l,i=f-h):(r="left"===n.position?h+l:f-l,a=c+(d-c)/2,i=d-c,u=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,a),e.rotate(u),e.textAlign="center",e.textBaseline="middle";var p=n.text;if(ct.isArray(p))for(var v=0,g=0;g=0;i--){var r=t[i];if(e(r))return r}},ct.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ct.almostEquals=function(t,e,n){return Math.abs(t-e)t},ct.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ct.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ct.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ct.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e),i=t===Math.pow(10,n);return i?n:e},ct.toRadians=function(t){return t*(Math.PI/180)},ct.toDegrees=function(t){return t*(180/Math.PI)},ct._decimalPlaces=function(t){if(ct.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},ct.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,r=Math.sqrt(n*n+i*i),a=Math.atan2(i,n);return a<-.5*Math.PI&&(a+=2*Math.PI),{angle:a,distance:r}},ct.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ct.aliasPixel=function(t){return t%2==0?0:.5},ct._alignPixel=function(t,e,n){var i=t.currentDevicePixelRatio,r=n/2;return Math.round((e-r)*i)/i+r},ct.splineCurve=function(t,e,n,i){var r=t.skip?e:t,a=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(a.x-r.x,2)+Math.pow(a.y-r.y,2)),l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),u=s/(s+l),c=l/(s+l);u=isNaN(u)?0:u,c=isNaN(c)?0:c;var h=i*u,d=i*c;return{previous:{x:a.x-h*(o.x-r.x),y:a.y-h*(o.y-r.y)},next:{x:a.x+d*(o.x-r.x),y:a.y+d*(o.y-r.y)}}},ct.EPSILON=Number.EPSILON||1e-14,ct.splineCurveMonotone=function(t){var e,n,i,r,a,o,s,l,u,c=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=c.length;for(e=0;e0?c[e-1]:null,(r=e0?c[e-1]:null,r=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ct.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ct.niceNum=function(t,e){var n=Math.floor(ct.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},ct.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ct.getRelativePosition=function(t,e){var n,i,r=t.originalEvent||t,a=t.target||t.srcElement,o=a.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=r.clientX,i=r.clientY);var l=parseFloat(ct.getStyle(a,"padding-left")),u=parseFloat(ct.getStyle(a,"padding-top")),c=parseFloat(ct.getStyle(a,"padding-right")),h=parseFloat(ct.getStyle(a,"padding-bottom")),d=o.right-o.left-l-c,f=o.bottom-o.top-u-h;return n=Math.round((n-o.left-l)/d*a.width/e.currentDevicePixelRatio),i=Math.round((i-o.top-u)/f*a.height/e.currentDevicePixelRatio),{x:n,y:i}},ct.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},ct.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},ct._calculatePadding=function(t,e,n){return(e=ct.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},ct._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ct.getMaximumWidth=function(t){var e=ct._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=ct._calculatePadding(e,"padding-left",n),r=ct._calculatePadding(e,"padding-right",n),a=n-i-r,o=ct.getConstraintWidth(t);return isNaN(o)?a:Math.min(a,o)},ct.getMaximumHeight=function(t){var e=ct._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=ct._calculatePadding(e,"padding-top",n),r=ct._calculatePadding(e,"padding-bottom",n),a=n-i-r,o=ct.getConstraintHeight(t);return isNaN(o)?a:Math.min(a,o)},ct.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ct.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,r=t.height,a=t.width;i.height=r*n,i.width=a*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=r+"px",i.style.width=a+"px")}},ct.fontString=function(t,e,n){return e+" "+t+"px "+n},ct.longestText=function(t,e,n,i){var r=(i=i||{}).data=i.data||{},a=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(r=i.data={},a=i.garbageCollect=[],i.font=e),t.font=e;var o=0;ct.each(n,function(e){null!=e&&!0!==ct.isArray(e)?o=ct.measureText(t,r,a,o,e):ct.isArray(e)&&ct.each(e,function(e){null==e||ct.isArray(e)||(o=ct.measureText(t,r,a,o,e))})});var s=a.length/2;if(s>n.length){for(var l=0;li&&(i=a),i},ct.numberOfLabelLines=function(t){var e=1;return ct.each(t,function(t){ct.isArray(t)&&t.length>e&&(e=t.length)}),e},ct.color=Y?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),Y(t)}:function(t){return console.error("Color.js not found!"),t},ct.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ct.color(t).saturate(.5).darken(.1).rgbString()}}(),an._adapters=ln,an.Animation=mt,an.animationService=yt,an.controllers=ce,an.DatasetController=kt,an.defaults=st,an.Element=vt,an.elements=Nt,an.Interaction=me,an.layouts=we,an.platform=Re,an.plugins=ze,an.Scale=pn,an.scaleService=je,an.Ticks=un,an.Tooltip=Qe,an.helpers.each(ei,function(t,e){an.scaleService.registerScaleType(e,t,t._defaults)}),xi)xi.hasOwnProperty(Ci)&&an.plugins.register(xi[Ci]);an.platform.initialize();var Si=an;return"undefined"!=typeof window&&(window.Chart=an),an.Chart=an,an.Legend=xi.legend._element,an.Title=xi.title._element,an.pluginService=an.plugins,an.PluginBase=an.Element.extend({}),an.canvasHelpers=an.helpers.canvas,an.layoutService=an.layouts,an.LinearScaleBase=bn,an.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){an[t]=function(e,n){return new an(e,an.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Si}(function(){try{return n(17)}catch(t){}}())},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e){t.exports=function(t,e){var n="function"==typeof t.exports?t.exports.extendOptions:t.options;for(var i in"function"==typeof t.exports&&(n.components=t.exports.options.components),n.components=n.components||{},e)n.components[i]=n.components[i]||e[i]}},,,,function(t,e,n){},function(t,e,n){},function(t,e,n){(function(t){var i=void 0!==t&&t||"undefined"!=typeof self&&self||window,r=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(r.call(setTimeout,i,arguments),clearTimeout)},e.setInterval=function(){return new a(r.call(setInterval,i,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(i,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(15),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(2))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var i,r,a,o,s,l=1,u={},c=!1,h=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?i=function(t){e.nextTick(function(){p(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){p(t.data)},i=function(t){a.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(r=h.documentElement,i=function(t){var e=h.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,r.removeChild(e),e=null},r.appendChild(e)}):i=function(t){setTimeout(p,0,t)}:(o="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&p(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),i=function(e){t.postMessage(o+e,"*")}),d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};return t||(t={}),r.a.extend({data:function(){return o({clientHeight:c(),clientWidth:u(),resizeTimeout:void 0},s,t)},computed:{breakpoint:function(){var t=this.clientWidth=this.thresholds.lg-this.scrollbarWidth,a=t,o=e,s=(t||e)&&!(n||i||r),l=!t&&(e||n||i||r),u=n,c=(t||e||n)&&!(i||r),h=!(t||e)&&(n||i||r),d=i,f=(t||e||n||i)&&!r,p=!(t||e||n)&&(i||r),v=r,g=void 0;switch(!0){case t:g="xs";break;case e:g="sm";break;case n:g="md";break;case i:g="lg";break;default:g="xl"}return{xs:t,sm:e,md:n,lg:i,xl:r,name:g,xsOnly:a,smOnly:o,smAndDown:s,smAndUp:l,mdOnly:u,mdAndDown:c,mdAndUp:h,lgOnly:d,lgAndDown:f,lgAndUp:p,xlOnly:v,width:this.clientWidth,height:this.clientHeight,thresholds:this.thresholds,scrollbarWidth:this.scrollbarWidth}}},created:function(){"undefined"!=typeof window&&window.addEventListener("resize",this.onResize,{passive:!0})},beforeDestroy:function(){"undefined"!=typeof window&&window.removeEventListener("resize",this.onResize)},methods:{onResize:function(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.setDimensions,200)},setDimensions:function(){this.clientHeight=c(),this.clientWidth=u()}}})}function u(){return"undefined"==typeof document?0:Math.max(document.documentElement.clientWidth,window.innerWidth||0)}function c(){return"undefined"==typeof document?0:Math.max(document.documentElement.clientHeight,window.innerHeight||0)}var h=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return!1!==t&&h({},d,t)}var p={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half"};var v={md:{complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached"},mdi:{complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half"},fa:p,fa4:{complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o"},faSvg:function(t,e){var n={};for(var i in e)n[i]={component:t,props:{icon:e[i].split(" fa-")}};return n}("font-awesome-icon",p)};function g(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"md",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.assign({},v[t]||v.md,e)}var m=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return m({},y,t)}var x={dataIterator:{rowsPerPageText:"Items per page:",rowsPerPageAll:"All",pageText:"{0}-{1} of {2}",noResultsText:"No matching records found",nextPage:"Next page",prevPage:"Previous page"},dataTable:{rowsPerPageText:"Rows per page:"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual"}},_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},w=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:"div",n=arguments[2];return r.a.extend({name:n||t.replace(/__/g,"-"),functional:!0,render:function(n,i){var r=i.data,a=i.children;return r.staticClass=(t+" "+(r.staticClass||"")).trim(),n(e,r,a)}})}function C(t,e){return Array.isArray(t)?t.concat(e):(t&&e.push(t),e)}function S(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments[2];return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition"+(n.props.group?"-group":"");n.data=n.data||{},n.data.props={name:t,mode:n.props.mode},n.data.on=n.data.on||{},Object.isExtensible(n.data.on)||(n.data.on=w({},n.data.on));var r=[],a=[];r.push(function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}),n.props.leaveAbsolute&&a.push(function(t){return t.style.position="absolute"}),n.props.hideOnLeave&&a.push(function(t){return t.style.display="none"});var o=n.data.on,s=o.beforeEnter,l=o.leave;return n.data.on.beforeEnter=function(){return C(s,r)},n.data.on.leave=C(l,a),e(i,n.data,n.children)}}}function I(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",{props:w({},i.props,{name:t}),on:e},i.children)}}}try{if("undefined"!=typeof window){var A=Object.defineProperty({},"passive",{get:function(){!0}});window.addEventListener("testListener",A,A),window.removeEventListener("testListener",A,A)}}catch(t){console.warn(t)}function M(t,e,n){var i=e.length-1;if(i<0)return void 0===t?n:t;for(var r=0;r":">"};function L(t){return t.replace(/[&<>]/g,function(t){return D[t]||t})}function B(t,e){for(var n={},i=0;i1&&void 0!==arguments[1]?arguments[1]:"px";return null==t||""===t?void 0:isNaN(+t)?String(t):""+Number(t)+e}function F(t){return(t||"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var V=Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34}),N="$vuetify.icons.";function R(t){return Object.keys(t)}var z=/-(\w)/g,j=function(t){return t.replace(z,function(t,e){return e?e.toUpperCase():""})};function W(t){return t.charAt(0).toUpperCase()+t.slice(1)}function H(t,e,n){return t.$slots[e]&&t.$scopedSlots[e]&&t.$scopedSlots[e].name?n?"v-slot":"scoped":t.$slots[e]?"normal":t.$scopedSlots[e]?"scoped":void 0}function q(t,e,n){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] "+t+(e?function(t){if(t._isVue&&t.$parent){for(var e=[],n=0;t;){if(e.length>0){var i=e[e.length-1];if(i.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[i,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map(function(t,e){return""+(0===e?"---\x3e ":" ".repeat(5+2*e))+(Array.isArray(t)?Z(t[0])+"... ("+t[1]+" recursive calls)":Z(t))}).join("\n")}return"\n\n(found in "+Z(t)+")"}(e):"")}function U(t,e,n){var i=q(t,e,n);null!=i&&console.warn(i)}function Y(t,e,n){var i=q(t,e,n);null!=i&&console.error(i)}function X(t,e,n,i){U("'"+t+"' is deprecated, use '"+e+"' instead",n,i)}var K=/(?:^|[-_])(\w)/g,G=function(t){return t.replace(K,function(t){return t.toUpperCase()}).replace(/[-_]/g,"")};function Z(t,e){if(t.$root===t)return"";var n="function"==typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},i=n.name||n._componentTag,r=n.__file;if(!i&&r){var a=r.match(/([^\/\\]+)\.vue$/);i=a&&a[1]}return(i?"<"+G(i)+">":"")+(r&&!1!==e?" at "+r:"")}var Q="$vuetify.",J=Symbol("Lang fallback");function tt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{locales:Object.assign({en:x},t.locales),current:t.current||"en",t:function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r2&&void 0!==arguments[2]&&arguments[2],r=n.replace(Q,""),a=O(e,r,J);return a===J&&(i?(Y('Translation key "'+r+'" not found in fallback'),a=n):(U('Translation key "'+r+'" not found, falling back to default'),a=t(x,n,!0))),a}(this.locales[this.current],e).replace(/\{(\d+)\}/g,function(t,e){return String(i[+e])}):e}}}var et=function(t){return t},nt=function(t){return t*t},it=function(t){return t*(2-t)},rt=function(t){return t<.5?2*t*t:(4-2*t)*t-1},at=function(t){return t*t*t},ot=function(t){return--t*t*t+1},st=function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},lt=function(t){return t*t*t*t},ut=function(t){return 1- --t*t*t*t},ct=function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},ht=function(t){return t*t*t*t*t},dt=function(t){return 1+--t*t*t*t*t},ft=function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t};function pt(t){return null==t?t:t.constructor.name}function vt(t){return"string"==typeof t?document.querySelector(t):t&&t._isVue?t.$el:t instanceof HTMLElement?t:null}var gt=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=gt({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),a=function(t){var e=vt(t);if(e)return e;throw"string"==typeof t?new Error('Container element "'+t+'" not found.'):new TypeError("Container must be a Selector/HTMLElement/VueComponent, received "+pt(t)+" instead.")}(n.container);if(n.appOffset){var o=a.classList.contains("v-navigation-drawer"),s=a.classList.contains("v-navigation-drawer--clipped");n.offset+=r.a.prototype.$vuetify.application.bar,o&&!s||(n.offset+=r.a.prototype.$vuetify.application.top)}var l=performance.now(),u=function(t){if("number"==typeof t)return t;var e=vt(t);if(!e)throw"string"==typeof t?new Error('Target element "'+t+'" not found.'):new TypeError("Target must be a Number/Selector/HTMLElement/VueComponent, received "+pt(t)+" instead.");for(var n=0;e;)n+=e.offsetTop,e=e.offsetParent;return n}(t)-n.offset,c=a.scrollTop;if(u===c)return Promise.resolve(u);var h="function"==typeof n.easing?n.easing:i[n.easing];if(!h)throw new TypeError('Easing function "'+n.easing+'" not found.');return new Promise(function(t){return requestAnimationFrame(function e(i){var r=i-l,o=Math.abs(n.duration?Math.min(r/n.duration,1):1);if(a.scrollTop=Math.floor(c+(u-c)*h(o)),1===o||a.clientHeight+a.scrollTop===a.scrollHeight)return t(u);requestAnimationFrame(e)})})}var yt={install:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.installed){this.installed=!0,r.a!==t&&Y("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this"),function(t,e){var n=e||"^2.5.18",i=n.split(".",3).map(function(t){return t.replace(/\D/g,"")}).map(Number),r=t.version.split(".",3).map(function(t){return parseInt(t,10)});r[0]===i[0]&&(r[1]>i[1]||r[1]===i[1]&&r[2]>=i[2])||U("Vuetify requires Vue version "+n)}(t);var n=tt(e.lang);if(t.prototype.$vuetify=new t({mixins:[l(e.breakpoint)],data:{application:a,dark:!1,icons:g(e.iconfont,e.icons),lang:n,options:b(e.options),rtl:e.rtl,theme:f(e.theme)},methods:{goTo:mt,t:n.t.bind(n)}}),e.directives)for(var i in e.directives)t.directive(i,e.directives[i]);!function e(n){if(n){for(var i in n){var r=n[i];r&&!e(r.$_vuetify_subcomponents)&&t.component(i,r)}return!0}return!1}(e.components)}},version:"1.5.14"};n(12),n(13);r.a.use(yt,{iconfont:"md",theme:{primary:"#ddd",secondary:"#36495d",accent:"#47b784"}});var bt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.showInterface?n("v-app",[n("v-content",[n("v-container",{attrs:{fluid:"","fill-height":""}},[n("v-layout",{attrs:{"align-center":"","justify-center":""}},[n("v-flex",{attrs:{xs9:""}},[n("v-card",{staticClass:"elevation-12"},[n("v-system-bar",{attrs:{window:"",dark:""}},[t._v("\n mysql-async Explorer\n "),n("v-spacer"),t._v(" "),n("v-icon",{on:{click:function(e){return t.close()}}},[t._v("close")])],1),t._v(" "),n("v-tabs",{attrs:{color:"primary","slider-color":"secondary"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}},[n("v-tab",{attrs:{ripple:""}},[t._v("\n Time-resolved\n ")]),t._v(" "),n("v-tab",{attrs:{ripple:""}},[t._v("\n Resources\n ")]),t._v(" "),n("v-tab",{attrs:{ripple:""}},[t._v("\n Slowest Queries\n ")]),t._v(" "),n("v-tab-item",[n("v-flex",{staticStyle:{height:"480px"},attrs:{xs12:"","pa-2":""}},[n("m-chart",{attrs:{id:"time-graph",labels:t.timeLabels,datasets:t.timeData,height:"540"}})],1)],1),t._v(" "),n("v-tab-item",[n("v-flex",{staticStyle:{height:"480px"},attrs:{xs12:"","pa-2":""}},[n("m-chart",{attrs:{id:"resource-graph",labels:t.resourceLabels,datasets:t.resourceData,height:"540"}})],1)],1),t._v(" "),n("v-tab-item",[n("v-flex",{staticStyle:{height:"480px"},attrs:{xs12:"","pa-2":""}},[n("v-data-table",{attrs:{"align-end":"",headers:t.headers,items:t.slowqueries,"rows-per-page-items":[7]},scopedSlots:t._u([{key:"items",fn:function(e){return[n("td",[t._v(t._s(e.item.resource))]),t._v(" "),n("td",[t._v(t._s(e.item.sql))]),t._v(" "),n("td",[t._v(t._s(e.item.queryTime))])]}}],null,!1,3852515603)})],1)],1)],1),t._v(" "),n("v-footer",{staticStyle:{"min-height":"28px"},attrs:{dark:"",color:"black",height:"28"}})],1)],1)],1)],1)],1)],1):t._e()};bt._withStripped=!0;var xt=function(){var t=this.$createElement;return(this._self._c||t)("canvas",{attrs:{id:this.id,width:this.width,height:this.height}})};xt._withStripped=!0;var _t=n(4),wt=n.n(_t);function kt(t,e,n,i,r,a,o,s){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(t,e){return l.call(e),c(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}return{exports:t,options:u}}wt.a.defaults.global.defaultFontFamily="'Fira Sans', 'sans-serif'";var Ct=kt({data:()=>({myChart:null}),methods:{createChart(t){const e=document.getElementById(t);this.myChart=new wt.a(e,{type:this.type,data:{labels:this.labels,datasets:this.datasets},options:{responsive:!0,lineTension:1,scales:{yAxes:[{ticks:{beginAtZero:!0}}]}}})},arraysEqual(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t.length!=e.length)return!1;for(var n=0;n[]},labels:{type:Array,default:()=>[]},height:{type:Number,default:400},width:{type:Number,default:1600}},mounted(){this.createChart(this.id)},watch:{datasets(){this.myChart&&(this.myChart.data.datasets=this.datasets,this.myChart.update())},labels(){this.myChart&&(this.arraysEqual(this.myChart.data.labels,this.labels)||(this.myChart.data.labels=this.labels,this.myChart.update(0)))}}},xt,[],!1,null,null,null);Ct.options.__file="ui/components/MChart.vue";var St={components:{MChart:Ct.exports},data:()=>({showInterface:!1,colorGraphLoad:{backgroundColor:["rgba(54, 73, 93, 0.5)"],borderColor:["#36495d"],borderWidth:3},colorGraphAvg:{backgroundColor:["rgba(71, 183, 132, 0.5)"],borderColor:["#47b784"],borderWidth:3},colorGraphCount:{backgroundColor:["rgba(62, 128, 113, 0.5)"],borderColor:["#3e8071"],borderWidth:3},resourceData:[],resourceLabels:[],timeLabels:[],timeData:[],slowqueries:[{resource:"memes",sql:"SELECT * FROM memes",queryTime:5e3}],headers:[{text:"Resource",value:"resource"},{text:"Query",value:"sql",sortable:!1},{text:"Execution Time (ms)",value:"queryTime"}]}),destroyed(){window.removeEventListener("message",this.listener)},methods:{close(){fetch("http://mysql-async/close-explorer",{method:"post",body:JSON.stringify({close:!0})})},onToggleShow(){this.showInterface=!this.showInterface},onSlowQueryData({slowQueries:t}){Array.isArray(t)&&(this.slowqueries=t)},onTimeData({timeData:t}){if(Array.isArray(t)&&3===t.length){this.timeData=[Object.assign({},this.colorGraphLoad,{label:"Server Load (ms)"},t[0]),Object.assign({},this.colorGraphAvg,{label:"Average Query Time (ms)"},t[1]),Object.assign({},this.colorGraphCount,{label:"Query Count"},t[2])];const e=[];for(let n=t[0].data.length-1;n>-1;n-=1)0!==n?e.push(`-${5*n}min`):e.push("now");this.timeLabels=e}},onResourceData({resourceData:t}){Array.isArray(t)&&3===t.length&&(this.resourceData=[Object.assign({},this.colorGraphLoad,{label:"Server Load (ms)"},t[0]),Object.assign({},this.colorGraphAvg,{label:"Average Query Time (ms)"},t[1]),Object.assign({},this.colorGraphCount,{label:"Query Count"},t[2])])},onResourceLabels({resourceLabels:t}){this.resourceLabels=t}},mounted(){this.listener=window.addEventListener("message",t=>{const e=t.data||t.detail;this[e.type]&&this[e.type](e)})},name:"app"},It=(n(18),n(8)),At=n.n(It);n(19);function Mt(t){var e=void 0;if("number"==typeof t)e=t;else{if("string"!=typeof t)throw new TypeError("Colors can only be numbers or strings, recieved "+(null==t?t:t.constructor.name)+" instead");var n="#"===t[0]?t.substring(1):t;3===n.length&&(n=n.split("").map(function(t){return t+t}).join("")),6!==n.length&&U("'"+t+"' is not a valid rgb color"),e=parseInt(n,16)}return e<0?(U("Colors cannot be negative: '"+t+"'"),e=0):(e>16777215||isNaN(e))&&(U("'"+t+"' is not a valid rgb color"),e=16777215),e}function Tt(t){var e=t.toString(16);return e.length<6&&(e="0".repeat(6-e.length)+e),"#"+e}var Ot=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],Pt=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},$t=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],Dt=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function Lt(t){for(var e,n=Array(3),i=Pt,r=Ot,a=0;a<3;++a)n[a]=Math.round(255*(e=i(r[a][0]*t[0]+r[a][1]*t[1]+r[a][2]*t[2]),Math.max(0,Math.min(1,e))));return(n[0]<<16)+(n[1]<<8)+(n[2]<<0)}function Bt(t){for(var e=[0,0,0],n=Dt,i=$t,r=n((t>>16&255)/255),a=n((t>>8&255)/255),o=n((t>>0&255)/255),s=0;s<3;++s)e[s]=i[s][0]*r+i[s][1]*a+i[s][2]*o;return e}var Et=.20689655172413793,Ft=function(t){return t>Math.pow(Et,3)?Math.cbrt(t):t/(3*Math.pow(Et,2))+4/29},Vt=function(t){return t>Et?Math.pow(t,3):3*Math.pow(Et,2)*(t-4/29)};function Nt(t){var e=Ft,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function Rt(t){var e=Vt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}var zt=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);i=!0);}catch(t){r=!0,a=t}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};var Wt=function(t,e){return"\n."+t+" {\n background-color: "+e+" !important;\n border-color: "+e+" !important;\n}\n."+t+"--text {\n color: "+e+" !important;\n caret-color: "+e+" !important;\n}"},Ht=function(t,e,n){var i=e.split(/(\d)/,2),r=zt(i,2),a=r[0],o=r[1];return"\n."+t+"."+a+"-"+o+" {\n background-color: "+n+" !important;\n border-color: "+n+" !important;\n}\n."+t+"--text.text--"+a+"-"+o+" {\n color: "+n+" !important;\n caret-color: "+n+" !important;\n}"},qt=function(t){return"--v-"+t+"-"+(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base")},Ut=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var("+qt(t,e)+")"};function Yt(t,e){for(var n={base:Tt(e)},i=5;i>0;--i)n["lighten"+i]=Tt(Xt(e,i));for(var r=1;r<=4;++r)n["darken"+r]=Tt(Kt(e,r));return n}function Xt(t,e){var n=Nt(Bt(t));return n[0]=n[0]+10*e,Lt(Rt(n))}function Kt(t,e){var n=Nt(Bt(t));return n[0]=n[0]-10*e,Lt(Rt(n))}var Gt={data:function(){return{style:null}},computed:{parsedTheme:function(){return function t(e){for(var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=Object.keys(e),r={},a=0;a1&&void 0!==arguments[1]&&arguments[1],n=Object.keys(t);if(!n.length)return"";var i="",r="";r+="a { color: "+(e?Ut("primary"):t.primary.base)+"; }";for(var a=0;a"+this.generatedStyles+""}else"undefined"!=typeof document&&(this.genStyle(),this.applyTheme())},methods:{applyTheme:function(){this.style&&(this.style.innerHTML=this.generatedStyles)},genStyle:function(){var t=document.getElementById("vuetify-theme-stylesheet");t||((t=document.createElement("style")).type="text/css",t.id="vuetify-theme-stylesheet",this.$vuetify.options.cspNonce&&t.setAttribute("nonce",this.$vuetify.options.cspNonce),document.head.appendChild(t)),this.style=t}}},Zt=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return se(t)?e.style=ae({},e.style,{"background-color":""+t,"border-color":""+t}):t&&(e.class=ae({},e.class,oe({},t,!0))),e},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(se(t))e.style=ae({},e.style,{color:""+t,"caret-color":""+t});else if(t){var n=t.toString().trim().split(" ",2),i=re(n,2),r=i[0],a=i[1];e.class=ae({},e.class,oe({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}});var ue=r.a.extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){return this.computedElevation?(t={},e="elevation-"+this.computedElevation,n=!0,e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t):{};var t,e,n}}}),ce=r.a.extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=E(this.height),n=E(this.minHeight),i=E(this.minWidth),r=E(this.maxHeight),a=E(this.maxWidth),o=E(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),o&&(t.width=o),t}}});function he(){for(var t=arguments.length,e=Array(t),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" "+n.class);var a=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e.getBoundingClientRect(),r=ge(t)?t.touches[t.touches.length-1]:t,a=r.clientX-i.left,o=r.clientY-i.top,s=0,l=.3;e._ripple&&e._ripple.circle?(l=.15,s=e.clientWidth/2,s=n.center?s:s+Math.sqrt(Math.pow(a-s,2)+Math.pow(o-s,2))/4):s=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var u=(e.clientWidth-2*s)/2+"px",c=(e.clientHeight-2*s)/2+"px";return{radius:s,scale:l,x:n.center?u:a-s+"px",y:n.center?c:o-s+"px",centerX:u,centerY:c}}(t,e,n),o=a.radius,s=a.scale,l=a.x,u=a.y,c=a.centerX,h=a.centerY,d=2*o+"px";r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),pe(r,"translate("+l+", "+u+") scale3d("+s+","+s+","+s+")"),ve(r,0),r.dataset.activated=String(performance.now()),setTimeout(function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),pe(r,"translate("+c+", "+h+") scale3d(1,1,1)"),ve(r,.25)},0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout(function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),ve(n,0),setTimeout(function(){1===t.getElementsByClassName("v-ripple__animation").length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)},300)},r)}}}}};function ye(t){return void 0===t||!!t}function be(t){var e={},n=t.currentTarget;n&&n._ripple&&!n._ripple.touched&&(ge(t)&&(n._ripple.touched=!0),e.center=n._ripple.centered,n._ripple.class&&(e.class=n._ripple.class),me.show(t,n,e))}function xe(t){var e=t.currentTarget;e&&(window.setTimeout(function(){e._ripple&&(e._ripple.touched=!1)}),me.hide(e))}function _e(t,e,n){var i=ye(e.value);i||me.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",be,{passive:!0}),t.addEventListener("touchend",xe,{passive:!0}),t.addEventListener("touchcancel",xe),t.addEventListener("mousedown",be),t.addEventListener("mouseup",xe),t.addEventListener("mouseleave",xe),t.addEventListener("dragstart",xe,{passive:!0})):!i&&n&&we(t)}function we(t){t.removeEventListener("mousedown",be),t.removeEventListener("touchstart",xe),t.removeEventListener("touchend",xe),t.removeEventListener("touchcancel",xe),t.removeEventListener("mouseup",xe),t.removeEventListener("mouseleave",xe),t.removeEventListener("dragstart",xe)}var ke={bind:function(t,e,n){_e(t,e,!1),n.context&&n.context.$nextTick(function(){var e=window.getComputedStyle(t);if(e&&"inline"===e.display){var i=n.fnOptions?[n.fnOptions,n.context]:[n.componentInstance];U.apply(void 0,["v-ripple can only be used on block-level elements"].concat(i))}})},unbind:function(t){delete t._ripple,we(t)},update:function(t,e){e.value!==e.oldValue&&_e(t,e,ye(e.oldValue))}},Ce=Object.assign||function(t){for(var e=1;e100?100:parseFloat(this.value)},radius:function(){return 20},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:this.calculatedSize+"px",width:this.calculatedSize+"px"}},svgStyles:function(){return{transform:"rotate("+Number(this.rotate)+"deg)"}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e,n){return t("circle",{class:"v-progress-circular__"+e,attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":n}})},genSvg:function(t){var e=[this.indeterminate||this.genCircle(t,"underlay",0),this.genCircle(t,"overlay",this.strokeDashOffset)];return t("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:this.viewBoxSize+" "+this.viewBoxSize+" "+2*this.viewBoxSize+" "+2*this.viewBoxSize}},e)}},render:function(t){var e=t("div",{staticClass:"v-progress-circular__info"},this.$slots.default),n=this.genSvg(t);return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,style:this.styles,on:this.$listeners}),[n,e])}}));function De(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Le(t,e){return function(){return U("The "+t+" component must be used inside a "+e)}}function Be(t,e,n){var i=e&&n?{register:Le(e,n),unregister:Le(e,n)}:null;return r.a.extend({name:"registrable-inject",inject:De({},t,{default:i})})}function Ee(t,e,n){return Be(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?(t={},e=this.activeClass,n=this.isActive,e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t):{};var t,e,n}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}Ee("itemGroup");var Fe={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function Ve(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return r.a.extend({name:"positionable",props:t.length?B(Fe,t):Fe})}var Ne=Ve();function Re(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ze(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return r.a.extend({name:"toggleable",model:{prop:e,event:n},props:Re({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Re(t,e,function(t){this.isActive=!!t}),Re(t,"isActive",function(t){!!t!==this[e]&&this.$emit(n,t)}),t)})}var je=ze(),We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},He=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[],e=this.$el,n=[this.stackMinZIndex,$(e)],i=[].concat(function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0?Math.max(t-n,0):Math.max(t,12))+this.getOffsetLeft()},calcYOverflow:function(t){var e=this.getInnerHeight(),n=this.pageYOffset+e,i=this.dimensions.activator,r=this.dimensions.content.height,a=nr?t=this.pageYOffset+(i.top-r):a&&!this.allowOverflow?t=n-r-12:t0?this.$refs.activator.children[0]:this.$refs.activator;if(t)return this.activatedBy=t.currentTarget||t.target,this.activatedBy;if(this.activatedBy)return this.activatedBy;if(this.activatorNode){var e=Array.isArray(this.activatorNode)?this.activatorNode[0]:this.activatorNode,n=e&&e.elm;if(n)return n}},getInnerHeight:function(){return this.hasWindow?window.innerHeight||document.documentElement.clientHeight:0},getOffsetLeft:function(){return this.hasWindow?window.pageXOffset||document.documentElement.scrollLeft:0},getOffsetTop:function(){return this.hasWindow?window.pageYOffset||document.documentElement.scrollTop:0},getRoundedBoundedClientRect:function(t){var e=t.getBoundingClientRect();return{top:Math.round(e.top),left:Math.round(e.left),bottom:Math.round(e.bottom),right:Math.round(e.right),width:Math.round(e.width),height:Math.round(e.height)}},measure:function(t){if(!t||!this.hasWindow)return null;var e=this.getRoundedBoundedClientRect(t);if(this.isAttached){var n=window.getComputedStyle(t);e.left=parseInt(n.marginLeft),e.top=parseInt(n.marginTop)}return e},sneakPeek:function(t){var e=this;requestAnimationFrame(function(){var n=e.$refs.content;if(!n||e.isShown(n))return t();n.style.display="inline-block",t(),n.style.display="none"})},startTransition:function(){var t=this;return new Promise(function(e){return requestAnimationFrame(function(){t.isContentActive=t.hasJustFocused=t.isActive,e()})})},isShown:function(t){return"none"!==t.style.display},updateDimensions:function(){var t=this;this.checkForWindow(),this.checkActivatorFixed(),this.checkForPageYOffset(),this.pageWidth=document.documentElement.clientWidth;var e={};if(!this.hasActivator||this.absolute)e.activator=this.absolutePosition();else{var n=this.getActivator();e.activator=this.measure(n),e.activator.offsetLeft=n.offsetLeft,this.isAttached?e.activator.offsetTop=n.offsetTop:e.activator.offsetTop=0}this.sneakPeek(function(){e.content=t.measure(t.$refs.content),t.dimensions=e})}}}),dn=r.a.extend({name:"returnable",props:{returnValue:null},data:function(){return{isActive:!1,originalValue:null}},watch:{isActive:function(t){t?this.originalValue=this.returnValue:this.$emit("update:returnValue",this.originalValue)}},methods:{save:function(t){var e=this;this.originalValue=t,setTimeout(function(){e.isActive=!1})}}}),fn={methods:{activatorClickHandler:function(t){this.openOnClick&&!this.isActive?(this.getActivator(t).focus(),this.isActive=!0,this.absoluteX=t.clientX,this.absoluteY=t.clientY):this.closeOnClick&&this.isActive&&(this.getActivator(t).blur(),this.isActive=!1)},mouseEnterHandler:function(){var t=this;this.runDelay("open",function(){t.hasJustFocused||(t.hasJustFocused=!0,t.isActive=!0)})},mouseLeaveHandler:function(t){var e=this;this.runDelay("close",function(){e.$refs.content.contains(t.relatedTarget)||requestAnimationFrame(function(){e.isActive=!1,e.callDeactivate()})})},addActivatorEvents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t&&!this.disabled&&t.addEventListener("click",this.activatorClickHandler)},removeActivatorEvents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t&&t.removeEventListener("click",this.activatorClickHandler)}}},pn=Object.assign||function(t){for(var e=1;e-1)this.listIndex--;else{if(t.keyCode!==V.enter||-1===this.listIndex)return;this.tiles[this.listIndex].click()}t.preventDefault()},getTiles:function(){this.tiles=this.$refs.content.querySelectorAll(".v-list__tile")}}},mn={data:function(){return{calculatedTopAuto:0}},methods:{calcScrollPosition:function(){var t=this.$refs.content,e=t.querySelector(".v-list__tile--active"),n=t.scrollHeight-t.offsetHeight;return e?Math.min(n,Math.max(0,e.offsetTop-t.offsetHeight/2+e.offsetHeight/2)):t.scrollTop},calcLeftAuto:function(){return this.isAttached?0:parseInt(this.dimensions.activator.left-2*this.defaultOffset)},calcTopAuto:function(){var t=this.$refs.content,e=t.querySelector(".v-list__tile--active");if(e||(this.selectedIndex=null),this.offsetY||!e)return this.computedTop;this.selectedIndex=Array.from(this.tiles).indexOf(e);var n=e.offsetTop-this.calcScrollPosition(),i=t.querySelector(".v-list__tile").offsetTop;return this.computedTop-n-i}}};function yn(){return!1}var bn={inserted:function(t,e){var n=function(n){return function(t,e,n){n.args=n.args||{};var i=n.args.closeConditional||yn;if(t&&!1!==i(t)&&!("isTrusted"in t&&!t.isTrusted||"pointerType"in t&&!t.pointerType)){var r=(n.args.include||function(){return[]})();r.push(e),!r.some(function(e){return e.contains(t.target)})&&setTimeout(function(){i(t)&&n.value&&n.value(t)},0)}}(n,t,e)};(document.querySelector("[data-app]")||document.body).addEventListener("click",n,!0),t._clickOutside=n},unbind:function(t){if(t._clickOutside){var e=document.querySelector("[data-app]")||document.body;e&&e.removeEventListener("click",t._clickOutside,!0),delete t._clickOutside}}},xn=he(te).extend({name:"theme-provider",props:{root:Boolean},computed:{isDark:function(){return this.root?this.rootIsDark:te.options.computed.isDark.call(this)}},render:function(){return this.$slots.default&&this.$slots.default.find(function(t){return!t.isComment&&" "!==t.text})}}),_n=r.a.extend({name:"v-menu",provide:function(){return{theme:this.theme}},directives:{ClickOutside:bn,Resize:ee},mixins:[fn,rn,en,sn,vn,gn,hn,mn,dn,je,te],props:{auto:Boolean,closeOnClick:{type:Boolean,default:!0},closeOnContentClick:{type:Boolean,default:!0},disabled:Boolean,fullWidth:Boolean,maxHeight:{default:"auto"},openOnClick:{type:Boolean,default:!0},offsetX:Boolean,offsetY:Boolean,openOnHover:Boolean,origin:{type:String,default:"top left"},transition:{type:[Boolean,String],default:"v-menu-transition"}},data:function(){return{defaultOffset:8,hasJustFocused:!1,resizeTimeout:null}},computed:{calculatedLeft:function(){var t=Math.max(this.dimensions.content.width,parseFloat(this.calculatedMinWidth));return this.auto?this.calcXOverflow(this.calcLeftAuto(),t)+"px":this.calcLeft(t)},calculatedMaxHeight:function(){return this.auto?"200px":E(this.maxHeight)},calculatedMaxWidth:function(){return isNaN(this.maxWidth)?this.maxWidth:this.maxWidth+"px"},calculatedMinWidth:function(){if(this.minWidth)return isNaN(this.minWidth)?this.minWidth:this.minWidth+"px";var t=Math.min(this.dimensions.activator.width+this.nudgeWidth+(this.auto?16:0),Math.max(this.pageWidth-24,0)),e=isNaN(parseInt(this.calculatedMaxWidth))?t:parseInt(this.calculatedMaxWidth);return Math.min(e,t)+"px"},calculatedTop:function(){return!this.auto||this.isAttached?this.calcTop():this.calcYOverflow(this.calculatedTopAuto)+"px"},styles:function(){return{maxHeight:this.calculatedMaxHeight,minWidth:this.calculatedMinWidth,maxWidth:this.calculatedMaxWidth,top:this.calculatedTop,left:this.calculatedLeft,transformOrigin:this.origin,zIndex:this.zIndex||this.activeZIndex}}},watch:{activator:function(t,e){this.removeActivatorEvents(e),this.addActivatorEvents(t)},disabled:function(t){this.activator&&(t?this.removeActivatorEvents(this.activator):this.addActivatorEvents(this.activator))},isContentActive:function(t){this.hasJustFocused=t}},mounted:function(){this.isActive&&this.activate(),"v-slot"===H(this,"activator",!0)&&Y("v-tooltip's activator slot must be bound, try '