commit 423d2655b603f40c2d4721da9fc0f0a26f7e1e4c Author: Matias Gonzalez Date: Thu Jun 2 11:42:32 2022 -0300 Versi贸n estable diff --git a/README.md b/README.md new file mode 100644 index 0000000..eed86e0 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# T铆tulo del Proyecto + +_Ac谩 va un p谩rrafo que describa lo que es el proyecto_ + +## Comenzando 馃殌 + +_Estas instrucciones te permitir谩n obtener una copia del proyecto en funcionamiento en tu m谩quina local para prop贸sitos de desarrollo y pruebas._ + +Mira **Deployment** para conocer como desplegar el proyecto. + + +### Pre-requisitos 馃搵 + +_Que cosas necesitas para instalar el software y como instalarlas_ + +``` +Da un ejemplo +``` + +### Instalaci贸n 馃敡 + +_Una serie de ejemplos paso a paso que te dice lo que debes ejecutar para tener un entorno de desarrollo ejecutandose_ + +_D铆 c贸mo ser谩 ese paso_ + +``` +Da un ejemplo +``` + +_Y repite_ + +``` +hasta finalizar +``` + +_Finaliza con un ejemplo de c贸mo obtener datos del sistema o como usarlos para una peque帽a demo_ + + +## Autores 鉁掞笍 + + +* **Matias Gonzalez** - desarrollo de script y documentaci贸n - [matias.gonzalez](http://fabrica.faniot.ar:90/matias.gonzalez) + + + + +--- \ No newline at end of file diff --git a/backend/.env b/backend/.env new file mode 100644 index 0000000..33308c0 --- /dev/null +++ b/backend/.env @@ -0,0 +1,5 @@ +//DB_CREDENTIALS +DB_HOST = '192.168.1.2' +DB_USER = 'aplication' +DB_PASS = 'passApp' + diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..9e2e613 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,5 @@ +FROM node:latest +WORKDIR /app +COPY . . +RUN npm install +CMD ["node","server.js"] \ No newline at end of file diff --git a/backend/components/devices/controller.js b/backend/components/devices/controller.js new file mode 100644 index 0000000..65cf7be --- /dev/null +++ b/backend/components/devices/controller.js @@ -0,0 +1,34 @@ +//Mock de base de datos +const store = require("./store"); + +function addDevice(chip_id, product_id) { + return new Promise((resolve, reject) => { + if (!chip_id || !product_id) { + console.error( + "[deviceController]: No se cargaron todos los datos del disposivo!" + ); + reject("No se cargaron todos los datos del dispositivo!"); + } + + const device = { + chip_id: chip_id, + product_id: product_id + }; + + //store.add(device); + resolve(store.add(device)); + }); +} + +function getDevices(filterDevices) { + return new Promise((resolve, reject) => { + resolve(store.list(filterDevices)); + }); +} + + +module.exports = { + addDevice, + getDevices, + +}; diff --git a/backend/components/devices/network.js b/backend/components/devices/network.js new file mode 100644 index 0000000..e7ac8f6 --- /dev/null +++ b/backend/components/devices/network.js @@ -0,0 +1,50 @@ +//Se declara express +const express = require("express"); + +//Se inicializa express +var app = express(); + +//Response +const response = require("../../network/response"); + +//Agrega controlador +const controller = require("./controller"); + + +app.get("/", async function (req, res) { + try { + const filterDevices = req.query.id || null; + const devicesList = await controller.getDevices(filterDevices); + response.success(req, res, devicesList, 201); + } catch (error) { + response.error(req, res, error, 401); + } +}); + + +//redirecciona a metodo POST +app.post("/", async (req, res) => { + try { + console.log(req.body.chip_id) + console.log(req.body.product_id) + + const newDevice = await controller.addDevice(req.body.chip_id, req.body.product_id); + console.log(newDevice) + if(newDevice == 'ER_DUP_ENTRY'){ + response.error(req, res, 'Ya existe un dispositivo con el mismo CHIP ID!', 400); + console.log('Ya existe en la BD') + }else if(newDevice == 'nohayfirmware'){ + response.error(req, res, 'No existe un firmware asociado al producto!', 400); + console.log('No hay firmware') + }else{ + response.success(req, res, 'Dispositivo agregado!', 201); + } + } catch (error) { + response.error(req, res, error, 401); + console.log('Sali贸 del try') + } +}); + + + +module.exports = app; diff --git a/backend/components/devices/store.js b/backend/components/devices/store.js new file mode 100644 index 0000000..43e61ae --- /dev/null +++ b/backend/components/devices/store.js @@ -0,0 +1,58 @@ +//Se declara express +const express = require("express"); +const res = require("express/lib/response"); + +//Se inicializa express +var app = express(); + +//Conexi贸n MariaDB +const pool = require('../../db') + +//Agrega el mensaje a la BD +async function addDevice(device) { + try{ + //Se utiliza solo pool.query porque se necesita solo realizar una consulta y cerrar la conexi贸n a la BD + //pool.getConnection() deja abierta la conexi贸n y luego de unos segundos crashea por no utilizarla + //const conn = await pool.getConnection(); + + + //Se listan todos los firmwares de ese producto + const listFirmwares = await pool.query(`SELECT firmware_id FROM main_database.firmwares WHERE product_id = ${device.product_id} ORDER BY date DESC`); + + //Se filtra el 煤ltimo firmware subido a ese dispositivo + const lastFirmware = listFirmwares[0].firmware_id; + const rows = await pool.query(`INSERT INTO main_database.devices (chip_id, product_id, firmware_id_act, firmware_id_update) VALUES ('${device.chip_id}', ${device.product_id}, ${lastFirmware}, ${lastFirmware})`); + console.log(lastFirmware) + return rows; + }catch(err){ + if(err.code == 'ER_DUP_ENTRY'){ + return err.code + }else{ + return 'nohayfirmware'; + } + + } + +} + +async function getDevices(filterDevices) { + console.log(filterDevices); + var myQuery = 'SELECT * FROM main_database.devices'; + if(filterDevices != null){ + myQuery += ` WHERE product_id = ${filterDevices} ORDER BY device_id DESC`; + }else{ + myQuery += ' ORDER BY device_id DESC'; + } + return new Promise(async (resolve, reject) => { + //const conn = await pool.getConnection(); + const rows = await pool.query(myQuery); + resolve(rows); + }); +} + + +module.exports = { + add: addDevice, + list: getDevices, + +}; diff --git a/backend/components/firmwares/controller.js b/backend/components/firmwares/controller.js new file mode 100644 index 0000000..af76eef --- /dev/null +++ b/backend/components/firmwares/controller.js @@ -0,0 +1,38 @@ +//Mock de base de datos +const store = require("./store"); + +function addFirmware(productID, label, version, filepath) { + return new Promise((resolve, reject) => { + if (!productID || !label || !version || !filepath) { + console.error( + "[firmwareController]: No se cargaron todos los datos del firmware!" + ); + reject("No se cargaron todos los datos del firmware!"); + } + const path = '/data/binarios/' + filepath; + const firmware = { + productID: productID, + label: label, + version: version, + filepath: path + } + + resolve(store.add(firmware)); + }); +} + +function getFirmwares() { + return new Promise((resolve, reject) => { + resolve(store.list()); + }); +} + + + + + +module.exports = { + addFirmware, + getFirmwares, + +}; diff --git a/backend/components/firmwares/network.js b/backend/components/firmwares/network.js new file mode 100644 index 0000000..babbddd --- /dev/null +++ b/backend/components/firmwares/network.js @@ -0,0 +1,67 @@ +//Se declara express +const express = require("express"); + +//Se inicializa express +var app = express(); + +//Response +const response = require("../../network/response"); + +//Agrega controlador +const controller = require("./controller"); + +//subir archivos +const multer = require("multer"); + +const storage = multer.diskStorage({ + destination: function (req, file, cb) { + cb(null, '/app/public/binaries') + }, + filename: function (req, file, cb) { + cb(null, file.originalname) + } +}) + +const upload = multer({storage: storage}); + + + +app.get("/", async function (req, res) { + try { + + const firmwaresList = await controller.getFirmwares(); + response.success(req, res, firmwaresList, 201); + } catch (error) { + response.error(req, res, error, 401); + } +}); + + +//redirecciona a metodo POST +app.post("/", upload.single("bin"), async (req, res) => { + try { + console.log("Este es el bin: " + req.file); + console.log("Este es el ID: " + req.body.productID) + const newFirmware = await controller.addFirmware( + req.body.productID, + req.body.label, + req.body.version, + req.file.originalname + ); + console.log('network: ' + newFirmware) + + if(newFirmware == 'ER_DUP_ENTRY'){ + response.error(req, res, 'Ya existe un binario con el mismo nombre en la BD', 400); + }else{ + response.success(req, res, 'Binario subido exitosamente!', 201); + } + + } catch (error) { + response.error(req, res, error, 401); + } +}); + + + + +module.exports = app; diff --git a/backend/components/firmwares/store.js b/backend/components/firmwares/store.js new file mode 100644 index 0000000..3221677 --- /dev/null +++ b/backend/components/firmwares/store.js @@ -0,0 +1,42 @@ +//Se declara express +const express = require("express"); + +//Se inicializa express +var app = express(); + +//Conexi贸n MariaDB +const pool = require('../../db') + +const response = require("../../network/response"); + + +async function addFirmware(firmware) { + //const conn = await pool.getConnection(); + try{ + const rows = await pool.query(`INSERT INTO main_database.firmwares (product_id, firmware_version, etiqueta, filepath) VALUES ('${firmware.productID}', '${firmware.version}', '${firmware.label}', '${firmware.filepath}') RETURNING firmware_id`); + const newFirmware = rows[0].firmware_id; + console.log(newFirmware) + const updateDevices = await pool.query(`UPDATE main_database.devices SET firmware_id_update = ${newFirmware} WHERE product_id = ${firmware.productID}`); + console.log(updateDevices) + return rows; + }catch(err){ + return err.code; + + } + +} + +async function getFirmwares() { + return new Promise(async (resolve, reject) => { + //const conn = await pool.getConnection(); + const rows = await pool.query(`SELECT * FROM main_database.firmwares`); + resolve(rows); + }); +} + + +module.exports = { + add: addFirmware, + list: getFirmwares, + +}; diff --git a/backend/components/products/controller.js b/backend/components/products/controller.js new file mode 100644 index 0000000..957af69 --- /dev/null +++ b/backend/components/products/controller.js @@ -0,0 +1,28 @@ +//Mock de base de datos +const store = require("./store"); + +function addProduct(name) { + return new Promise((resolve, reject) => { + if (!name) { + console.error( + "[productController]: No se carg贸 el nombre del producto!" + ); + reject("Los datos son incorrectos!"); + } + const product = name; + resolve(store.add(product)); + }); +} + +function getProducts() { + return new Promise((resolve, reject) => { + resolve(store.list()); + }); +} + + +module.exports = { + addProduct, + getProducts, + +}; diff --git a/backend/components/products/network.js b/backend/components/products/network.js new file mode 100644 index 0000000..893f681 --- /dev/null +++ b/backend/components/products/network.js @@ -0,0 +1,37 @@ +//Se declara express +const express = require("express"); + +//Se inicializa express +var app = express(); + +//Response +const response = require("../../network/response"); + +//Agrega controlador +const controller = require("./controller"); + + +app.get("/", async function (req, res) { + try { + const productsList = await controller.getProducts(); + response.success(req, res, productsList, 201); + } catch (error) { + response.error(req, res, error, 401); + } +}); + + +//redirecciona a metodo POST +app.post("/", async (req, res) => { + try { + console.log(req.body.name) + const newProduct = await controller.addProduct(req.body.name); + response.success(req, res, newProduct, 201); + } catch (error) { + response.error(req, res, error, 401); + } +}); + + + +module.exports = app; diff --git a/backend/components/products/store.js b/backend/components/products/store.js new file mode 100644 index 0000000..801d478 --- /dev/null +++ b/backend/components/products/store.js @@ -0,0 +1,42 @@ +//Se declara express +const express = require("express"); + +//Se inicializa express +var app = express(); + +//Conexi贸n MariaDB +const pool = require('../../db') + +const response = require("../../network/response"); + +//Agrega el mensaje a la BD +async function addProduct(product) { + + //Se utiliza solo pool.query porque se necesita solo realizar una consulta y cerrar la conexi贸n a la BD + //pool.getConnection() deja abierta la conexi贸n y luego de unos segundos crashea por no utilizarla + + //const conn = await pool.getConnection(); + try{ + await pool.query(`INSERT INTO main_database.products (product) VALUES ('${product}')`); + return product; + }catch(err){ + console.log(err.text) + response.error(err.code, 401); + } + +} + +async function getProducts() { + return new Promise(async (resolve, reject) => { + //const conn = await pool.getConnection(); + const rows = await pool.query(`SELECT * FROM main_database.products ORDER BY product_id DESC`); + resolve(rows); + }); +} + + +module.exports = { + add: addProduct, + list: getProducts, + +}; diff --git a/backend/db.js b/backend/db.js new file mode 100644 index 0000000..7f76389 --- /dev/null +++ b/backend/db.js @@ -0,0 +1,16 @@ +const mariadb = require('mariadb'); +require('dotenv').config(); + +const dbHost = process.env.DB_HOST; +const dbUser = process.env.DB_USER; +const dbPass = process.env.DB_PASS; + +const pool = mariadb.createPool( { + host: dbHost, + user:dbUser, + password: dbPass, + connectionLimit: 5 + }); + + +module.exports = pool; \ No newline at end of file diff --git a/backend/network/response.js b/backend/network/response.js new file mode 100644 index 0000000..5e72b25 --- /dev/null +++ b/backend/network/response.js @@ -0,0 +1,17 @@ +exports.success = function (req, res, message, status){ + //Recibe parametro message y lo imprime + res.status(status || 200).send({ + error: '', + body: message + }); +} + +exports.error = function (req, res, message, status, details){ + //Muestra los errores internos a trav茅s de un log para no darle tanta informacion al cliente + //console.error(message); + + res.status(status || 500).send({ + error: message, + body: '' + }); +} \ No newline at end of file diff --git a/backend/network/routes.js b/backend/network/routes.js new file mode 100644 index 0000000..6eb3cd0 --- /dev/null +++ b/backend/network/routes.js @@ -0,0 +1,16 @@ +const express = require('express'); +const product = require('../components/products/network'); +const firmware = require('../components/firmwares/network'); +const device = require('../components/devices/network') + + +const routes = function(server) { + server.use('/faniota/api/products', product) + server.use('/faniota/api/firmwares', firmware) + server.use('/faniota/api/devices', device) + +} + + + +module.exports = routes; \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..b34640e --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,2178 @@ +{ + "name": "backend-node", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "backend-node", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "body-parser": "^1.19.1", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.17.2", + "mariadb": "^3.0.0", + "mongoose": "^6.1.10", + "multer": "^1.4.4", + "socket.io": "^4.4.1" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/geojson": { + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" + }, + "node_modules/@types/node": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", + "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==" + }, + "node_modules/@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dependencies": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bson": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.1.tgz", + "integrity": "sha512-I1LQ7Hz5zgwR4QquilLNZwbhPw0Apx7i7X9kGMBTsqPdml/03Q9NBtD9nt/19ahjlphktQImrnderxqpzeVDjw==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "dependencies": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "dependencies": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "dependencies": { + "@socket.io/base64-arraybuffer": "~1.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/kareem": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.3.tgz", + "integrity": "sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg==" + }, + "node_modules/mariadb": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-3.0.0.tgz", + "integrity": "sha512-1uIqD6AWLP5ojMY67XP4+4uRLe9L92HD1ZGU8fidi8cGdYIC+Ghx1JliAtf7lc/tGjOh6J400f/1M4BXVtZFvA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@types/geojson": "^7946.0.8", + "@types/node": "^17.0.10", + "denque": "^2.0.1", + "iconv-lite": "^0.6.3", + "moment-timezone": "^0.5.34", + "please-upgrade-node": "^3.2.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mariadb/node_modules/@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + }, + "node_modules/mariadb/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mongodb": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz", + "integrity": "sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug==", + "dependencies": { + "bson": "^4.6.0", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.3.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz", + "integrity": "sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongoose": { + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.10.tgz", + "integrity": "sha512-OELTPFun6+UHv+A7Fvig8bdOWFXcuD1nPeU86lsnIBadGbwduJAGKmCYDGIS6bt9oQtyUayHlndfVgzQF3AaUA==", + "dependencies": { + "@types/node": "< 17.0.6", + "bson": "^4.2.2", + "kareem": "2.3.3", + "mongodb": "4.2.2", + "mpath": "0.8.4", + "mquery": "4.0.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "sift": "13.5.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz", + "integrity": "sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multer": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", + "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "node_modules/socket.io": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==" + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + } + }, + "dependencies": { + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==" + }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "@types/geojson": { + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" + }, + "@types/node": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", + "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==" + }, + "@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + } + }, + "bson": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.1.tgz", + "integrity": "sha512-I1LQ7Hz5zgwR4QquilLNZwbhPw0Apx7i7X9kGMBTsqPdml/03Q9NBtD9nt/19ahjlphktQImrnderxqpzeVDjw==", + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + } + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + } + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "engine.io": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-parser": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "requires": { + "@socket.io/base64-arraybuffer": "~1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "kareem": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.3.tgz", + "integrity": "sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg==" + }, + "mariadb": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-3.0.0.tgz", + "integrity": "sha512-1uIqD6AWLP5ojMY67XP4+4uRLe9L92HD1ZGU8fidi8cGdYIC+Ghx1JliAtf7lc/tGjOh6J400f/1M4BXVtZFvA==", + "requires": { + "@alloc/quick-lru": "^5.2.0", + "@types/geojson": "^7946.0.8", + "@types/node": "^17.0.10", + "denque": "^2.0.1", + "iconv-lite": "^0.6.3", + "moment-timezone": "^0.5.34", + "please-upgrade-node": "^3.2.0" + }, + "dependencies": { + "@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, + "moment-timezone": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "mongodb": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz", + "integrity": "sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug==", + "requires": { + "bson": "^4.6.0", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.3.2", + "saslprep": "^1.0.3" + } + }, + "mongodb-connection-string-url": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz", + "integrity": "sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongoose": { + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.10.tgz", + "integrity": "sha512-OELTPFun6+UHv+A7Fvig8bdOWFXcuD1nPeU86lsnIBadGbwduJAGKmCYDGIS6bt9oQtyUayHlndfVgzQF3AaUA==", + "requires": { + "@types/node": "< 17.0.6", + "bson": "^4.2.2", + "kareem": "2.3.3", + "mongodb": "4.2.2", + "mpath": "0.8.4", + "mquery": "4.0.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "sift": "13.5.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" + }, + "mquery": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz", + "integrity": "sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", + "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "requires": { + "semver-compare": "^1.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "socket.io": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-adapter": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..9bdb8b2 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,27 @@ +{ + "name": "backend-node", + "version": "0.1.0", + "description": "Es un backend hecho con node y websockets", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "chat", + "telegram", + "backend", + "node" + ], + "author": "matijego", + "license": "MIT", + "dependencies": { + "body-parser": "^1.19.1", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.17.2", + "mariadb": "^3.0.0", + "mongoose": "^6.1.10", + "multer": "^1.4.4", + "socket.io": "^4.4.1" + } +} diff --git a/backend/public/binaries/ejemplobd.bin b/backend/public/binaries/ejemplobd.bin new file mode 100644 index 0000000..f7c0005 Binary files /dev/null and b/backend/public/binaries/ejemplobd.bin differ diff --git a/backend/public/index.html b/backend/public/index.html new file mode 100644 index 0000000..006d9d0 --- /dev/null +++ b/backend/public/index.html @@ -0,0 +1,12 @@ + + + + + + + Document + + +

Es un archivo est谩tico!

+ + \ No newline at end of file diff --git a/backend/public/test.html b/backend/public/test.html new file mode 100644 index 0000000..b35becc --- /dev/null +++ b/backend/public/test.html @@ -0,0 +1,13 @@ + + + + + + + Document + + +

una imagen

+ gg + + \ No newline at end of file diff --git a/backend/server.js b/backend/server.js new file mode 100644 index 0000000..ec68a1a --- /dev/null +++ b/backend/server.js @@ -0,0 +1,35 @@ +//Se declara express +const express = require('express'); +const cors = require('cors'); + +//Se inicializa express +const app = express(); +app.use(express.json()); +app.use(express.urlencoded({extended : false})); + +//WebSockets +/* const server = require('http').Server(app); +const socket = require('./socket') +socket.connect(server); */ +app.use(cors()) + +/* //Declara la base de datos +const db = require('./db') +db('mongodb://localhost:27017/fanstock') */ + + +//Inicializa componentes +//const router = require('./components/messages/network'); +const router = require('./network/routes'); + + +//Archivos est谩ticos +app.use('/app', express.static('public')); + +//Inicializa las rutas +router(app); + +//Configura el puerto +app.listen(1997, function (){ + console.log('El back est谩 corriendo en el puerto 1997'); +}); \ No newline at end of file diff --git a/data_db2/custom.cnf b/data_db2/custom.cnf new file mode 100644 index 0000000..2c6e720 --- /dev/null +++ b/data_db2/custom.cnf @@ -0,0 +1,140 @@ +## custom configuration file, please be aware that changing options here may break things + +[mysqld_safe] +nice = 0 + +[mysqld] +character-set-server = utf8 +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 +max_allowed_packet = 16M +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +binlog_format=mixed +# +# * MyISAM +# +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +table_open_cache = 400 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M +# +# * Query Cache Configuration +# +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +#general_log_file = /config/log/mysql/mysql.log +#general_log = 1 +# +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. +# +# we do want to know about network errors and such +log_warnings = 2 +# +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /config/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +log_slow_verbosity = query_plan + +#log-queries-not-using-indexes +#log_slow_admin_statements +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +log_bin = /config/log/mysql/mariadb-bin +log_bin_index = /config/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /config/log/mysql/relay-bin +#relay_log_index = /config/log/mysql/relay-bin.index +#relay_log_info_file = /config/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +#bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completion + +[isamchk] +key_buffer_size = 16M diff --git a/data_db2/databases/7820a81ce469.err b/data_db2/databases/7820a81ce469.err new file mode 100644 index 0000000..5c38a1e --- /dev/null +++ b/data_db2/databases/7820a81ce469.err @@ -0,0 +1,8670 @@ +220218 10:39:17 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-02-18 10:39:17 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 517 ... +2022-02-18 10:39:17 0 [Note] InnoDB: Uses event mutexes +2022-02-18 10:39:17 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-02-18 10:39:17 0 [Note] InnoDB: Number of pools: 1 +2022-02-18 10:39:17 0 [Note] InnoDB: Using generic crc32 instructions +2022-02-18 10:39:17 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-02-18 10:39:17 0 [Note] InnoDB: Using Linux native AIO +2022-02-18 10:39:17 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-02-18 10:39:17 0 [Note] InnoDB: Completed initialization of buffer pool +2022-02-18 10:39:17 0 [Note] InnoDB: Upgrading redo log: 100663296 bytes; LSN=45806946 +2022-02-18 10:39:17 0 [Note] InnoDB: Starting to delete and rewrite log file. +2022-02-18 10:39:17 0 [Note] InnoDB: Setting log file ./ib_logfile101 size to 100663296 bytes +2022-02-18 10:39:17 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 +2022-02-18 10:39:17 0 [Note] InnoDB: New log file created, LSN=45806946 +2022-02-18 10:39:17 0 [Note] InnoDB: 128 rollback segments are active. +2022-02-18 10:39:17 0 [Note] InnoDB: Creating sys_virtual system tables. +2022-02-18 10:39:17 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-02-18 10:39:17 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-02-18 10:39:17 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-02-18 10:39:17 0 [Note] InnoDB: 10.5.13 started; log sequence number 45806946; transaction id 169068 +2022-02-18 10:39:17 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-02-18 10:39:17 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-02-18 10:39:17 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-02-18 10:39:17 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-02-18 10:39:17 0 [Note] Starting crash recovery... +2022-02-18 10:39:17 0 [Note] Crash recovery finished. +2022-02-18 10:39:17 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 10:39:17 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 10:39:17 0 [Note] Server socket created on IP: '::'. +2022-02-18 10:39:17 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-02-18 10:39:17 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-02-18 10:39:17 0 [Note] Reading of all Master_info entries succeeded +2022-02-18 10:39:17 0 [Note] Added new Master_info '' to hash table +2022-02-18 10:39:17 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-02-18 10:40:21 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 10:40:21 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:51 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:22:55 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:23:01 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220218 11:30:50 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-02-18 11:30:50 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-02-18 11:30:51 0 [Note] InnoDB: Uses event mutexes +2022-02-18 11:30:51 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-02-18 11:30:51 0 [Note] InnoDB: Number of pools: 1 +2022-02-18 11:30:51 0 [Note] InnoDB: Using generic crc32 instructions +2022-02-18 11:30:51 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-02-18 11:30:51 0 [Note] InnoDB: Using Linux native AIO +2022-02-18 11:30:51 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-02-18 11:30:51 0 [Note] InnoDB: Completed initialization of buffer pool +2022-02-18 11:30:51 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=45807116,45807116 +2022-02-18 11:30:52 0 [Note] InnoDB: Starting final batch to recover 612 pages from redo log. +2022-02-18 11:30:52 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000065', position 8072335 +2022-02-18 11:30:52 0 [Note] InnoDB: 128 rollback segments are active. +2022-02-18 11:30:52 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-02-18 11:30:52 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-02-18 11:30:52 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-02-18 11:30:52 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-02-18 11:30:52 0 [Note] InnoDB: 10.5.13 started; log sequence number 57810043; transaction id 169191 +2022-02-18 11:30:52 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-02-18 11:30:52 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-02-18 11:30:52 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-02-18 11:30:52 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-02-18 11:30:52 0 [Note] Starting crash recovery... +2022-02-18 11:30:52 0 [Note] Crash recovery finished. +2022-02-18 11:30:52 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:30:52 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:30:52 0 [Note] Server socket created on IP: '::'. +2022-02-18 11:30:52 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-02-18 11:30:52 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-02-18 11:30:52 0 [Note] Reading of all Master_info entries succeeded +2022-02-18 11:30:52 0 [Note] Added new Master_info '' to hash table +2022-02-18 11:30:52 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-02-18 11:31:56 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:31:56 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:33:07 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:33:07 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:33:07 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:33:07 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:40:33 6 [Warning] IP address '192.168.1.47' could not be resolved: Name does not resolve +2022-02-18 11:43:08 9 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:43:08 9 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:43:08 9 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 11:43:08 9 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220218 18:17:25 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-02-18 18:17:25 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-02-18 18:17:26 0 [Note] InnoDB: Uses event mutexes +2022-02-18 18:17:26 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-02-18 18:17:26 0 [Note] InnoDB: Number of pools: 1 +2022-02-18 18:17:26 0 [Note] InnoDB: Using generic crc32 instructions +2022-02-18 18:17:26 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-02-18 18:17:26 0 [Note] InnoDB: Using Linux native AIO +2022-02-18 18:17:26 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-02-18 18:17:26 0 [Note] InnoDB: Completed initialization of buffer pool +2022-02-18 18:17:26 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57810292,57810292 +2022-02-18 18:17:26 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-02-18 18:17:27 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000066', position 1100 +2022-02-18 18:17:27 0 [Note] InnoDB: 128 rollback segments are active. +2022-02-18 18:17:27 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-02-18 18:17:27 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-02-18 18:17:27 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-02-18 18:17:27 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-02-18 18:17:27 0 [Note] InnoDB: 10.5.13 started; log sequence number 57811262; transaction id 169201 +2022-02-18 18:17:27 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-02-18 18:17:27 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-02-18 18:17:27 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-02-18 18:17:27 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-02-18 18:17:27 0 [Note] Starting crash recovery... +2022-02-18 18:17:27 0 [Note] Crash recovery finished. +2022-02-18 18:17:27 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 18:17:27 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 18:17:27 0 [Note] Server socket created on IP: '::'. +2022-02-18 18:17:27 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-02-18 18:17:27 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-02-18 18:17:27 0 [Note] Reading of all Master_info entries succeeded +2022-02-18 18:17:27 0 [Note] Added new Master_info '' to hash table +2022-02-18 18:17:27 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-02-18 18:17:32 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 18:17:32 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 19:15:31 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 19:15:31 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 19:15:31 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-18 19:15:31 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220219 15:42:52 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-02-19 15:42:53 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-02-19 15:42:53 0 [Note] InnoDB: Uses event mutexes +2022-02-19 15:42:53 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-02-19 15:42:53 0 [Note] InnoDB: Number of pools: 1 +2022-02-19 15:42:53 0 [Note] InnoDB: Using generic crc32 instructions +2022-02-19 15:42:53 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-02-19 15:42:53 0 [Note] InnoDB: Using Linux native AIO +2022-02-19 15:42:53 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-02-19 15:42:53 0 [Note] InnoDB: Completed initialization of buffer pool +2022-02-19 15:42:53 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57810292,57810292 +2022-02-19 15:42:54 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-02-19 15:42:54 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000066', position 1100 +2022-02-19 15:42:54 0 [Note] InnoDB: 128 rollback segments are active. +2022-02-19 15:42:54 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-02-19 15:42:54 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-02-19 15:42:54 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-02-19 15:42:54 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-02-19 15:42:54 0 [Note] InnoDB: 10.5.13 started; log sequence number 57811527; transaction id 169201 +2022-02-19 15:42:54 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-02-19 15:42:54 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-02-19 15:42:54 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-02-19 15:42:54 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-02-19 15:42:54 0 [Note] Starting crash recovery... +2022-02-19 15:42:54 0 [Note] Crash recovery finished. +2022-02-19 15:42:54 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-19 15:42:54 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-19 15:42:54 0 [Note] Server socket created on IP: '::'. +2022-02-19 15:42:55 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-02-19 15:42:55 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-02-19 15:42:55 0 [Note] Reading of all Master_info entries succeeded +2022-02-19 15:42:55 0 [Note] Added new Master_info '' to hash table +2022-02-19 15:42:55 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-02-19 15:43:00 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-19 15:43:00 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-21 11:14:48 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-21 11:14:48 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-21 11:14:48 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-21 11:14:48 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-23 15:07:05 6 [Warning] IP address '192.168.1.47' could not be resolved: Name does not resolve +2022-02-23 15:07:08 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-23 15:07:08 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-23 15:07:08 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-23 15:07:08 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220228 17:18:26 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-02-28 17:18:27 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-02-28 17:18:27 0 [Note] InnoDB: Uses event mutexes +2022-02-28 17:18:27 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-02-28 17:18:27 0 [Note] InnoDB: Number of pools: 1 +2022-02-28 17:18:27 0 [Note] InnoDB: Using generic crc32 instructions +2022-02-28 17:18:27 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-02-28 17:18:27 0 [Note] InnoDB: Using Linux native AIO +2022-02-28 17:18:27 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-02-28 17:18:27 0 [Note] InnoDB: Completed initialization of buffer pool +2022-02-28 17:18:27 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57810292,57810292 +2022-02-28 17:18:28 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-02-28 17:18:28 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000068', position 569 +2022-02-28 17:18:28 0 [Note] InnoDB: 128 rollback segments are active. +2022-02-28 17:18:28 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-02-28 17:18:28 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-02-28 17:18:28 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-02-28 17:18:28 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-02-28 17:18:28 0 [Note] InnoDB: 10.5.13 started; log sequence number 57812088; transaction id 169210 +2022-02-28 17:18:28 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-02-28 17:18:28 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-02-28 17:18:28 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-02-28 17:18:28 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-02-28 17:18:28 0 [Note] Starting crash recovery... +2022-02-28 17:18:28 0 [Note] Crash recovery finished. +2022-02-28 17:18:28 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-28 17:18:28 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-28 17:18:28 0 [Note] Server socket created on IP: '::'. +2022-02-28 17:18:28 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-02-28 17:18:28 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-02-28 17:18:28 0 [Note] Reading of all Master_info entries succeeded +2022-02-28 17:18:28 0 [Note] Added new Master_info '' to hash table +2022-02-28 17:18:28 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-02-28 17:18:35 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-02-28 17:18:35 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-02 14:38:24 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-02 14:38:24 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-02 14:38:24 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-02 14:38:24 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-09 11:23:58 6 [Warning] IP address '192.168.1.47' could not be resolved: Name does not resolve +2022-03-09 11:24:01 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-09 11:24:01 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-09 11:24:01 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-09 11:24:01 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220310 19:50:46 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-10 19:50:46 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-10 19:50:46 0 [Note] InnoDB: Uses event mutexes +2022-03-10 19:50:46 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-10 19:50:46 0 [Note] InnoDB: Number of pools: 1 +2022-03-10 19:50:46 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-10 19:50:46 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-10 19:50:47 0 [Note] InnoDB: Using Linux native AIO +2022-03-10 19:50:47 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-10 19:50:47 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-10 19:50:47 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57810292,57810292 +2022-03-10 19:50:47 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-03-10 19:50:47 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-10 19:50:47 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-10 19:50:47 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-10 19:50:47 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-10 19:50:47 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-10 19:50:47 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-10 19:50:47 0 [Note] InnoDB: 10.5.13 started; log sequence number 57813331; transaction id 169223 +2022-03-10 19:50:47 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-10 19:50:47 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-10 19:50:47 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-10 19:50:47 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-10 19:50:47 0 [Note] Starting crash recovery... +2022-03-10 19:50:47 0 [Note] Crash recovery finished. +2022-03-10 19:50:47 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-10 19:50:47 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-10 19:50:47 0 [Note] Server socket created on IP: '::'. +2022-03-10 19:50:48 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-10 19:50:48 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-10 19:50:48 0 [Note] Reading of all Master_info entries succeeded +2022-03-10 19:50:48 0 [Note] Added new Master_info '' to hash table +2022-03-10 19:50:48 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +220311 10:29:57 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-11 10:29:57 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-11 10:29:58 0 [Note] InnoDB: Uses event mutexes +2022-03-11 10:29:58 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-11 10:29:58 0 [Note] InnoDB: Number of pools: 1 +2022-03-11 10:29:58 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-11 10:29:58 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-11 10:29:58 0 [Note] InnoDB: Using Linux native AIO +2022-03-11 10:29:58 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-11 10:29:58 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-11 10:29:58 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57813596,57813596 +2022-03-11 10:29:58 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-11 10:29:58 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-11 10:29:58 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-11 10:29:58 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-11 10:29:58 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-11 10:29:58 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-11 10:29:58 0 [Note] InnoDB: 10.5.13 started; log sequence number 57813845; transaction id 169223 +2022-03-11 10:29:58 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-11 10:29:58 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-11 10:29:58 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-11 10:29:58 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-11 10:29:58 0 [Note] Starting crash recovery... +2022-03-11 10:29:58 0 [Note] Crash recovery finished. +2022-03-11 10:29:58 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 10:29:58 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 10:29:58 0 [Note] Server socket created on IP: '::'. +2022-03-11 10:29:58 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-11 10:29:58 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-11 10:29:58 0 [Note] Reading of all Master_info entries succeeded +2022-03-11 10:29:58 0 [Note] Added new Master_info '' to hash table +2022-03-11 10:29:58 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-11 10:31:04 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 10:31:04 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220311 12:33:09 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-11 12:33:10 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-11 12:33:10 0 [Note] InnoDB: Uses event mutexes +2022-03-11 12:33:10 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-11 12:33:10 0 [Note] InnoDB: Number of pools: 1 +2022-03-11 12:33:10 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-11 12:33:10 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-11 12:33:10 0 [Note] InnoDB: Using Linux native AIO +2022-03-11 12:33:10 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-11 12:33:10 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-11 12:33:10 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57814110,57814110 +2022-03-11 12:33:10 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-11 12:33:10 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-11 12:33:10 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-11 12:33:10 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-11 12:33:10 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-11 12:33:10 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-11 12:33:10 0 [Note] InnoDB: 10.5.13 started; log sequence number 57814359; transaction id 169223 +2022-03-11 12:33:10 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-11 12:33:10 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-11 12:33:10 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-11 12:33:10 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-11 12:33:10 0 [Note] Starting crash recovery... +2022-03-11 12:33:10 0 [Note] Crash recovery finished. +2022-03-11 12:33:10 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 12:33:10 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 12:33:10 0 [Note] Server socket created on IP: '::'. +2022-03-11 12:33:10 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-11 12:33:10 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-11 12:33:10 0 [Note] Reading of all Master_info entries succeeded +2022-03-11 12:33:10 0 [Note] Added new Master_info '' to hash table +2022-03-11 12:33:10 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-11 12:33:15 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 12:33:15 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 13:52:44 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 13:52:44 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 13:52:44 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 13:52:44 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220311 19:40:42 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-11 19:40:43 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-03-11 19:40:43 0 [Note] InnoDB: Uses event mutexes +2022-03-11 19:40:43 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-11 19:40:43 0 [Note] InnoDB: Number of pools: 1 +2022-03-11 19:40:43 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-11 19:40:43 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-11 19:40:43 0 [Note] InnoDB: Using Linux native AIO +2022-03-11 19:40:43 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-11 19:40:43 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-11 19:40:43 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57814624,57814624 +2022-03-11 19:40:43 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-11 19:40:43 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-11 19:40:43 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-11 19:40:43 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-11 19:40:43 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-11 19:40:43 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-11 19:40:43 0 [Note] InnoDB: 10.5.13 started; log sequence number 57814873; transaction id 169223 +2022-03-11 19:40:43 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-11 19:40:43 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-11 19:40:43 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-11 19:40:43 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-11 19:40:43 0 [Note] Starting crash recovery... +2022-03-11 19:40:43 0 [Note] Crash recovery finished. +2022-03-11 19:40:43 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 19:40:43 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 19:40:43 0 [Note] Server socket created on IP: '::'. +2022-03-11 19:40:43 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-11 19:40:43 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-11 19:40:43 0 [Note] Reading of all Master_info entries succeeded +2022-03-11 19:40:43 0 [Note] Added new Master_info '' to hash table +2022-03-11 19:40:43 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-11 19:41:48 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-11 19:41:48 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220314 10:12:31 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-14 10:12:31 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-03-14 10:12:32 0 [Note] InnoDB: Uses event mutexes +2022-03-14 10:12:32 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-14 10:12:32 0 [Note] InnoDB: Number of pools: 1 +2022-03-14 10:12:32 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-14 10:12:32 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-14 10:12:32 0 [Note] InnoDB: Using Linux native AIO +2022-03-14 10:12:32 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-14 10:12:32 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-14 10:12:32 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57815138,57815138 +2022-03-14 10:12:32 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-14 10:12:32 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-14 10:12:32 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-14 10:12:32 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-14 10:12:32 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-14 10:12:32 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-14 10:12:32 0 [Note] InnoDB: 10.5.13 started; log sequence number 57815387; transaction id 169223 +2022-03-14 10:12:32 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-14 10:12:32 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-14 10:12:32 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-14 10:12:32 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-14 10:12:32 0 [Note] Starting crash recovery... +2022-03-14 10:12:32 0 [Note] Crash recovery finished. +2022-03-14 10:12:32 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 10:12:32 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 10:12:32 0 [Note] Server socket created on IP: '::'. +2022-03-14 10:12:32 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-14 10:12:32 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-14 10:12:32 0 [Note] Reading of all Master_info entries succeeded +2022-03-14 10:12:32 0 [Note] Added new Master_info '' to hash table +2022-03-14 10:12:32 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-14 10:12:37 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 10:12:37 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220314 14:06:19 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-14 14:06:19 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-03-14 14:06:19 0 [Note] InnoDB: Uses event mutexes +2022-03-14 14:06:19 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-14 14:06:19 0 [Note] InnoDB: Number of pools: 1 +2022-03-14 14:06:19 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-14 14:06:19 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-14 14:06:20 0 [Note] InnoDB: Using Linux native AIO +2022-03-14 14:06:20 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-14 14:06:20 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-14 14:06:20 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57815652,57815652 +2022-03-14 14:06:20 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-14 14:06:20 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-14 14:06:20 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-14 14:06:20 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-14 14:06:20 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-14 14:06:20 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-14 14:06:20 0 [Note] InnoDB: 10.5.13 started; log sequence number 57815901; transaction id 169223 +2022-03-14 14:06:20 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-14 14:06:20 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-14 14:06:20 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-14 14:06:20 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-14 14:06:20 0 [Note] Starting crash recovery... +2022-03-14 14:06:20 0 [Note] Crash recovery finished. +2022-03-14 14:06:20 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 14:06:20 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 14:06:20 0 [Note] Server socket created on IP: '::'. +2022-03-14 14:06:20 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-14 14:06:20 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-14 14:06:20 0 [Note] Reading of all Master_info entries succeeded +2022-03-14 14:06:20 0 [Note] Added new Master_info '' to hash table +2022-03-14 14:06:20 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-14 14:07:25 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-14 14:07:25 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220315 10:11:30 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-15 10:11:31 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 522 ... +2022-03-15 10:11:31 0 [Note] InnoDB: Uses event mutexes +2022-03-15 10:11:31 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-15 10:11:31 0 [Note] InnoDB: Number of pools: 1 +2022-03-15 10:11:31 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-15 10:11:31 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-15 10:11:31 0 [Note] InnoDB: Using Linux native AIO +2022-03-15 10:11:31 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-15 10:11:31 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-15 10:11:31 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57816166,57816166 +2022-03-15 10:11:31 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-15 10:11:31 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-15 10:11:31 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-15 10:11:31 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-15 10:11:31 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-15 10:11:31 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-15 10:11:31 0 [Note] InnoDB: 10.5.13 started; log sequence number 57816415; transaction id 169223 +2022-03-15 10:11:31 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-15 10:11:31 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-15 10:11:31 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-15 10:11:31 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-15 10:11:31 0 [Note] Starting crash recovery... +2022-03-15 10:11:31 0 [Note] Crash recovery finished. +2022-03-15 10:11:31 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 10:11:31 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 10:11:31 0 [Note] Server socket created on IP: '::'. +2022-03-15 10:11:31 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-15 10:11:31 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-15 10:11:31 0 [Note] Reading of all Master_info entries succeeded +2022-03-15 10:11:31 0 [Note] Added new Master_info '' to hash table +2022-03-15 10:11:31 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-15 10:11:37 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 10:11:37 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220315 13:49:09 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-15 13:49:10 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 527 ... +2022-03-15 13:49:10 0 [Note] InnoDB: Uses event mutexes +2022-03-15 13:49:10 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-15 13:49:10 0 [Note] InnoDB: Number of pools: 1 +2022-03-15 13:49:10 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-15 13:49:10 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-15 13:49:10 0 [Note] InnoDB: Using Linux native AIO +2022-03-15 13:49:10 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-15 13:49:10 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-15 13:49:10 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57816680,57816680 +2022-03-15 13:49:10 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-15 13:49:10 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-15 13:49:10 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-15 13:49:10 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-15 13:49:10 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-15 13:49:10 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-15 13:49:10 0 [Note] InnoDB: 10.5.13 started; log sequence number 57816929; transaction id 169223 +2022-03-15 13:49:10 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-15 13:49:10 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-15 13:49:10 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-15 13:49:10 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-15 13:49:10 0 [Note] Starting crash recovery... +2022-03-15 13:49:10 0 [Note] Crash recovery finished. +2022-03-15 13:49:10 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 13:49:10 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 13:49:10 0 [Note] Server socket created on IP: '::'. +2022-03-15 13:49:10 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-15 13:49:10 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-15 13:49:10 0 [Note] Reading of all Master_info entries succeeded +2022-03-15 13:49:10 0 [Note] Added new Master_info '' to hash table +2022-03-15 13:49:10 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-15 13:50:15 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-15 13:50:15 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-16 17:13:10 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-16 17:13:10 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-16 17:13:10 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-16 17:13:10 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220317 15:44:40 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-17 15:44:41 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-17 15:44:41 0 [Note] InnoDB: Uses event mutexes +2022-03-17 15:44:41 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-17 15:44:41 0 [Note] InnoDB: Number of pools: 1 +2022-03-17 15:44:41 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-17 15:44:41 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-17 15:44:41 0 [Note] InnoDB: Using Linux native AIO +2022-03-17 15:44:41 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-17 15:44:41 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-17 15:44:41 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57817194,57817194 +2022-03-17 15:44:41 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-17 15:44:41 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-17 15:44:41 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-17 15:44:41 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-17 15:44:41 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-17 15:44:41 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-17 15:44:41 0 [Note] InnoDB: 10.5.13 started; log sequence number 57817443; transaction id 169223 +2022-03-17 15:44:41 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-17 15:44:41 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-17 15:44:41 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-17 15:44:41 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-17 15:44:41 0 [Note] Starting crash recovery... +2022-03-17 15:44:41 0 [Note] Crash recovery finished. +2022-03-17 15:44:41 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 15:44:41 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 15:44:41 0 [Note] Server socket created on IP: '::'. +2022-03-17 15:44:41 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-17 15:44:41 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-17 15:44:41 0 [Note] Reading of all Master_info entries succeeded +2022-03-17 15:44:41 0 [Note] Added new Master_info '' to hash table +2022-03-17 15:44:41 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-17 15:44:47 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 15:44:47 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 18:55:39 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 18:55:39 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 18:55:39 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-17 18:55:39 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-21 12:41:09 6 [Warning] IP address '192.168.1.22' could not be resolved: Name does not resolve +2022-03-21 12:41:09 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-21 12:41:09 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-21 12:41:09 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-21 12:41:09 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-21 12:41:10 6 [ERROR] Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100148, now running 100513. Please use mariadb-upgrade to fix this error +220322 11:12:34 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-22 11:12:34 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-22 11:12:34 0 [Note] InnoDB: Uses event mutexes +2022-03-22 11:12:34 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-22 11:12:34 0 [Note] InnoDB: Number of pools: 1 +2022-03-22 11:12:34 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-22 11:12:34 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-22 11:12:34 0 [Note] InnoDB: Using Linux native AIO +2022-03-22 11:12:34 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-22 11:12:34 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-22 11:12:34 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57817708,57817708 +2022-03-22 11:12:35 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-22 11:12:35 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-22 11:12:35 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-22 11:12:35 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-22 11:12:35 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-22 11:12:35 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-22 11:12:35 0 [Note] InnoDB: 10.5.13 started; log sequence number 57817957; transaction id 169223 +2022-03-22 11:12:35 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-22 11:12:35 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-22 11:12:35 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-22 11:12:35 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-22 11:12:35 0 [Note] Starting crash recovery... +2022-03-22 11:12:35 0 [Note] Crash recovery finished. +2022-03-22 11:12:35 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-22 11:12:35 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-22 11:12:35 0 [Note] Server socket created on IP: '::'. +2022-03-22 11:12:35 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-22 11:12:35 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-22 11:12:35 0 [Note] Reading of all Master_info entries succeeded +2022-03-22 11:12:35 0 [Note] Added new Master_info '' to hash table +2022-03-22 11:12:35 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-22 11:13:40 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-22 11:13:40 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220323 10:16:20 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-23 10:16:20 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-03-23 10:16:20 0 [Note] InnoDB: Uses event mutexes +2022-03-23 10:16:20 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-23 10:16:20 0 [Note] InnoDB: Number of pools: 1 +2022-03-23 10:16:20 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-23 10:16:20 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-23 10:16:20 0 [Note] InnoDB: Using Linux native AIO +2022-03-23 10:16:20 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-23 10:16:20 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-23 10:16:20 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57818222,57818222 +2022-03-23 10:16:20 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-23 10:16:20 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-23 10:16:20 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-23 10:16:20 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-23 10:16:20 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-23 10:16:20 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-23 10:16:20 0 [Note] InnoDB: 10.5.13 started; log sequence number 57818471; transaction id 169223 +2022-03-23 10:16:20 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-23 10:16:20 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-23 10:16:20 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-23 10:16:20 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-23 10:16:20 0 [Note] Starting crash recovery... +2022-03-23 10:16:20 0 [Note] Crash recovery finished. +2022-03-23 10:16:20 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 10:16:20 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 10:16:20 0 [Note] Server socket created on IP: '::'. +2022-03-23 10:16:20 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-23 10:16:20 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-23 10:16:20 0 [Note] Reading of all Master_info entries succeeded +2022-03-23 10:16:20 0 [Note] Added new Master_info '' to hash table +2022-03-23 10:16:20 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-23 10:17:26 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 10:17:26 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 18:34:50 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 18:34:50 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 18:34:50 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-23 18:34:50 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220327 10:35:53 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-03-27 10:35:53 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-03-27 10:35:53 0 [Note] InnoDB: Uses event mutexes +2022-03-27 10:35:53 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-03-27 10:35:53 0 [Note] InnoDB: Number of pools: 1 +2022-03-27 10:35:53 0 [Note] InnoDB: Using generic crc32 instructions +2022-03-27 10:35:53 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-03-27 10:35:53 0 [Note] InnoDB: Using Linux native AIO +2022-03-27 10:35:53 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-03-27 10:35:53 0 [Note] InnoDB: Completed initialization of buffer pool +2022-03-27 10:35:53 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57818736,57818736 +2022-03-27 10:35:53 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000069', position 1033 +2022-03-27 10:35:53 0 [Note] InnoDB: 128 rollback segments are active. +2022-03-27 10:35:53 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-03-27 10:35:53 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-03-27 10:35:53 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-03-27 10:35:53 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-03-27 10:35:53 0 [Note] InnoDB: 10.5.13 started; log sequence number 57818985; transaction id 169223 +2022-03-27 10:35:53 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-03-27 10:35:53 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-03-27 10:35:53 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-03-27 10:35:53 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-03-27 10:35:53 0 [Note] Starting crash recovery... +2022-03-27 10:35:53 0 [Note] Crash recovery finished. +2022-03-27 10:35:53 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-27 10:35:53 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-27 10:35:53 0 [Note] Server socket created on IP: '::'. +2022-03-27 10:35:53 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-03-27 10:35:53 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-03-27 10:35:53 0 [Note] Reading of all Master_info entries succeeded +2022-03-27 10:35:53 0 [Note] Added new Master_info '' to hash table +2022-03-27 10:35:53 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-03-27 10:35:59 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-27 10:35:59 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] IP address '192.168.1.22' could not be resolved: Name does not resolve +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-03-28 15:31:40 6 [ERROR] Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100148, now running 100513. Please use mariadb-upgrade to fix this error +2022-03-28 16:38:14 7 [Warning] IP address '192.168.1.47' could not be resolved: Name does not resolve +2022-03-28 18:50:00 6 [Warning] Aborted connection 6 to db: 'main_database' user: 'aplication' host: '192.168.1.22' (Got timeout reading communication packets) +2022-03-29 12:09:12 9 [Warning] IP address '192.168.1.44' could not be resolved: Name does not resolve +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-07 13:44:59 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220409 10:36:30 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-04-09 10:36:30 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-04-09 10:36:30 0 [Note] InnoDB: Uses event mutexes +2022-04-09 10:36:30 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-04-09 10:36:30 0 [Note] InnoDB: Number of pools: 1 +2022-04-09 10:36:30 0 [Note] InnoDB: Using generic crc32 instructions +2022-04-09 10:36:30 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-04-09 10:36:30 0 [Note] InnoDB: Using Linux native AIO +2022-04-09 10:36:30 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-04-09 10:36:30 0 [Note] InnoDB: Completed initialization of buffer pool +2022-04-09 10:36:30 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57819250,57819250 +2022-04-09 10:36:31 0 [Note] InnoDB: Starting final batch to recover 6 pages from redo log. +2022-04-09 10:36:31 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000081', position 3076 +2022-04-09 10:36:31 0 [Note] InnoDB: 128 rollback segments are active. +2022-04-09 10:36:31 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-04-09 10:36:31 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-04-09 10:36:31 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-04-09 10:36:31 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-04-09 10:36:31 0 [Note] InnoDB: 10.5.13 started; log sequence number 57830013; transaction id 169258 +2022-04-09 10:36:31 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-04-09 10:36:31 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-04-09 10:36:31 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-04-09 10:36:31 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-04-09 10:36:31 0 [Note] Starting crash recovery... +2022-04-09 10:36:31 0 [Note] Crash recovery finished. +2022-04-09 10:36:31 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-09 10:36:31 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-09 10:36:31 0 [Note] Server socket created on IP: '::'. +2022-04-09 10:36:31 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-04-09 10:36:31 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-04-09 10:36:31 0 [Note] Reading of all Master_info entries succeeded +2022-04-09 10:36:31 0 [Note] Added new Master_info '' to hash table +2022-04-09 10:36:31 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-04-09 10:36:36 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-09 10:36:36 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-10 12:44:57 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-10 12:44:57 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-10 12:44:57 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-10 12:44:57 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220411 11:02:26 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-04-11 11:02:26 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-04-11 11:02:26 0 [Note] InnoDB: Uses event mutexes +2022-04-11 11:02:26 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-04-11 11:02:26 0 [Note] InnoDB: Number of pools: 1 +2022-04-11 11:02:26 0 [Note] InnoDB: Using generic crc32 instructions +2022-04-11 11:02:26 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-04-11 11:02:26 0 [Note] InnoDB: Using Linux native AIO +2022-04-11 11:02:26 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-04-11 11:02:26 0 [Note] InnoDB: Completed initialization of buffer pool +2022-04-11 11:02:26 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57830262,57830262 +2022-04-11 11:02:26 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000081', position 3076 +2022-04-11 11:02:26 0 [Note] InnoDB: 128 rollback segments are active. +2022-04-11 11:02:26 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-04-11 11:02:26 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-04-11 11:02:26 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-04-11 11:02:26 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-04-11 11:02:26 0 [Note] InnoDB: 10.5.13 started; log sequence number 57830527; transaction id 169258 +2022-04-11 11:02:26 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-04-11 11:02:26 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-04-11 11:02:26 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-04-11 11:02:26 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-04-11 11:02:26 0 [Note] Starting crash recovery... +2022-04-11 11:02:26 0 [Note] Crash recovery finished. +2022-04-11 11:02:27 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-11 11:02:27 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-11 11:02:27 0 [Note] Server socket created on IP: '::'. +2022-04-11 11:02:27 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-04-11 11:02:27 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-04-11 11:02:27 0 [Note] Reading of all Master_info entries succeeded +2022-04-11 11:02:27 0 [Note] Added new Master_info '' to hash table +2022-04-11 11:02:27 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-04-11 11:03:32 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-11 11:03:32 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-12 7:10:06 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-12 7:10:06 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-12 7:10:06 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-12 7:10:06 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 10:10:20 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-04-13 10:10:22 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 10:10:22 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 10:10:22 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 10:10:22 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220413 11:12:34 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-04-13 11:12:34 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-04-13 11:12:34 0 [Note] InnoDB: Uses event mutexes +2022-04-13 11:12:34 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-04-13 11:12:34 0 [Note] InnoDB: Number of pools: 1 +2022-04-13 11:12:34 0 [Note] InnoDB: Using generic crc32 instructions +2022-04-13 11:12:34 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-04-13 11:12:34 0 [Note] InnoDB: Using Linux native AIO +2022-04-13 11:12:34 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-04-13 11:12:34 0 [Note] InnoDB: Completed initialization of buffer pool +2022-04-13 11:12:34 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57830776,57830776 +2022-04-13 11:12:35 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000081', position 3076 +2022-04-13 11:12:35 0 [Note] InnoDB: 128 rollback segments are active. +2022-04-13 11:12:35 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-04-13 11:12:35 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-04-13 11:12:35 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-04-13 11:12:35 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-04-13 11:12:35 0 [Note] InnoDB: 10.5.13 started; log sequence number 57831041; transaction id 169258 +2022-04-13 11:12:35 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-04-13 11:12:35 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-04-13 11:12:35 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-04-13 11:12:35 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-04-13 11:12:35 0 [Note] Starting crash recovery... +2022-04-13 11:12:35 0 [Note] Crash recovery finished. +2022-04-13 11:12:35 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:12:35 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:12:35 0 [Note] Server socket created on IP: '::'. +2022-04-13 11:12:35 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-04-13 11:12:35 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-04-13 11:12:35 0 [Note] Reading of all Master_info entries succeeded +2022-04-13 11:12:35 0 [Note] Added new Master_info '' to hash table +2022-04-13 11:12:35 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-04-13 11:12:41 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:12:41 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:26:20 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:26:20 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:26:20 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 11:26:20 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 12:58:11 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-04-13 12:58:13 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 12:58:13 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 12:58:13 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-13 12:58:13 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220422 01:43:24 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-04-22 1:43:24 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-04-22 1:43:24 0 [Note] InnoDB: Uses event mutexes +2022-04-22 1:43:24 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-04-22 1:43:24 0 [Note] InnoDB: Number of pools: 1 +2022-04-22 1:43:24 0 [Note] InnoDB: Using generic crc32 instructions +2022-04-22 1:43:24 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-04-22 1:43:24 0 [Note] InnoDB: Using Linux native AIO +2022-04-22 1:43:24 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-04-22 1:43:24 0 [Note] InnoDB: Completed initialization of buffer pool +2022-04-22 1:43:24 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57831290,57831290 +2022-04-22 1:43:25 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-04-22 1:43:25 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000084', position 803 +2022-04-22 1:43:25 0 [Note] InnoDB: 128 rollback segments are active. +2022-04-22 1:43:25 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-04-22 1:43:25 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-04-22 1:43:25 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-04-22 1:43:25 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-04-22 1:43:25 0 [Note] InnoDB: 10.5.13 started; log sequence number 57832184; transaction id 169269 +2022-04-22 1:43:25 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-04-22 1:43:25 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-04-22 1:43:25 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-04-22 1:43:25 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-04-22 1:43:25 0 [Note] Starting crash recovery... +2022-04-22 1:43:25 0 [Note] Crash recovery finished. +2022-04-22 1:43:25 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 1:43:25 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 1:43:25 0 [Note] Server socket created on IP: '::'. +2022-04-22 1:43:25 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-04-22 1:43:25 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-04-22 1:43:25 0 [Note] Reading of all Master_info entries succeeded +2022-04-22 1:43:25 0 [Note] Added new Master_info '' to hash table +2022-04-22 1:43:25 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-04-22 1:44:30 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 1:44:30 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 10:59:09 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 10:59:09 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 10:59:09 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-22 10:59:09 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220425 10:44:44 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-04-25 10:44:44 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-04-25 10:44:44 0 [Note] InnoDB: Uses event mutexes +2022-04-25 10:44:44 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-04-25 10:44:44 0 [Note] InnoDB: Number of pools: 1 +2022-04-25 10:44:44 0 [Note] InnoDB: Using generic crc32 instructions +2022-04-25 10:44:44 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-04-25 10:44:44 0 [Note] InnoDB: Using Linux native AIO +2022-04-25 10:44:44 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-04-25 10:44:44 0 [Note] InnoDB: Completed initialization of buffer pool +2022-04-25 10:44:44 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57832433,57832433 +2022-04-25 10:44:44 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000084', position 803 +2022-04-25 10:44:44 0 [Note] InnoDB: 128 rollback segments are active. +2022-04-25 10:44:44 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-04-25 10:44:44 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-04-25 10:44:44 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-04-25 10:44:44 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-04-25 10:44:44 0 [Note] InnoDB: 10.5.13 started; log sequence number 57832698; transaction id 169269 +2022-04-25 10:44:44 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-04-25 10:44:44 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-04-25 10:44:44 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-04-25 10:44:44 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-04-25 10:44:44 0 [Note] Starting crash recovery... +2022-04-25 10:44:44 0 [Note] Crash recovery finished. +2022-04-25 10:44:44 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 10:44:44 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 10:44:44 0 [Note] Server socket created on IP: '::'. +2022-04-25 10:44:44 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-04-25 10:44:44 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-04-25 10:44:44 0 [Note] Reading of all Master_info entries succeeded +2022-04-25 10:44:44 0 [Note] Added new Master_info '' to hash table +2022-04-25 10:44:44 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-04-25 10:44:50 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 10:44:50 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 11:24:40 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 11:24:40 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 11:24:40 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 11:24:40 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 15:18:48 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-04-25 15:18:50 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 15:18:50 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 15:18:50 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 15:18:50 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-25 17:15:39 12 [Warning] IP address '192.168.1.89' could not be resolved: Name does not resolve +2022-04-25 17:15:39 12 [ERROR] Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100148, now running 100513. Please use mariadb-upgrade to fix this error +2022-04-25 18:27:17 15 [Warning] IP address '192.168.1.72' could not be resolved: Name does not resolve +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-26 17:25:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-04-27 21:43:19 19 [Warning] Aborted connection 19 to db: 'main_database' user: 'aplication' host: '192.168.1.72' (Got timeout reading communication packets) +220502 11:27:06 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-02 11:27:06 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-02 11:27:06 0 [Note] InnoDB: Uses event mutexes +2022-05-02 11:27:06 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-02 11:27:06 0 [Note] InnoDB: Number of pools: 1 +2022-05-02 11:27:06 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-02 11:27:06 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-02 11:27:06 0 [Note] InnoDB: Using Linux native AIO +2022-05-02 11:27:06 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-02 11:27:06 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-02 11:27:06 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57832947,57832947 +2022-05-02 11:27:06 0 [Note] InnoDB: Starting final batch to recover 129 pages from redo log. +2022-05-02 11:27:07 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000086', position 7970 +2022-05-02 11:27:07 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-02 11:27:07 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-02 11:27:07 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-02 11:27:07 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-02 11:27:07 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-02 11:27:07 0 [Note] InnoDB: 10.5.13 started; log sequence number 57850582; transaction id 169331 +2022-05-02 11:27:07 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-02 11:27:07 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-02 11:27:07 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-02 11:27:07 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-02 11:27:07 0 [Note] Starting crash recovery... +2022-05-02 11:27:07 0 [Note] Crash recovery finished. +2022-05-02 11:27:07 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:27:07 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:27:07 0 [Note] Server socket created on IP: '::'. +2022-05-02 11:27:07 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-02 11:27:07 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-02 11:27:07 0 [Note] Reading of all Master_info entries succeeded +2022-05-02 11:27:07 0 [Note] Added new Master_info '' to hash table +2022-05-02 11:27:07 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-02 11:27:12 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:27:12 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:36:46 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:36:46 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:36:46 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-02 11:36:46 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-03 11:46:28 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-05-03 11:46:30 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-03 11:46:30 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-03 11:46:30 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-03 11:46:30 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-03 16:07:09 10 [Warning] Access denied for user 'Application'@'192.168.1.42' (using password: YES) +2022-05-03 16:08:30 11 [Warning] Access denied for user 'application'@'192.168.1.42' (using password: YES) +2022-05-03 16:08:53 12 [Warning] Access denied for user 'application'@'192.168.1.42' (using password: YES) +2022-05-03 16:10:44 13 [Warning] Access denied for user 'application'@'192.168.1.42' (using password: YES) +2022-05-03 16:12:20 16 [Warning] Access denied for user 'application'@'192.168.1.42' (using password: YES) +2022-05-03 16:13:11 17 [Warning] Access denied for user 'application'@'192.168.1.42' (using password: YES) +2022-05-03 16:14:24 18 [Warning] Access denied for user 'aplication'@'192.168.1.42' (using password: YES) +2022-05-03 16:14:57 19 [Warning] Access denied for user 'aplication'@'192.168.1.42' (using password: YES) +220504 11:36:31 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-04 11:36:31 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-04 11:36:31 0 [Note] InnoDB: Uses event mutexes +2022-05-04 11:36:31 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-04 11:36:31 0 [Note] InnoDB: Number of pools: 1 +2022-05-04 11:36:31 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-04 11:36:31 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-04 11:36:31 0 [Note] InnoDB: Using Linux native AIO +2022-05-04 11:36:31 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-04 11:36:31 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-04 11:36:31 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57850831,57850831 +2022-05-04 11:36:32 0 [Note] InnoDB: Starting final batch to recover 10 pages from redo log. +2022-05-04 11:36:32 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000087', position 1226 +2022-05-04 11:36:32 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-04 11:36:32 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-04 11:36:32 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-04 11:36:32 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-04 11:36:32 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-04 11:36:32 0 [Note] InnoDB: 10.5.13 started; log sequence number 57852093; transaction id 169344 +2022-05-04 11:36:32 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-04 11:36:32 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-04 11:36:32 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-04 11:36:32 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-04 11:36:32 0 [Note] Starting crash recovery... +2022-05-04 11:36:32 0 [Note] Crash recovery finished. +2022-05-04 11:36:32 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 11:36:32 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 11:36:32 0 [Note] Server socket created on IP: '::'. +2022-05-04 11:36:32 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-04 11:36:32 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-04 11:36:32 0 [Note] Reading of all Master_info entries succeeded +2022-05-04 11:36:32 0 [Note] Added new Master_info '' to hash table +2022-05-04 11:36:32 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-04 11:36:37 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 11:36:37 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 12:53:10 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 12:53:10 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 12:53:10 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-04 12:53:10 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-11 15:39:32 6 [Warning] IP address '192.168.1.72' could not be resolved: Name does not resolve +2022-05-11 15:39:32 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-11 15:39:32 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-11 15:39:32 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-11 15:39:32 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-11 15:39:32 6 [ERROR] Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100148, now running 100513. Please use mariadb-upgrade to fix this error +2022-05-11 17:23:19 6 [Warning] Aborted connection 6 to db: 'main_database' user: 'aplication' host: '192.168.1.72' (Got an error reading communication packets) +220512 14:53:29 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-12 14:53:30 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-05-12 14:53:30 0 [Note] InnoDB: Uses event mutexes +2022-05-12 14:53:30 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-12 14:53:30 0 [Note] InnoDB: Number of pools: 1 +2022-05-12 14:53:30 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-12 14:53:30 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-12 14:53:30 0 [Note] InnoDB: Using Linux native AIO +2022-05-12 14:53:30 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-12 14:53:30 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-12 14:53:30 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57852342,57852342 +2022-05-12 14:53:30 0 [Note] InnoDB: Starting final batch to recover 3 pages from redo log. +2022-05-12 14:53:31 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000088', position 1579 +2022-05-12 14:53:31 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-12 14:53:31 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-12 14:53:31 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-12 14:53:31 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-12 14:53:31 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-12 14:53:31 0 [Note] InnoDB: 10.5.13 started; log sequence number 57853827; transaction id 169360 +2022-05-12 14:53:31 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-12 14:53:31 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-12 14:53:31 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-12 14:53:31 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-12 14:53:31 0 [Note] Starting crash recovery... +2022-05-12 14:53:31 0 [Note] Crash recovery finished. +2022-05-12 14:53:31 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 14:53:31 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 14:53:31 0 [Note] Server socket created on IP: '::'. +2022-05-12 14:53:31 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-12 14:53:31 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-12 14:53:31 0 [Note] Reading of all Master_info entries succeeded +2022-05-12 14:53:31 0 [Note] Added new Master_info '' to hash table +2022-05-12 14:53:31 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-12 14:54:39 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 14:54:39 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 17:36:24 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 17:36:24 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 17:36:24 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 17:36:24 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 19:48:51 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-05-12 19:48:58 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 19:48:58 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 19:48:58 6 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-12 19:48:58 6 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220516 13:34:18 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-16 13:34:19 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-16 13:34:19 0 [Note] InnoDB: Uses event mutexes +2022-05-16 13:34:19 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-16 13:34:19 0 [Note] InnoDB: Number of pools: 1 +2022-05-16 13:34:19 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-16 13:34:19 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-16 13:34:19 0 [Note] InnoDB: Using Linux native AIO +2022-05-16 13:34:19 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-16 13:34:19 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-16 13:34:19 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57854092,57854092 +2022-05-16 13:34:19 0 [Note] InnoDB: Starting final batch to recover 6 pages from redo log. +2022-05-16 13:34:20 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000089', position 1343 +2022-05-16 13:34:20 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-16 13:34:20 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-16 13:34:20 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-16 13:34:20 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-16 13:34:20 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-16 13:34:20 0 [Note] InnoDB: 10.5.13 started; log sequence number 57855652; transaction id 169375 +2022-05-16 13:34:20 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-16 13:34:20 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-16 13:34:20 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-16 13:34:20 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-16 13:34:20 0 [Note] Starting crash recovery... +2022-05-16 13:34:20 0 [Note] Crash recovery finished. +2022-05-16 13:34:20 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:34:20 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:34:20 0 [Note] Server socket created on IP: '::'. +2022-05-16 13:34:20 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-16 13:34:20 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-16 13:34:20 0 [Note] Reading of all Master_info entries succeeded +2022-05-16 13:34:20 0 [Note] Added new Master_info '' to hash table +2022-05-16 13:34:20 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-16 13:34:25 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:34:25 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220516 13:38:39 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-16 13:38:39 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-16 13:38:39 0 [Note] InnoDB: Uses event mutexes +2022-05-16 13:38:39 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-16 13:38:39 0 [Note] InnoDB: Number of pools: 1 +2022-05-16 13:38:39 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-16 13:38:39 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-16 13:38:40 0 [Note] InnoDB: Using Linux native AIO +2022-05-16 13:38:40 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-16 13:38:40 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-16 13:38:40 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57855901,57855901 +2022-05-16 13:38:40 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000089', position 1343 +2022-05-16 13:38:40 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-16 13:38:40 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-16 13:38:40 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-16 13:38:40 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-16 13:38:40 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-16 13:38:40 0 [Note] InnoDB: 10.5.13 started; log sequence number 57856166; transaction id 169375 +2022-05-16 13:38:40 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-16 13:38:40 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-16 13:38:40 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-16 13:38:40 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-16 13:38:40 0 [Note] Starting crash recovery... +2022-05-16 13:38:40 0 [Note] Crash recovery finished. +2022-05-16 13:38:40 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:38:40 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:38:40 0 [Note] Server socket created on IP: '::'. +2022-05-16 13:38:40 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-16 13:38:40 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-16 13:38:40 0 [Note] Reading of all Master_info entries succeeded +2022-05-16 13:38:40 0 [Note] Added new Master_info '' to hash table +2022-05-16 13:38:40 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-16 13:38:45 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:38:45 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:40:53 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:40:53 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:40:53 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 13:40:53 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220516 14:14:10 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-16 14:14:11 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-16 14:14:11 0 [Note] InnoDB: Uses event mutexes +2022-05-16 14:14:11 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-16 14:14:11 0 [Note] InnoDB: Number of pools: 1 +2022-05-16 14:14:11 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-16 14:14:11 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-16 14:14:11 0 [Note] InnoDB: Using Linux native AIO +2022-05-16 14:14:11 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-16 14:14:11 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-16 14:14:11 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57856415,57856415 +2022-05-16 14:14:11 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000089', position 1343 +2022-05-16 14:14:11 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-16 14:14:11 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-16 14:14:11 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-16 14:14:11 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-16 14:14:11 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-16 14:14:11 0 [Note] InnoDB: 10.5.13 started; log sequence number 57856680; transaction id 169375 +2022-05-16 14:14:11 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-16 14:14:11 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-16 14:14:11 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-16 14:14:11 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-16 14:14:11 0 [Note] Starting crash recovery... +2022-05-16 14:14:11 0 [Note] Crash recovery finished. +2022-05-16 14:14:11 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:14:11 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:14:11 0 [Note] Server socket created on IP: '::'. +2022-05-16 14:14:11 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-16 14:14:11 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-16 14:14:11 0 [Note] Reading of all Master_info entries succeeded +2022-05-16 14:14:11 0 [Note] Added new Master_info '' to hash table +2022-05-16 14:14:11 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-16 14:15:20 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:15:21 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220516 14:22:55 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-16 14:22:56 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-05-16 14:22:56 0 [Note] InnoDB: Uses event mutexes +2022-05-16 14:22:56 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-16 14:22:56 0 [Note] InnoDB: Number of pools: 1 +2022-05-16 14:22:56 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-16 14:22:56 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-16 14:22:56 0 [Note] InnoDB: Using Linux native AIO +2022-05-16 14:22:56 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-16 14:22:56 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-16 14:22:56 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57856929,57856929 +2022-05-16 14:22:56 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000089', position 1343 +2022-05-16 14:22:56 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-16 14:22:56 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-16 14:22:56 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-16 14:22:56 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-16 14:22:56 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-16 14:22:56 0 [Note] InnoDB: 10.5.13 started; log sequence number 57857194; transaction id 169375 +2022-05-16 14:22:56 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-16 14:22:56 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-16 14:22:56 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-16 14:22:56 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-16 14:22:56 0 [Note] Starting crash recovery... +2022-05-16 14:22:56 0 [Note] Crash recovery finished. +2022-05-16 14:22:56 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:22:56 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:22:56 0 [Note] Server socket created on IP: '::'. +2022-05-16 14:22:56 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-16 14:22:56 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-16 14:22:56 0 [Note] Reading of all Master_info entries succeeded +2022-05-16 14:22:56 0 [Note] Added new Master_info '' to hash table +2022-05-16 14:22:56 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-16 14:23:02 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 14:23:02 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:19:04 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:19:04 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:19:04 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:19:04 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:29:33 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-05-16 16:29:52 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:29:52 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:29:52 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-16 16:29:52 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 12:47:06 5 [Warning] Aborted connection 5 to db: 'main_database' user: 'aplication' host: 'nodered_module_node-red_1.nodered_module_backend' (Got timeout reading communication packets) +2022-05-17 12:48:09 4 [Warning] Aborted connection 4 to db: 'main_database' user: 'aplication' host: 'nodered_module_node-red_1.nodered_module_backend' (Got timeout reading communication packets) +220517 12:59:32 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-17 12:59:33 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-17 12:59:33 0 [Note] InnoDB: Uses event mutexes +2022-05-17 12:59:33 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-17 12:59:33 0 [Note] InnoDB: Number of pools: 1 +2022-05-17 12:59:33 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-17 12:59:33 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-17 12:59:33 0 [Note] InnoDB: Using Linux native AIO +2022-05-17 12:59:33 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-17 12:59:33 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-17 12:59:33 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57857443,57857443 +2022-05-17 12:59:33 0 [Note] InnoDB: Starting final batch to recover 6 pages from redo log. +2022-05-17 12:59:34 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-17 12:59:34 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-17 12:59:34 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-17 12:59:34 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-17 12:59:34 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-17 12:59:34 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-17 12:59:34 0 [Note] InnoDB: 10.5.13 started; log sequence number 57860427; transaction id 169400 +2022-05-17 12:59:34 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-17 12:59:34 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-17 12:59:34 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-17 12:59:34 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-17 12:59:34 0 [Note] Starting crash recovery... +2022-05-17 12:59:34 0 [Note] Crash recovery finished. +2022-05-17 12:59:34 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 12:59:34 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 12:59:34 0 [Note] Server socket created on IP: '::'. +2022-05-17 12:59:34 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-17 12:59:34 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-17 12:59:34 0 [Note] Reading of all Master_info entries succeeded +2022-05-17 12:59:34 0 [Note] Added new Master_info '' to hash table +2022-05-17 12:59:34 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-17 13:00:39 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 13:00:39 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 13:17:03 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 13:17:03 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 13:17:03 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 13:17:03 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 14:27:31 5 [Warning] Aborted connection 5 to db: 'main_database' user: 'aplication' host: 'nodered_module_node-red_1.nodered_module_backend' (Got timeout reading communication packets) +2022-05-17 14:27:35 4 [Warning] Aborted connection 4 to db: 'main_database' user: 'aplication' host: 'nodered_module_node-red_1.nodered_module_backend' (Got timeout reading communication packets) +220517 14:33:22 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-17 14:33:22 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-17 14:33:22 0 [Note] InnoDB: Uses event mutexes +2022-05-17 14:33:22 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-17 14:33:22 0 [Note] InnoDB: Number of pools: 1 +2022-05-17 14:33:22 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-17 14:33:22 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-17 14:33:23 0 [Note] InnoDB: Using Linux native AIO +2022-05-17 14:33:23 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-17 14:33:23 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-17 14:33:23 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57860692,57860692 +2022-05-17 14:33:23 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-17 14:33:23 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-17 14:33:23 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-17 14:33:23 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-17 14:33:23 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-17 14:33:23 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-17 14:33:23 0 [Note] InnoDB: 10.5.13 started; log sequence number 57860941; transaction id 169400 +2022-05-17 14:33:23 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-17 14:33:23 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-17 14:33:23 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-17 14:33:23 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-17 14:33:23 0 [Note] Starting crash recovery... +2022-05-17 14:33:23 0 [Note] Crash recovery finished. +2022-05-17 14:33:23 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 14:33:23 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 14:33:23 0 [Note] Server socket created on IP: '::'. +2022-05-17 14:33:23 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-17 14:33:23 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-17 14:33:23 0 [Note] Reading of all Master_info entries succeeded +2022-05-17 14:33:23 0 [Note] Added new Master_info '' to hash table +2022-05-17 14:33:23 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-17 14:33:29 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 14:33:29 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220517 15:02:39 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-17 15:02:39 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-17 15:02:39 0 [Note] InnoDB: Uses event mutexes +2022-05-17 15:02:39 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-17 15:02:39 0 [Note] InnoDB: Number of pools: 1 +2022-05-17 15:02:39 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-17 15:02:39 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-17 15:02:39 0 [Note] InnoDB: Using Linux native AIO +2022-05-17 15:02:39 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-17 15:02:39 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-17 15:02:39 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57861206,57861206 +2022-05-17 15:02:40 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-17 15:02:40 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-17 15:02:40 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-17 15:02:40 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-17 15:02:40 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-17 15:02:40 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-17 15:02:40 0 [Note] InnoDB: 10.5.13 started; log sequence number 57861455; transaction id 169400 +2022-05-17 15:02:40 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-17 15:02:40 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-17 15:02:40 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-17 15:02:40 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-17 15:02:40 0 [Note] Starting crash recovery... +2022-05-17 15:02:40 0 [Note] Crash recovery finished. +2022-05-17 15:02:40 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:02:40 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:02:40 0 [Note] Server socket created on IP: '::'. +2022-05-17 15:02:40 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-17 15:02:40 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-17 15:02:40 0 [Note] Reading of all Master_info entries succeeded +2022-05-17 15:02:40 0 [Note] Added new Master_info '' to hash table +2022-05-17 15:02:40 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-17 15:02:45 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:02:45 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220517 15:20:53 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-17 15:20:53 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-17 15:20:53 0 [Note] InnoDB: Uses event mutexes +2022-05-17 15:20:53 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-17 15:20:53 0 [Note] InnoDB: Number of pools: 1 +2022-05-17 15:20:53 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-17 15:20:53 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-17 15:20:53 0 [Note] InnoDB: Using Linux native AIO +2022-05-17 15:20:53 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-17 15:20:53 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-17 15:20:53 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57861720,57861720 +2022-05-17 15:20:53 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-17 15:20:53 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-17 15:20:53 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-17 15:20:53 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-17 15:20:53 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-17 15:20:53 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-17 15:20:53 0 [Note] InnoDB: 10.5.13 started; log sequence number 57861969; transaction id 169400 +2022-05-17 15:20:53 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-17 15:20:53 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-17 15:20:53 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-17 15:20:53 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-17 15:20:53 0 [Note] Starting crash recovery... +2022-05-17 15:20:53 0 [Note] Crash recovery finished. +2022-05-17 15:20:53 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:20:53 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:20:53 0 [Note] Server socket created on IP: '::'. +2022-05-17 15:20:53 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-17 15:20:53 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-17 15:20:53 0 [Note] Reading of all Master_info entries succeeded +2022-05-17 15:20:53 0 [Note] Added new Master_info '' to hash table +2022-05-17 15:20:53 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-17 15:21:59 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 15:21:59 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 17:43:52 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 17:43:52 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 17:43:52 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-17 17:43:52 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220519 10:28:40 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-19 10:28:41 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-19 10:28:41 0 [Note] InnoDB: Uses event mutexes +2022-05-19 10:28:41 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-19 10:28:41 0 [Note] InnoDB: Number of pools: 1 +2022-05-19 10:28:41 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-19 10:28:41 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-19 10:28:41 0 [Note] InnoDB: Using Linux native AIO +2022-05-19 10:28:41 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-19 10:28:41 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-19 10:28:41 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57862234,57862234 +2022-05-19 10:28:41 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-19 10:28:41 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-19 10:28:41 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-19 10:28:41 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-19 10:28:41 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-19 10:28:41 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-19 10:28:41 0 [Note] InnoDB: 10.5.13 started; log sequence number 57862483; transaction id 169400 +2022-05-19 10:28:41 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-19 10:28:41 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-19 10:28:41 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-19 10:28:41 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-19 10:28:41 0 [Note] Starting crash recovery... +2022-05-19 10:28:41 0 [Note] Crash recovery finished. +2022-05-19 10:28:41 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 10:28:41 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 10:28:41 0 [Note] Server socket created on IP: '::'. +2022-05-19 10:28:41 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-19 10:28:41 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-19 10:28:41 0 [Note] Reading of all Master_info entries succeeded +2022-05-19 10:28:41 0 [Note] Added new Master_info '' to hash table +2022-05-19 10:28:41 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-19 10:28:46 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 10:28:46 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:15:18 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:15:18 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:15:18 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:15:18 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220519 11:39:30 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-19 11:39:30 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-19 11:39:31 0 [Note] InnoDB: Uses event mutexes +2022-05-19 11:39:31 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-19 11:39:31 0 [Note] InnoDB: Number of pools: 1 +2022-05-19 11:39:31 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-19 11:39:31 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-19 11:39:31 0 [Note] InnoDB: Using Linux native AIO +2022-05-19 11:39:31 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-19 11:39:31 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-19 11:39:31 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57862748,57862748 +2022-05-19 11:39:31 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-19 11:39:31 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-19 11:39:31 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-19 11:39:31 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-19 11:39:31 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-19 11:39:31 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-19 11:39:31 0 [Note] InnoDB: 10.5.13 started; log sequence number 57862997; transaction id 169400 +2022-05-19 11:39:31 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-19 11:39:31 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-19 11:39:31 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-19 11:39:31 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-19 11:39:31 0 [Note] Starting crash recovery... +2022-05-19 11:39:31 0 [Note] Crash recovery finished. +2022-05-19 11:39:31 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:39:31 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:39:31 0 [Note] Server socket created on IP: '::'. +2022-05-19 11:39:31 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-19 11:39:31 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-19 11:39:31 0 [Note] Reading of all Master_info entries succeeded +2022-05-19 11:39:31 0 [Note] Added new Master_info '' to hash table +2022-05-19 11:39:31 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-19 11:39:37 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:39:37 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220519 11:48:18 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-19 11:48:19 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-19 11:48:19 0 [Note] InnoDB: Uses event mutexes +2022-05-19 11:48:19 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-19 11:48:19 0 [Note] InnoDB: Number of pools: 1 +2022-05-19 11:48:19 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-19 11:48:19 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-19 11:48:19 0 [Note] InnoDB: Using Linux native AIO +2022-05-19 11:48:19 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-19 11:48:19 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-19 11:48:19 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57863262,57863262 +2022-05-19 11:48:19 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-19 11:48:19 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-19 11:48:19 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-19 11:48:19 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-19 11:48:19 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-19 11:48:19 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-19 11:48:19 0 [Note] InnoDB: 10.5.13 started; log sequence number 57863511; transaction id 169400 +2022-05-19 11:48:19 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-19 11:48:19 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-19 11:48:19 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-19 11:48:19 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-19 11:48:19 0 [Note] Starting crash recovery... +2022-05-19 11:48:19 0 [Note] Crash recovery finished. +2022-05-19 11:48:19 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:48:19 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:48:19 0 [Note] Server socket created on IP: '::'. +2022-05-19 11:48:19 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-19 11:48:19 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-19 11:48:19 0 [Note] Reading of all Master_info entries succeeded +2022-05-19 11:48:19 0 [Note] Added new Master_info '' to hash table +2022-05-19 11:48:19 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-19 11:48:24 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 11:48:24 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +220519 12:04:56 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-19 12:04:57 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-05-19 12:04:57 0 [Note] InnoDB: Uses event mutexes +2022-05-19 12:04:57 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-19 12:04:57 0 [Note] InnoDB: Number of pools: 1 +2022-05-19 12:04:57 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-19 12:04:57 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-19 12:04:57 0 [Note] InnoDB: Using Linux native AIO +2022-05-19 12:04:57 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-19 12:04:57 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-19 12:04:57 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57863776,57863776 +2022-05-19 12:04:57 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000093', position 2421 +2022-05-19 12:04:57 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-19 12:04:57 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-19 12:04:57 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-19 12:04:57 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-19 12:04:57 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-19 12:04:57 0 [Note] InnoDB: 10.5.13 started; log sequence number 57864025; transaction id 169400 +2022-05-19 12:04:57 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-19 12:04:57 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-19 12:04:57 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-19 12:04:57 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-19 12:04:57 0 [Note] Starting crash recovery... +2022-05-19 12:04:57 0 [Note] Crash recovery finished. +2022-05-19 12:04:57 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:04:57 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:04:57 0 [Note] Server socket created on IP: '::'. +2022-05-19 12:04:57 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-19 12:04:57 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-19 12:04:57 0 [Note] Reading of all Master_info entries succeeded +2022-05-19 12:04:57 0 [Note] Added new Master_info '' to hash table +2022-05-19 12:04:57 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-19 12:06:03 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:06:03 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:17:58 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:17:58 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:17:58 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 12:17:58 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 13:06:22 6 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-05-19 13:06:24 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 13:06:24 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 13:06:24 7 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 13:06:24 7 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 18:24:53 11 [Warning] Aborted connection 11 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:24:53 9 [Warning] Aborted connection 9 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:24:53 12 [Warning] Aborted connection 12 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:24:53 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:24:53 10 [Warning] Aborted connection 10 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:27:33 16 [Warning] Aborted connection 16 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:27:33 13 [Warning] Aborted connection 13 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:27:33 17 [Warning] Aborted connection 17 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:27:33 14 [Warning] Aborted connection 14 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:27:33 15 [Warning] Aborted connection 15 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 18:41:56 23 [Warning] IP address '172.20.0.1' could not be resolved: Name does not resolve +2022-05-19 18:42:07 22 [Warning] Aborted connection 22 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:43:01 18 [Warning] Aborted connection 18 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:43:29 19 [Warning] Aborted connection 19 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:43:45 20 [Warning] Aborted connection 20 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:43:49 21 [Warning] Aborted connection 21 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:50:12 27 [Warning] Aborted connection 27 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 18:50:12 26 [Warning] Aborted connection 26 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 18:50:12 23 [Warning] Aborted connection 23 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 18:50:12 25 [Warning] Aborted connection 25 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 18:50:12 24 [Warning] Aborted connection 24 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 18:52:07 28 [Warning] Aborted connection 28 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:53:02 29 [Warning] Aborted connection 29 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:53:29 30 [Warning] Aborted connection 30 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:53:46 31 [Warning] Aborted connection 31 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 18:53:50 32 [Warning] Aborted connection 32 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:01:11 37 [Warning] Aborted connection 37 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:01:11 35 [Warning] Aborted connection 35 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:01:11 36 [Warning] Aborted connection 36 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:01:21 33 [Warning] Aborted connection 33 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:01:25 34 [Warning] Aborted connection 34 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:02:08 38 [Warning] Aborted connection 38 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:02:41 45 [Warning] Aborted connection 45 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:02:41 43 [Warning] Aborted connection 43 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:02:41 44 [Warning] Aborted connection 44 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:02:41 47 [Warning] Aborted connection 47 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:02:41 46 [Warning] Aborted connection 46 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:03:02 39 [Warning] Aborted connection 39 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:03:29 40 [Warning] Aborted connection 40 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:03:46 41 [Warning] Aborted connection 41 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:03:50 42 [Warning] Aborted connection 42 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:12:08 48 [Warning] Aborted connection 48 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:13:03 49 [Warning] Aborted connection 49 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:13:30 50 [Warning] Aborted connection 50 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:13:46 51 [Warning] Aborted connection 51 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:13:50 52 [Warning] Aborted connection 52 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:14:09 55 [Warning] Aborted connection 55 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:14:09 57 [Warning] Aborted connection 57 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:14:09 56 [Warning] Aborted connection 56 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:14:24 53 [Warning] Aborted connection 53 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:14:27 54 [Warning] Aborted connection 54 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:21:14 65 [Warning] Aborted connection 65 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:21:14 63 [Warning] Aborted connection 63 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:21:14 64 [Warning] Aborted connection 64 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:21:14 67 [Warning] Aborted connection 67 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:21:14 66 [Warning] Aborted connection 66 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:22:09 58 [Warning] Aborted connection 58 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:23:03 59 [Warning] Aborted connection 59 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:23:30 60 [Warning] Aborted connection 60 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:23:46 61 [Warning] Aborted connection 61 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:23:50 62 [Warning] Aborted connection 62 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:29:07 74 [Warning] Aborted connection 74 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:29:07 73 [Warning] Aborted connection 73 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:29:07 70 [Warning] Aborted connection 70 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:29:07 72 [Warning] Aborted connection 72 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:29:07 71 [Warning] Aborted connection 71 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:30:28 82 [Warning] Aborted connection 82 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:30:28 79 [Warning] Aborted connection 79 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:30:28 81 [Warning] Aborted connection 81 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:30:28 80 [Warning] Aborted connection 80 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:30:28 78 [Warning] Aborted connection 78 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-19 19:32:09 68 [Warning] Aborted connection 68 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:33:03 69 [Warning] Aborted connection 69 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:33:30 75 [Warning] Aborted connection 75 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:33:47 76 [Warning] Aborted connection 76 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:33:51 77 [Warning] Aborted connection 77 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:41:42 87 [Warning] Aborted connection 87 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:41:42 86 [Warning] Aborted connection 86 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:41:44 83 [Warning] Aborted connection 83 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:41:47 84 [Warning] Aborted connection 84 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:41:49 85 [Warning] Aborted connection 85 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:42:09 88 [Warning] Aborted connection 88 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:43:04 89 [Warning] Aborted connection 89 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:43:31 90 [Warning] Aborted connection 90 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:43:47 91 [Warning] Aborted connection 91 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:43:51 92 [Warning] Aborted connection 92 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:51:42 93 [Warning] Aborted connection 93 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:51:42 94 [Warning] Aborted connection 94 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:51:44 95 [Warning] Aborted connection 95 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:51:47 96 [Warning] Aborted connection 96 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:51:49 97 [Warning] Aborted connection 97 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 19:52:10 98 [Warning] Aborted connection 98 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:53:04 99 [Warning] Aborted connection 99 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:53:31 100 [Warning] Aborted connection 100 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:53:47 101 [Warning] Aborted connection 101 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:53:51 102 [Warning] Aborted connection 102 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got timeout reading communication packets) +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 19:58:04 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-19 20:00:36 108 [Warning] Aborted connection 108 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 20:00:36 112 [Warning] Aborted connection 112 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 20:00:36 111 [Warning] Aborted connection 111 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 20:00:36 110 [Warning] Aborted connection 110 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 20:00:36 109 [Warning] Aborted connection 109 to db: 'unconnected' user: 'aplication' host: '192.168.1.42' (Got an error reading communication packets) +2022-05-19 20:01:49 107 [Warning] Aborted connection 107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:09:01 103 [Warning] Aborted connection 103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:09:18 104 [Warning] Aborted connection 104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:09:21 105 [Warning] Aborted connection 105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:09:33 106 [Warning] Aborted connection 106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:11:49 113 [Warning] Aborted connection 113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:19:01 114 [Warning] Aborted connection 114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:19:18 115 [Warning] Aborted connection 115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:19:21 116 [Warning] Aborted connection 116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:19:33 117 [Warning] Aborted connection 117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:21:50 118 [Warning] Aborted connection 118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:29:01 119 [Warning] Aborted connection 119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:29:18 120 [Warning] Aborted connection 120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:29:21 121 [Warning] Aborted connection 121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:29:33 122 [Warning] Aborted connection 122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:31:50 123 [Warning] Aborted connection 123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:39:02 124 [Warning] Aborted connection 124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:39:19 125 [Warning] Aborted connection 125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:39:22 126 [Warning] Aborted connection 126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:39:34 127 [Warning] Aborted connection 127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:41:50 128 [Warning] Aborted connection 128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:49:02 129 [Warning] Aborted connection 129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:49:19 130 [Warning] Aborted connection 130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:49:22 131 [Warning] Aborted connection 131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:49:34 132 [Warning] Aborted connection 132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:51:51 133 [Warning] Aborted connection 133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:59:02 134 [Warning] Aborted connection 134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:59:19 135 [Warning] Aborted connection 135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:59:22 136 [Warning] Aborted connection 136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 20:59:34 137 [Warning] Aborted connection 137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:01:51 138 [Warning] Aborted connection 138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:09:02 139 [Warning] Aborted connection 139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:09:19 140 [Warning] Aborted connection 140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:09:22 141 [Warning] Aborted connection 141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:09:34 142 [Warning] Aborted connection 142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:11:51 143 [Warning] Aborted connection 143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:19:03 144 [Warning] Aborted connection 144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:19:20 145 [Warning] Aborted connection 145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:19:23 146 [Warning] Aborted connection 146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:19:35 147 [Warning] Aborted connection 147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:21:51 148 [Warning] Aborted connection 148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:29:03 149 [Warning] Aborted connection 149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:29:20 150 [Warning] Aborted connection 150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:29:23 151 [Warning] Aborted connection 151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:29:35 152 [Warning] Aborted connection 152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:31:52 153 [Warning] Aborted connection 153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:39:03 154 [Warning] Aborted connection 154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:39:20 155 [Warning] Aborted connection 155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:39:23 156 [Warning] Aborted connection 156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:39:35 157 [Warning] Aborted connection 157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:41:52 158 [Warning] Aborted connection 158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:49:03 159 [Warning] Aborted connection 159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:49:20 160 [Warning] Aborted connection 160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:49:23 161 [Warning] Aborted connection 161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:49:35 162 [Warning] Aborted connection 162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:51:52 163 [Warning] Aborted connection 163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:59:04 164 [Warning] Aborted connection 164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:59:21 165 [Warning] Aborted connection 165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:59:24 166 [Warning] Aborted connection 166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 21:59:36 167 [Warning] Aborted connection 167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:01:52 168 [Warning] Aborted connection 168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:09:04 169 [Warning] Aborted connection 169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:09:21 170 [Warning] Aborted connection 170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:09:24 171 [Warning] Aborted connection 171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:09:36 172 [Warning] Aborted connection 172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:11:53 173 [Warning] Aborted connection 173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:19:04 174 [Warning] Aborted connection 174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:19:21 175 [Warning] Aborted connection 175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:19:24 176 [Warning] Aborted connection 176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:19:36 177 [Warning] Aborted connection 177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:21:53 178 [Warning] Aborted connection 178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:29:04 179 [Warning] Aborted connection 179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:29:21 180 [Warning] Aborted connection 180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:29:24 181 [Warning] Aborted connection 181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:29:37 182 [Warning] Aborted connection 182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:31:53 183 [Warning] Aborted connection 183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:39:05 184 [Warning] Aborted connection 184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:39:22 185 [Warning] Aborted connection 185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:39:25 186 [Warning] Aborted connection 186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:39:37 187 [Warning] Aborted connection 187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:41:53 188 [Warning] Aborted connection 188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:49:05 189 [Warning] Aborted connection 189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:49:22 190 [Warning] Aborted connection 190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:49:25 191 [Warning] Aborted connection 191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:49:37 192 [Warning] Aborted connection 192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:51:54 193 [Warning] Aborted connection 193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:59:05 194 [Warning] Aborted connection 194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:59:22 195 [Warning] Aborted connection 195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:59:25 196 [Warning] Aborted connection 196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 22:59:37 197 [Warning] Aborted connection 197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:01:54 198 [Warning] Aborted connection 198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:09:05 199 [Warning] Aborted connection 199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:09:23 200 [Warning] Aborted connection 200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:09:26 201 [Warning] Aborted connection 201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:09:38 202 [Warning] Aborted connection 202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:11:54 203 [Warning] Aborted connection 203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:19:06 204 [Warning] Aborted connection 204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:19:23 205 [Warning] Aborted connection 205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:19:26 206 [Warning] Aborted connection 206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:19:38 207 [Warning] Aborted connection 207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:21:54 208 [Warning] Aborted connection 208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:29:06 209 [Warning] Aborted connection 209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:29:23 210 [Warning] Aborted connection 210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:29:26 211 [Warning] Aborted connection 211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:29:38 212 [Warning] Aborted connection 212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:31:55 213 [Warning] Aborted connection 213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:39:06 214 [Warning] Aborted connection 214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:39:23 215 [Warning] Aborted connection 215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:39:26 216 [Warning] Aborted connection 216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:39:38 217 [Warning] Aborted connection 217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:41:55 218 [Warning] Aborted connection 218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:49:07 219 [Warning] Aborted connection 219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:49:24 220 [Warning] Aborted connection 220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:49:26 221 [Warning] Aborted connection 221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:49:39 222 [Warning] Aborted connection 222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:51:55 223 [Warning] Aborted connection 223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:59:07 224 [Warning] Aborted connection 224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:59:24 225 [Warning] Aborted connection 225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:59:27 226 [Warning] Aborted connection 226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-19 23:59:39 227 [Warning] Aborted connection 227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:01:56 228 [Warning] Aborted connection 228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:09:07 229 [Warning] Aborted connection 229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:09:24 230 [Warning] Aborted connection 230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:09:27 231 [Warning] Aborted connection 231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:09:39 232 [Warning] Aborted connection 232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:11:56 233 [Warning] Aborted connection 233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:19:07 234 [Warning] Aborted connection 234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:19:24 235 [Warning] Aborted connection 235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:19:27 236 [Warning] Aborted connection 236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:19:39 237 [Warning] Aborted connection 237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:21:56 238 [Warning] Aborted connection 238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:29:07 239 [Warning] Aborted connection 239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:29:25 240 [Warning] Aborted connection 240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:29:28 241 [Warning] Aborted connection 241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:29:40 242 [Warning] Aborted connection 242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:31:56 243 [Warning] Aborted connection 243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:39:08 244 [Warning] Aborted connection 244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:39:25 245 [Warning] Aborted connection 245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:39:28 246 [Warning] Aborted connection 246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:39:40 247 [Warning] Aborted connection 247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:41:57 248 [Warning] Aborted connection 248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:49:08 249 [Warning] Aborted connection 249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:49:25 250 [Warning] Aborted connection 250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:49:28 251 [Warning] Aborted connection 251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:49:40 252 [Warning] Aborted connection 252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:51:57 253 [Warning] Aborted connection 253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:59:08 254 [Warning] Aborted connection 254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:59:25 255 [Warning] Aborted connection 255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:59:28 256 [Warning] Aborted connection 256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 0:59:40 257 [Warning] Aborted connection 257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:01:57 258 [Warning] Aborted connection 258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:09:09 259 [Warning] Aborted connection 259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:09:26 260 [Warning] Aborted connection 260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:09:29 261 [Warning] Aborted connection 261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:09:41 262 [Warning] Aborted connection 262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:11:57 263 [Warning] Aborted connection 263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:19:09 264 [Warning] Aborted connection 264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:19:26 265 [Warning] Aborted connection 265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:19:29 266 [Warning] Aborted connection 266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:19:41 267 [Warning] Aborted connection 267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:21:58 268 [Warning] Aborted connection 268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:29:09 269 [Warning] Aborted connection 269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:29:26 270 [Warning] Aborted connection 270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:29:29 271 [Warning] Aborted connection 271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:29:41 272 [Warning] Aborted connection 272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:31:58 273 [Warning] Aborted connection 273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:39:09 274 [Warning] Aborted connection 274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:39:26 275 [Warning] Aborted connection 275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:39:29 276 [Warning] Aborted connection 276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:39:41 277 [Warning] Aborted connection 277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:41:58 278 [Warning] Aborted connection 278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:49:10 279 [Warning] Aborted connection 279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:49:27 280 [Warning] Aborted connection 280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:49:30 281 [Warning] Aborted connection 281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:49:42 282 [Warning] Aborted connection 282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:51:58 283 [Warning] Aborted connection 283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:59:10 284 [Warning] Aborted connection 284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:59:27 285 [Warning] Aborted connection 285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:59:30 286 [Warning] Aborted connection 286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 1:59:42 287 [Warning] Aborted connection 287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:01:59 288 [Warning] Aborted connection 288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:09:10 289 [Warning] Aborted connection 289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:09:27 290 [Warning] Aborted connection 290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:09:30 291 [Warning] Aborted connection 291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:09:42 292 [Warning] Aborted connection 292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:11:59 293 [Warning] Aborted connection 293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:19:10 294 [Warning] Aborted connection 294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:19:27 295 [Warning] Aborted connection 295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:19:30 296 [Warning] Aborted connection 296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:19:42 297 [Warning] Aborted connection 297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:21:59 298 [Warning] Aborted connection 298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:29:11 299 [Warning] Aborted connection 299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:29:28 300 [Warning] Aborted connection 300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:29:31 301 [Warning] Aborted connection 301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:29:43 302 [Warning] Aborted connection 302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:31:59 303 [Warning] Aborted connection 303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:39:11 304 [Warning] Aborted connection 304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:39:28 305 [Warning] Aborted connection 305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:39:31 306 [Warning] Aborted connection 306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:39:43 307 [Warning] Aborted connection 307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:42:00 308 [Warning] Aborted connection 308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:49:11 309 [Warning] Aborted connection 309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:49:28 310 [Warning] Aborted connection 310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:49:31 311 [Warning] Aborted connection 311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:49:43 312 [Warning] Aborted connection 312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:52:00 313 [Warning] Aborted connection 313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:59:11 314 [Warning] Aborted connection 314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:59:28 315 [Warning] Aborted connection 315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:59:31 316 [Warning] Aborted connection 316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 2:59:44 317 [Warning] Aborted connection 317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:02:00 318 [Warning] Aborted connection 318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:09:12 319 [Warning] Aborted connection 319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:09:29 320 [Warning] Aborted connection 320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:09:32 321 [Warning] Aborted connection 321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:09:44 322 [Warning] Aborted connection 322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:12:00 323 [Warning] Aborted connection 323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:19:12 324 [Warning] Aborted connection 324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:19:29 325 [Warning] Aborted connection 325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:19:32 326 [Warning] Aborted connection 326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:19:44 327 [Warning] Aborted connection 327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:22:01 328 [Warning] Aborted connection 328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:29:12 329 [Warning] Aborted connection 329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:29:29 330 [Warning] Aborted connection 330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:29:32 331 [Warning] Aborted connection 331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:29:44 332 [Warning] Aborted connection 332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:32:01 333 [Warning] Aborted connection 333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:39:13 334 [Warning] Aborted connection 334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:39:29 335 [Warning] Aborted connection 335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:39:33 336 [Warning] Aborted connection 336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:39:45 337 [Warning] Aborted connection 337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:42:01 338 [Warning] Aborted connection 338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:49:13 339 [Warning] Aborted connection 339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:49:30 340 [Warning] Aborted connection 340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:49:33 341 [Warning] Aborted connection 341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:49:45 342 [Warning] Aborted connection 342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:52:01 343 [Warning] Aborted connection 343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:59:13 344 [Warning] Aborted connection 344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:59:30 345 [Warning] Aborted connection 345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:59:33 346 [Warning] Aborted connection 346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 3:59:45 347 [Warning] Aborted connection 347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:02:02 348 [Warning] Aborted connection 348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:09:13 349 [Warning] Aborted connection 349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:09:30 350 [Warning] Aborted connection 350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:09:33 351 [Warning] Aborted connection 351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:09:45 352 [Warning] Aborted connection 352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:12:02 353 [Warning] Aborted connection 353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:19:14 354 [Warning] Aborted connection 354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:19:31 355 [Warning] Aborted connection 355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:19:34 356 [Warning] Aborted connection 356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:19:46 357 [Warning] Aborted connection 357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:22:02 358 [Warning] Aborted connection 358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:29:14 359 [Warning] Aborted connection 359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:29:31 360 [Warning] Aborted connection 360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:29:34 361 [Warning] Aborted connection 361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:29:46 362 [Warning] Aborted connection 362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:32:02 363 [Warning] Aborted connection 363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:39:14 364 [Warning] Aborted connection 364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:39:31 365 [Warning] Aborted connection 365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:39:34 366 [Warning] Aborted connection 366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:39:46 367 [Warning] Aborted connection 367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:42:03 368 [Warning] Aborted connection 368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:49:14 369 [Warning] Aborted connection 369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:49:31 370 [Warning] Aborted connection 370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:49:34 371 [Warning] Aborted connection 371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:49:46 372 [Warning] Aborted connection 372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:52:03 373 [Warning] Aborted connection 373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:59:15 374 [Warning] Aborted connection 374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:59:32 375 [Warning] Aborted connection 375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:59:35 376 [Warning] Aborted connection 376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 4:59:47 377 [Warning] Aborted connection 377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:02:03 378 [Warning] Aborted connection 378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:09:15 379 [Warning] Aborted connection 379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:09:32 380 [Warning] Aborted connection 380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:09:35 381 [Warning] Aborted connection 381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:09:47 382 [Warning] Aborted connection 382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:12:04 383 [Warning] Aborted connection 383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:19:15 384 [Warning] Aborted connection 384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:19:32 385 [Warning] Aborted connection 385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:19:35 386 [Warning] Aborted connection 386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:19:47 387 [Warning] Aborted connection 387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:22:04 388 [Warning] Aborted connection 388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:29:15 389 [Warning] Aborted connection 389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:29:32 390 [Warning] Aborted connection 390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:29:35 391 [Warning] Aborted connection 391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:29:47 392 [Warning] Aborted connection 392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:32:04 393 [Warning] Aborted connection 393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:39:16 394 [Warning] Aborted connection 394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:39:33 395 [Warning] Aborted connection 395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:39:36 396 [Warning] Aborted connection 396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:39:48 397 [Warning] Aborted connection 397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:42:04 398 [Warning] Aborted connection 398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:49:16 399 [Warning] Aborted connection 399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:49:33 400 [Warning] Aborted connection 400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:49:36 401 [Warning] Aborted connection 401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:49:48 402 [Warning] Aborted connection 402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:52:05 403 [Warning] Aborted connection 403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:59:16 404 [Warning] Aborted connection 404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:59:33 405 [Warning] Aborted connection 405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:59:36 406 [Warning] Aborted connection 406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 5:59:48 407 [Warning] Aborted connection 407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:02:05 408 [Warning] Aborted connection 408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:09:16 409 [Warning] Aborted connection 409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:09:33 410 [Warning] Aborted connection 410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:09:36 411 [Warning] Aborted connection 411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:09:48 412 [Warning] Aborted connection 412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:12:05 413 [Warning] Aborted connection 413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:19:17 414 [Warning] Aborted connection 414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:19:34 415 [Warning] Aborted connection 415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:19:37 416 [Warning] Aborted connection 416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:19:49 417 [Warning] Aborted connection 417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:22:05 418 [Warning] Aborted connection 418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:29:17 419 [Warning] Aborted connection 419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:29:34 420 [Warning] Aborted connection 420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:29:37 421 [Warning] Aborted connection 421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:29:49 422 [Warning] Aborted connection 422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:32:06 423 [Warning] Aborted connection 423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:39:17 424 [Warning] Aborted connection 424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:39:34 425 [Warning] Aborted connection 425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:39:37 426 [Warning] Aborted connection 426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:39:49 427 [Warning] Aborted connection 427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:42:06 428 [Warning] Aborted connection 428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:49:17 429 [Warning] Aborted connection 429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:49:34 430 [Warning] Aborted connection 430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:49:37 431 [Warning] Aborted connection 431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:49:49 432 [Warning] Aborted connection 432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:52:06 433 [Warning] Aborted connection 433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:59:18 434 [Warning] Aborted connection 434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:59:35 435 [Warning] Aborted connection 435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:59:38 436 [Warning] Aborted connection 436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 6:59:50 437 [Warning] Aborted connection 437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:02:06 438 [Warning] Aborted connection 438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:09:18 439 [Warning] Aborted connection 439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:09:35 440 [Warning] Aborted connection 440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:09:38 441 [Warning] Aborted connection 441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:09:50 442 [Warning] Aborted connection 442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:12:07 443 [Warning] Aborted connection 443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:19:18 444 [Warning] Aborted connection 444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:19:35 445 [Warning] Aborted connection 445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:19:38 446 [Warning] Aborted connection 446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:19:50 447 [Warning] Aborted connection 447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:22:07 448 [Warning] Aborted connection 448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:29:19 449 [Warning] Aborted connection 449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:29:35 450 [Warning] Aborted connection 450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:29:39 451 [Warning] Aborted connection 451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:29:51 452 [Warning] Aborted connection 452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:32:07 453 [Warning] Aborted connection 453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:39:19 454 [Warning] Aborted connection 454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:39:36 455 [Warning] Aborted connection 455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:39:39 456 [Warning] Aborted connection 456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:39:51 457 [Warning] Aborted connection 457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:42:07 458 [Warning] Aborted connection 458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:49:19 459 [Warning] Aborted connection 459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:49:36 460 [Warning] Aborted connection 460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:49:39 461 [Warning] Aborted connection 461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:49:51 462 [Warning] Aborted connection 462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:52:08 463 [Warning] Aborted connection 463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:59:19 464 [Warning] Aborted connection 464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:59:36 465 [Warning] Aborted connection 465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:59:39 466 [Warning] Aborted connection 466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 7:59:51 467 [Warning] Aborted connection 467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:02:08 468 [Warning] Aborted connection 468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:09:20 469 [Warning] Aborted connection 469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:09:37 470 [Warning] Aborted connection 470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:09:40 471 [Warning] Aborted connection 471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:09:52 472 [Warning] Aborted connection 472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:12:08 473 [Warning] Aborted connection 473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:19:20 474 [Warning] Aborted connection 474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:19:37 475 [Warning] Aborted connection 475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:19:40 476 [Warning] Aborted connection 476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:19:52 477 [Warning] Aborted connection 477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:22:09 478 [Warning] Aborted connection 478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:29:20 479 [Warning] Aborted connection 479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:29:37 480 [Warning] Aborted connection 480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:29:40 481 [Warning] Aborted connection 481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:29:52 482 [Warning] Aborted connection 482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:32:09 483 [Warning] Aborted connection 483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:39:20 484 [Warning] Aborted connection 484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:39:37 485 [Warning] Aborted connection 485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:39:40 486 [Warning] Aborted connection 486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:39:52 487 [Warning] Aborted connection 487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:42:09 488 [Warning] Aborted connection 488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:49:21 489 [Warning] Aborted connection 489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:49:38 490 [Warning] Aborted connection 490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:49:41 491 [Warning] Aborted connection 491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:49:53 492 [Warning] Aborted connection 492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:52:09 493 [Warning] Aborted connection 493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:59:21 494 [Warning] Aborted connection 494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:59:38 495 [Warning] Aborted connection 495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:59:41 496 [Warning] Aborted connection 496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 8:59:53 497 [Warning] Aborted connection 497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:02:10 498 [Warning] Aborted connection 498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:09:21 499 [Warning] Aborted connection 499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:09:38 500 [Warning] Aborted connection 500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:09:41 501 [Warning] Aborted connection 501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:09:53 502 [Warning] Aborted connection 502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:12:10 503 [Warning] Aborted connection 503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:19:21 504 [Warning] Aborted connection 504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:19:38 505 [Warning] Aborted connection 505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:19:41 506 [Warning] Aborted connection 506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:19:53 507 [Warning] Aborted connection 507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:22:10 508 [Warning] Aborted connection 508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:29:22 509 [Warning] Aborted connection 509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:29:39 510 [Warning] Aborted connection 510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:29:42 511 [Warning] Aborted connection 511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:29:54 512 [Warning] Aborted connection 512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:32:10 513 [Warning] Aborted connection 513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:39:22 514 [Warning] Aborted connection 514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:39:39 515 [Warning] Aborted connection 515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:39:42 516 [Warning] Aborted connection 516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:39:54 517 [Warning] Aborted connection 517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:42:11 518 [Warning] Aborted connection 518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:49:22 519 [Warning] Aborted connection 519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:49:39 520 [Warning] Aborted connection 520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:49:42 521 [Warning] Aborted connection 521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:49:54 522 [Warning] Aborted connection 522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:52:11 523 [Warning] Aborted connection 523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:59:22 524 [Warning] Aborted connection 524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:59:39 525 [Warning] Aborted connection 525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:59:42 526 [Warning] Aborted connection 526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 9:59:54 527 [Warning] Aborted connection 527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:02:11 528 [Warning] Aborted connection 528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:09:23 529 [Warning] Aborted connection 529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:09:40 530 [Warning] Aborted connection 530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:09:43 531 [Warning] Aborted connection 531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:09:55 532 [Warning] Aborted connection 532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:12:11 533 [Warning] Aborted connection 533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:19:23 534 [Warning] Aborted connection 534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:19:40 535 [Warning] Aborted connection 535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:19:43 536 [Warning] Aborted connection 536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:19:55 537 [Warning] Aborted connection 537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:22:12 538 [Warning] Aborted connection 538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:29:23 539 [Warning] Aborted connection 539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:29:40 540 [Warning] Aborted connection 540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:29:43 541 [Warning] Aborted connection 541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:29:55 542 [Warning] Aborted connection 542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:32:12 543 [Warning] Aborted connection 543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:39:23 544 [Warning] Aborted connection 544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:39:40 545 [Warning] Aborted connection 545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:39:43 546 [Warning] Aborted connection 546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:39:55 547 [Warning] Aborted connection 547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:42:12 548 [Warning] Aborted connection 548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:49:24 549 [Warning] Aborted connection 549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:49:41 550 [Warning] Aborted connection 550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:49:44 551 [Warning] Aborted connection 551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:49:56 552 [Warning] Aborted connection 552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:52:12 553 [Warning] Aborted connection 553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:59:24 554 [Warning] Aborted connection 554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:59:41 555 [Warning] Aborted connection 555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:59:44 556 [Warning] Aborted connection 556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 10:59:56 557 [Warning] Aborted connection 557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:02:13 558 [Warning] Aborted connection 558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:09:24 559 [Warning] Aborted connection 559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:09:41 560 [Warning] Aborted connection 560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:09:44 561 [Warning] Aborted connection 561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:09:56 562 [Warning] Aborted connection 562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:12:13 563 [Warning] Aborted connection 563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:19:24 564 [Warning] Aborted connection 564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:19:41 565 [Warning] Aborted connection 565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:19:44 566 [Warning] Aborted connection 566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:19:56 567 [Warning] Aborted connection 567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:22:13 568 [Warning] Aborted connection 568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:29:25 569 [Warning] Aborted connection 569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:29:42 570 [Warning] Aborted connection 570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:29:45 571 [Warning] Aborted connection 571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:29:57 572 [Warning] Aborted connection 572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:32:13 573 [Warning] Aborted connection 573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:39:25 574 [Warning] Aborted connection 574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:39:42 575 [Warning] Aborted connection 575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:39:45 576 [Warning] Aborted connection 576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:39:57 577 [Warning] Aborted connection 577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:42:14 578 [Warning] Aborted connection 578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:49:25 579 [Warning] Aborted connection 579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:49:42 580 [Warning] Aborted connection 580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:49:45 581 [Warning] Aborted connection 581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:49:57 582 [Warning] Aborted connection 582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:52:14 583 [Warning] Aborted connection 583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:59:25 584 [Warning] Aborted connection 584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:59:42 585 [Warning] Aborted connection 585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:59:45 586 [Warning] Aborted connection 586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 11:59:58 587 [Warning] Aborted connection 587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:02:14 588 [Warning] Aborted connection 588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:09:26 589 [Warning] Aborted connection 589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:09:43 590 [Warning] Aborted connection 590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:09:46 591 [Warning] Aborted connection 591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:09:58 592 [Warning] Aborted connection 592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:12:14 593 [Warning] Aborted connection 593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:19:26 594 [Warning] Aborted connection 594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:19:43 595 [Warning] Aborted connection 595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:19:46 596 [Warning] Aborted connection 596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:19:58 597 [Warning] Aborted connection 597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:22:15 598 [Warning] Aborted connection 598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:29:26 599 [Warning] Aborted connection 599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:29:44 600 [Warning] Aborted connection 600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:29:46 601 [Warning] Aborted connection 601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:29:58 602 [Warning] Aborted connection 602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:32:15 603 [Warning] Aborted connection 603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:39:27 604 [Warning] Aborted connection 604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:39:44 605 [Warning] Aborted connection 605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:39:47 606 [Warning] Aborted connection 606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:39:59 607 [Warning] Aborted connection 607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:42:15 608 [Warning] Aborted connection 608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:49:27 609 [Warning] Aborted connection 609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:49:44 610 [Warning] Aborted connection 610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:49:47 611 [Warning] Aborted connection 611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:49:59 612 [Warning] Aborted connection 612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:52:16 613 [Warning] Aborted connection 613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:59:27 614 [Warning] Aborted connection 614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:59:44 615 [Warning] Aborted connection 615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:59:47 616 [Warning] Aborted connection 616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 12:59:59 617 [Warning] Aborted connection 617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:02:16 618 [Warning] Aborted connection 618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:09:28 619 [Warning] Aborted connection 619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:09:45 620 [Warning] Aborted connection 620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:09:47 621 [Warning] Aborted connection 621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:09:59 622 [Warning] Aborted connection 622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:12:16 623 [Warning] Aborted connection 623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:19:28 624 [Warning] Aborted connection 624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:19:45 625 [Warning] Aborted connection 625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:19:48 626 [Warning] Aborted connection 626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:20:00 627 [Warning] Aborted connection 627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:22:16 628 [Warning] Aborted connection 628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:29:28 629 [Warning] Aborted connection 629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:29:45 630 [Warning] Aborted connection 630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:29:48 631 [Warning] Aborted connection 631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:30:00 632 [Warning] Aborted connection 632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:32:17 633 [Warning] Aborted connection 633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:39:28 634 [Warning] Aborted connection 634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:39:45 635 [Warning] Aborted connection 635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:39:48 636 [Warning] Aborted connection 636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:40:00 637 [Warning] Aborted connection 637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:42:17 638 [Warning] Aborted connection 638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:49:29 639 [Warning] Aborted connection 639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:49:46 640 [Warning] Aborted connection 640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:49:49 641 [Warning] Aborted connection 641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:50:01 642 [Warning] Aborted connection 642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:52:17 643 [Warning] Aborted connection 643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:59:29 644 [Warning] Aborted connection 644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:59:46 645 [Warning] Aborted connection 645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 13:59:49 646 [Warning] Aborted connection 646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:00:01 647 [Warning] Aborted connection 647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:02:18 648 [Warning] Aborted connection 648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:09:29 649 [Warning] Aborted connection 649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:09:46 650 [Warning] Aborted connection 650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:09:49 651 [Warning] Aborted connection 651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:10:01 652 [Warning] Aborted connection 652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:12:18 653 [Warning] Aborted connection 653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:19:29 654 [Warning] Aborted connection 654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:19:46 655 [Warning] Aborted connection 655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:19:49 656 [Warning] Aborted connection 656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:20:01 657 [Warning] Aborted connection 657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:22:18 658 [Warning] Aborted connection 658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:29:30 659 [Warning] Aborted connection 659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:29:47 660 [Warning] Aborted connection 660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:29:50 661 [Warning] Aborted connection 661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:30:02 662 [Warning] Aborted connection 662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:32:18 663 [Warning] Aborted connection 663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:39:30 664 [Warning] Aborted connection 664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:39:47 665 [Warning] Aborted connection 665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:39:50 666 [Warning] Aborted connection 666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:40:02 667 [Warning] Aborted connection 667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:42:19 668 [Warning] Aborted connection 668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:49:30 669 [Warning] Aborted connection 669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:49:47 670 [Warning] Aborted connection 670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:49:50 671 [Warning] Aborted connection 671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:50:02 672 [Warning] Aborted connection 672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:52:19 673 [Warning] Aborted connection 673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:59:30 674 [Warning] Aborted connection 674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:59:47 675 [Warning] Aborted connection 675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 14:59:50 676 [Warning] Aborted connection 676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:00:02 677 [Warning] Aborted connection 677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:02:19 678 [Warning] Aborted connection 678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:09:31 679 [Warning] Aborted connection 679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:09:48 680 [Warning] Aborted connection 680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:09:51 681 [Warning] Aborted connection 681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:10:03 682 [Warning] Aborted connection 682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:12:19 683 [Warning] Aborted connection 683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:19:31 684 [Warning] Aborted connection 684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:19:48 685 [Warning] Aborted connection 685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:19:51 686 [Warning] Aborted connection 686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:20:03 687 [Warning] Aborted connection 687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:22:20 688 [Warning] Aborted connection 688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:29:31 689 [Warning] Aborted connection 689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:29:48 690 [Warning] Aborted connection 690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:29:51 691 [Warning] Aborted connection 691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:30:03 692 [Warning] Aborted connection 692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:32:20 693 [Warning] Aborted connection 693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:39:31 694 [Warning] Aborted connection 694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:39:48 695 [Warning] Aborted connection 695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:39:51 696 [Warning] Aborted connection 696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:40:03 697 [Warning] Aborted connection 697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:42:20 698 [Warning] Aborted connection 698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:49:32 699 [Warning] Aborted connection 699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:49:49 700 [Warning] Aborted connection 700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:49:52 701 [Warning] Aborted connection 701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:50:04 702 [Warning] Aborted connection 702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:52:20 703 [Warning] Aborted connection 703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:59:32 704 [Warning] Aborted connection 704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:59:49 705 [Warning] Aborted connection 705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 15:59:52 706 [Warning] Aborted connection 706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:00:04 707 [Warning] Aborted connection 707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:02:21 708 [Warning] Aborted connection 708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:09:32 709 [Warning] Aborted connection 709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:09:49 710 [Warning] Aborted connection 710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:09:52 711 [Warning] Aborted connection 711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:10:04 712 [Warning] Aborted connection 712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:12:21 713 [Warning] Aborted connection 713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:19:32 714 [Warning] Aborted connection 714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:19:50 715 [Warning] Aborted connection 715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:19:53 716 [Warning] Aborted connection 716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:20:05 717 [Warning] Aborted connection 717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:22:21 718 [Warning] Aborted connection 718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:29:33 719 [Warning] Aborted connection 719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:29:50 720 [Warning] Aborted connection 720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:29:53 721 [Warning] Aborted connection 721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:30:05 722 [Warning] Aborted connection 722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:32:21 723 [Warning] Aborted connection 723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:39:33 724 [Warning] Aborted connection 724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:39:50 725 [Warning] Aborted connection 725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:39:53 726 [Warning] Aborted connection 726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:40:05 727 [Warning] Aborted connection 727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:42:22 728 [Warning] Aborted connection 728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:49:33 729 [Warning] Aborted connection 729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:49:50 730 [Warning] Aborted connection 730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:49:53 731 [Warning] Aborted connection 731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:50:05 732 [Warning] Aborted connection 732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:52:22 733 [Warning] Aborted connection 733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:59:34 734 [Warning] Aborted connection 734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:59:51 735 [Warning] Aborted connection 735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 16:59:54 736 [Warning] Aborted connection 736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:00:06 737 [Warning] Aborted connection 737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:02:22 738 [Warning] Aborted connection 738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:09:34 739 [Warning] Aborted connection 739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:09:51 740 [Warning] Aborted connection 740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:09:54 741 [Warning] Aborted connection 741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:10:06 742 [Warning] Aborted connection 742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:12:23 743 [Warning] Aborted connection 743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:19:34 744 [Warning] Aborted connection 744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:19:51 745 [Warning] Aborted connection 745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:19:54 746 [Warning] Aborted connection 746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:20:06 747 [Warning] Aborted connection 747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:22:23 748 [Warning] Aborted connection 748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:29:34 749 [Warning] Aborted connection 749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:29:51 750 [Warning] Aborted connection 750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:29:54 751 [Warning] Aborted connection 751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:30:06 752 [Warning] Aborted connection 752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:32:23 753 [Warning] Aborted connection 753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:39:35 754 [Warning] Aborted connection 754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:39:52 755 [Warning] Aborted connection 755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:39:55 756 [Warning] Aborted connection 756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:40:07 757 [Warning] Aborted connection 757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:42:23 758 [Warning] Aborted connection 758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:49:35 759 [Warning] Aborted connection 759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:49:52 760 [Warning] Aborted connection 760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:49:55 761 [Warning] Aborted connection 761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:50:07 762 [Warning] Aborted connection 762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:52:24 763 [Warning] Aborted connection 763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:59:35 764 [Warning] Aborted connection 764 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:59:52 765 [Warning] Aborted connection 765 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 17:59:55 766 [Warning] Aborted connection 766 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:00:07 767 [Warning] Aborted connection 767 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:02:24 768 [Warning] Aborted connection 768 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:09:35 769 [Warning] Aborted connection 769 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:09:52 770 [Warning] Aborted connection 770 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:09:55 771 [Warning] Aborted connection 771 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:10:07 772 [Warning] Aborted connection 772 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:12:24 773 [Warning] Aborted connection 773 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:19:36 774 [Warning] Aborted connection 774 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:19:53 775 [Warning] Aborted connection 775 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:19:56 776 [Warning] Aborted connection 776 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:20:08 777 [Warning] Aborted connection 777 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:22:24 778 [Warning] Aborted connection 778 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:29:36 779 [Warning] Aborted connection 779 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:29:53 780 [Warning] Aborted connection 780 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:29:56 781 [Warning] Aborted connection 781 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:30:08 782 [Warning] Aborted connection 782 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:32:25 783 [Warning] Aborted connection 783 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:39:36 784 [Warning] Aborted connection 784 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:39:53 785 [Warning] Aborted connection 785 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:39:56 786 [Warning] Aborted connection 786 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:40:08 787 [Warning] Aborted connection 787 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:42:25 788 [Warning] Aborted connection 788 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:49:36 789 [Warning] Aborted connection 789 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:49:53 790 [Warning] Aborted connection 790 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:49:56 791 [Warning] Aborted connection 791 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:50:08 792 [Warning] Aborted connection 792 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:52:25 793 [Warning] Aborted connection 793 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:59:37 794 [Warning] Aborted connection 794 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:59:54 795 [Warning] Aborted connection 795 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 18:59:57 796 [Warning] Aborted connection 796 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:00:09 797 [Warning] Aborted connection 797 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:02:25 798 [Warning] Aborted connection 798 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:09:37 799 [Warning] Aborted connection 799 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:09:54 800 [Warning] Aborted connection 800 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:09:57 801 [Warning] Aborted connection 801 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:10:09 802 [Warning] Aborted connection 802 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:12:26 803 [Warning] Aborted connection 803 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:19:37 804 [Warning] Aborted connection 804 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:19:54 805 [Warning] Aborted connection 805 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:19:57 806 [Warning] Aborted connection 806 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:20:09 807 [Warning] Aborted connection 807 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:22:26 808 [Warning] Aborted connection 808 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:29:37 809 [Warning] Aborted connection 809 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:29:54 810 [Warning] Aborted connection 810 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:29:58 811 [Warning] Aborted connection 811 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:30:10 812 [Warning] Aborted connection 812 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:32:26 813 [Warning] Aborted connection 813 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:39:38 814 [Warning] Aborted connection 814 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:39:55 815 [Warning] Aborted connection 815 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:39:58 816 [Warning] Aborted connection 816 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:40:10 817 [Warning] Aborted connection 817 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:42:26 818 [Warning] Aborted connection 818 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:49:38 819 [Warning] Aborted connection 819 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:49:55 820 [Warning] Aborted connection 820 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:49:58 821 [Warning] Aborted connection 821 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:50:10 822 [Warning] Aborted connection 822 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:52:27 823 [Warning] Aborted connection 823 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:59:38 824 [Warning] Aborted connection 824 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:59:55 825 [Warning] Aborted connection 825 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 19:59:58 826 [Warning] Aborted connection 826 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:00:10 827 [Warning] Aborted connection 827 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:02:27 828 [Warning] Aborted connection 828 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:09:39 829 [Warning] Aborted connection 829 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:09:56 830 [Warning] Aborted connection 830 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:09:59 831 [Warning] Aborted connection 831 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:10:10 832 [Warning] Aborted connection 832 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:12:27 833 [Warning] Aborted connection 833 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:19:39 834 [Warning] Aborted connection 834 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:19:56 835 [Warning] Aborted connection 835 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:19:59 836 [Warning] Aborted connection 836 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:20:11 837 [Warning] Aborted connection 837 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:22:28 838 [Warning] Aborted connection 838 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:29:39 839 [Warning] Aborted connection 839 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:29:56 840 [Warning] Aborted connection 840 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:29:59 841 [Warning] Aborted connection 841 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:30:11 842 [Warning] Aborted connection 842 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:32:28 843 [Warning] Aborted connection 843 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:39:39 844 [Warning] Aborted connection 844 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:39:56 845 [Warning] Aborted connection 845 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:39:59 846 [Warning] Aborted connection 846 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:40:11 847 [Warning] Aborted connection 847 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:42:28 848 [Warning] Aborted connection 848 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:49:40 849 [Warning] Aborted connection 849 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:49:57 850 [Warning] Aborted connection 850 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:50:00 851 [Warning] Aborted connection 851 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:50:12 852 [Warning] Aborted connection 852 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:52:28 853 [Warning] Aborted connection 853 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:59:40 854 [Warning] Aborted connection 854 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 20:59:57 855 [Warning] Aborted connection 855 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:00:00 856 [Warning] Aborted connection 856 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:00:12 857 [Warning] Aborted connection 857 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:02:29 858 [Warning] Aborted connection 858 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:09:40 859 [Warning] Aborted connection 859 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:09:57 860 [Warning] Aborted connection 860 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:10:00 861 [Warning] Aborted connection 861 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:10:12 862 [Warning] Aborted connection 862 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:12:29 863 [Warning] Aborted connection 863 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:19:40 864 [Warning] Aborted connection 864 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:19:57 865 [Warning] Aborted connection 865 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:20:00 866 [Warning] Aborted connection 866 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:20:12 867 [Warning] Aborted connection 867 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:22:29 868 [Warning] Aborted connection 868 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:29:41 869 [Warning] Aborted connection 869 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:29:58 870 [Warning] Aborted connection 870 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:30:01 871 [Warning] Aborted connection 871 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:30:13 872 [Warning] Aborted connection 872 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:32:29 873 [Warning] Aborted connection 873 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:39:41 874 [Warning] Aborted connection 874 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:39:58 875 [Warning] Aborted connection 875 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:40:01 876 [Warning] Aborted connection 876 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:40:13 877 [Warning] Aborted connection 877 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:42:30 878 [Warning] Aborted connection 878 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:49:41 879 [Warning] Aborted connection 879 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:49:58 880 [Warning] Aborted connection 880 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:50:01 881 [Warning] Aborted connection 881 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:50:13 882 [Warning] Aborted connection 882 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:52:30 883 [Warning] Aborted connection 883 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:59:41 884 [Warning] Aborted connection 884 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 21:59:58 885 [Warning] Aborted connection 885 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:00:01 886 [Warning] Aborted connection 886 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:00:13 887 [Warning] Aborted connection 887 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:02:30 888 [Warning] Aborted connection 888 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:09:42 889 [Warning] Aborted connection 889 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:09:59 890 [Warning] Aborted connection 890 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:10:02 891 [Warning] Aborted connection 891 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:10:14 892 [Warning] Aborted connection 892 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:12:30 893 [Warning] Aborted connection 893 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:19:42 894 [Warning] Aborted connection 894 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:19:59 895 [Warning] Aborted connection 895 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:20:02 896 [Warning] Aborted connection 896 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:20:14 897 [Warning] Aborted connection 897 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:22:31 898 [Warning] Aborted connection 898 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:29:42 899 [Warning] Aborted connection 899 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:29:59 900 [Warning] Aborted connection 900 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:30:02 901 [Warning] Aborted connection 901 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:30:14 902 [Warning] Aborted connection 902 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:32:31 903 [Warning] Aborted connection 903 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:39:42 904 [Warning] Aborted connection 904 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:39:59 905 [Warning] Aborted connection 905 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:40:02 906 [Warning] Aborted connection 906 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:40:14 907 [Warning] Aborted connection 907 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:42:31 908 [Warning] Aborted connection 908 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:49:43 909 [Warning] Aborted connection 909 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:50:00 910 [Warning] Aborted connection 910 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:50:03 911 [Warning] Aborted connection 911 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:50:15 912 [Warning] Aborted connection 912 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:52:31 913 [Warning] Aborted connection 913 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 22:59:43 914 [Warning] Aborted connection 914 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:00:00 915 [Warning] Aborted connection 915 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:00:03 916 [Warning] Aborted connection 916 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:00:15 917 [Warning] Aborted connection 917 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:02:32 918 [Warning] Aborted connection 918 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:09:43 919 [Warning] Aborted connection 919 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:10:00 920 [Warning] Aborted connection 920 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:10:03 921 [Warning] Aborted connection 921 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:10:15 922 [Warning] Aborted connection 922 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:12:32 923 [Warning] Aborted connection 923 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:19:43 924 [Warning] Aborted connection 924 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:20:00 925 [Warning] Aborted connection 925 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:20:03 926 [Warning] Aborted connection 926 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:20:15 927 [Warning] Aborted connection 927 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:22:32 928 [Warning] Aborted connection 928 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:29:44 929 [Warning] Aborted connection 929 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:30:01 930 [Warning] Aborted connection 930 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:30:04 931 [Warning] Aborted connection 931 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:30:16 932 [Warning] Aborted connection 932 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:32:32 933 [Warning] Aborted connection 933 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:39:44 934 [Warning] Aborted connection 934 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:40:01 935 [Warning] Aborted connection 935 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:40:04 936 [Warning] Aborted connection 936 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:40:16 937 [Warning] Aborted connection 937 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:42:33 938 [Warning] Aborted connection 938 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:49:44 939 [Warning] Aborted connection 939 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:50:01 940 [Warning] Aborted connection 940 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:50:04 941 [Warning] Aborted connection 941 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:50:16 942 [Warning] Aborted connection 942 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:52:33 943 [Warning] Aborted connection 943 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-20 23:59:44 944 [Warning] Aborted connection 944 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:00:02 945 [Warning] Aborted connection 945 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:00:05 946 [Warning] Aborted connection 946 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:00:17 947 [Warning] Aborted connection 947 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:02:33 948 [Warning] Aborted connection 948 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:09:45 949 [Warning] Aborted connection 949 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:10:02 950 [Warning] Aborted connection 950 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:10:05 951 [Warning] Aborted connection 951 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:10:17 952 [Warning] Aborted connection 952 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:12:33 953 [Warning] Aborted connection 953 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:19:45 954 [Warning] Aborted connection 954 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:20:02 955 [Warning] Aborted connection 955 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:20:05 956 [Warning] Aborted connection 956 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:20:17 957 [Warning] Aborted connection 957 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:22:34 958 [Warning] Aborted connection 958 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:29:45 959 [Warning] Aborted connection 959 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:30:02 960 [Warning] Aborted connection 960 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:30:05 961 [Warning] Aborted connection 961 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:30:17 962 [Warning] Aborted connection 962 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:32:34 963 [Warning] Aborted connection 963 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:39:45 964 [Warning] Aborted connection 964 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:40:02 965 [Warning] Aborted connection 965 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:40:06 966 [Warning] Aborted connection 966 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:40:18 967 [Warning] Aborted connection 967 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:42:34 968 [Warning] Aborted connection 968 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:49:46 969 [Warning] Aborted connection 969 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:50:03 970 [Warning] Aborted connection 970 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:50:06 971 [Warning] Aborted connection 971 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:50:18 972 [Warning] Aborted connection 972 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:52:34 973 [Warning] Aborted connection 973 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 0:59:46 974 [Warning] Aborted connection 974 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:00:03 975 [Warning] Aborted connection 975 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:00:06 976 [Warning] Aborted connection 976 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:00:18 977 [Warning] Aborted connection 977 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:02:35 978 [Warning] Aborted connection 978 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:09:46 979 [Warning] Aborted connection 979 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:10:03 980 [Warning] Aborted connection 980 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:10:06 981 [Warning] Aborted connection 981 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:10:18 982 [Warning] Aborted connection 982 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:12:35 983 [Warning] Aborted connection 983 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:19:47 984 [Warning] Aborted connection 984 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:20:04 985 [Warning] Aborted connection 985 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:20:07 986 [Warning] Aborted connection 986 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:20:19 987 [Warning] Aborted connection 987 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:22:35 988 [Warning] Aborted connection 988 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:29:47 989 [Warning] Aborted connection 989 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:30:04 990 [Warning] Aborted connection 990 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:30:07 991 [Warning] Aborted connection 991 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:30:19 992 [Warning] Aborted connection 992 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:32:35 993 [Warning] Aborted connection 993 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:39:47 994 [Warning] Aborted connection 994 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:40:04 995 [Warning] Aborted connection 995 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:40:07 996 [Warning] Aborted connection 996 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:40:19 997 [Warning] Aborted connection 997 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:42:36 998 [Warning] Aborted connection 998 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:49:47 999 [Warning] Aborted connection 999 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:50:04 1000 [Warning] Aborted connection 1000 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:50:07 1001 [Warning] Aborted connection 1001 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:50:19 1002 [Warning] Aborted connection 1002 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:52:36 1003 [Warning] Aborted connection 1003 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 1:59:48 1004 [Warning] Aborted connection 1004 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:00:05 1005 [Warning] Aborted connection 1005 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:00:08 1006 [Warning] Aborted connection 1006 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:00:20 1007 [Warning] Aborted connection 1007 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:02:36 1008 [Warning] Aborted connection 1008 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:09:48 1009 [Warning] Aborted connection 1009 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:10:05 1010 [Warning] Aborted connection 1010 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:10:08 1011 [Warning] Aborted connection 1011 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:10:20 1012 [Warning] Aborted connection 1012 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:12:36 1013 [Warning] Aborted connection 1013 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:19:48 1014 [Warning] Aborted connection 1014 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:20:05 1015 [Warning] Aborted connection 1015 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:20:08 1016 [Warning] Aborted connection 1016 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:20:20 1017 [Warning] Aborted connection 1017 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:22:37 1018 [Warning] Aborted connection 1018 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:29:48 1019 [Warning] Aborted connection 1019 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:30:05 1020 [Warning] Aborted connection 1020 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:30:08 1021 [Warning] Aborted connection 1021 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:30:20 1022 [Warning] Aborted connection 1022 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:32:37 1023 [Warning] Aborted connection 1023 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:39:49 1024 [Warning] Aborted connection 1024 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:40:06 1025 [Warning] Aborted connection 1025 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:40:09 1026 [Warning] Aborted connection 1026 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:40:21 1027 [Warning] Aborted connection 1027 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:42:37 1028 [Warning] Aborted connection 1028 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:49:49 1029 [Warning] Aborted connection 1029 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:50:06 1030 [Warning] Aborted connection 1030 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:50:09 1031 [Warning] Aborted connection 1031 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:50:21 1032 [Warning] Aborted connection 1032 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:52:38 1033 [Warning] Aborted connection 1033 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 2:59:49 1034 [Warning] Aborted connection 1034 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:00:06 1035 [Warning] Aborted connection 1035 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:00:09 1036 [Warning] Aborted connection 1036 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:00:21 1037 [Warning] Aborted connection 1037 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:02:38 1038 [Warning] Aborted connection 1038 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:09:49 1039 [Warning] Aborted connection 1039 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:10:06 1040 [Warning] Aborted connection 1040 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:10:09 1041 [Warning] Aborted connection 1041 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:10:21 1042 [Warning] Aborted connection 1042 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:12:38 1043 [Warning] Aborted connection 1043 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:19:50 1044 [Warning] Aborted connection 1044 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:20:07 1045 [Warning] Aborted connection 1045 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:20:10 1046 [Warning] Aborted connection 1046 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:20:22 1047 [Warning] Aborted connection 1047 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:22:38 1048 [Warning] Aborted connection 1048 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:29:50 1049 [Warning] Aborted connection 1049 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:30:07 1050 [Warning] Aborted connection 1050 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:30:10 1051 [Warning] Aborted connection 1051 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:30:22 1052 [Warning] Aborted connection 1052 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:32:39 1053 [Warning] Aborted connection 1053 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:39:50 1054 [Warning] Aborted connection 1054 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:40:07 1055 [Warning] Aborted connection 1055 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:40:10 1056 [Warning] Aborted connection 1056 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:40:22 1057 [Warning] Aborted connection 1057 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:42:39 1058 [Warning] Aborted connection 1058 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:49:50 1059 [Warning] Aborted connection 1059 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:50:07 1060 [Warning] Aborted connection 1060 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:50:10 1061 [Warning] Aborted connection 1061 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:50:22 1062 [Warning] Aborted connection 1062 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:52:39 1063 [Warning] Aborted connection 1063 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 3:59:51 1064 [Warning] Aborted connection 1064 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:00:08 1065 [Warning] Aborted connection 1065 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:00:11 1066 [Warning] Aborted connection 1066 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:00:23 1067 [Warning] Aborted connection 1067 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:02:39 1068 [Warning] Aborted connection 1068 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:09:51 1069 [Warning] Aborted connection 1069 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:10:08 1070 [Warning] Aborted connection 1070 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:10:11 1071 [Warning] Aborted connection 1071 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:10:23 1072 [Warning] Aborted connection 1072 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:12:40 1073 [Warning] Aborted connection 1073 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:19:51 1074 [Warning] Aborted connection 1074 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:20:08 1075 [Warning] Aborted connection 1075 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:20:11 1076 [Warning] Aborted connection 1076 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:20:23 1077 [Warning] Aborted connection 1077 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:22:40 1078 [Warning] Aborted connection 1078 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:29:51 1079 [Warning] Aborted connection 1079 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:30:08 1080 [Warning] Aborted connection 1080 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:30:11 1081 [Warning] Aborted connection 1081 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:30:23 1082 [Warning] Aborted connection 1082 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:32:40 1083 [Warning] Aborted connection 1083 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:39:52 1084 [Warning] Aborted connection 1084 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:40:09 1085 [Warning] Aborted connection 1085 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:40:12 1086 [Warning] Aborted connection 1086 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:40:24 1087 [Warning] Aborted connection 1087 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:42:40 1088 [Warning] Aborted connection 1088 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:49:52 1089 [Warning] Aborted connection 1089 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:50:09 1090 [Warning] Aborted connection 1090 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:50:12 1091 [Warning] Aborted connection 1091 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:50:24 1092 [Warning] Aborted connection 1092 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:52:41 1093 [Warning] Aborted connection 1093 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 4:59:52 1094 [Warning] Aborted connection 1094 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:00:09 1095 [Warning] Aborted connection 1095 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:00:12 1096 [Warning] Aborted connection 1096 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:00:24 1097 [Warning] Aborted connection 1097 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:02:41 1098 [Warning] Aborted connection 1098 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:09:52 1099 [Warning] Aborted connection 1099 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:10:10 1100 [Warning] Aborted connection 1100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:10:13 1101 [Warning] Aborted connection 1101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:10:25 1102 [Warning] Aborted connection 1102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:12:41 1103 [Warning] Aborted connection 1103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:19:53 1104 [Warning] Aborted connection 1104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:20:10 1105 [Warning] Aborted connection 1105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:20:13 1106 [Warning] Aborted connection 1106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:20:25 1107 [Warning] Aborted connection 1107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:22:41 1108 [Warning] Aborted connection 1108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:29:53 1109 [Warning] Aborted connection 1109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:30:10 1110 [Warning] Aborted connection 1110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:30:13 1111 [Warning] Aborted connection 1111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:30:25 1112 [Warning] Aborted connection 1112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:32:42 1113 [Warning] Aborted connection 1113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:39:53 1114 [Warning] Aborted connection 1114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:40:10 1115 [Warning] Aborted connection 1115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:40:13 1116 [Warning] Aborted connection 1116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:40:25 1117 [Warning] Aborted connection 1117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:42:42 1118 [Warning] Aborted connection 1118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:49:54 1119 [Warning] Aborted connection 1119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:50:11 1120 [Warning] Aborted connection 1120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:50:14 1121 [Warning] Aborted connection 1121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:50:26 1122 [Warning] Aborted connection 1122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:52:42 1123 [Warning] Aborted connection 1123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 5:59:54 1124 [Warning] Aborted connection 1124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:00:11 1125 [Warning] Aborted connection 1125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:00:14 1126 [Warning] Aborted connection 1126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:00:26 1127 [Warning] Aborted connection 1127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:02:43 1128 [Warning] Aborted connection 1128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:09:54 1129 [Warning] Aborted connection 1129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:10:11 1130 [Warning] Aborted connection 1130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:10:14 1131 [Warning] Aborted connection 1131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:10:26 1132 [Warning] Aborted connection 1132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:12:43 1133 [Warning] Aborted connection 1133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:19:54 1134 [Warning] Aborted connection 1134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:20:11 1135 [Warning] Aborted connection 1135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:20:14 1136 [Warning] Aborted connection 1136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:20:26 1137 [Warning] Aborted connection 1137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:22:43 1138 [Warning] Aborted connection 1138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:29:55 1139 [Warning] Aborted connection 1139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:30:12 1140 [Warning] Aborted connection 1140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:30:15 1141 [Warning] Aborted connection 1141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:30:27 1142 [Warning] Aborted connection 1142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:32:43 1143 [Warning] Aborted connection 1143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:39:55 1144 [Warning] Aborted connection 1144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:40:12 1145 [Warning] Aborted connection 1145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:40:15 1146 [Warning] Aborted connection 1146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:40:27 1147 [Warning] Aborted connection 1147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:42:44 1148 [Warning] Aborted connection 1148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:49:55 1149 [Warning] Aborted connection 1149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:50:12 1150 [Warning] Aborted connection 1150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:50:15 1151 [Warning] Aborted connection 1151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:50:27 1152 [Warning] Aborted connection 1152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:52:44 1153 [Warning] Aborted connection 1153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 6:59:55 1154 [Warning] Aborted connection 1154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:00:12 1155 [Warning] Aborted connection 1155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:00:15 1156 [Warning] Aborted connection 1156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:00:27 1157 [Warning] Aborted connection 1157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:02:44 1158 [Warning] Aborted connection 1158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:09:56 1159 [Warning] Aborted connection 1159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:10:13 1160 [Warning] Aborted connection 1160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:10:16 1161 [Warning] Aborted connection 1161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:10:28 1162 [Warning] Aborted connection 1162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:12:44 1163 [Warning] Aborted connection 1163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:19:56 1164 [Warning] Aborted connection 1164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:20:13 1165 [Warning] Aborted connection 1165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:20:16 1166 [Warning] Aborted connection 1166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:20:28 1167 [Warning] Aborted connection 1167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:22:45 1168 [Warning] Aborted connection 1168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:29:56 1169 [Warning] Aborted connection 1169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:30:13 1170 [Warning] Aborted connection 1170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:30:16 1171 [Warning] Aborted connection 1171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:30:28 1172 [Warning] Aborted connection 1172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:32:45 1173 [Warning] Aborted connection 1173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:39:56 1174 [Warning] Aborted connection 1174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:40:13 1175 [Warning] Aborted connection 1175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:40:16 1176 [Warning] Aborted connection 1176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:40:28 1177 [Warning] Aborted connection 1177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:42:45 1178 [Warning] Aborted connection 1178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:49:57 1179 [Warning] Aborted connection 1179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:50:14 1180 [Warning] Aborted connection 1180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:50:17 1181 [Warning] Aborted connection 1181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:50:29 1182 [Warning] Aborted connection 1182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:52:45 1183 [Warning] Aborted connection 1183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 7:59:57 1184 [Warning] Aborted connection 1184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:00:14 1185 [Warning] Aborted connection 1185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:00:17 1186 [Warning] Aborted connection 1186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:00:29 1187 [Warning] Aborted connection 1187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:02:46 1188 [Warning] Aborted connection 1188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:09:57 1189 [Warning] Aborted connection 1189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:10:14 1190 [Warning] Aborted connection 1190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:10:17 1191 [Warning] Aborted connection 1191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:10:29 1192 [Warning] Aborted connection 1192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:12:46 1193 [Warning] Aborted connection 1193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:19:57 1194 [Warning] Aborted connection 1194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:20:14 1195 [Warning] Aborted connection 1195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:20:17 1196 [Warning] Aborted connection 1196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:20:29 1197 [Warning] Aborted connection 1197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:22:46 1198 [Warning] Aborted connection 1198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:29:58 1199 [Warning] Aborted connection 1199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:30:15 1200 [Warning] Aborted connection 1200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:30:18 1201 [Warning] Aborted connection 1201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:30:30 1202 [Warning] Aborted connection 1202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:32:46 1203 [Warning] Aborted connection 1203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:39:58 1204 [Warning] Aborted connection 1204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:40:15 1205 [Warning] Aborted connection 1205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:40:18 1206 [Warning] Aborted connection 1206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:40:30 1207 [Warning] Aborted connection 1207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:42:47 1208 [Warning] Aborted connection 1208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:49:58 1209 [Warning] Aborted connection 1209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:50:15 1210 [Warning] Aborted connection 1210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:50:18 1211 [Warning] Aborted connection 1211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:50:30 1212 [Warning] Aborted connection 1212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:52:47 1213 [Warning] Aborted connection 1213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 8:59:58 1214 [Warning] Aborted connection 1214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:00:15 1215 [Warning] Aborted connection 1215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:00:19 1216 [Warning] Aborted connection 1216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:00:30 1217 [Warning] Aborted connection 1217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:02:47 1218 [Warning] Aborted connection 1218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:09:59 1219 [Warning] Aborted connection 1219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:10:16 1220 [Warning] Aborted connection 1220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:10:19 1221 [Warning] Aborted connection 1221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:10:31 1222 [Warning] Aborted connection 1222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:12:47 1223 [Warning] Aborted connection 1223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:19:59 1224 [Warning] Aborted connection 1224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:20:16 1225 [Warning] Aborted connection 1225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:20:19 1226 [Warning] Aborted connection 1226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:20:31 1227 [Warning] Aborted connection 1227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:22:48 1228 [Warning] Aborted connection 1228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:29:59 1229 [Warning] Aborted connection 1229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:30:16 1230 [Warning] Aborted connection 1230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:30:19 1231 [Warning] Aborted connection 1231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:30:31 1232 [Warning] Aborted connection 1232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:32:48 1233 [Warning] Aborted connection 1233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:40:00 1234 [Warning] Aborted connection 1234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:40:17 1235 [Warning] Aborted connection 1235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:40:19 1236 [Warning] Aborted connection 1236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:40:32 1237 [Warning] Aborted connection 1237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:42:48 1238 [Warning] Aborted connection 1238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:50:00 1239 [Warning] Aborted connection 1239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:50:17 1240 [Warning] Aborted connection 1240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:50:20 1241 [Warning] Aborted connection 1241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:50:32 1242 [Warning] Aborted connection 1242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 9:52:48 1243 [Warning] Aborted connection 1243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:00:00 1244 [Warning] Aborted connection 1244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:00:17 1245 [Warning] Aborted connection 1245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:00:20 1246 [Warning] Aborted connection 1246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:00:32 1247 [Warning] Aborted connection 1247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:02:49 1248 [Warning] Aborted connection 1248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:10:00 1249 [Warning] Aborted connection 1249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:10:17 1250 [Warning] Aborted connection 1250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:10:20 1251 [Warning] Aborted connection 1251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:10:32 1252 [Warning] Aborted connection 1252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:12:49 1253 [Warning] Aborted connection 1253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:20:01 1254 [Warning] Aborted connection 1254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:20:18 1255 [Warning] Aborted connection 1255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:20:21 1256 [Warning] Aborted connection 1256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:20:33 1257 [Warning] Aborted connection 1257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:22:49 1258 [Warning] Aborted connection 1258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:30:01 1259 [Warning] Aborted connection 1259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:30:18 1260 [Warning] Aborted connection 1260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:30:21 1261 [Warning] Aborted connection 1261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:30:33 1262 [Warning] Aborted connection 1262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:32:50 1263 [Warning] Aborted connection 1263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:40:01 1264 [Warning] Aborted connection 1264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:40:18 1265 [Warning] Aborted connection 1265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:40:21 1266 [Warning] Aborted connection 1266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:40:33 1267 [Warning] Aborted connection 1267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:42:50 1268 [Warning] Aborted connection 1268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:50:01 1269 [Warning] Aborted connection 1269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:50:18 1270 [Warning] Aborted connection 1270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:50:21 1271 [Warning] Aborted connection 1271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:50:33 1272 [Warning] Aborted connection 1272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 10:52:50 1273 [Warning] Aborted connection 1273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:00:02 1274 [Warning] Aborted connection 1274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:00:19 1275 [Warning] Aborted connection 1275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:00:22 1276 [Warning] Aborted connection 1276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:00:34 1277 [Warning] Aborted connection 1277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:02:50 1278 [Warning] Aborted connection 1278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:10:02 1279 [Warning] Aborted connection 1279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:10:19 1280 [Warning] Aborted connection 1280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:10:22 1281 [Warning] Aborted connection 1281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:10:34 1282 [Warning] Aborted connection 1282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:12:51 1283 [Warning] Aborted connection 1283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:20:02 1284 [Warning] Aborted connection 1284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:20:19 1285 [Warning] Aborted connection 1285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:20:22 1286 [Warning] Aborted connection 1286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:20:34 1287 [Warning] Aborted connection 1287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:22:51 1288 [Warning] Aborted connection 1288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:30:02 1289 [Warning] Aborted connection 1289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:30:19 1290 [Warning] Aborted connection 1290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:30:22 1291 [Warning] Aborted connection 1291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:30:34 1292 [Warning] Aborted connection 1292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:32:51 1293 [Warning] Aborted connection 1293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:40:03 1294 [Warning] Aborted connection 1294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:40:20 1295 [Warning] Aborted connection 1295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:40:23 1296 [Warning] Aborted connection 1296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:40:35 1297 [Warning] Aborted connection 1297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:42:51 1298 [Warning] Aborted connection 1298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:50:03 1299 [Warning] Aborted connection 1299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:50:20 1300 [Warning] Aborted connection 1300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:50:23 1301 [Warning] Aborted connection 1301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:50:35 1302 [Warning] Aborted connection 1302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 11:52:52 1303 [Warning] Aborted connection 1303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:00:03 1304 [Warning] Aborted connection 1304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:00:20 1305 [Warning] Aborted connection 1305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:00:23 1306 [Warning] Aborted connection 1306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:00:35 1307 [Warning] Aborted connection 1307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:02:52 1308 [Warning] Aborted connection 1308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:10:04 1309 [Warning] Aborted connection 1309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:10:20 1310 [Warning] Aborted connection 1310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:10:24 1311 [Warning] Aborted connection 1311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:10:36 1312 [Warning] Aborted connection 1312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:12:52 1313 [Warning] Aborted connection 1313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:20:04 1314 [Warning] Aborted connection 1314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:20:21 1315 [Warning] Aborted connection 1315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:20:24 1316 [Warning] Aborted connection 1316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:20:36 1317 [Warning] Aborted connection 1317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:22:52 1318 [Warning] Aborted connection 1318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:30:05 1319 [Warning] Aborted connection 1319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:30:21 1320 [Warning] Aborted connection 1320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:30:24 1321 [Warning] Aborted connection 1321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:30:36 1322 [Warning] Aborted connection 1322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:32:53 1323 [Warning] Aborted connection 1323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:40:05 1324 [Warning] Aborted connection 1324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:40:21 1325 [Warning] Aborted connection 1325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:40:24 1326 [Warning] Aborted connection 1326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:40:36 1327 [Warning] Aborted connection 1327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:42:53 1328 [Warning] Aborted connection 1328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:50:05 1329 [Warning] Aborted connection 1329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:50:22 1330 [Warning] Aborted connection 1330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:50:25 1331 [Warning] Aborted connection 1331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:50:37 1332 [Warning] Aborted connection 1332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 12:52:53 1333 [Warning] Aborted connection 1333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:00:05 1334 [Warning] Aborted connection 1334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:00:22 1335 [Warning] Aborted connection 1335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:00:25 1336 [Warning] Aborted connection 1336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:00:37 1337 [Warning] Aborted connection 1337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:02:54 1338 [Warning] Aborted connection 1338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:10:06 1339 [Warning] Aborted connection 1339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:10:22 1340 [Warning] Aborted connection 1340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:10:25 1341 [Warning] Aborted connection 1341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:10:37 1342 [Warning] Aborted connection 1342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:12:54 1343 [Warning] Aborted connection 1343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:20:06 1344 [Warning] Aborted connection 1344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:20:22 1345 [Warning] Aborted connection 1345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:20:25 1346 [Warning] Aborted connection 1346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:20:37 1347 [Warning] Aborted connection 1347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:22:54 1348 [Warning] Aborted connection 1348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:30:06 1349 [Warning] Aborted connection 1349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:30:23 1350 [Warning] Aborted connection 1350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:30:26 1351 [Warning] Aborted connection 1351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:30:38 1352 [Warning] Aborted connection 1352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:32:54 1353 [Warning] Aborted connection 1353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:40:06 1354 [Warning] Aborted connection 1354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:40:23 1355 [Warning] Aborted connection 1355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:40:26 1356 [Warning] Aborted connection 1356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:40:38 1357 [Warning] Aborted connection 1357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:42:55 1358 [Warning] Aborted connection 1358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:50:07 1359 [Warning] Aborted connection 1359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:50:23 1360 [Warning] Aborted connection 1360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:50:26 1361 [Warning] Aborted connection 1361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:50:38 1362 [Warning] Aborted connection 1362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 13:52:55 1363 [Warning] Aborted connection 1363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:00:07 1364 [Warning] Aborted connection 1364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:00:23 1365 [Warning] Aborted connection 1365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:00:26 1366 [Warning] Aborted connection 1366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:00:38 1367 [Warning] Aborted connection 1367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:02:55 1368 [Warning] Aborted connection 1368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:10:07 1369 [Warning] Aborted connection 1369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:10:24 1370 [Warning] Aborted connection 1370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:10:27 1371 [Warning] Aborted connection 1371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:10:39 1372 [Warning] Aborted connection 1372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:12:55 1373 [Warning] Aborted connection 1373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:20:07 1374 [Warning] Aborted connection 1374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:20:24 1375 [Warning] Aborted connection 1375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:20:27 1376 [Warning] Aborted connection 1376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:20:39 1377 [Warning] Aborted connection 1377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:22:56 1378 [Warning] Aborted connection 1378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:30:08 1379 [Warning] Aborted connection 1379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:30:24 1380 [Warning] Aborted connection 1380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:30:27 1381 [Warning] Aborted connection 1381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:30:39 1382 [Warning] Aborted connection 1382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:32:56 1383 [Warning] Aborted connection 1383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:40:08 1384 [Warning] Aborted connection 1384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:40:25 1385 [Warning] Aborted connection 1385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:40:28 1386 [Warning] Aborted connection 1386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:40:40 1387 [Warning] Aborted connection 1387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:42:56 1388 [Warning] Aborted connection 1388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:50:08 1389 [Warning] Aborted connection 1389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:50:25 1390 [Warning] Aborted connection 1390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:50:28 1391 [Warning] Aborted connection 1391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:50:40 1392 [Warning] Aborted connection 1392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 14:52:56 1393 [Warning] Aborted connection 1393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:00:09 1394 [Warning] Aborted connection 1394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:00:25 1395 [Warning] Aborted connection 1395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:00:28 1396 [Warning] Aborted connection 1396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:00:40 1397 [Warning] Aborted connection 1397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:02:57 1398 [Warning] Aborted connection 1398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:10:09 1399 [Warning] Aborted connection 1399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:10:25 1400 [Warning] Aborted connection 1400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:10:28 1401 [Warning] Aborted connection 1401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:10:40 1402 [Warning] Aborted connection 1402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:12:57 1403 [Warning] Aborted connection 1403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:20:09 1404 [Warning] Aborted connection 1404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:20:26 1405 [Warning] Aborted connection 1405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:20:28 1406 [Warning] Aborted connection 1406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:20:41 1407 [Warning] Aborted connection 1407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:22:57 1408 [Warning] Aborted connection 1408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:30:09 1409 [Warning] Aborted connection 1409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:30:26 1410 [Warning] Aborted connection 1410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:30:29 1411 [Warning] Aborted connection 1411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:30:41 1412 [Warning] Aborted connection 1412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:32:58 1413 [Warning] Aborted connection 1413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:40:10 1414 [Warning] Aborted connection 1414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:40:26 1415 [Warning] Aborted connection 1415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:40:29 1416 [Warning] Aborted connection 1416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:40:41 1417 [Warning] Aborted connection 1417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:42:58 1418 [Warning] Aborted connection 1418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:50:10 1419 [Warning] Aborted connection 1419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:50:26 1420 [Warning] Aborted connection 1420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:50:29 1421 [Warning] Aborted connection 1421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:50:41 1422 [Warning] Aborted connection 1422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 15:52:58 1423 [Warning] Aborted connection 1423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:00:10 1424 [Warning] Aborted connection 1424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:00:27 1425 [Warning] Aborted connection 1425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:00:30 1426 [Warning] Aborted connection 1426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:00:42 1427 [Warning] Aborted connection 1427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:02:58 1428 [Warning] Aborted connection 1428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:10:10 1429 [Warning] Aborted connection 1429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:10:27 1430 [Warning] Aborted connection 1430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:10:30 1431 [Warning] Aborted connection 1431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:10:42 1432 [Warning] Aborted connection 1432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:12:59 1433 [Warning] Aborted connection 1433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:20:11 1434 [Warning] Aborted connection 1434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:20:27 1435 [Warning] Aborted connection 1435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:20:30 1436 [Warning] Aborted connection 1436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:20:42 1437 [Warning] Aborted connection 1437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:22:59 1438 [Warning] Aborted connection 1438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:30:11 1439 [Warning] Aborted connection 1439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:30:27 1440 [Warning] Aborted connection 1440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:30:30 1441 [Warning] Aborted connection 1441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:30:42 1442 [Warning] Aborted connection 1442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:32:59 1443 [Warning] Aborted connection 1443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:40:11 1444 [Warning] Aborted connection 1444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:40:28 1445 [Warning] Aborted connection 1445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:40:31 1446 [Warning] Aborted connection 1446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:40:43 1447 [Warning] Aborted connection 1447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:42:59 1448 [Warning] Aborted connection 1448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:50:11 1449 [Warning] Aborted connection 1449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:50:28 1450 [Warning] Aborted connection 1450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:50:31 1451 [Warning] Aborted connection 1451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:50:43 1452 [Warning] Aborted connection 1452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 16:53:00 1453 [Warning] Aborted connection 1453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:00:12 1454 [Warning] Aborted connection 1454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:00:28 1455 [Warning] Aborted connection 1455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:00:31 1456 [Warning] Aborted connection 1456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:00:43 1457 [Warning] Aborted connection 1457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:03:00 1458 [Warning] Aborted connection 1458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:10:12 1459 [Warning] Aborted connection 1459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:10:28 1460 [Warning] Aborted connection 1460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:10:31 1461 [Warning] Aborted connection 1461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:10:43 1462 [Warning] Aborted connection 1462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:13:00 1463 [Warning] Aborted connection 1463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:20:12 1464 [Warning] Aborted connection 1464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:20:29 1465 [Warning] Aborted connection 1465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:20:32 1466 [Warning] Aborted connection 1466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:20:44 1467 [Warning] Aborted connection 1467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:23:00 1468 [Warning] Aborted connection 1468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:30:12 1469 [Warning] Aborted connection 1469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:30:29 1470 [Warning] Aborted connection 1470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:30:32 1471 [Warning] Aborted connection 1471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:30:44 1472 [Warning] Aborted connection 1472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:33:01 1473 [Warning] Aborted connection 1473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:40:13 1474 [Warning] Aborted connection 1474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:40:29 1475 [Warning] Aborted connection 1475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:40:32 1476 [Warning] Aborted connection 1476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:40:44 1477 [Warning] Aborted connection 1477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:43:01 1478 [Warning] Aborted connection 1478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:50:13 1479 [Warning] Aborted connection 1479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:50:29 1480 [Warning] Aborted connection 1480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:50:33 1481 [Warning] Aborted connection 1481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:50:45 1482 [Warning] Aborted connection 1482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 17:53:01 1483 [Warning] Aborted connection 1483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:00:13 1484 [Warning] Aborted connection 1484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:00:30 1485 [Warning] Aborted connection 1485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:00:33 1486 [Warning] Aborted connection 1486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:00:45 1487 [Warning] Aborted connection 1487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:03:01 1488 [Warning] Aborted connection 1488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:10:13 1489 [Warning] Aborted connection 1489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:10:30 1490 [Warning] Aborted connection 1490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:10:33 1491 [Warning] Aborted connection 1491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:10:45 1492 [Warning] Aborted connection 1492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:13:02 1493 [Warning] Aborted connection 1493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:20:14 1494 [Warning] Aborted connection 1494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:20:30 1495 [Warning] Aborted connection 1495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:20:33 1496 [Warning] Aborted connection 1496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:20:45 1497 [Warning] Aborted connection 1497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:23:02 1498 [Warning] Aborted connection 1498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:30:14 1499 [Warning] Aborted connection 1499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:30:31 1500 [Warning] Aborted connection 1500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:30:33 1501 [Warning] Aborted connection 1501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:30:45 1502 [Warning] Aborted connection 1502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:33:02 1503 [Warning] Aborted connection 1503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:40:14 1504 [Warning] Aborted connection 1504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:40:31 1505 [Warning] Aborted connection 1505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:40:34 1506 [Warning] Aborted connection 1506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:40:46 1507 [Warning] Aborted connection 1507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:43:02 1508 [Warning] Aborted connection 1508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:50:15 1509 [Warning] Aborted connection 1509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:50:31 1510 [Warning] Aborted connection 1510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:50:34 1511 [Warning] Aborted connection 1511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:50:46 1512 [Warning] Aborted connection 1512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 18:53:03 1513 [Warning] Aborted connection 1513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:00:15 1514 [Warning] Aborted connection 1514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:00:31 1515 [Warning] Aborted connection 1515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:00:34 1516 [Warning] Aborted connection 1516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:00:46 1517 [Warning] Aborted connection 1517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:03:03 1518 [Warning] Aborted connection 1518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:10:15 1519 [Warning] Aborted connection 1519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:10:32 1520 [Warning] Aborted connection 1520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:10:35 1521 [Warning] Aborted connection 1521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:10:47 1522 [Warning] Aborted connection 1522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:13:03 1523 [Warning] Aborted connection 1523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:20:15 1524 [Warning] Aborted connection 1524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:20:32 1525 [Warning] Aborted connection 1525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:20:35 1526 [Warning] Aborted connection 1526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:20:47 1527 [Warning] Aborted connection 1527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:23:04 1528 [Warning] Aborted connection 1528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:30:16 1529 [Warning] Aborted connection 1529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:30:32 1530 [Warning] Aborted connection 1530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:30:35 1531 [Warning] Aborted connection 1531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:30:47 1532 [Warning] Aborted connection 1532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:33:04 1533 [Warning] Aborted connection 1533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:40:16 1534 [Warning] Aborted connection 1534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:40:32 1535 [Warning] Aborted connection 1535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:40:35 1536 [Warning] Aborted connection 1536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:40:47 1537 [Warning] Aborted connection 1537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:43:04 1538 [Warning] Aborted connection 1538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:50:16 1539 [Warning] Aborted connection 1539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:50:33 1540 [Warning] Aborted connection 1540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:50:36 1541 [Warning] Aborted connection 1541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:50:48 1542 [Warning] Aborted connection 1542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 19:53:04 1543 [Warning] Aborted connection 1543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:00:16 1544 [Warning] Aborted connection 1544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:00:33 1545 [Warning] Aborted connection 1545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:00:36 1546 [Warning] Aborted connection 1546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:00:48 1547 [Warning] Aborted connection 1547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:03:04 1548 [Warning] Aborted connection 1548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:10:17 1549 [Warning] Aborted connection 1549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:10:33 1550 [Warning] Aborted connection 1550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:10:36 1551 [Warning] Aborted connection 1551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:10:48 1552 [Warning] Aborted connection 1552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:13:05 1553 [Warning] Aborted connection 1553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:20:17 1554 [Warning] Aborted connection 1554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:20:33 1555 [Warning] Aborted connection 1555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:20:36 1556 [Warning] Aborted connection 1556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:20:48 1557 [Warning] Aborted connection 1557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:23:05 1558 [Warning] Aborted connection 1558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:30:17 1559 [Warning] Aborted connection 1559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:30:34 1560 [Warning] Aborted connection 1560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:30:37 1561 [Warning] Aborted connection 1561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:30:49 1562 [Warning] Aborted connection 1562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:33:05 1563 [Warning] Aborted connection 1563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:40:17 1564 [Warning] Aborted connection 1564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:40:34 1565 [Warning] Aborted connection 1565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:40:37 1566 [Warning] Aborted connection 1566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:40:49 1567 [Warning] Aborted connection 1567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:43:06 1568 [Warning] Aborted connection 1568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:50:18 1569 [Warning] Aborted connection 1569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:50:34 1570 [Warning] Aborted connection 1570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:50:37 1571 [Warning] Aborted connection 1571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:50:49 1572 [Warning] Aborted connection 1572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 20:53:06 1573 [Warning] Aborted connection 1573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:00:18 1574 [Warning] Aborted connection 1574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:00:34 1575 [Warning] Aborted connection 1575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:00:37 1576 [Warning] Aborted connection 1576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:00:49 1577 [Warning] Aborted connection 1577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:03:06 1578 [Warning] Aborted connection 1578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:10:18 1579 [Warning] Aborted connection 1579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:10:35 1580 [Warning] Aborted connection 1580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:10:38 1581 [Warning] Aborted connection 1581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:10:50 1582 [Warning] Aborted connection 1582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:13:06 1583 [Warning] Aborted connection 1583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:20:18 1584 [Warning] Aborted connection 1584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:20:35 1585 [Warning] Aborted connection 1585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:20:38 1586 [Warning] Aborted connection 1586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:20:50 1587 [Warning] Aborted connection 1587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:23:07 1588 [Warning] Aborted connection 1588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:30:19 1589 [Warning] Aborted connection 1589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:30:35 1590 [Warning] Aborted connection 1590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:30:38 1591 [Warning] Aborted connection 1591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:30:50 1592 [Warning] Aborted connection 1592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:33:07 1593 [Warning] Aborted connection 1593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:40:19 1594 [Warning] Aborted connection 1594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:40:35 1595 [Warning] Aborted connection 1595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:40:38 1596 [Warning] Aborted connection 1596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:40:50 1597 [Warning] Aborted connection 1597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:43:07 1598 [Warning] Aborted connection 1598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:50:19 1599 [Warning] Aborted connection 1599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:50:36 1600 [Warning] Aborted connection 1600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:50:39 1601 [Warning] Aborted connection 1601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:50:51 1602 [Warning] Aborted connection 1602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 21:53:07 1603 [Warning] Aborted connection 1603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:00:19 1604 [Warning] Aborted connection 1604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:00:36 1605 [Warning] Aborted connection 1605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:00:39 1606 [Warning] Aborted connection 1606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:00:51 1607 [Warning] Aborted connection 1607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:03:08 1608 [Warning] Aborted connection 1608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:10:20 1609 [Warning] Aborted connection 1609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:10:36 1610 [Warning] Aborted connection 1610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:10:39 1611 [Warning] Aborted connection 1611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:10:51 1612 [Warning] Aborted connection 1612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:13:08 1613 [Warning] Aborted connection 1613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:20:20 1614 [Warning] Aborted connection 1614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:20:36 1615 [Warning] Aborted connection 1615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:20:39 1616 [Warning] Aborted connection 1616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:20:52 1617 [Warning] Aborted connection 1617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:23:08 1618 [Warning] Aborted connection 1618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:30:20 1619 [Warning] Aborted connection 1619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:30:37 1620 [Warning] Aborted connection 1620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:30:40 1621 [Warning] Aborted connection 1621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:30:52 1622 [Warning] Aborted connection 1622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:33:08 1623 [Warning] Aborted connection 1623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:40:20 1624 [Warning] Aborted connection 1624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:40:37 1625 [Warning] Aborted connection 1625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:40:40 1626 [Warning] Aborted connection 1626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:40:52 1627 [Warning] Aborted connection 1627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:43:09 1628 [Warning] Aborted connection 1628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:50:21 1629 [Warning] Aborted connection 1629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:50:37 1630 [Warning] Aborted connection 1630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:50:40 1631 [Warning] Aborted connection 1631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:50:52 1632 [Warning] Aborted connection 1632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 22:53:09 1633 [Warning] Aborted connection 1633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:00:21 1634 [Warning] Aborted connection 1634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:00:38 1635 [Warning] Aborted connection 1635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:00:40 1636 [Warning] Aborted connection 1636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:00:53 1637 [Warning] Aborted connection 1637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:03:09 1638 [Warning] Aborted connection 1638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:10:21 1639 [Warning] Aborted connection 1639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:10:38 1640 [Warning] Aborted connection 1640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:10:41 1641 [Warning] Aborted connection 1641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:10:53 1642 [Warning] Aborted connection 1642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:13:09 1643 [Warning] Aborted connection 1643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:20:21 1644 [Warning] Aborted connection 1644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:20:38 1645 [Warning] Aborted connection 1645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:20:41 1646 [Warning] Aborted connection 1646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:20:53 1647 [Warning] Aborted connection 1647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:23:10 1648 [Warning] Aborted connection 1648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:30:22 1649 [Warning] Aborted connection 1649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:30:38 1650 [Warning] Aborted connection 1650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:30:41 1651 [Warning] Aborted connection 1651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:30:53 1652 [Warning] Aborted connection 1652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:33:10 1653 [Warning] Aborted connection 1653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:40:22 1654 [Warning] Aborted connection 1654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:40:39 1655 [Warning] Aborted connection 1655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:40:41 1656 [Warning] Aborted connection 1656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:40:54 1657 [Warning] Aborted connection 1657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:43:10 1658 [Warning] Aborted connection 1658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:50:22 1659 [Warning] Aborted connection 1659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:50:39 1660 [Warning] Aborted connection 1660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:50:42 1661 [Warning] Aborted connection 1661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:50:54 1662 [Warning] Aborted connection 1662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-21 23:53:10 1663 [Warning] Aborted connection 1663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:00:22 1664 [Warning] Aborted connection 1664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:00:39 1665 [Warning] Aborted connection 1665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:00:42 1666 [Warning] Aborted connection 1666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:00:54 1667 [Warning] Aborted connection 1667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:03:11 1668 [Warning] Aborted connection 1668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:10:23 1669 [Warning] Aborted connection 1669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:10:39 1670 [Warning] Aborted connection 1670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:10:42 1671 [Warning] Aborted connection 1671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:10:54 1672 [Warning] Aborted connection 1672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:13:11 1673 [Warning] Aborted connection 1673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:20:23 1674 [Warning] Aborted connection 1674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:20:40 1675 [Warning] Aborted connection 1675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:20:43 1676 [Warning] Aborted connection 1676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:20:55 1677 [Warning] Aborted connection 1677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:23:11 1678 [Warning] Aborted connection 1678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:30:23 1679 [Warning] Aborted connection 1679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:30:40 1680 [Warning] Aborted connection 1680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:30:43 1681 [Warning] Aborted connection 1681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:30:55 1682 [Warning] Aborted connection 1682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:33:12 1683 [Warning] Aborted connection 1683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:40:24 1684 [Warning] Aborted connection 1684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:40:40 1685 [Warning] Aborted connection 1685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:40:43 1686 [Warning] Aborted connection 1686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:40:55 1687 [Warning] Aborted connection 1687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:43:12 1688 [Warning] Aborted connection 1688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:50:24 1689 [Warning] Aborted connection 1689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:50:40 1690 [Warning] Aborted connection 1690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:50:43 1691 [Warning] Aborted connection 1691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:50:55 1692 [Warning] Aborted connection 1692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 0:53:12 1693 [Warning] Aborted connection 1693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:00:24 1694 [Warning] Aborted connection 1694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:00:41 1695 [Warning] Aborted connection 1695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:00:44 1696 [Warning] Aborted connection 1696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:00:56 1697 [Warning] Aborted connection 1697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:03:12 1698 [Warning] Aborted connection 1698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:10:24 1699 [Warning] Aborted connection 1699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:10:41 1700 [Warning] Aborted connection 1700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:10:44 1701 [Warning] Aborted connection 1701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:10:56 1702 [Warning] Aborted connection 1702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:13:13 1703 [Warning] Aborted connection 1703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:20:25 1704 [Warning] Aborted connection 1704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:20:41 1705 [Warning] Aborted connection 1705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:20:44 1706 [Warning] Aborted connection 1706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:20:56 1707 [Warning] Aborted connection 1707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:23:13 1708 [Warning] Aborted connection 1708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:30:25 1709 [Warning] Aborted connection 1709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:30:41 1710 [Warning] Aborted connection 1710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:30:44 1711 [Warning] Aborted connection 1711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:30:56 1712 [Warning] Aborted connection 1712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:33:13 1713 [Warning] Aborted connection 1713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:40:25 1714 [Warning] Aborted connection 1714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:40:42 1715 [Warning] Aborted connection 1715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:40:45 1716 [Warning] Aborted connection 1716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:40:57 1717 [Warning] Aborted connection 1717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:43:13 1718 [Warning] Aborted connection 1718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:50:25 1719 [Warning] Aborted connection 1719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:50:42 1720 [Warning] Aborted connection 1720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:50:45 1721 [Warning] Aborted connection 1721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:50:57 1722 [Warning] Aborted connection 1722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 1:53:14 1723 [Warning] Aborted connection 1723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:00:26 1724 [Warning] Aborted connection 1724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:00:42 1725 [Warning] Aborted connection 1725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:00:45 1726 [Warning] Aborted connection 1726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:00:57 1727 [Warning] Aborted connection 1727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:03:14 1728 [Warning] Aborted connection 1728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:10:26 1729 [Warning] Aborted connection 1729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:10:42 1730 [Warning] Aborted connection 1730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:10:45 1731 [Warning] Aborted connection 1731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:10:57 1732 [Warning] Aborted connection 1732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:13:14 1733 [Warning] Aborted connection 1733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:20:26 1734 [Warning] Aborted connection 1734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:20:43 1735 [Warning] Aborted connection 1735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:20:46 1736 [Warning] Aborted connection 1736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:20:58 1737 [Warning] Aborted connection 1737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:23:14 1738 [Warning] Aborted connection 1738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:30:26 1739 [Warning] Aborted connection 1739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:30:43 1740 [Warning] Aborted connection 1740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:30:46 1741 [Warning] Aborted connection 1741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:30:58 1742 [Warning] Aborted connection 1742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:33:15 1743 [Warning] Aborted connection 1743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:40:27 1744 [Warning] Aborted connection 1744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:40:43 1745 [Warning] Aborted connection 1745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:40:46 1746 [Warning] Aborted connection 1746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:40:58 1747 [Warning] Aborted connection 1747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:43:15 1748 [Warning] Aborted connection 1748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:50:27 1749 [Warning] Aborted connection 1749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:50:43 1750 [Warning] Aborted connection 1750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:50:46 1751 [Warning] Aborted connection 1751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:50:58 1752 [Warning] Aborted connection 1752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 2:53:15 1753 [Warning] Aborted connection 1753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:00:27 1754 [Warning] Aborted connection 1754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:00:44 1755 [Warning] Aborted connection 1755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:00:47 1756 [Warning] Aborted connection 1756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:00:59 1757 [Warning] Aborted connection 1757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:03:15 1758 [Warning] Aborted connection 1758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:10:27 1759 [Warning] Aborted connection 1759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:10:44 1760 [Warning] Aborted connection 1760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:10:47 1761 [Warning] Aborted connection 1761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:10:59 1762 [Warning] Aborted connection 1762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:13:16 1763 [Warning] Aborted connection 1763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:20:28 1764 [Warning] Aborted connection 1764 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:20:44 1765 [Warning] Aborted connection 1765 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:20:47 1766 [Warning] Aborted connection 1766 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:20:59 1767 [Warning] Aborted connection 1767 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:23:16 1768 [Warning] Aborted connection 1768 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:30:28 1769 [Warning] Aborted connection 1769 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:30:44 1770 [Warning] Aborted connection 1770 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:30:48 1771 [Warning] Aborted connection 1771 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:31:00 1772 [Warning] Aborted connection 1772 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:33:16 1773 [Warning] Aborted connection 1773 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:40:28 1774 [Warning] Aborted connection 1774 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:40:45 1775 [Warning] Aborted connection 1775 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:40:48 1776 [Warning] Aborted connection 1776 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:41:00 1777 [Warning] Aborted connection 1777 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:43:16 1778 [Warning] Aborted connection 1778 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:50:29 1779 [Warning] Aborted connection 1779 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:50:45 1780 [Warning] Aborted connection 1780 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:50:48 1781 [Warning] Aborted connection 1781 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:51:00 1782 [Warning] Aborted connection 1782 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 3:53:17 1783 [Warning] Aborted connection 1783 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:00:29 1784 [Warning] Aborted connection 1784 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:00:45 1785 [Warning] Aborted connection 1785 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:00:48 1786 [Warning] Aborted connection 1786 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:01:00 1787 [Warning] Aborted connection 1787 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:03:17 1788 [Warning] Aborted connection 1788 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:10:29 1789 [Warning] Aborted connection 1789 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:10:46 1790 [Warning] Aborted connection 1790 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:10:49 1791 [Warning] Aborted connection 1791 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:11:01 1792 [Warning] Aborted connection 1792 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:13:17 1793 [Warning] Aborted connection 1793 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:20:29 1794 [Warning] Aborted connection 1794 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:20:46 1795 [Warning] Aborted connection 1795 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:20:49 1796 [Warning] Aborted connection 1796 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:21:01 1797 [Warning] Aborted connection 1797 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:23:18 1798 [Warning] Aborted connection 1798 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:30:30 1799 [Warning] Aborted connection 1799 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:30:46 1800 [Warning] Aborted connection 1800 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:30:49 1801 [Warning] Aborted connection 1801 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:31:01 1802 [Warning] Aborted connection 1802 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:33:18 1803 [Warning] Aborted connection 1803 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:40:30 1804 [Warning] Aborted connection 1804 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:40:46 1805 [Warning] Aborted connection 1805 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:40:49 1806 [Warning] Aborted connection 1806 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:41:01 1807 [Warning] Aborted connection 1807 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:43:18 1808 [Warning] Aborted connection 1808 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:50:30 1809 [Warning] Aborted connection 1809 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:50:46 1810 [Warning] Aborted connection 1810 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:50:50 1811 [Warning] Aborted connection 1811 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:51:02 1812 [Warning] Aborted connection 1812 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 4:53:18 1813 [Warning] Aborted connection 1813 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:00:30 1814 [Warning] Aborted connection 1814 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:00:47 1815 [Warning] Aborted connection 1815 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:00:50 1816 [Warning] Aborted connection 1816 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:01:02 1817 [Warning] Aborted connection 1817 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:03:18 1818 [Warning] Aborted connection 1818 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:10:30 1819 [Warning] Aborted connection 1819 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:10:47 1820 [Warning] Aborted connection 1820 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:10:50 1821 [Warning] Aborted connection 1821 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:11:02 1822 [Warning] Aborted connection 1822 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:13:19 1823 [Warning] Aborted connection 1823 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:20:31 1824 [Warning] Aborted connection 1824 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:20:47 1825 [Warning] Aborted connection 1825 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:20:50 1826 [Warning] Aborted connection 1826 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:21:02 1827 [Warning] Aborted connection 1827 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:23:19 1828 [Warning] Aborted connection 1828 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:30:31 1829 [Warning] Aborted connection 1829 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:30:48 1830 [Warning] Aborted connection 1830 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:30:51 1831 [Warning] Aborted connection 1831 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:31:03 1832 [Warning] Aborted connection 1832 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:33:19 1833 [Warning] Aborted connection 1833 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:40:31 1834 [Warning] Aborted connection 1834 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:40:48 1835 [Warning] Aborted connection 1835 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:40:51 1836 [Warning] Aborted connection 1836 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:41:03 1837 [Warning] Aborted connection 1837 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:43:20 1838 [Warning] Aborted connection 1838 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:50:32 1839 [Warning] Aborted connection 1839 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:50:48 1840 [Warning] Aborted connection 1840 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:50:51 1841 [Warning] Aborted connection 1841 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:51:03 1842 [Warning] Aborted connection 1842 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 5:53:20 1843 [Warning] Aborted connection 1843 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:00:32 1844 [Warning] Aborted connection 1844 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:00:48 1845 [Warning] Aborted connection 1845 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:00:51 1846 [Warning] Aborted connection 1846 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:01:03 1847 [Warning] Aborted connection 1847 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:03:20 1848 [Warning] Aborted connection 1848 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:10:32 1849 [Warning] Aborted connection 1849 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:10:49 1850 [Warning] Aborted connection 1850 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:10:52 1851 [Warning] Aborted connection 1851 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:11:04 1852 [Warning] Aborted connection 1852 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:13:20 1853 [Warning] Aborted connection 1853 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:20:32 1854 [Warning] Aborted connection 1854 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:20:49 1855 [Warning] Aborted connection 1855 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:20:52 1856 [Warning] Aborted connection 1856 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:21:04 1857 [Warning] Aborted connection 1857 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:23:21 1858 [Warning] Aborted connection 1858 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:30:33 1859 [Warning] Aborted connection 1859 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:30:49 1860 [Warning] Aborted connection 1860 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:30:52 1861 [Warning] Aborted connection 1861 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:31:04 1862 [Warning] Aborted connection 1862 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:33:21 1863 [Warning] Aborted connection 1863 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:40:33 1864 [Warning] Aborted connection 1864 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:40:49 1865 [Warning] Aborted connection 1865 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:40:52 1866 [Warning] Aborted connection 1866 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:41:04 1867 [Warning] Aborted connection 1867 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:43:21 1868 [Warning] Aborted connection 1868 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:50:33 1869 [Warning] Aborted connection 1869 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:50:50 1870 [Warning] Aborted connection 1870 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:50:53 1871 [Warning] Aborted connection 1871 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:51:05 1872 [Warning] Aborted connection 1872 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 6:53:21 1873 [Warning] Aborted connection 1873 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:00:33 1874 [Warning] Aborted connection 1874 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:00:50 1875 [Warning] Aborted connection 1875 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:00:53 1876 [Warning] Aborted connection 1876 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:01:05 1877 [Warning] Aborted connection 1877 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:03:22 1878 [Warning] Aborted connection 1878 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:10:34 1879 [Warning] Aborted connection 1879 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:10:50 1880 [Warning] Aborted connection 1880 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:10:53 1881 [Warning] Aborted connection 1881 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:11:05 1882 [Warning] Aborted connection 1882 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:13:22 1883 [Warning] Aborted connection 1883 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:20:34 1884 [Warning] Aborted connection 1884 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:20:51 1885 [Warning] Aborted connection 1885 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:20:53 1886 [Warning] Aborted connection 1886 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:21:06 1887 [Warning] Aborted connection 1887 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:23:22 1888 [Warning] Aborted connection 1888 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:30:34 1889 [Warning] Aborted connection 1889 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:30:51 1890 [Warning] Aborted connection 1890 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:30:54 1891 [Warning] Aborted connection 1891 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:31:06 1892 [Warning] Aborted connection 1892 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:33:22 1893 [Warning] Aborted connection 1893 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:40:35 1894 [Warning] Aborted connection 1894 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:40:51 1895 [Warning] Aborted connection 1895 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:40:54 1896 [Warning] Aborted connection 1896 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:41:06 1897 [Warning] Aborted connection 1897 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:43:23 1898 [Warning] Aborted connection 1898 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:50:35 1899 [Warning] Aborted connection 1899 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:50:51 1900 [Warning] Aborted connection 1900 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:50:54 1901 [Warning] Aborted connection 1901 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:51:06 1902 [Warning] Aborted connection 1902 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 7:53:23 1903 [Warning] Aborted connection 1903 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:00:35 1904 [Warning] Aborted connection 1904 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:00:51 1905 [Warning] Aborted connection 1905 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:00:55 1906 [Warning] Aborted connection 1906 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:01:07 1907 [Warning] Aborted connection 1907 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:03:23 1908 [Warning] Aborted connection 1908 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:10:35 1909 [Warning] Aborted connection 1909 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:10:52 1910 [Warning] Aborted connection 1910 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:10:55 1911 [Warning] Aborted connection 1911 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:11:07 1912 [Warning] Aborted connection 1912 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:13:23 1913 [Warning] Aborted connection 1913 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:20:36 1914 [Warning] Aborted connection 1914 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:20:52 1915 [Warning] Aborted connection 1915 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:20:55 1916 [Warning] Aborted connection 1916 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:21:07 1917 [Warning] Aborted connection 1917 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:23:24 1918 [Warning] Aborted connection 1918 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:30:36 1919 [Warning] Aborted connection 1919 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:30:52 1920 [Warning] Aborted connection 1920 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:30:55 1921 [Warning] Aborted connection 1921 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:31:07 1922 [Warning] Aborted connection 1922 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:33:24 1923 [Warning] Aborted connection 1923 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:40:36 1924 [Warning] Aborted connection 1924 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:40:52 1925 [Warning] Aborted connection 1925 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:40:56 1926 [Warning] Aborted connection 1926 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:41:08 1927 [Warning] Aborted connection 1927 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:43:24 1928 [Warning] Aborted connection 1928 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:50:36 1929 [Warning] Aborted connection 1929 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:50:53 1930 [Warning] Aborted connection 1930 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:50:56 1931 [Warning] Aborted connection 1931 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:51:08 1932 [Warning] Aborted connection 1932 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 8:53:24 1933 [Warning] Aborted connection 1933 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:00:37 1934 [Warning] Aborted connection 1934 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:00:53 1935 [Warning] Aborted connection 1935 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:00:56 1936 [Warning] Aborted connection 1936 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:01:08 1937 [Warning] Aborted connection 1937 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:03:25 1938 [Warning] Aborted connection 1938 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:10:37 1939 [Warning] Aborted connection 1939 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:10:53 1940 [Warning] Aborted connection 1940 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:10:56 1941 [Warning] Aborted connection 1941 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:11:08 1942 [Warning] Aborted connection 1942 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:13:25 1943 [Warning] Aborted connection 1943 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:20:37 1944 [Warning] Aborted connection 1944 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:20:54 1945 [Warning] Aborted connection 1945 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:20:57 1946 [Warning] Aborted connection 1946 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:21:09 1947 [Warning] Aborted connection 1947 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:23:25 1948 [Warning] Aborted connection 1948 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:30:37 1949 [Warning] Aborted connection 1949 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:30:54 1950 [Warning] Aborted connection 1950 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:30:57 1951 [Warning] Aborted connection 1951 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:31:09 1952 [Warning] Aborted connection 1952 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:33:26 1953 [Warning] Aborted connection 1953 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:40:38 1954 [Warning] Aborted connection 1954 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:40:54 1955 [Warning] Aborted connection 1955 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:40:57 1956 [Warning] Aborted connection 1956 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:41:09 1957 [Warning] Aborted connection 1957 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:43:26 1958 [Warning] Aborted connection 1958 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:50:38 1959 [Warning] Aborted connection 1959 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:50:54 1960 [Warning] Aborted connection 1960 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:50:57 1961 [Warning] Aborted connection 1961 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:51:09 1962 [Warning] Aborted connection 1962 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 9:53:26 1963 [Warning] Aborted connection 1963 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:00:38 1964 [Warning] Aborted connection 1964 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:00:55 1965 [Warning] Aborted connection 1965 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:00:58 1966 [Warning] Aborted connection 1966 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:01:10 1967 [Warning] Aborted connection 1967 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:03:26 1968 [Warning] Aborted connection 1968 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:10:38 1969 [Warning] Aborted connection 1969 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:10:55 1970 [Warning] Aborted connection 1970 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:10:58 1971 [Warning] Aborted connection 1971 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:11:10 1972 [Warning] Aborted connection 1972 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:13:26 1973 [Warning] Aborted connection 1973 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:20:39 1974 [Warning] Aborted connection 1974 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:20:55 1975 [Warning] Aborted connection 1975 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:20:58 1976 [Warning] Aborted connection 1976 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:21:10 1977 [Warning] Aborted connection 1977 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:23:27 1978 [Warning] Aborted connection 1978 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:30:39 1979 [Warning] Aborted connection 1979 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:30:55 1980 [Warning] Aborted connection 1980 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:30:58 1981 [Warning] Aborted connection 1981 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:31:10 1982 [Warning] Aborted connection 1982 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:33:27 1983 [Warning] Aborted connection 1983 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:40:39 1984 [Warning] Aborted connection 1984 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:40:56 1985 [Warning] Aborted connection 1985 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:40:59 1986 [Warning] Aborted connection 1986 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:41:11 1987 [Warning] Aborted connection 1987 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:43:27 1988 [Warning] Aborted connection 1988 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:50:39 1989 [Warning] Aborted connection 1989 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:50:56 1990 [Warning] Aborted connection 1990 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:50:59 1991 [Warning] Aborted connection 1991 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:51:11 1992 [Warning] Aborted connection 1992 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 10:53:28 1993 [Warning] Aborted connection 1993 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:00:40 1994 [Warning] Aborted connection 1994 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:00:56 1995 [Warning] Aborted connection 1995 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:00:59 1996 [Warning] Aborted connection 1996 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:01:11 1997 [Warning] Aborted connection 1997 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:03:28 1998 [Warning] Aborted connection 1998 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:10:40 1999 [Warning] Aborted connection 1999 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:10:56 2000 [Warning] Aborted connection 2000 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:10:59 2001 [Warning] Aborted connection 2001 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:11:11 2002 [Warning] Aborted connection 2002 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:13:28 2003 [Warning] Aborted connection 2003 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:20:40 2004 [Warning] Aborted connection 2004 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:20:57 2005 [Warning] Aborted connection 2005 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:21:00 2006 [Warning] Aborted connection 2006 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:21:12 2007 [Warning] Aborted connection 2007 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:23:28 2008 [Warning] Aborted connection 2008 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:30:40 2009 [Warning] Aborted connection 2009 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:30:57 2010 [Warning] Aborted connection 2010 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:31:00 2011 [Warning] Aborted connection 2011 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:31:12 2012 [Warning] Aborted connection 2012 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:33:29 2013 [Warning] Aborted connection 2013 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:40:41 2014 [Warning] Aborted connection 2014 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:40:57 2015 [Warning] Aborted connection 2015 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:41:00 2016 [Warning] Aborted connection 2016 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:41:12 2017 [Warning] Aborted connection 2017 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:43:29 2018 [Warning] Aborted connection 2018 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:50:41 2019 [Warning] Aborted connection 2019 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:50:57 2020 [Warning] Aborted connection 2020 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:51:00 2021 [Warning] Aborted connection 2021 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:51:12 2022 [Warning] Aborted connection 2022 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 11:53:29 2023 [Warning] Aborted connection 2023 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:00:41 2024 [Warning] Aborted connection 2024 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:00:58 2025 [Warning] Aborted connection 2025 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:01:01 2026 [Warning] Aborted connection 2026 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:01:13 2027 [Warning] Aborted connection 2027 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:03:29 2028 [Warning] Aborted connection 2028 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:10:41 2029 [Warning] Aborted connection 2029 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:10:58 2030 [Warning] Aborted connection 2030 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:11:01 2031 [Warning] Aborted connection 2031 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:11:13 2032 [Warning] Aborted connection 2032 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:13:30 2033 [Warning] Aborted connection 2033 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:20:42 2034 [Warning] Aborted connection 2034 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:20:58 2035 [Warning] Aborted connection 2035 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:21:01 2036 [Warning] Aborted connection 2036 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:21:13 2037 [Warning] Aborted connection 2037 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:23:30 2038 [Warning] Aborted connection 2038 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:30:42 2039 [Warning] Aborted connection 2039 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:30:59 2040 [Warning] Aborted connection 2040 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:31:02 2041 [Warning] Aborted connection 2041 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:31:14 2042 [Warning] Aborted connection 2042 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:33:30 2043 [Warning] Aborted connection 2043 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:40:42 2044 [Warning] Aborted connection 2044 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:40:59 2045 [Warning] Aborted connection 2045 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:41:02 2046 [Warning] Aborted connection 2046 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:41:14 2047 [Warning] Aborted connection 2047 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:43:31 2048 [Warning] Aborted connection 2048 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:50:43 2049 [Warning] Aborted connection 2049 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:50:59 2050 [Warning] Aborted connection 2050 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:51:02 2051 [Warning] Aborted connection 2051 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:51:14 2052 [Warning] Aborted connection 2052 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 12:53:31 2053 [Warning] Aborted connection 2053 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:00:43 2054 [Warning] Aborted connection 2054 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:00:59 2055 [Warning] Aborted connection 2055 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:01:02 2056 [Warning] Aborted connection 2056 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:01:14 2057 [Warning] Aborted connection 2057 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:03:31 2058 [Warning] Aborted connection 2058 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:10:43 2059 [Warning] Aborted connection 2059 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:11:00 2060 [Warning] Aborted connection 2060 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:11:03 2061 [Warning] Aborted connection 2061 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:11:15 2062 [Warning] Aborted connection 2062 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:13:31 2063 [Warning] Aborted connection 2063 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:20:43 2064 [Warning] Aborted connection 2064 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:21:00 2065 [Warning] Aborted connection 2065 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:21:03 2066 [Warning] Aborted connection 2066 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:21:15 2067 [Warning] Aborted connection 2067 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:23:32 2068 [Warning] Aborted connection 2068 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:30:44 2069 [Warning] Aborted connection 2069 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:31:00 2070 [Warning] Aborted connection 2070 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:31:03 2071 [Warning] Aborted connection 2071 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:31:15 2072 [Warning] Aborted connection 2072 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:33:32 2073 [Warning] Aborted connection 2073 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:40:44 2074 [Warning] Aborted connection 2074 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:41:00 2075 [Warning] Aborted connection 2075 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:41:03 2076 [Warning] Aborted connection 2076 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:41:15 2077 [Warning] Aborted connection 2077 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:43:32 2078 [Warning] Aborted connection 2078 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:50:44 2079 [Warning] Aborted connection 2079 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:51:01 2080 [Warning] Aborted connection 2080 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:51:04 2081 [Warning] Aborted connection 2081 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:51:16 2082 [Warning] Aborted connection 2082 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 13:53:32 2083 [Warning] Aborted connection 2083 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:00:44 2084 [Warning] Aborted connection 2084 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:01:01 2085 [Warning] Aborted connection 2085 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:01:04 2086 [Warning] Aborted connection 2086 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:01:16 2087 [Warning] Aborted connection 2087 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:03:33 2088 [Warning] Aborted connection 2088 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:10:45 2089 [Warning] Aborted connection 2089 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:11:01 2090 [Warning] Aborted connection 2090 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:11:04 2091 [Warning] Aborted connection 2091 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:11:16 2092 [Warning] Aborted connection 2092 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:13:33 2093 [Warning] Aborted connection 2093 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:20:45 2094 [Warning] Aborted connection 2094 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:21:01 2095 [Warning] Aborted connection 2095 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:21:04 2096 [Warning] Aborted connection 2096 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:21:16 2097 [Warning] Aborted connection 2097 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:23:33 2098 [Warning] Aborted connection 2098 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:30:45 2099 [Warning] Aborted connection 2099 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:31:02 2100 [Warning] Aborted connection 2100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:31:05 2101 [Warning] Aborted connection 2101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:31:17 2102 [Warning] Aborted connection 2102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:33:33 2103 [Warning] Aborted connection 2103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:40:45 2104 [Warning] Aborted connection 2104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:41:02 2105 [Warning] Aborted connection 2105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:41:05 2106 [Warning] Aborted connection 2106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:41:17 2107 [Warning] Aborted connection 2107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:43:34 2108 [Warning] Aborted connection 2108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:50:46 2109 [Warning] Aborted connection 2109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:51:02 2110 [Warning] Aborted connection 2110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:51:05 2111 [Warning] Aborted connection 2111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:51:17 2112 [Warning] Aborted connection 2112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 14:53:34 2113 [Warning] Aborted connection 2113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:00:46 2114 [Warning] Aborted connection 2114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:01:02 2115 [Warning] Aborted connection 2115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:01:05 2116 [Warning] Aborted connection 2116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:01:17 2117 [Warning] Aborted connection 2117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:03:34 2118 [Warning] Aborted connection 2118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:10:46 2119 [Warning] Aborted connection 2119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:11:03 2120 [Warning] Aborted connection 2120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:11:06 2121 [Warning] Aborted connection 2121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:11:18 2122 [Warning] Aborted connection 2122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:13:34 2123 [Warning] Aborted connection 2123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:20:46 2124 [Warning] Aborted connection 2124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:21:03 2125 [Warning] Aborted connection 2125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:21:06 2126 [Warning] Aborted connection 2126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:21:18 2127 [Warning] Aborted connection 2127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:23:35 2128 [Warning] Aborted connection 2128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:30:47 2129 [Warning] Aborted connection 2129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:31:03 2130 [Warning] Aborted connection 2130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:31:06 2131 [Warning] Aborted connection 2131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:31:18 2132 [Warning] Aborted connection 2132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:33:35 2133 [Warning] Aborted connection 2133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:40:47 2134 [Warning] Aborted connection 2134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:41:03 2135 [Warning] Aborted connection 2135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:41:06 2136 [Warning] Aborted connection 2136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:41:18 2137 [Warning] Aborted connection 2137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:43:35 2138 [Warning] Aborted connection 2138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:50:47 2139 [Warning] Aborted connection 2139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:51:04 2140 [Warning] Aborted connection 2140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:51:07 2141 [Warning] Aborted connection 2141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:51:19 2142 [Warning] Aborted connection 2142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 15:53:35 2143 [Warning] Aborted connection 2143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:00:47 2144 [Warning] Aborted connection 2144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:01:04 2145 [Warning] Aborted connection 2145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:01:07 2146 [Warning] Aborted connection 2146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:01:19 2147 [Warning] Aborted connection 2147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:03:36 2148 [Warning] Aborted connection 2148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:10:48 2149 [Warning] Aborted connection 2149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:11:04 2150 [Warning] Aborted connection 2150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:11:07 2151 [Warning] Aborted connection 2151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:11:19 2152 [Warning] Aborted connection 2152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:13:36 2153 [Warning] Aborted connection 2153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:20:48 2154 [Warning] Aborted connection 2154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:21:04 2155 [Warning] Aborted connection 2155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:21:07 2156 [Warning] Aborted connection 2156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:21:19 2157 [Warning] Aborted connection 2157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:23:36 2158 [Warning] Aborted connection 2158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:30:48 2159 [Warning] Aborted connection 2159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:31:05 2160 [Warning] Aborted connection 2160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:31:08 2161 [Warning] Aborted connection 2161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:31:20 2162 [Warning] Aborted connection 2162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:33:36 2163 [Warning] Aborted connection 2163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:40:48 2164 [Warning] Aborted connection 2164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:41:05 2165 [Warning] Aborted connection 2165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:41:08 2166 [Warning] Aborted connection 2166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:41:20 2167 [Warning] Aborted connection 2167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:43:37 2168 [Warning] Aborted connection 2168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:50:49 2169 [Warning] Aborted connection 2169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:51:05 2170 [Warning] Aborted connection 2170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:51:08 2171 [Warning] Aborted connection 2171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:51:20 2172 [Warning] Aborted connection 2172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 16:53:37 2173 [Warning] Aborted connection 2173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:00:49 2174 [Warning] Aborted connection 2174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:01:05 2175 [Warning] Aborted connection 2175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:01:09 2176 [Warning] Aborted connection 2176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:01:21 2177 [Warning] Aborted connection 2177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:03:37 2178 [Warning] Aborted connection 2178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:10:49 2179 [Warning] Aborted connection 2179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:11:06 2180 [Warning] Aborted connection 2180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:11:09 2181 [Warning] Aborted connection 2181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:11:21 2182 [Warning] Aborted connection 2182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:13:37 2183 [Warning] Aborted connection 2183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:20:49 2184 [Warning] Aborted connection 2184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:21:06 2185 [Warning] Aborted connection 2185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:21:09 2186 [Warning] Aborted connection 2186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:21:21 2187 [Warning] Aborted connection 2187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:23:38 2188 [Warning] Aborted connection 2188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:30:50 2189 [Warning] Aborted connection 2189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:31:06 2190 [Warning] Aborted connection 2190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:31:09 2191 [Warning] Aborted connection 2191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:31:21 2192 [Warning] Aborted connection 2192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:33:38 2193 [Warning] Aborted connection 2193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:40:50 2194 [Warning] Aborted connection 2194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:41:07 2195 [Warning] Aborted connection 2195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:41:10 2196 [Warning] Aborted connection 2196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:41:22 2197 [Warning] Aborted connection 2197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:43:38 2198 [Warning] Aborted connection 2198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:50:50 2199 [Warning] Aborted connection 2199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:51:07 2200 [Warning] Aborted connection 2200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:51:10 2201 [Warning] Aborted connection 2201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:51:22 2202 [Warning] Aborted connection 2202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 17:53:39 2203 [Warning] Aborted connection 2203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:00:51 2204 [Warning] Aborted connection 2204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:01:07 2205 [Warning] Aborted connection 2205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:01:10 2206 [Warning] Aborted connection 2206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:01:22 2207 [Warning] Aborted connection 2207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:03:39 2208 [Warning] Aborted connection 2208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:10:51 2209 [Warning] Aborted connection 2209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:11:07 2210 [Warning] Aborted connection 2210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:11:10 2211 [Warning] Aborted connection 2211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:11:22 2212 [Warning] Aborted connection 2212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:13:39 2213 [Warning] Aborted connection 2213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:20:51 2214 [Warning] Aborted connection 2214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:21:08 2215 [Warning] Aborted connection 2215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:21:11 2216 [Warning] Aborted connection 2216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:21:23 2217 [Warning] Aborted connection 2217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:23:39 2218 [Warning] Aborted connection 2218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:30:51 2219 [Warning] Aborted connection 2219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:31:08 2220 [Warning] Aborted connection 2220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:31:11 2221 [Warning] Aborted connection 2221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:31:23 2222 [Warning] Aborted connection 2222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:33:40 2223 [Warning] Aborted connection 2223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:40:52 2224 [Warning] Aborted connection 2224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:41:08 2225 [Warning] Aborted connection 2225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:41:11 2226 [Warning] Aborted connection 2226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:41:23 2227 [Warning] Aborted connection 2227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:43:40 2228 [Warning] Aborted connection 2228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:50:52 2229 [Warning] Aborted connection 2229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:51:08 2230 [Warning] Aborted connection 2230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:51:11 2231 [Warning] Aborted connection 2231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:51:23 2232 [Warning] Aborted connection 2232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 18:53:40 2233 [Warning] Aborted connection 2233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:00:52 2234 [Warning] Aborted connection 2234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:01:09 2235 [Warning] Aborted connection 2235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:01:12 2236 [Warning] Aborted connection 2236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:01:24 2237 [Warning] Aborted connection 2237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:03:40 2238 [Warning] Aborted connection 2238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:10:52 2239 [Warning] Aborted connection 2239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:11:09 2240 [Warning] Aborted connection 2240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:11:12 2241 [Warning] Aborted connection 2241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:11:24 2242 [Warning] Aborted connection 2242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:13:41 2243 [Warning] Aborted connection 2243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:20:53 2244 [Warning] Aborted connection 2244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:21:09 2245 [Warning] Aborted connection 2245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:21:12 2246 [Warning] Aborted connection 2246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:21:24 2247 [Warning] Aborted connection 2247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:23:41 2248 [Warning] Aborted connection 2248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:30:53 2249 [Warning] Aborted connection 2249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:31:09 2250 [Warning] Aborted connection 2250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:31:12 2251 [Warning] Aborted connection 2251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:31:24 2252 [Warning] Aborted connection 2252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:33:41 2253 [Warning] Aborted connection 2253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:40:53 2254 [Warning] Aborted connection 2254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:41:10 2255 [Warning] Aborted connection 2255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:41:13 2256 [Warning] Aborted connection 2256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:41:25 2257 [Warning] Aborted connection 2257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:43:41 2258 [Warning] Aborted connection 2258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:50:53 2259 [Warning] Aborted connection 2259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:51:10 2260 [Warning] Aborted connection 2260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:51:13 2261 [Warning] Aborted connection 2261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:51:25 2262 [Warning] Aborted connection 2262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 19:53:42 2263 [Warning] Aborted connection 2263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:00:54 2264 [Warning] Aborted connection 2264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:01:10 2265 [Warning] Aborted connection 2265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:01:13 2266 [Warning] Aborted connection 2266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:01:25 2267 [Warning] Aborted connection 2267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:03:42 2268 [Warning] Aborted connection 2268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:10:54 2269 [Warning] Aborted connection 2269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:11:10 2270 [Warning] Aborted connection 2270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:11:13 2271 [Warning] Aborted connection 2271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:11:25 2272 [Warning] Aborted connection 2272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:13:42 2273 [Warning] Aborted connection 2273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:20:54 2274 [Warning] Aborted connection 2274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:21:11 2275 [Warning] Aborted connection 2275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:21:14 2276 [Warning] Aborted connection 2276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:21:26 2277 [Warning] Aborted connection 2277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:23:42 2278 [Warning] Aborted connection 2278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:30:54 2279 [Warning] Aborted connection 2279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:31:11 2280 [Warning] Aborted connection 2280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:31:14 2281 [Warning] Aborted connection 2281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:31:26 2282 [Warning] Aborted connection 2282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:33:43 2283 [Warning] Aborted connection 2283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:40:55 2284 [Warning] Aborted connection 2284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:41:11 2285 [Warning] Aborted connection 2285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:41:14 2286 [Warning] Aborted connection 2286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:41:26 2287 [Warning] Aborted connection 2287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:43:43 2288 [Warning] Aborted connection 2288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:50:55 2289 [Warning] Aborted connection 2289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:51:12 2290 [Warning] Aborted connection 2290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:51:14 2291 [Warning] Aborted connection 2291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:51:26 2292 [Warning] Aborted connection 2292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 20:53:43 2293 [Warning] Aborted connection 2293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:00:55 2294 [Warning] Aborted connection 2294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:01:12 2295 [Warning] Aborted connection 2295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:01:15 2296 [Warning] Aborted connection 2296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:01:27 2297 [Warning] Aborted connection 2297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:03:43 2298 [Warning] Aborted connection 2298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:10:56 2299 [Warning] Aborted connection 2299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:11:12 2300 [Warning] Aborted connection 2300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:11:15 2301 [Warning] Aborted connection 2301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:11:27 2302 [Warning] Aborted connection 2302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:13:44 2303 [Warning] Aborted connection 2303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:20:56 2304 [Warning] Aborted connection 2304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:21:12 2305 [Warning] Aborted connection 2305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:21:15 2306 [Warning] Aborted connection 2306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:21:27 2307 [Warning] Aborted connection 2307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:23:44 2308 [Warning] Aborted connection 2308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:30:56 2309 [Warning] Aborted connection 2309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:31:13 2310 [Warning] Aborted connection 2310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:31:16 2311 [Warning] Aborted connection 2311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:31:28 2312 [Warning] Aborted connection 2312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:33:44 2313 [Warning] Aborted connection 2313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:40:56 2314 [Warning] Aborted connection 2314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:41:13 2315 [Warning] Aborted connection 2315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:41:16 2316 [Warning] Aborted connection 2316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:41:28 2317 [Warning] Aborted connection 2317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:43:45 2318 [Warning] Aborted connection 2318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:50:57 2319 [Warning] Aborted connection 2319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:51:13 2320 [Warning] Aborted connection 2320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:51:16 2321 [Warning] Aborted connection 2321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:51:28 2322 [Warning] Aborted connection 2322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 21:53:45 2323 [Warning] Aborted connection 2323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:00:57 2324 [Warning] Aborted connection 2324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:01:13 2325 [Warning] Aborted connection 2325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:01:16 2326 [Warning] Aborted connection 2326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:01:28 2327 [Warning] Aborted connection 2327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:03:45 2328 [Warning] Aborted connection 2328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:10:57 2329 [Warning] Aborted connection 2329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:11:14 2330 [Warning] Aborted connection 2330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:11:17 2331 [Warning] Aborted connection 2331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:11:29 2332 [Warning] Aborted connection 2332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:13:45 2333 [Warning] Aborted connection 2333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:20:57 2334 [Warning] Aborted connection 2334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:21:14 2335 [Warning] Aborted connection 2335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:21:17 2336 [Warning] Aborted connection 2336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:21:29 2337 [Warning] Aborted connection 2337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:23:46 2338 [Warning] Aborted connection 2338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:30:58 2339 [Warning] Aborted connection 2339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:31:14 2340 [Warning] Aborted connection 2340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:31:17 2341 [Warning] Aborted connection 2341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:31:29 2342 [Warning] Aborted connection 2342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:33:46 2343 [Warning] Aborted connection 2343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:40:58 2344 [Warning] Aborted connection 2344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:41:14 2345 [Warning] Aborted connection 2345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:41:17 2346 [Warning] Aborted connection 2346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:41:29 2347 [Warning] Aborted connection 2347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:43:46 2348 [Warning] Aborted connection 2348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:50:58 2349 [Warning] Aborted connection 2349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:51:15 2350 [Warning] Aborted connection 2350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:51:18 2351 [Warning] Aborted connection 2351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:51:30 2352 [Warning] Aborted connection 2352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 22:53:46 2353 [Warning] Aborted connection 2353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:00:58 2354 [Warning] Aborted connection 2354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:01:15 2355 [Warning] Aborted connection 2355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:01:18 2356 [Warning] Aborted connection 2356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:01:30 2357 [Warning] Aborted connection 2357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:03:47 2358 [Warning] Aborted connection 2358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:10:59 2359 [Warning] Aborted connection 2359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:11:15 2360 [Warning] Aborted connection 2360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:11:18 2361 [Warning] Aborted connection 2361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:11:30 2362 [Warning] Aborted connection 2362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:13:47 2363 [Warning] Aborted connection 2363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:20:59 2364 [Warning] Aborted connection 2364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:21:15 2365 [Warning] Aborted connection 2365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:21:18 2366 [Warning] Aborted connection 2366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:21:30 2367 [Warning] Aborted connection 2367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:23:47 2368 [Warning] Aborted connection 2368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:30:59 2369 [Warning] Aborted connection 2369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:31:16 2370 [Warning] Aborted connection 2370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:31:19 2371 [Warning] Aborted connection 2371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:31:31 2372 [Warning] Aborted connection 2372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:33:47 2373 [Warning] Aborted connection 2373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:40:59 2374 [Warning] Aborted connection 2374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:41:16 2375 [Warning] Aborted connection 2375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:41:19 2376 [Warning] Aborted connection 2376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:41:31 2377 [Warning] Aborted connection 2377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:43:48 2378 [Warning] Aborted connection 2378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:51:00 2379 [Warning] Aborted connection 2379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:51:16 2380 [Warning] Aborted connection 2380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:51:19 2381 [Warning] Aborted connection 2381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:51:31 2382 [Warning] Aborted connection 2382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-22 23:53:48 2383 [Warning] Aborted connection 2383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:01:00 2384 [Warning] Aborted connection 2384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:01:16 2385 [Warning] Aborted connection 2385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:01:19 2386 [Warning] Aborted connection 2386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:01:31 2387 [Warning] Aborted connection 2387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:03:48 2388 [Warning] Aborted connection 2388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:11:00 2389 [Warning] Aborted connection 2389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:11:17 2390 [Warning] Aborted connection 2390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:11:20 2391 [Warning] Aborted connection 2391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:11:32 2392 [Warning] Aborted connection 2392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:13:48 2393 [Warning] Aborted connection 2393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:21:00 2394 [Warning] Aborted connection 2394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:21:17 2395 [Warning] Aborted connection 2395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:21:20 2396 [Warning] Aborted connection 2396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:21:32 2397 [Warning] Aborted connection 2397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:23:49 2398 [Warning] Aborted connection 2398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:31:01 2399 [Warning] Aborted connection 2399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:31:17 2400 [Warning] Aborted connection 2400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:31:20 2401 [Warning] Aborted connection 2401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:31:32 2402 [Warning] Aborted connection 2402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:33:49 2403 [Warning] Aborted connection 2403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:41:01 2404 [Warning] Aborted connection 2404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:41:17 2405 [Warning] Aborted connection 2405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:41:21 2406 [Warning] Aborted connection 2406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:41:33 2407 [Warning] Aborted connection 2407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:43:49 2408 [Warning] Aborted connection 2408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:51:01 2409 [Warning] Aborted connection 2409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:51:18 2410 [Warning] Aborted connection 2410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:51:21 2411 [Warning] Aborted connection 2411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:51:33 2412 [Warning] Aborted connection 2412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 0:53:49 2413 [Warning] Aborted connection 2413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:01:01 2414 [Warning] Aborted connection 2414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:01:18 2415 [Warning] Aborted connection 2415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:01:21 2416 [Warning] Aborted connection 2416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:01:33 2417 [Warning] Aborted connection 2417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:03:50 2418 [Warning] Aborted connection 2418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:11:02 2419 [Warning] Aborted connection 2419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:11:18 2420 [Warning] Aborted connection 2420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:11:21 2421 [Warning] Aborted connection 2421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:11:33 2422 [Warning] Aborted connection 2422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:13:50 2423 [Warning] Aborted connection 2423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:21:02 2424 [Warning] Aborted connection 2424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:21:19 2425 [Warning] Aborted connection 2425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:21:21 2426 [Warning] Aborted connection 2426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:21:33 2427 [Warning] Aborted connection 2427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:23:50 2428 [Warning] Aborted connection 2428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:31:02 2429 [Warning] Aborted connection 2429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:31:19 2430 [Warning] Aborted connection 2430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:31:22 2431 [Warning] Aborted connection 2431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:31:34 2432 [Warning] Aborted connection 2432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:33:50 2433 [Warning] Aborted connection 2433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:41:02 2434 [Warning] Aborted connection 2434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:41:19 2435 [Warning] Aborted connection 2435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:41:22 2436 [Warning] Aborted connection 2436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:41:34 2437 [Warning] Aborted connection 2437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:43:51 2438 [Warning] Aborted connection 2438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:51:03 2439 [Warning] Aborted connection 2439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:51:19 2440 [Warning] Aborted connection 2440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:51:22 2441 [Warning] Aborted connection 2441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:51:34 2442 [Warning] Aborted connection 2442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 1:53:51 2443 [Warning] Aborted connection 2443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:01:03 2444 [Warning] Aborted connection 2444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:01:20 2445 [Warning] Aborted connection 2445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:01:23 2446 [Warning] Aborted connection 2446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:01:35 2447 [Warning] Aborted connection 2447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:03:51 2448 [Warning] Aborted connection 2448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:11:03 2449 [Warning] Aborted connection 2449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:11:20 2450 [Warning] Aborted connection 2450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:11:23 2451 [Warning] Aborted connection 2451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:11:35 2452 [Warning] Aborted connection 2452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:13:51 2453 [Warning] Aborted connection 2453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:21:04 2454 [Warning] Aborted connection 2454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:21:20 2455 [Warning] Aborted connection 2455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:21:23 2456 [Warning] Aborted connection 2456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:21:35 2457 [Warning] Aborted connection 2457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:23:52 2458 [Warning] Aborted connection 2458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:31:04 2459 [Warning] Aborted connection 2459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:31:20 2460 [Warning] Aborted connection 2460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:31:23 2461 [Warning] Aborted connection 2461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:31:35 2462 [Warning] Aborted connection 2462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:33:52 2463 [Warning] Aborted connection 2463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:41:04 2464 [Warning] Aborted connection 2464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:41:21 2465 [Warning] Aborted connection 2465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:41:24 2466 [Warning] Aborted connection 2466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:41:36 2467 [Warning] Aborted connection 2467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:43:52 2468 [Warning] Aborted connection 2468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:51:04 2469 [Warning] Aborted connection 2469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:51:21 2470 [Warning] Aborted connection 2470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:51:24 2471 [Warning] Aborted connection 2471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:51:36 2472 [Warning] Aborted connection 2472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 2:53:52 2473 [Warning] Aborted connection 2473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:01:05 2474 [Warning] Aborted connection 2474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:01:21 2475 [Warning] Aborted connection 2475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:01:24 2476 [Warning] Aborted connection 2476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:01:36 2477 [Warning] Aborted connection 2477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:03:53 2478 [Warning] Aborted connection 2478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:11:05 2479 [Warning] Aborted connection 2479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:11:21 2480 [Warning] Aborted connection 2480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:11:24 2481 [Warning] Aborted connection 2481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:11:36 2482 [Warning] Aborted connection 2482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:13:53 2483 [Warning] Aborted connection 2483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:21:05 2484 [Warning] Aborted connection 2484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:21:22 2485 [Warning] Aborted connection 2485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:21:25 2486 [Warning] Aborted connection 2486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:21:37 2487 [Warning] Aborted connection 2487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:23:53 2488 [Warning] Aborted connection 2488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:31:05 2489 [Warning] Aborted connection 2489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:31:22 2490 [Warning] Aborted connection 2490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:31:25 2491 [Warning] Aborted connection 2491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:31:37 2492 [Warning] Aborted connection 2492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:33:54 2493 [Warning] Aborted connection 2493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:41:06 2494 [Warning] Aborted connection 2494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:41:22 2495 [Warning] Aborted connection 2495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:41:25 2496 [Warning] Aborted connection 2496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:41:37 2497 [Warning] Aborted connection 2497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:43:54 2498 [Warning] Aborted connection 2498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:51:06 2499 [Warning] Aborted connection 2499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:51:22 2500 [Warning] Aborted connection 2500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:51:25 2501 [Warning] Aborted connection 2501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:51:37 2502 [Warning] Aborted connection 2502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 3:53:54 2503 [Warning] Aborted connection 2503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:01:06 2504 [Warning] Aborted connection 2504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:01:23 2505 [Warning] Aborted connection 2505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:01:26 2506 [Warning] Aborted connection 2506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:01:38 2507 [Warning] Aborted connection 2507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:03:54 2508 [Warning] Aborted connection 2508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:11:06 2509 [Warning] Aborted connection 2509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:11:23 2510 [Warning] Aborted connection 2510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:11:26 2511 [Warning] Aborted connection 2511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:11:38 2512 [Warning] Aborted connection 2512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:13:55 2513 [Warning] Aborted connection 2513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:21:07 2514 [Warning] Aborted connection 2514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:21:23 2515 [Warning] Aborted connection 2515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:21:26 2516 [Warning] Aborted connection 2516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:21:38 2517 [Warning] Aborted connection 2517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:23:55 2518 [Warning] Aborted connection 2518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:31:07 2519 [Warning] Aborted connection 2519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:31:23 2520 [Warning] Aborted connection 2520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:31:26 2521 [Warning] Aborted connection 2521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:31:38 2522 [Warning] Aborted connection 2522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:33:55 2523 [Warning] Aborted connection 2523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:41:07 2524 [Warning] Aborted connection 2524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:41:24 2525 [Warning] Aborted connection 2525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:41:27 2526 [Warning] Aborted connection 2526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:41:39 2527 [Warning] Aborted connection 2527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:43:55 2528 [Warning] Aborted connection 2528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:51:07 2529 [Warning] Aborted connection 2529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:51:24 2530 [Warning] Aborted connection 2530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:51:27 2531 [Warning] Aborted connection 2531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:51:39 2532 [Warning] Aborted connection 2532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 4:53:56 2533 [Warning] Aborted connection 2533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:01:08 2534 [Warning] Aborted connection 2534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:01:24 2535 [Warning] Aborted connection 2535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:01:27 2536 [Warning] Aborted connection 2536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:01:39 2537 [Warning] Aborted connection 2537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:03:56 2538 [Warning] Aborted connection 2538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:11:08 2539 [Warning] Aborted connection 2539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:11:25 2540 [Warning] Aborted connection 2540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:11:28 2541 [Warning] Aborted connection 2541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:11:40 2542 [Warning] Aborted connection 2542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:13:56 2543 [Warning] Aborted connection 2543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:21:08 2544 [Warning] Aborted connection 2544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:21:25 2545 [Warning] Aborted connection 2545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:21:28 2546 [Warning] Aborted connection 2546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:21:40 2547 [Warning] Aborted connection 2547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:23:56 2548 [Warning] Aborted connection 2548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:31:08 2549 [Warning] Aborted connection 2549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:31:25 2550 [Warning] Aborted connection 2550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:31:28 2551 [Warning] Aborted connection 2551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:31:40 2552 [Warning] Aborted connection 2552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:33:57 2553 [Warning] Aborted connection 2553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:41:09 2554 [Warning] Aborted connection 2554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:41:25 2555 [Warning] Aborted connection 2555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:41:28 2556 [Warning] Aborted connection 2556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:41:40 2557 [Warning] Aborted connection 2557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:43:57 2558 [Warning] Aborted connection 2558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:51:09 2559 [Warning] Aborted connection 2559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:51:26 2560 [Warning] Aborted connection 2560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:51:29 2561 [Warning] Aborted connection 2561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:51:41 2562 [Warning] Aborted connection 2562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 5:53:57 2563 [Warning] Aborted connection 2563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:01:09 2564 [Warning] Aborted connection 2564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:01:26 2565 [Warning] Aborted connection 2565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:01:29 2566 [Warning] Aborted connection 2566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:01:41 2567 [Warning] Aborted connection 2567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:03:57 2568 [Warning] Aborted connection 2568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:11:10 2569 [Warning] Aborted connection 2569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:11:26 2570 [Warning] Aborted connection 2570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:11:29 2571 [Warning] Aborted connection 2571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:11:41 2572 [Warning] Aborted connection 2572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:13:58 2573 [Warning] Aborted connection 2573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:21:10 2574 [Warning] Aborted connection 2574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:21:26 2575 [Warning] Aborted connection 2575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:21:29 2576 [Warning] Aborted connection 2576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:21:41 2577 [Warning] Aborted connection 2577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:23:58 2578 [Warning] Aborted connection 2578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:31:10 2579 [Warning] Aborted connection 2579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:31:27 2580 [Warning] Aborted connection 2580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:31:30 2581 [Warning] Aborted connection 2581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:31:42 2582 [Warning] Aborted connection 2582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:33:58 2583 [Warning] Aborted connection 2583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:41:10 2584 [Warning] Aborted connection 2584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:41:27 2585 [Warning] Aborted connection 2585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:41:30 2586 [Warning] Aborted connection 2586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:41:42 2587 [Warning] Aborted connection 2587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:43:59 2588 [Warning] Aborted connection 2588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:51:11 2589 [Warning] Aborted connection 2589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:51:27 2590 [Warning] Aborted connection 2590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:51:30 2591 [Warning] Aborted connection 2591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:51:42 2592 [Warning] Aborted connection 2592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 6:53:59 2593 [Warning] Aborted connection 2593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:01:11 2594 [Warning] Aborted connection 2594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:01:27 2595 [Warning] Aborted connection 2595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:01:30 2596 [Warning] Aborted connection 2596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:01:42 2597 [Warning] Aborted connection 2597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:03:59 2598 [Warning] Aborted connection 2598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:11:11 2599 [Warning] Aborted connection 2599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:11:28 2600 [Warning] Aborted connection 2600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:11:31 2601 [Warning] Aborted connection 2601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:11:43 2602 [Warning] Aborted connection 2602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:13:59 2603 [Warning] Aborted connection 2603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:21:11 2604 [Warning] Aborted connection 2604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:21:28 2605 [Warning] Aborted connection 2605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:21:31 2606 [Warning] Aborted connection 2606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:21:43 2607 [Warning] Aborted connection 2607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:24:00 2608 [Warning] Aborted connection 2608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:31:12 2609 [Warning] Aborted connection 2609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:31:28 2610 [Warning] Aborted connection 2610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:31:31 2611 [Warning] Aborted connection 2611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:31:43 2612 [Warning] Aborted connection 2612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:34:00 2613 [Warning] Aborted connection 2613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:41:12 2614 [Warning] Aborted connection 2614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:41:28 2615 [Warning] Aborted connection 2615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:41:31 2616 [Warning] Aborted connection 2616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:41:43 2617 [Warning] Aborted connection 2617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:44:00 2618 [Warning] Aborted connection 2618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:51:12 2619 [Warning] Aborted connection 2619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:51:29 2620 [Warning] Aborted connection 2620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:51:32 2621 [Warning] Aborted connection 2621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:51:44 2622 [Warning] Aborted connection 2622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 7:54:00 2623 [Warning] Aborted connection 2623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:01:12 2624 [Warning] Aborted connection 2624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:01:29 2625 [Warning] Aborted connection 2625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:01:32 2626 [Warning] Aborted connection 2626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:01:44 2627 [Warning] Aborted connection 2627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:04:01 2628 [Warning] Aborted connection 2628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:11:13 2629 [Warning] Aborted connection 2629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:11:29 2630 [Warning] Aborted connection 2630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:11:32 2631 [Warning] Aborted connection 2631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:11:44 2632 [Warning] Aborted connection 2632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:14:01 2633 [Warning] Aborted connection 2633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:21:13 2634 [Warning] Aborted connection 2634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:21:29 2635 [Warning] Aborted connection 2635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:21:32 2636 [Warning] Aborted connection 2636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:21:44 2637 [Warning] Aborted connection 2637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:24:01 2638 [Warning] Aborted connection 2638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:31:13 2639 [Warning] Aborted connection 2639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:31:30 2640 [Warning] Aborted connection 2640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:31:33 2641 [Warning] Aborted connection 2641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:31:45 2642 [Warning] Aborted connection 2642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:34:01 2643 [Warning] Aborted connection 2643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:41:13 2644 [Warning] Aborted connection 2644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:41:30 2645 [Warning] Aborted connection 2645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:41:33 2646 [Warning] Aborted connection 2646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:41:45 2647 [Warning] Aborted connection 2647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:44:02 2648 [Warning] Aborted connection 2648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:51:14 2649 [Warning] Aborted connection 2649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:51:30 2650 [Warning] Aborted connection 2650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:51:33 2651 [Warning] Aborted connection 2651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:51:45 2652 [Warning] Aborted connection 2652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 8:54:02 2653 [Warning] Aborted connection 2653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:01:14 2654 [Warning] Aborted connection 2654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:01:30 2655 [Warning] Aborted connection 2655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:01:33 2656 [Warning] Aborted connection 2656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:01:45 2657 [Warning] Aborted connection 2657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:04:02 2658 [Warning] Aborted connection 2658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:11:14 2659 [Warning] Aborted connection 2659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:11:31 2660 [Warning] Aborted connection 2660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:11:34 2661 [Warning] Aborted connection 2661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:11:46 2662 [Warning] Aborted connection 2662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:14:02 2663 [Warning] Aborted connection 2663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:21:14 2664 [Warning] Aborted connection 2664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:21:31 2665 [Warning] Aborted connection 2665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:21:34 2666 [Warning] Aborted connection 2666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:21:46 2667 [Warning] Aborted connection 2667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:24:03 2668 [Warning] Aborted connection 2668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:31:15 2669 [Warning] Aborted connection 2669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:31:31 2670 [Warning] Aborted connection 2670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:31:34 2671 [Warning] Aborted connection 2671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:31:46 2672 [Warning] Aborted connection 2672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:34:03 2673 [Warning] Aborted connection 2673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:41:15 2674 [Warning] Aborted connection 2674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:41:31 2675 [Warning] Aborted connection 2675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:41:35 2676 [Warning] Aborted connection 2676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:41:46 2677 [Warning] Aborted connection 2677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:44:03 2678 [Warning] Aborted connection 2678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:51:15 2679 [Warning] Aborted connection 2679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:51:32 2680 [Warning] Aborted connection 2680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:51:35 2681 [Warning] Aborted connection 2681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:51:47 2682 [Warning] Aborted connection 2682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 9:54:03 2683 [Warning] Aborted connection 2683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:01:16 2684 [Warning] Aborted connection 2684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:01:32 2685 [Warning] Aborted connection 2685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:01:35 2686 [Warning] Aborted connection 2686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:01:47 2687 [Warning] Aborted connection 2687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:04:04 2688 [Warning] Aborted connection 2688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:11:16 2689 [Warning] Aborted connection 2689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:11:32 2690 [Warning] Aborted connection 2690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:11:35 2691 [Warning] Aborted connection 2691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:11:47 2692 [Warning] Aborted connection 2692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:14:04 2693 [Warning] Aborted connection 2693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:21:16 2694 [Warning] Aborted connection 2694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:21:33 2695 [Warning] Aborted connection 2695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:21:35 2696 [Warning] Aborted connection 2696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:21:48 2697 [Warning] Aborted connection 2697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:24:04 2698 [Warning] Aborted connection 2698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:31:16 2699 [Warning] Aborted connection 2699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:31:33 2700 [Warning] Aborted connection 2700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:31:36 2701 [Warning] Aborted connection 2701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:31:48 2702 [Warning] Aborted connection 2702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:34:05 2703 [Warning] Aborted connection 2703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:41:17 2704 [Warning] Aborted connection 2704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:41:33 2705 [Warning] Aborted connection 2705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:41:36 2706 [Warning] Aborted connection 2706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:41:48 2707 [Warning] Aborted connection 2707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:44:05 2708 [Warning] Aborted connection 2708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:51:17 2709 [Warning] Aborted connection 2709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:51:33 2710 [Warning] Aborted connection 2710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:51:36 2711 [Warning] Aborted connection 2711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:51:48 2712 [Warning] Aborted connection 2712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 10:54:05 2713 [Warning] Aborted connection 2713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:01:17 2714 [Warning] Aborted connection 2714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:01:34 2715 [Warning] Aborted connection 2715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:01:37 2716 [Warning] Aborted connection 2716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:01:49 2717 [Warning] Aborted connection 2717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:04:05 2718 [Warning] Aborted connection 2718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:11:18 2719 [Warning] Aborted connection 2719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:11:34 2720 [Warning] Aborted connection 2720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:11:37 2721 [Warning] Aborted connection 2721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:11:49 2722 [Warning] Aborted connection 2722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:14:05 2723 [Warning] Aborted connection 2723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:21:18 2724 [Warning] Aborted connection 2724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:21:34 2725 [Warning] Aborted connection 2725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:21:38 2726 [Warning] Aborted connection 2726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:21:49 2727 [Warning] Aborted connection 2727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:24:06 2728 [Warning] Aborted connection 2728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:31:18 2729 [Warning] Aborted connection 2729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:31:35 2730 [Warning] Aborted connection 2730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:31:38 2731 [Warning] Aborted connection 2731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:31:50 2732 [Warning] Aborted connection 2732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:34:06 2733 [Warning] Aborted connection 2733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:41:19 2734 [Warning] Aborted connection 2734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:41:35 2735 [Warning] Aborted connection 2735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:41:38 2736 [Warning] Aborted connection 2736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:41:50 2737 [Warning] Aborted connection 2737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:44:06 2738 [Warning] Aborted connection 2738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:51:19 2739 [Warning] Aborted connection 2739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:52:20 2740 [Warning] Aborted connection 2740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:52:20 2741 [Warning] Aborted connection 2741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:52:20 2742 [Warning] Aborted connection 2742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 11:54:06 2743 [Warning] Aborted connection 2743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:01:19 2744 [Warning] Aborted connection 2744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:02:21 2745 [Warning] Aborted connection 2745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:02:21 2747 [Warning] Aborted connection 2747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:02:21 2746 [Warning] Aborted connection 2746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:04:07 2748 [Warning] Aborted connection 2748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:11:20 2749 [Warning] Aborted connection 2749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:12:21 2752 [Warning] Aborted connection 2752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:12:21 2750 [Warning] Aborted connection 2750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:12:21 2751 [Warning] Aborted connection 2751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:14:07 2753 [Warning] Aborted connection 2753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:21:20 2754 [Warning] Aborted connection 2754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:22:21 2755 [Warning] Aborted connection 2755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:22:21 2757 [Warning] Aborted connection 2757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:22:21 2756 [Warning] Aborted connection 2756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:24:07 2758 [Warning] Aborted connection 2758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:31:20 2759 [Warning] Aborted connection 2759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:32:22 2762 [Warning] Aborted connection 2762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:32:22 2760 [Warning] Aborted connection 2760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:32:22 2761 [Warning] Aborted connection 2761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:34:08 2763 [Warning] Aborted connection 2763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:41:21 2764 [Warning] Aborted connection 2764 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:42:22 2765 [Warning] Aborted connection 2765 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:42:22 2766 [Warning] Aborted connection 2766 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:42:22 2767 [Warning] Aborted connection 2767 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:43:03 2773 [Warning] IP address '192.168.1.72' could not be resolved: Name does not resolve +2022-05-23 12:43:03 2773 [ERROR] Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100148, now running 100513. Please use mariadb-upgrade to fix this error +2022-05-23 12:44:08 2768 [Warning] Aborted connection 2768 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:51:21 2769 [Warning] Aborted connection 2769 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:52:22 2772 [Warning] Aborted connection 2772 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:52:22 2770 [Warning] Aborted connection 2770 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:52:22 2771 [Warning] Aborted connection 2771 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 12:54:08 2774 [Warning] Aborted connection 2774 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:01:21 2775 [Warning] Aborted connection 2775 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:02:22 2776 [Warning] Aborted connection 2776 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:02:22 2777 [Warning] Aborted connection 2777 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:02:22 2778 [Warning] Aborted connection 2778 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:04:09 2779 [Warning] Aborted connection 2779 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:11:22 2780 [Warning] Aborted connection 2780 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:12:23 2783 [Warning] Aborted connection 2783 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:12:23 2782 [Warning] Aborted connection 2782 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:12:23 2781 [Warning] Aborted connection 2781 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:14:09 2784 [Warning] Aborted connection 2784 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:21:22 2785 [Warning] Aborted connection 2785 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:22:23 2788 [Warning] Aborted connection 2788 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:22:23 2787 [Warning] Aborted connection 2787 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:22:23 2786 [Warning] Aborted connection 2786 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:24:09 2789 [Warning] Aborted connection 2789 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:31:22 2790 [Warning] Aborted connection 2790 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:32:23 2792 [Warning] Aborted connection 2792 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:32:23 2793 [Warning] Aborted connection 2793 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:32:23 2791 [Warning] Aborted connection 2791 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:34:09 2794 [Warning] Aborted connection 2794 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:41:22 2795 [Warning] Aborted connection 2795 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:42:24 2797 [Warning] Aborted connection 2797 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:42:24 2796 [Warning] Aborted connection 2796 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:42:24 2798 [Warning] Aborted connection 2798 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:44:10 2799 [Warning] Aborted connection 2799 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:51:23 2800 [Warning] Aborted connection 2800 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:52:24 2803 [Warning] Aborted connection 2803 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:52:24 2801 [Warning] Aborted connection 2801 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:52:24 2802 [Warning] Aborted connection 2802 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 13:54:10 2804 [Warning] Aborted connection 2804 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:01:23 2805 [Warning] Aborted connection 2805 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:02:24 2807 [Warning] Aborted connection 2807 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:02:24 2806 [Warning] Aborted connection 2806 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:02:24 2808 [Warning] Aborted connection 2808 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:04:10 2809 [Warning] Aborted connection 2809 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:11:23 2810 [Warning] Aborted connection 2810 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:12:24 2811 [Warning] Aborted connection 2811 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:12:24 2812 [Warning] Aborted connection 2812 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:12:24 2813 [Warning] Aborted connection 2813 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:14:10 2814 [Warning] Aborted connection 2814 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:21:24 2815 [Warning] Aborted connection 2815 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:22:25 2816 [Warning] Aborted connection 2816 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:22:25 2817 [Warning] Aborted connection 2817 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:22:25 2818 [Warning] Aborted connection 2818 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:24:11 2819 [Warning] Aborted connection 2819 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:31:24 2820 [Warning] Aborted connection 2820 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:32:25 2821 [Warning] Aborted connection 2821 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:32:25 2822 [Warning] Aborted connection 2822 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:32:25 2823 [Warning] Aborted connection 2823 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:34:11 2824 [Warning] Aborted connection 2824 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:41:24 2825 [Warning] Aborted connection 2825 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:42:25 2826 [Warning] Aborted connection 2826 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:42:25 2828 [Warning] Aborted connection 2828 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:42:25 2827 [Warning] Aborted connection 2827 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:44:11 2829 [Warning] Aborted connection 2829 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:51:24 2830 [Warning] Aborted connection 2830 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:52:25 2833 [Warning] Aborted connection 2833 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:52:25 2831 [Warning] Aborted connection 2831 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:52:25 2832 [Warning] Aborted connection 2832 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 14:54:12 2834 [Warning] Aborted connection 2834 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:01:25 2835 [Warning] Aborted connection 2835 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:02:26 2836 [Warning] Aborted connection 2836 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:02:26 2837 [Warning] Aborted connection 2837 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:02:26 2838 [Warning] Aborted connection 2838 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:04:12 2839 [Warning] Aborted connection 2839 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:11:25 2840 [Warning] Aborted connection 2840 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:12:26 2842 [Warning] Aborted connection 2842 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:12:26 2841 [Warning] Aborted connection 2841 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:12:26 2843 [Warning] Aborted connection 2843 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:14:12 2844 [Warning] Aborted connection 2844 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:21:25 2845 [Warning] Aborted connection 2845 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:22:26 2847 [Warning] Aborted connection 2847 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:22:26 2848 [Warning] Aborted connection 2848 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:22:26 2846 [Warning] Aborted connection 2846 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:24:12 2849 [Warning] Aborted connection 2849 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:31:26 2850 [Warning] Aborted connection 2850 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:32:27 2852 [Warning] Aborted connection 2852 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:32:27 2853 [Warning] Aborted connection 2853 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:32:27 2851 [Warning] Aborted connection 2851 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:34:13 2854 [Warning] Aborted connection 2854 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:41:26 2855 [Warning] Aborted connection 2855 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:42:27 2856 [Warning] Aborted connection 2856 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:42:27 2858 [Warning] Aborted connection 2858 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:42:27 2857 [Warning] Aborted connection 2857 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:44:13 2859 [Warning] Aborted connection 2859 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:51:26 2860 [Warning] Aborted connection 2860 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:52:27 2861 [Warning] Aborted connection 2861 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:52:27 2862 [Warning] Aborted connection 2862 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:52:27 2863 [Warning] Aborted connection 2863 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 15:54:13 2864 [Warning] Aborted connection 2864 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:01:26 2865 [Warning] Aborted connection 2865 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:02:27 2866 [Warning] Aborted connection 2866 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:02:27 2868 [Warning] Aborted connection 2868 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:02:27 2867 [Warning] Aborted connection 2867 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:04:13 2869 [Warning] Aborted connection 2869 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:11:27 2870 [Warning] Aborted connection 2870 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:12:28 2871 [Warning] Aborted connection 2871 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:12:28 2872 [Warning] Aborted connection 2872 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:12:28 2873 [Warning] Aborted connection 2873 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:14:14 2874 [Warning] Aborted connection 2874 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:21:27 2875 [Warning] Aborted connection 2875 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:22:28 2876 [Warning] Aborted connection 2876 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:22:28 2877 [Warning] Aborted connection 2877 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:22:28 2878 [Warning] Aborted connection 2878 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:24:14 2879 [Warning] Aborted connection 2879 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:31:27 2880 [Warning] Aborted connection 2880 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:32:28 2882 [Warning] Aborted connection 2882 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:32:28 2881 [Warning] Aborted connection 2881 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:32:28 2883 [Warning] Aborted connection 2883 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:34:14 2884 [Warning] Aborted connection 2884 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:41:27 2885 [Warning] Aborted connection 2885 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:42:29 2886 [Warning] Aborted connection 2886 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:42:29 2887 [Warning] Aborted connection 2887 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:42:29 2888 [Warning] Aborted connection 2888 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:43:29 2894 [Warning] IP address '192.168.1.81' could not be resolved: Name does not resolve +2022-05-23 16:44:15 2889 [Warning] Aborted connection 2889 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:51:28 2890 [Warning] Aborted connection 2890 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:52:29 2891 [Warning] Aborted connection 2891 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:52:29 2892 [Warning] Aborted connection 2892 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:52:29 2893 [Warning] Aborted connection 2893 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 16:53:29 2894 [Warning] Aborted connection 2894 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 16:53:29 2897 [Warning] Aborted connection 2897 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 16:53:29 2895 [Warning] Aborted connection 2895 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 16:53:29 2896 [Warning] Aborted connection 2896 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 16:53:29 2898 [Warning] Aborted connection 2898 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 16:54:15 2899 [Warning] Aborted connection 2899 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:02:29 2903 [Warning] Aborted connection 2903 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:03:30 2905 [Warning] Aborted connection 2905 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 17:03:30 2906 [Warning] Aborted connection 2906 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 17:03:30 2904 [Warning] Aborted connection 2904 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 17:03:30 2907 [Warning] Aborted connection 2907 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 17:03:30 2908 [Warning] Aborted connection 2908 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-23 17:04:15 2909 [Warning] Aborted connection 2909 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:04:51 2900 [Warning] Aborted connection 2900 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:04:59 2901 [Warning] Aborted connection 2901 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:05:08 2902 [Warning] Aborted connection 2902 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:12:29 2910 [Warning] Aborted connection 2910 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:14:16 2911 [Warning] Aborted connection 2911 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:14:52 2912 [Warning] Aborted connection 2912 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:14:59 2913 [Warning] Aborted connection 2913 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:15:08 2914 [Warning] Aborted connection 2914 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:22:30 2915 [Warning] Aborted connection 2915 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:24:16 2916 [Warning] Aborted connection 2916 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:24:52 2917 [Warning] Aborted connection 2917 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:25:00 2918 [Warning] Aborted connection 2918 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:25:08 2919 [Warning] Aborted connection 2919 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:32:30 2920 [Warning] Aborted connection 2920 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:34:16 2921 [Warning] Aborted connection 2921 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:34:52 2922 [Warning] Aborted connection 2922 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:35:00 2923 [Warning] Aborted connection 2923 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:35:09 2924 [Warning] Aborted connection 2924 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:36:56 2925 [Warning] Aborted connection 2925 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:36:56 2927 [Warning] Aborted connection 2927 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:36:56 2926 [Warning] Aborted connection 2926 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:36:56 2928 [Warning] Aborted connection 2928 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:36:56 2929 [Warning] Aborted connection 2929 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:42:31 2934 [Warning] Aborted connection 2934 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:42:31 2933 [Warning] Aborted connection 2933 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:42:31 2931 [Warning] Aborted connection 2931 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:42:31 2932 [Warning] Aborted connection 2932 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:42:31 2930 [Warning] Aborted connection 2930 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 17:56:12 2935 [Warning] Aborted connection 2935 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:58:53 2936 [Warning] Aborted connection 2936 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:59:00 2937 [Warning] Aborted connection 2937 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:59:03 2938 [Warning] Aborted connection 2938 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 17:59:05 2939 [Warning] Aborted connection 2939 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:21 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:07:33 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:14:10 2944 [Warning] Aborted connection 2944 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:14:10 2942 [Warning] Aborted connection 2942 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:14:10 2943 [Warning] Aborted connection 2943 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:14:10 2941 [Warning] Aborted connection 2941 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:14:10 2940 [Warning] Aborted connection 2940 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:25:01 2951 [Warning] Aborted connection 2951 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:25:01 2949 [Warning] Aborted connection 2949 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:25:01 2950 [Warning] Aborted connection 2950 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:25:01 2947 [Warning] Aborted connection 2947 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:25:01 2948 [Warning] Aborted connection 2948 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:26:56 2956 [Warning] Aborted connection 2956 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:26:56 2952 [Warning] Aborted connection 2952 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:26:56 2953 [Warning] Aborted connection 2953 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:26:56 2955 [Warning] Aborted connection 2955 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:26:56 2954 [Warning] Aborted connection 2954 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:32:31 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-23 18:43:33 2961 [Warning] Aborted connection 2961 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:43:33 2957 [Warning] Aborted connection 2957 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:43:38 2958 [Warning] Aborted connection 2958 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:44:33 2960 [Warning] Aborted connection 2960 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:44:33 2959 [Warning] Aborted connection 2959 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:53:39 2964 [Warning] Aborted connection 2964 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:54:34 2965 [Warning] Aborted connection 2965 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:54:34 2966 [Warning] Aborted connection 2966 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:54:55 2962 [Warning] Aborted connection 2962 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 18:54:57 2963 [Warning] Aborted connection 2963 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:10:17 2967 [Warning] Aborted connection 2967 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:10:30 2968 [Warning] Aborted connection 2968 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:10:38 2969 [Warning] Aborted connection 2969 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:10:50 2970 [Warning] Aborted connection 2970 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:11:11 2971 [Warning] Aborted connection 2971 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:20:17 2972 [Warning] Aborted connection 2972 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:20:30 2973 [Warning] Aborted connection 2973 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:20:39 2974 [Warning] Aborted connection 2974 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:20:51 2975 [Warning] Aborted connection 2975 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 19:21:11 2976 [Warning] Aborted connection 2976 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:04:52 2980 [Warning] Aborted connection 2980 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:05:10 2981 [Warning] Aborted connection 2981 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:05:46 2977 [Warning] Aborted connection 2977 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:05:53 2978 [Warning] Aborted connection 2978 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:06:01 2979 [Warning] Aborted connection 2979 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:14:52 2982 [Warning] Aborted connection 2982 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:15:10 2983 [Warning] Aborted connection 2983 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:15:46 2984 [Warning] Aborted connection 2984 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:15:54 2985 [Warning] Aborted connection 2985 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:16:02 2986 [Warning] Aborted connection 2986 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:24:52 2987 [Warning] Aborted connection 2987 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:25:10 2988 [Warning] Aborted connection 2988 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:25:46 2989 [Warning] Aborted connection 2989 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:25:54 2990 [Warning] Aborted connection 2990 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:26:02 2991 [Warning] Aborted connection 2991 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:34:53 2992 [Warning] Aborted connection 2992 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:35:11 2993 [Warning] Aborted connection 2993 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:35:47 2994 [Warning] Aborted connection 2994 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:35:54 2995 [Warning] Aborted connection 2995 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:36:02 2996 [Warning] Aborted connection 2996 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:44:53 2997 [Warning] Aborted connection 2997 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:45:11 2998 [Warning] Aborted connection 2998 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:45:47 2999 [Warning] Aborted connection 2999 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:45:55 3000 [Warning] Aborted connection 3000 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:46:03 3001 [Warning] Aborted connection 3001 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:54:53 3002 [Warning] Aborted connection 3002 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:55:11 3003 [Warning] Aborted connection 3003 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:55:47 3004 [Warning] Aborted connection 3004 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:55:55 3005 [Warning] Aborted connection 3005 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 20:56:03 3006 [Warning] Aborted connection 3006 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:04:54 3007 [Warning] Aborted connection 3007 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:05:11 3008 [Warning] Aborted connection 3008 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:05:48 3009 [Warning] Aborted connection 3009 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:05:55 3010 [Warning] Aborted connection 3010 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:06:03 3011 [Warning] Aborted connection 3011 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:14:54 3012 [Warning] Aborted connection 3012 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:15:12 3013 [Warning] Aborted connection 3013 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:15:48 3014 [Warning] Aborted connection 3014 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:15:55 3015 [Warning] Aborted connection 3015 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:16:03 3016 [Warning] Aborted connection 3016 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:24:54 3017 [Warning] Aborted connection 3017 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:25:12 3018 [Warning] Aborted connection 3018 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:25:48 3019 [Warning] Aborted connection 3019 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:25:56 3020 [Warning] Aborted connection 3020 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:26:04 3021 [Warning] Aborted connection 3021 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:34:54 3022 [Warning] Aborted connection 3022 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:35:12 3023 [Warning] Aborted connection 3023 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:35:48 3024 [Warning] Aborted connection 3024 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:35:56 3025 [Warning] Aborted connection 3025 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:36:04 3026 [Warning] Aborted connection 3026 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:44:55 3027 [Warning] Aborted connection 3027 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:45:13 3028 [Warning] Aborted connection 3028 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:45:49 3029 [Warning] Aborted connection 3029 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:45:56 3030 [Warning] Aborted connection 3030 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:46:04 3031 [Warning] Aborted connection 3031 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:54:55 3032 [Warning] Aborted connection 3032 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:55:13 3033 [Warning] Aborted connection 3033 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:55:49 3034 [Warning] Aborted connection 3034 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:55:56 3035 [Warning] Aborted connection 3035 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 21:56:04 3036 [Warning] Aborted connection 3036 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:04:55 3037 [Warning] Aborted connection 3037 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:05:13 3038 [Warning] Aborted connection 3038 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:05:49 3039 [Warning] Aborted connection 3039 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:05:57 3040 [Warning] Aborted connection 3040 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:06:05 3041 [Warning] Aborted connection 3041 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:14:55 3042 [Warning] Aborted connection 3042 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:15:13 3043 [Warning] Aborted connection 3043 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:15:49 3044 [Warning] Aborted connection 3044 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:15:57 3045 [Warning] Aborted connection 3045 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:16:05 3046 [Warning] Aborted connection 3046 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:24:56 3047 [Warning] Aborted connection 3047 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:25:14 3048 [Warning] Aborted connection 3048 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:25:50 3049 [Warning] Aborted connection 3049 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:25:57 3050 [Warning] Aborted connection 3050 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:26:05 3051 [Warning] Aborted connection 3051 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:34:56 3052 [Warning] Aborted connection 3052 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:35:14 3053 [Warning] Aborted connection 3053 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:35:50 3054 [Warning] Aborted connection 3054 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:35:57 3055 [Warning] Aborted connection 3055 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:36:05 3056 [Warning] Aborted connection 3056 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:44:56 3057 [Warning] Aborted connection 3057 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:45:14 3058 [Warning] Aborted connection 3058 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:45:50 3059 [Warning] Aborted connection 3059 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:45:58 3060 [Warning] Aborted connection 3060 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:46:06 3061 [Warning] Aborted connection 3061 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:54:56 3062 [Warning] Aborted connection 3062 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:55:14 3063 [Warning] Aborted connection 3063 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:55:50 3064 [Warning] Aborted connection 3064 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:55:58 3065 [Warning] Aborted connection 3065 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 22:56:06 3066 [Warning] Aborted connection 3066 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:04:57 3067 [Warning] Aborted connection 3067 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:05:15 3068 [Warning] Aborted connection 3068 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:05:51 3069 [Warning] Aborted connection 3069 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:05:58 3070 [Warning] Aborted connection 3070 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:06:06 3071 [Warning] Aborted connection 3071 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:14:57 3072 [Warning] Aborted connection 3072 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:15:15 3073 [Warning] Aborted connection 3073 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:15:51 3074 [Warning] Aborted connection 3074 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:15:58 3075 [Warning] Aborted connection 3075 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:16:07 3076 [Warning] Aborted connection 3076 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:24:57 3077 [Warning] Aborted connection 3077 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:25:15 3078 [Warning] Aborted connection 3078 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:25:51 3079 [Warning] Aborted connection 3079 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:25:59 3080 [Warning] Aborted connection 3080 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:26:07 3081 [Warning] Aborted connection 3081 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:34:57 3082 [Warning] Aborted connection 3082 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:35:15 3083 [Warning] Aborted connection 3083 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:35:51 3084 [Warning] Aborted connection 3084 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:35:59 3085 [Warning] Aborted connection 3085 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:36:07 3086 [Warning] Aborted connection 3086 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:44:58 3087 [Warning] Aborted connection 3087 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:45:16 3088 [Warning] Aborted connection 3088 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:45:52 3089 [Warning] Aborted connection 3089 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:45:59 3090 [Warning] Aborted connection 3090 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:46:07 3091 [Warning] Aborted connection 3091 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:54:58 3092 [Warning] Aborted connection 3092 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:55:16 3093 [Warning] Aborted connection 3093 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:55:52 3094 [Warning] Aborted connection 3094 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:56:00 3095 [Warning] Aborted connection 3095 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-23 23:56:08 3096 [Warning] Aborted connection 3096 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:04:58 3097 [Warning] Aborted connection 3097 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:05:16 3098 [Warning] Aborted connection 3098 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:05:52 3099 [Warning] Aborted connection 3099 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:06:00 3100 [Warning] Aborted connection 3100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:06:08 3101 [Warning] Aborted connection 3101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:14:58 3102 [Warning] Aborted connection 3102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:15:17 3103 [Warning] Aborted connection 3103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:15:53 3104 [Warning] Aborted connection 3104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:16:00 3105 [Warning] Aborted connection 3105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:16:08 3106 [Warning] Aborted connection 3106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:24:59 3107 [Warning] Aborted connection 3107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:25:17 3108 [Warning] Aborted connection 3108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:25:53 3109 [Warning] Aborted connection 3109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:26:00 3110 [Warning] Aborted connection 3110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:26:08 3111 [Warning] Aborted connection 3111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:34:59 3112 [Warning] Aborted connection 3112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:35:17 3113 [Warning] Aborted connection 3113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:35:53 3114 [Warning] Aborted connection 3114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:36:01 3115 [Warning] Aborted connection 3115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:36:09 3116 [Warning] Aborted connection 3116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:44:59 3117 [Warning] Aborted connection 3117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:45:17 3118 [Warning] Aborted connection 3118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:45:53 3119 [Warning] Aborted connection 3119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:46:01 3120 [Warning] Aborted connection 3120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:46:09 3121 [Warning] Aborted connection 3121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:55:00 3122 [Warning] Aborted connection 3122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:55:18 3123 [Warning] Aborted connection 3123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:55:54 3124 [Warning] Aborted connection 3124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:56:01 3125 [Warning] Aborted connection 3125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 0:56:09 3126 [Warning] Aborted connection 3126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:05:00 3127 [Warning] Aborted connection 3127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:05:18 3128 [Warning] Aborted connection 3128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:05:54 3129 [Warning] Aborted connection 3129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:06:01 3130 [Warning] Aborted connection 3130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:06:09 3131 [Warning] Aborted connection 3131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:15:00 3132 [Warning] Aborted connection 3132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:15:18 3133 [Warning] Aborted connection 3133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:15:54 3134 [Warning] Aborted connection 3134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:16:02 3135 [Warning] Aborted connection 3135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:16:10 3136 [Warning] Aborted connection 3136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:25:00 3137 [Warning] Aborted connection 3137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:25:18 3138 [Warning] Aborted connection 3138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:25:54 3139 [Warning] Aborted connection 3139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:26:02 3140 [Warning] Aborted connection 3140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:26:10 3141 [Warning] Aborted connection 3141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:35:01 3142 [Warning] Aborted connection 3142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:35:19 3143 [Warning] Aborted connection 3143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:35:55 3144 [Warning] Aborted connection 3144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:36:02 3145 [Warning] Aborted connection 3145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:36:10 3146 [Warning] Aborted connection 3146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:45:01 3147 [Warning] Aborted connection 3147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:45:19 3148 [Warning] Aborted connection 3148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:45:55 3149 [Warning] Aborted connection 3149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:46:02 3150 [Warning] Aborted connection 3150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:46:10 3151 [Warning] Aborted connection 3151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:55:01 3152 [Warning] Aborted connection 3152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:55:19 3153 [Warning] Aborted connection 3153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:55:55 3154 [Warning] Aborted connection 3154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:56:03 3155 [Warning] Aborted connection 3155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 1:56:11 3156 [Warning] Aborted connection 3156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:05:01 3157 [Warning] Aborted connection 3157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:05:19 3158 [Warning] Aborted connection 3158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:05:55 3159 [Warning] Aborted connection 3159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:06:03 3160 [Warning] Aborted connection 3160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:06:11 3161 [Warning] Aborted connection 3161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:15:02 3162 [Warning] Aborted connection 3162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:15:20 3163 [Warning] Aborted connection 3163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:15:56 3164 [Warning] Aborted connection 3164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:16:03 3165 [Warning] Aborted connection 3165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:16:11 3166 [Warning] Aborted connection 3166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:25:02 3167 [Warning] Aborted connection 3167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:25:20 3168 [Warning] Aborted connection 3168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:25:56 3169 [Warning] Aborted connection 3169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:26:03 3170 [Warning] Aborted connection 3170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:26:11 3171 [Warning] Aborted connection 3171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:35:02 3172 [Warning] Aborted connection 3172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:35:20 3173 [Warning] Aborted connection 3173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:35:56 3174 [Warning] Aborted connection 3174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:36:04 3175 [Warning] Aborted connection 3175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:36:12 3176 [Warning] Aborted connection 3176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:45:02 3177 [Warning] Aborted connection 3177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:45:20 3178 [Warning] Aborted connection 3178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:45:56 3179 [Warning] Aborted connection 3179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:46:04 3180 [Warning] Aborted connection 3180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:46:12 3181 [Warning] Aborted connection 3181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:55:03 3182 [Warning] Aborted connection 3182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:55:21 3183 [Warning] Aborted connection 3183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:55:57 3184 [Warning] Aborted connection 3184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:56:04 3185 [Warning] Aborted connection 3185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 2:56:12 3186 [Warning] Aborted connection 3186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:05:03 3187 [Warning] Aborted connection 3187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:05:21 3188 [Warning] Aborted connection 3188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:05:57 3189 [Warning] Aborted connection 3189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:06:05 3190 [Warning] Aborted connection 3190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:06:13 3191 [Warning] Aborted connection 3191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:15:03 3192 [Warning] Aborted connection 3192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:15:21 3193 [Warning] Aborted connection 3193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:15:57 3194 [Warning] Aborted connection 3194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:16:05 3195 [Warning] Aborted connection 3195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:16:13 3196 [Warning] Aborted connection 3196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:25:03 3197 [Warning] Aborted connection 3197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:25:21 3198 [Warning] Aborted connection 3198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:25:58 3199 [Warning] Aborted connection 3199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:26:05 3200 [Warning] Aborted connection 3200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:26:13 3201 [Warning] Aborted connection 3201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:35:04 3202 [Warning] Aborted connection 3202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:35:22 3203 [Warning] Aborted connection 3203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:35:58 3204 [Warning] Aborted connection 3204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:36:05 3205 [Warning] Aborted connection 3205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:36:13 3206 [Warning] Aborted connection 3206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:45:04 3207 [Warning] Aborted connection 3207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:45:22 3208 [Warning] Aborted connection 3208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:45:58 3209 [Warning] Aborted connection 3209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:46:06 3210 [Warning] Aborted connection 3210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:46:14 3211 [Warning] Aborted connection 3211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:55:04 3212 [Warning] Aborted connection 3212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:55:22 3213 [Warning] Aborted connection 3213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:55:58 3214 [Warning] Aborted connection 3214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:56:06 3215 [Warning] Aborted connection 3215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 3:56:14 3216 [Warning] Aborted connection 3216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:05:04 3217 [Warning] Aborted connection 3217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:05:23 3218 [Warning] Aborted connection 3218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:05:59 3219 [Warning] Aborted connection 3219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:06:06 3220 [Warning] Aborted connection 3220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:06:14 3221 [Warning] Aborted connection 3221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:15:05 3222 [Warning] Aborted connection 3222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:15:23 3223 [Warning] Aborted connection 3223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:15:59 3224 [Warning] Aborted connection 3224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:16:06 3225 [Warning] Aborted connection 3225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:16:14 3226 [Warning] Aborted connection 3226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:25:05 3227 [Warning] Aborted connection 3227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:25:23 3228 [Warning] Aborted connection 3228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:25:59 3229 [Warning] Aborted connection 3229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:26:07 3230 [Warning] Aborted connection 3230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:26:15 3231 [Warning] Aborted connection 3231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:35:05 3232 [Warning] Aborted connection 3232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:35:23 3233 [Warning] Aborted connection 3233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:35:59 3234 [Warning] Aborted connection 3234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:36:07 3235 [Warning] Aborted connection 3235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:36:15 3236 [Warning] Aborted connection 3236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:45:06 3237 [Warning] Aborted connection 3237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:45:24 3238 [Warning] Aborted connection 3238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:46:00 3239 [Warning] Aborted connection 3239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:46:07 3240 [Warning] Aborted connection 3240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:46:15 3241 [Warning] Aborted connection 3241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:55:06 3242 [Warning] Aborted connection 3242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:55:24 3243 [Warning] Aborted connection 3243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:56:00 3244 [Warning] Aborted connection 3244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:56:07 3245 [Warning] Aborted connection 3245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 4:56:15 3246 [Warning] Aborted connection 3246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:05:06 3247 [Warning] Aborted connection 3247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:05:24 3248 [Warning] Aborted connection 3248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:06:00 3249 [Warning] Aborted connection 3249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:06:08 3250 [Warning] Aborted connection 3250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:06:16 3251 [Warning] Aborted connection 3251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:15:06 3252 [Warning] Aborted connection 3252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:15:24 3253 [Warning] Aborted connection 3253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:16:00 3254 [Warning] Aborted connection 3254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:16:08 3255 [Warning] Aborted connection 3255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:16:16 3256 [Warning] Aborted connection 3256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:25:07 3257 [Warning] Aborted connection 3257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:25:25 3258 [Warning] Aborted connection 3258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:26:01 3259 [Warning] Aborted connection 3259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:26:08 3260 [Warning] Aborted connection 3260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:26:16 3261 [Warning] Aborted connection 3261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:35:07 3262 [Warning] Aborted connection 3262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:35:25 3263 [Warning] Aborted connection 3263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:36:01 3264 [Warning] Aborted connection 3264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:36:08 3265 [Warning] Aborted connection 3265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:36:16 3266 [Warning] Aborted connection 3266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:45:07 3267 [Warning] Aborted connection 3267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:45:25 3268 [Warning] Aborted connection 3268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:46:01 3269 [Warning] Aborted connection 3269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:46:09 3270 [Warning] Aborted connection 3270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:46:17 3271 [Warning] Aborted connection 3271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:55:07 3272 [Warning] Aborted connection 3272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:55:25 3273 [Warning] Aborted connection 3273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:56:01 3274 [Warning] Aborted connection 3274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:56:09 3275 [Warning] Aborted connection 3275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 5:56:17 3276 [Warning] Aborted connection 3276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:05:08 3277 [Warning] Aborted connection 3277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:05:26 3278 [Warning] Aborted connection 3278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:06:02 3279 [Warning] Aborted connection 3279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:06:09 3280 [Warning] Aborted connection 3280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:06:17 3281 [Warning] Aborted connection 3281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:15:08 3282 [Warning] Aborted connection 3282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:15:26 3283 [Warning] Aborted connection 3283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:16:02 3284 [Warning] Aborted connection 3284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:16:09 3285 [Warning] Aborted connection 3285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:16:17 3286 [Warning] Aborted connection 3286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:25:08 3287 [Warning] Aborted connection 3287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:25:26 3288 [Warning] Aborted connection 3288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:26:02 3289 [Warning] Aborted connection 3289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:26:10 3290 [Warning] Aborted connection 3290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:26:18 3291 [Warning] Aborted connection 3291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:35:08 3292 [Warning] Aborted connection 3292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:35:26 3293 [Warning] Aborted connection 3293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:36:02 3294 [Warning] Aborted connection 3294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:36:10 3295 [Warning] Aborted connection 3295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:36:18 3296 [Warning] Aborted connection 3296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:45:09 3297 [Warning] Aborted connection 3297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:45:27 3298 [Warning] Aborted connection 3298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:46:03 3299 [Warning] Aborted connection 3299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:46:10 3300 [Warning] Aborted connection 3300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:46:18 3301 [Warning] Aborted connection 3301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:55:09 3302 [Warning] Aborted connection 3302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:55:27 3303 [Warning] Aborted connection 3303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:56:03 3304 [Warning] Aborted connection 3304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:56:10 3305 [Warning] Aborted connection 3305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 6:56:18 3306 [Warning] Aborted connection 3306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:05:09 3307 [Warning] Aborted connection 3307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:05:27 3308 [Warning] Aborted connection 3308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:06:03 3309 [Warning] Aborted connection 3309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:06:11 3310 [Warning] Aborted connection 3310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:06:19 3311 [Warning] Aborted connection 3311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:15:09 3312 [Warning] Aborted connection 3312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:15:27 3313 [Warning] Aborted connection 3313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:16:03 3314 [Warning] Aborted connection 3314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:16:11 3315 [Warning] Aborted connection 3315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:16:19 3316 [Warning] Aborted connection 3316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:25:10 3317 [Warning] Aborted connection 3317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:25:28 3318 [Warning] Aborted connection 3318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:26:04 3319 [Warning] Aborted connection 3319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:26:11 3320 [Warning] Aborted connection 3320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:26:19 3321 [Warning] Aborted connection 3321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:35:10 3322 [Warning] Aborted connection 3322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:35:28 3323 [Warning] Aborted connection 3323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:36:04 3324 [Warning] Aborted connection 3324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:36:11 3325 [Warning] Aborted connection 3325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:36:20 3326 [Warning] Aborted connection 3326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:45:10 3327 [Warning] Aborted connection 3327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:45:28 3328 [Warning] Aborted connection 3328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:46:04 3329 [Warning] Aborted connection 3329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:46:12 3330 [Warning] Aborted connection 3330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:46:20 3331 [Warning] Aborted connection 3331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:55:10 3332 [Warning] Aborted connection 3332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:55:29 3333 [Warning] Aborted connection 3333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:56:05 3334 [Warning] Aborted connection 3334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:56:12 3335 [Warning] Aborted connection 3335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 7:56:20 3336 [Warning] Aborted connection 3336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:05:11 3337 [Warning] Aborted connection 3337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:05:29 3338 [Warning] Aborted connection 3338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:06:05 3339 [Warning] Aborted connection 3339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:06:12 3340 [Warning] Aborted connection 3340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:06:20 3341 [Warning] Aborted connection 3341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:15:11 3342 [Warning] Aborted connection 3342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:15:29 3343 [Warning] Aborted connection 3343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:16:05 3344 [Warning] Aborted connection 3344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:16:13 3345 [Warning] Aborted connection 3345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:16:21 3346 [Warning] Aborted connection 3346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:25:11 3347 [Warning] Aborted connection 3347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:25:29 3348 [Warning] Aborted connection 3348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:26:05 3349 [Warning] Aborted connection 3349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:26:13 3350 [Warning] Aborted connection 3350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:26:21 3351 [Warning] Aborted connection 3351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:35:12 3352 [Warning] Aborted connection 3352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:35:29 3353 [Warning] Aborted connection 3353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:36:06 3354 [Warning] Aborted connection 3354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:36:13 3355 [Warning] Aborted connection 3355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:36:21 3356 [Warning] Aborted connection 3356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:45:12 3357 [Warning] Aborted connection 3357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:45:30 3358 [Warning] Aborted connection 3358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:46:06 3359 [Warning] Aborted connection 3359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:46:13 3360 [Warning] Aborted connection 3360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:46:21 3361 [Warning] Aborted connection 3361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:55:12 3362 [Warning] Aborted connection 3362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:55:30 3363 [Warning] Aborted connection 3363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:56:06 3364 [Warning] Aborted connection 3364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:56:14 3365 [Warning] Aborted connection 3365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 8:56:22 3366 [Warning] Aborted connection 3366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:05:12 3367 [Warning] Aborted connection 3367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:05:30 3368 [Warning] Aborted connection 3368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:06:06 3369 [Warning] Aborted connection 3369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:06:14 3370 [Warning] Aborted connection 3370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:06:22 3371 [Warning] Aborted connection 3371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:15:13 3372 [Warning] Aborted connection 3372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:15:31 3373 [Warning] Aborted connection 3373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:16:07 3374 [Warning] Aborted connection 3374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:16:14 3375 [Warning] Aborted connection 3375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:16:22 3376 [Warning] Aborted connection 3376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:25:13 3377 [Warning] Aborted connection 3377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:25:31 3378 [Warning] Aborted connection 3378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:26:07 3379 [Warning] Aborted connection 3379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:26:14 3380 [Warning] Aborted connection 3380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:26:22 3381 [Warning] Aborted connection 3381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:35:13 3382 [Warning] Aborted connection 3382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:35:31 3383 [Warning] Aborted connection 3383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:36:07 3384 [Warning] Aborted connection 3384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:36:15 3385 [Warning] Aborted connection 3385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:36:23 3386 [Warning] Aborted connection 3386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:45:13 3387 [Warning] Aborted connection 3387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:45:31 3388 [Warning] Aborted connection 3388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:46:07 3389 [Warning] Aborted connection 3389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:46:15 3390 [Warning] Aborted connection 3390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:46:23 3391 [Warning] Aborted connection 3391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:55:14 3392 [Warning] Aborted connection 3392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:55:32 3393 [Warning] Aborted connection 3393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:56:08 3394 [Warning] Aborted connection 3394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:56:15 3395 [Warning] Aborted connection 3395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 9:56:23 3396 [Warning] Aborted connection 3396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:05:14 3397 [Warning] Aborted connection 3397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:05:32 3398 [Warning] Aborted connection 3398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:06:08 3399 [Warning] Aborted connection 3399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:06:15 3400 [Warning] Aborted connection 3400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:06:23 3401 [Warning] Aborted connection 3401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:15:55 3402 [Warning] Aborted connection 3402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:16:11 3403 [Warning] Aborted connection 3403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:16:34 3405 [Warning] Aborted connection 3405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:16:40 3404 [Warning] Aborted connection 3404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:16:52 3406 [Warning] Aborted connection 3406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:29:58 3407 [Warning] Aborted connection 3407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:29:58 3410 [Warning] Aborted connection 3410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:29:58 3411 [Warning] Aborted connection 3411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:29:58 3408 [Warning] Aborted connection 3408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:29:58 3409 [Warning] Aborted connection 3409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:39:59 3412 [Warning] Aborted connection 3412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:39:59 3413 [Warning] Aborted connection 3413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:39:59 3414 [Warning] Aborted connection 3414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:39:59 3415 [Warning] Aborted connection 3415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 10:39:59 3416 [Warning] Aborted connection 3416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 11:21:18 3418 [Warning] Aborted connection 3418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 11:21:18 3420 [Warning] Aborted connection 3420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 11:21:18 3417 [Warning] Aborted connection 3417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 11:21:18 3419 [Warning] Aborted connection 3419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 11:21:18 3421 [Warning] Aborted connection 3421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +220524 13:12:54 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-24 13:12:54 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 523 ... +2022-05-24 13:12:54 0 [Note] InnoDB: Uses event mutexes +2022-05-24 13:12:54 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-24 13:12:54 0 [Note] InnoDB: Number of pools: 1 +2022-05-24 13:12:54 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-24 13:12:54 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-24 13:12:54 0 [Note] InnoDB: Using Linux native AIO +2022-05-24 13:12:54 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-24 13:12:54 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-24 13:12:54 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57864290,57864290 +2022-05-24 13:12:55 0 [Note] InnoDB: Starting final batch to recover 12 pages from redo log. +2022-05-24 13:12:55 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000101', position 4972 +2022-05-24 13:12:55 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-24 13:12:55 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-24 13:12:55 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-24 13:12:55 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-24 13:12:55 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-24 13:12:55 0 [Note] InnoDB: 10.5.13 started; log sequence number 57880600; transaction id 169465 +2022-05-24 13:12:55 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-24 13:12:55 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-24 13:12:55 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-24 13:12:55 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-24 13:12:55 0 [Note] Starting crash recovery... +2022-05-24 13:12:55 0 [Note] Crash recovery finished. +2022-05-24 13:12:55 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:12:55 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:12:55 0 [Note] Server socket created on IP: '::'. +2022-05-24 13:12:55 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-24 13:12:55 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-24 13:12:55 0 [Note] Reading of all Master_info entries succeeded +2022-05-24 13:12:55 0 [Note] Added new Master_info '' to hash table +2022-05-24 13:12:55 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-24 13:13:00 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:13:00 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:26:18 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:26:18 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:26:18 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 13:26:18 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 16:53:01 6 [Warning] IP address '192.168.1.81' could not be resolved: Name does not resolve +2022-05-24 17:01:45 11 [Warning] IP address '172.20.0.1' could not be resolved: Name does not resolve +2022-05-24 17:03:01 6 [Warning] Aborted connection 6 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:03:01 9 [Warning] Aborted connection 9 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:03:01 7 [Warning] Aborted connection 7 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:03:01 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:03:01 10 [Warning] Aborted connection 10 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:11:45 14 [Warning] Aborted connection 14 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:11:45 15 [Warning] Aborted connection 15 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:12:50 11 [Warning] Aborted connection 11 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:12:57 12 [Warning] Aborted connection 12 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:12:59 13 [Warning] Aborted connection 13 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:13:01 16 [Warning] Aborted connection 16 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:13:01 17 [Warning] Aborted connection 17 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:13:01 18 [Warning] Aborted connection 18 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:13:01 19 [Warning] Aborted connection 19 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:13:01 20 [Warning] Aborted connection 20 to db: 'unconnected' user: 'aplication' host: '192.168.1.81' (Got timeout reading communication packets) +2022-05-24 17:22:50 23 [Warning] Aborted connection 23 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:22:57 24 [Warning] Aborted connection 24 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:22:59 25 [Warning] Aborted connection 25 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:26:19 29 [Warning] IP address '192.168.1.42' could not be resolved: Name does not resolve +2022-05-24 17:26:21 30 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:26:21 30 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:26:21 30 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:26:21 30 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:27:12 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-24 17:46:46 22 [Warning] Aborted connection 22 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:46:53 26 [Warning] Aborted connection 26 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:46:56 27 [Warning] Aborted connection 27 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:47:17 28 [Warning] Aborted connection 28 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:47:38 21 [Warning] Aborted connection 21 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:56:47 31 [Warning] Aborted connection 31 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:56:53 32 [Warning] Aborted connection 32 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:56:56 33 [Warning] Aborted connection 33 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:57:17 34 [Warning] Aborted connection 34 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 17:57:39 35 [Warning] Aborted connection 35 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:06:47 36 [Warning] Aborted connection 36 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:06:54 37 [Warning] Aborted connection 37 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:06:56 38 [Warning] Aborted connection 38 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:07:17 39 [Warning] Aborted connection 39 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:07:39 40 [Warning] Aborted connection 40 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:16:47 41 [Warning] Aborted connection 41 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:16:54 42 [Warning] Aborted connection 42 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:16:57 43 [Warning] Aborted connection 43 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:17:18 44 [Warning] Aborted connection 44 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:17:39 45 [Warning] Aborted connection 45 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:26:47 46 [Warning] Aborted connection 46 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:26:54 47 [Warning] Aborted connection 47 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:26:57 48 [Warning] Aborted connection 48 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:27:18 49 [Warning] Aborted connection 49 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:27:39 50 [Warning] Aborted connection 50 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:36:48 51 [Warning] Aborted connection 51 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:36:55 52 [Warning] Aborted connection 52 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:36:57 53 [Warning] Aborted connection 53 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:37:18 54 [Warning] Aborted connection 54 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:37:40 55 [Warning] Aborted connection 55 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:46:48 56 [Warning] Aborted connection 56 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:46:55 57 [Warning] Aborted connection 57 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:46:57 58 [Warning] Aborted connection 58 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:47:18 59 [Warning] Aborted connection 59 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:47:40 60 [Warning] Aborted connection 60 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:56:48 61 [Warning] Aborted connection 61 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:56:55 62 [Warning] Aborted connection 62 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:56:58 63 [Warning] Aborted connection 63 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:57:19 64 [Warning] Aborted connection 64 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 18:57:40 65 [Warning] Aborted connection 65 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:06:48 66 [Warning] Aborted connection 66 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:06:55 67 [Warning] Aborted connection 67 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:06:58 68 [Warning] Aborted connection 68 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:07:19 69 [Warning] Aborted connection 69 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:07:40 70 [Warning] Aborted connection 70 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:16:49 71 [Warning] Aborted connection 71 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:16:56 72 [Warning] Aborted connection 72 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:16:58 73 [Warning] Aborted connection 73 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:17:19 74 [Warning] Aborted connection 74 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:17:41 75 [Warning] Aborted connection 75 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:26:49 76 [Warning] Aborted connection 76 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:26:56 77 [Warning] Aborted connection 77 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:26:59 78 [Warning] Aborted connection 78 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:27:20 79 [Warning] Aborted connection 79 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:27:41 80 [Warning] Aborted connection 80 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:36:49 81 [Warning] Aborted connection 81 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:36:56 82 [Warning] Aborted connection 82 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:36:59 83 [Warning] Aborted connection 83 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:37:20 84 [Warning] Aborted connection 84 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:37:41 85 [Warning] Aborted connection 85 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:46:50 86 [Warning] Aborted connection 86 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:46:56 87 [Warning] Aborted connection 87 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:46:59 88 [Warning] Aborted connection 88 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:47:20 89 [Warning] Aborted connection 89 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:47:42 90 [Warning] Aborted connection 90 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:56:50 91 [Warning] Aborted connection 91 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:56:57 92 [Warning] Aborted connection 92 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:56:59 93 [Warning] Aborted connection 93 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:57:20 94 [Warning] Aborted connection 94 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 19:57:42 95 [Warning] Aborted connection 95 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:06:50 96 [Warning] Aborted connection 96 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:06:57 97 [Warning] Aborted connection 97 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:07:00 98 [Warning] Aborted connection 98 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:07:21 99 [Warning] Aborted connection 99 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:07:42 100 [Warning] Aborted connection 100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:16:50 101 [Warning] Aborted connection 101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:16:57 102 [Warning] Aborted connection 102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:17:00 103 [Warning] Aborted connection 103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:17:21 104 [Warning] Aborted connection 104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:17:42 105 [Warning] Aborted connection 105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:26:51 106 [Warning] Aborted connection 106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:26:58 107 [Warning] Aborted connection 107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:27:00 108 [Warning] Aborted connection 108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:27:21 109 [Warning] Aborted connection 109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:27:43 110 [Warning] Aborted connection 110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:36:51 111 [Warning] Aborted connection 111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:36:58 112 [Warning] Aborted connection 112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:37:00 113 [Warning] Aborted connection 113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:37:21 114 [Warning] Aborted connection 114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:37:43 115 [Warning] Aborted connection 115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:46:51 116 [Warning] Aborted connection 116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:46:58 117 [Warning] Aborted connection 117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:47:01 118 [Warning] Aborted connection 118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:47:22 119 [Warning] Aborted connection 119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:47:43 120 [Warning] Aborted connection 120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:56:51 121 [Warning] Aborted connection 121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:56:58 122 [Warning] Aborted connection 122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:57:01 123 [Warning] Aborted connection 123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:57:22 124 [Warning] Aborted connection 124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 20:57:43 125 [Warning] Aborted connection 125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:06:52 126 [Warning] Aborted connection 126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:06:59 127 [Warning] Aborted connection 127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:07:01 128 [Warning] Aborted connection 128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:07:22 129 [Warning] Aborted connection 129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:07:44 130 [Warning] Aborted connection 130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:16:52 131 [Warning] Aborted connection 131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:16:59 132 [Warning] Aborted connection 132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:17:01 133 [Warning] Aborted connection 133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:17:22 134 [Warning] Aborted connection 134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:17:44 135 [Warning] Aborted connection 135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:26:52 136 [Warning] Aborted connection 136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:26:59 137 [Warning] Aborted connection 137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:27:02 138 [Warning] Aborted connection 138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:27:23 139 [Warning] Aborted connection 139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:27:44 140 [Warning] Aborted connection 140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:36:52 141 [Warning] Aborted connection 141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:36:59 142 [Warning] Aborted connection 142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:37:02 143 [Warning] Aborted connection 143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:37:23 144 [Warning] Aborted connection 144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:37:45 145 [Warning] Aborted connection 145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:46:53 146 [Warning] Aborted connection 146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:47:00 147 [Warning] Aborted connection 147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:47:02 148 [Warning] Aborted connection 148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:47:23 149 [Warning] Aborted connection 149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:47:45 150 [Warning] Aborted connection 150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:56:53 151 [Warning] Aborted connection 151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:57:00 152 [Warning] Aborted connection 152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:57:02 153 [Warning] Aborted connection 153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:57:24 154 [Warning] Aborted connection 154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 21:57:45 155 [Warning] Aborted connection 155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:06:53 156 [Warning] Aborted connection 156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:07:00 157 [Warning] Aborted connection 157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:07:03 158 [Warning] Aborted connection 158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:07:24 159 [Warning] Aborted connection 159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:07:45 160 [Warning] Aborted connection 160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:16:53 161 [Warning] Aborted connection 161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:17:00 162 [Warning] Aborted connection 162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:17:03 163 [Warning] Aborted connection 163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:17:24 164 [Warning] Aborted connection 164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:17:46 165 [Warning] Aborted connection 165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:26:54 166 [Warning] Aborted connection 166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:27:01 167 [Warning] Aborted connection 167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:27:03 168 [Warning] Aborted connection 168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:27:24 169 [Warning] Aborted connection 169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:27:46 170 [Warning] Aborted connection 170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:36:54 171 [Warning] Aborted connection 171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:37:01 172 [Warning] Aborted connection 172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:37:04 173 [Warning] Aborted connection 173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:37:25 174 [Warning] Aborted connection 174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:37:46 175 [Warning] Aborted connection 175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:46:54 176 [Warning] Aborted connection 176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:47:01 177 [Warning] Aborted connection 177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:47:04 178 [Warning] Aborted connection 178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:47:25 179 [Warning] Aborted connection 179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:47:46 180 [Warning] Aborted connection 180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:56:55 181 [Warning] Aborted connection 181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:57:02 182 [Warning] Aborted connection 182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:57:04 183 [Warning] Aborted connection 183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:57:25 184 [Warning] Aborted connection 184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 22:57:47 185 [Warning] Aborted connection 185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:06:55 186 [Warning] Aborted connection 186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:07:02 187 [Warning] Aborted connection 187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:07:04 188 [Warning] Aborted connection 188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:07:25 189 [Warning] Aborted connection 189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:07:47 190 [Warning] Aborted connection 190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:16:55 191 [Warning] Aborted connection 191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:17:02 192 [Warning] Aborted connection 192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:17:05 193 [Warning] Aborted connection 193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:17:26 194 [Warning] Aborted connection 194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:17:47 195 [Warning] Aborted connection 195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:26:55 196 [Warning] Aborted connection 196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:27:02 197 [Warning] Aborted connection 197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:27:05 198 [Warning] Aborted connection 198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:27:26 199 [Warning] Aborted connection 199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:27:47 200 [Warning] Aborted connection 200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:36:56 201 [Warning] Aborted connection 201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:37:03 202 [Warning] Aborted connection 202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:37:05 203 [Warning] Aborted connection 203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:37:26 204 [Warning] Aborted connection 204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:37:48 205 [Warning] Aborted connection 205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:46:56 206 [Warning] Aborted connection 206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:47:03 207 [Warning] Aborted connection 207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:47:05 208 [Warning] Aborted connection 208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:47:26 209 [Warning] Aborted connection 209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:47:48 210 [Warning] Aborted connection 210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:56:56 211 [Warning] Aborted connection 211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:57:03 212 [Warning] Aborted connection 212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:57:06 213 [Warning] Aborted connection 213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:57:27 214 [Warning] Aborted connection 214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-24 23:57:48 215 [Warning] Aborted connection 215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:06:56 216 [Warning] Aborted connection 216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:07:03 217 [Warning] Aborted connection 217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:07:06 218 [Warning] Aborted connection 218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:07:27 219 [Warning] Aborted connection 219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:07:48 220 [Warning] Aborted connection 220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:16:57 221 [Warning] Aborted connection 221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:17:04 222 [Warning] Aborted connection 222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:17:06 223 [Warning] Aborted connection 223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:17:27 224 [Warning] Aborted connection 224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:17:49 225 [Warning] Aborted connection 225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:26:57 226 [Warning] Aborted connection 226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:27:04 227 [Warning] Aborted connection 227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:27:06 228 [Warning] Aborted connection 228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:27:27 229 [Warning] Aborted connection 229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:27:49 230 [Warning] Aborted connection 230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:36:57 231 [Warning] Aborted connection 231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:37:04 232 [Warning] Aborted connection 232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:37:07 233 [Warning] Aborted connection 233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:37:28 234 [Warning] Aborted connection 234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:37:49 235 [Warning] Aborted connection 235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:46:57 236 [Warning] Aborted connection 236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:47:04 237 [Warning] Aborted connection 237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:47:07 238 [Warning] Aborted connection 238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:47:28 239 [Warning] Aborted connection 239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:47:50 240 [Warning] Aborted connection 240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:56:58 241 [Warning] Aborted connection 241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:57:05 242 [Warning] Aborted connection 242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:57:07 243 [Warning] Aborted connection 243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:57:28 244 [Warning] Aborted connection 244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 0:57:50 245 [Warning] Aborted connection 245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:06:58 246 [Warning] Aborted connection 246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:07:05 247 [Warning] Aborted connection 247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:07:07 248 [Warning] Aborted connection 248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:07:29 249 [Warning] Aborted connection 249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:07:50 250 [Warning] Aborted connection 250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:16:58 251 [Warning] Aborted connection 251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:17:05 252 [Warning] Aborted connection 252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:17:08 253 [Warning] Aborted connection 253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:17:29 254 [Warning] Aborted connection 254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:17:50 255 [Warning] Aborted connection 255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:26:59 256 [Warning] Aborted connection 256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:27:05 257 [Warning] Aborted connection 257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:27:08 258 [Warning] Aborted connection 258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:27:29 259 [Warning] Aborted connection 259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:27:51 260 [Warning] Aborted connection 260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:36:59 261 [Warning] Aborted connection 261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:37:06 262 [Warning] Aborted connection 262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:37:08 263 [Warning] Aborted connection 263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:37:29 264 [Warning] Aborted connection 264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:37:51 265 [Warning] Aborted connection 265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:46:59 266 [Warning] Aborted connection 266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:47:06 267 [Warning] Aborted connection 267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:47:09 268 [Warning] Aborted connection 268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:47:30 269 [Warning] Aborted connection 269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:47:51 270 [Warning] Aborted connection 270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:56:59 271 [Warning] Aborted connection 271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:57:06 272 [Warning] Aborted connection 272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:57:09 273 [Warning] Aborted connection 273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:57:30 274 [Warning] Aborted connection 274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 1:57:51 275 [Warning] Aborted connection 275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:07:00 276 [Warning] Aborted connection 276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:07:06 277 [Warning] Aborted connection 277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:07:09 278 [Warning] Aborted connection 278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:07:30 279 [Warning] Aborted connection 279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:07:52 280 [Warning] Aborted connection 280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:17:00 281 [Warning] Aborted connection 281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:17:07 282 [Warning] Aborted connection 282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:17:09 283 [Warning] Aborted connection 283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:17:30 284 [Warning] Aborted connection 284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:17:52 285 [Warning] Aborted connection 285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:27:00 286 [Warning] Aborted connection 286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:27:07 287 [Warning] Aborted connection 287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:27:10 288 [Warning] Aborted connection 288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:27:31 289 [Warning] Aborted connection 289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:27:52 290 [Warning] Aborted connection 290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:37:00 291 [Warning] Aborted connection 291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:37:07 292 [Warning] Aborted connection 292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:37:10 293 [Warning] Aborted connection 293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:37:31 294 [Warning] Aborted connection 294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:37:52 295 [Warning] Aborted connection 295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:47:01 296 [Warning] Aborted connection 296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:47:08 297 [Warning] Aborted connection 297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:47:10 298 [Warning] Aborted connection 298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:47:31 299 [Warning] Aborted connection 299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:47:53 300 [Warning] Aborted connection 300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:57:01 301 [Warning] Aborted connection 301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:57:08 302 [Warning] Aborted connection 302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:57:10 303 [Warning] Aborted connection 303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:57:31 304 [Warning] Aborted connection 304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 2:57:53 305 [Warning] Aborted connection 305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:07:01 306 [Warning] Aborted connection 306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:07:08 307 [Warning] Aborted connection 307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:07:11 308 [Warning] Aborted connection 308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:07:32 309 [Warning] Aborted connection 309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:07:53 310 [Warning] Aborted connection 310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:17:01 311 [Warning] Aborted connection 311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:17:08 312 [Warning] Aborted connection 312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:17:11 313 [Warning] Aborted connection 313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:17:32 314 [Warning] Aborted connection 314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:17:53 315 [Warning] Aborted connection 315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:27:02 316 [Warning] Aborted connection 316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:27:09 317 [Warning] Aborted connection 317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:27:11 318 [Warning] Aborted connection 318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:27:32 319 [Warning] Aborted connection 319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:27:54 320 [Warning] Aborted connection 320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:37:02 321 [Warning] Aborted connection 321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:37:09 322 [Warning] Aborted connection 322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:37:11 323 [Warning] Aborted connection 323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:37:32 324 [Warning] Aborted connection 324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:37:54 325 [Warning] Aborted connection 325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:47:02 326 [Warning] Aborted connection 326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:47:09 327 [Warning] Aborted connection 327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:47:12 328 [Warning] Aborted connection 328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:47:33 329 [Warning] Aborted connection 329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:47:54 330 [Warning] Aborted connection 330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:57:02 331 [Warning] Aborted connection 331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:57:09 332 [Warning] Aborted connection 332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:57:12 333 [Warning] Aborted connection 333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:57:33 334 [Warning] Aborted connection 334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 3:57:55 335 [Warning] Aborted connection 335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:07:03 336 [Warning] Aborted connection 336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:07:10 337 [Warning] Aborted connection 337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:07:12 338 [Warning] Aborted connection 338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:07:33 339 [Warning] Aborted connection 339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:07:55 340 [Warning] Aborted connection 340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:17:03 341 [Warning] Aborted connection 341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:17:10 342 [Warning] Aborted connection 342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:17:12 343 [Warning] Aborted connection 343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:17:34 344 [Warning] Aborted connection 344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:17:55 345 [Warning] Aborted connection 345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:27:03 346 [Warning] Aborted connection 346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:27:10 347 [Warning] Aborted connection 347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:27:13 348 [Warning] Aborted connection 348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:27:34 349 [Warning] Aborted connection 349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:27:55 350 [Warning] Aborted connection 350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:37:03 351 [Warning] Aborted connection 351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:37:10 352 [Warning] Aborted connection 352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:37:13 353 [Warning] Aborted connection 353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:37:34 354 [Warning] Aborted connection 354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:37:56 355 [Warning] Aborted connection 355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:47:04 356 [Warning] Aborted connection 356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:47:11 357 [Warning] Aborted connection 357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:47:13 358 [Warning] Aborted connection 358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:47:34 359 [Warning] Aborted connection 359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:47:56 360 [Warning] Aborted connection 360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:57:04 361 [Warning] Aborted connection 361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:57:11 362 [Warning] Aborted connection 362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:57:14 363 [Warning] Aborted connection 363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:57:35 364 [Warning] Aborted connection 364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 4:57:56 365 [Warning] Aborted connection 365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:07:04 366 [Warning] Aborted connection 366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:07:11 367 [Warning] Aborted connection 367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:07:14 368 [Warning] Aborted connection 368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:07:35 369 [Warning] Aborted connection 369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:07:56 370 [Warning] Aborted connection 370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:17:05 371 [Warning] Aborted connection 371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:17:12 372 [Warning] Aborted connection 372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:17:14 373 [Warning] Aborted connection 373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:17:35 374 [Warning] Aborted connection 374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:17:57 375 [Warning] Aborted connection 375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:27:05 376 [Warning] Aborted connection 376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:27:12 377 [Warning] Aborted connection 377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:27:14 378 [Warning] Aborted connection 378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:27:35 379 [Warning] Aborted connection 379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:27:57 380 [Warning] Aborted connection 380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:37:05 381 [Warning] Aborted connection 381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:37:12 382 [Warning] Aborted connection 382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:37:15 383 [Warning] Aborted connection 383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:37:36 384 [Warning] Aborted connection 384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:37:57 385 [Warning] Aborted connection 385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:47:05 386 [Warning] Aborted connection 386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:47:12 387 [Warning] Aborted connection 387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:47:15 388 [Warning] Aborted connection 388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:47:36 389 [Warning] Aborted connection 389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:47:57 390 [Warning] Aborted connection 390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:57:06 391 [Warning] Aborted connection 391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:57:13 392 [Warning] Aborted connection 392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:57:15 393 [Warning] Aborted connection 393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:57:36 394 [Warning] Aborted connection 394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 5:57:58 395 [Warning] Aborted connection 395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:07:06 396 [Warning] Aborted connection 396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:07:13 397 [Warning] Aborted connection 397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:07:15 398 [Warning] Aborted connection 398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:07:36 399 [Warning] Aborted connection 399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:07:58 400 [Warning] Aborted connection 400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:17:06 401 [Warning] Aborted connection 401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:17:13 402 [Warning] Aborted connection 402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:17:16 403 [Warning] Aborted connection 403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:17:37 404 [Warning] Aborted connection 404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:17:58 405 [Warning] Aborted connection 405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:27:06 406 [Warning] Aborted connection 406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:27:13 407 [Warning] Aborted connection 407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:27:16 408 [Warning] Aborted connection 408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:27:37 409 [Warning] Aborted connection 409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:27:58 410 [Warning] Aborted connection 410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:37:07 411 [Warning] Aborted connection 411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:37:14 412 [Warning] Aborted connection 412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:37:16 413 [Warning] Aborted connection 413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:37:37 414 [Warning] Aborted connection 414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:37:59 415 [Warning] Aborted connection 415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:47:07 416 [Warning] Aborted connection 416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:47:14 417 [Warning] Aborted connection 417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:47:16 418 [Warning] Aborted connection 418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:47:37 419 [Warning] Aborted connection 419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:47:59 420 [Warning] Aborted connection 420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:57:07 421 [Warning] Aborted connection 421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:57:14 422 [Warning] Aborted connection 422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:57:17 423 [Warning] Aborted connection 423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:57:38 424 [Warning] Aborted connection 424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 6:57:59 425 [Warning] Aborted connection 425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:07:07 426 [Warning] Aborted connection 426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:07:14 427 [Warning] Aborted connection 427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:07:17 428 [Warning] Aborted connection 428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:07:38 429 [Warning] Aborted connection 429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:07:59 430 [Warning] Aborted connection 430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:17:08 431 [Warning] Aborted connection 431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:17:15 432 [Warning] Aborted connection 432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:17:17 433 [Warning] Aborted connection 433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:17:38 434 [Warning] Aborted connection 434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:18:00 435 [Warning] Aborted connection 435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:27:08 436 [Warning] Aborted connection 436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:27:15 437 [Warning] Aborted connection 437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:27:17 438 [Warning] Aborted connection 438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:27:38 439 [Warning] Aborted connection 439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:28:00 440 [Warning] Aborted connection 440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:37:08 441 [Warning] Aborted connection 441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:37:15 442 [Warning] Aborted connection 442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:37:18 443 [Warning] Aborted connection 443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:37:39 444 [Warning] Aborted connection 444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:38:00 445 [Warning] Aborted connection 445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:47:08 446 [Warning] Aborted connection 446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:47:15 447 [Warning] Aborted connection 447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:47:18 448 [Warning] Aborted connection 448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:47:39 449 [Warning] Aborted connection 449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:48:01 450 [Warning] Aborted connection 450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:57:09 451 [Warning] Aborted connection 451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:57:16 452 [Warning] Aborted connection 452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:57:18 453 [Warning] Aborted connection 453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:57:39 454 [Warning] Aborted connection 454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 7:58:01 455 [Warning] Aborted connection 455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:07:09 456 [Warning] Aborted connection 456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:07:16 457 [Warning] Aborted connection 457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:07:19 458 [Warning] Aborted connection 458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:07:39 459 [Warning] Aborted connection 459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:08:01 460 [Warning] Aborted connection 460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:17:09 461 [Warning] Aborted connection 461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:17:16 462 [Warning] Aborted connection 462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:17:19 463 [Warning] Aborted connection 463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:17:40 464 [Warning] Aborted connection 464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:18:01 465 [Warning] Aborted connection 465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:27:10 466 [Warning] Aborted connection 466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:27:17 467 [Warning] Aborted connection 467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:27:19 468 [Warning] Aborted connection 468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:27:40 469 [Warning] Aborted connection 469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:28:02 470 [Warning] Aborted connection 470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:37:10 471 [Warning] Aborted connection 471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:37:17 472 [Warning] Aborted connection 472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:37:19 473 [Warning] Aborted connection 473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:37:40 474 [Warning] Aborted connection 474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:38:02 475 [Warning] Aborted connection 475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:47:10 476 [Warning] Aborted connection 476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:47:17 477 [Warning] Aborted connection 477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:47:20 478 [Warning] Aborted connection 478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:47:41 479 [Warning] Aborted connection 479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:48:02 480 [Warning] Aborted connection 480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:57:10 481 [Warning] Aborted connection 481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:57:17 482 [Warning] Aborted connection 482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:57:20 483 [Warning] Aborted connection 483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:57:41 484 [Warning] Aborted connection 484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 8:58:02 485 [Warning] Aborted connection 485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:07:11 486 [Warning] Aborted connection 486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:07:18 487 [Warning] Aborted connection 487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:07:20 488 [Warning] Aborted connection 488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:07:41 489 [Warning] Aborted connection 489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:08:03 490 [Warning] Aborted connection 490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:17:11 491 [Warning] Aborted connection 491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:17:18 492 [Warning] Aborted connection 492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:17:20 493 [Warning] Aborted connection 493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:17:41 494 [Warning] Aborted connection 494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:18:03 495 [Warning] Aborted connection 495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:27:11 496 [Warning] Aborted connection 496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:27:18 497 [Warning] Aborted connection 497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:27:21 498 [Warning] Aborted connection 498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:27:42 499 [Warning] Aborted connection 499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:28:03 500 [Warning] Aborted connection 500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:37:11 501 [Warning] Aborted connection 501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:37:18 502 [Warning] Aborted connection 502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:37:21 503 [Warning] Aborted connection 503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:37:42 504 [Warning] Aborted connection 504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:38:03 505 [Warning] Aborted connection 505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:47:12 506 [Warning] Aborted connection 506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:47:19 507 [Warning] Aborted connection 507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:47:21 508 [Warning] Aborted connection 508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:47:42 509 [Warning] Aborted connection 509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:48:04 510 [Warning] Aborted connection 510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:57:12 511 [Warning] Aborted connection 511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:57:19 512 [Warning] Aborted connection 512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:57:21 513 [Warning] Aborted connection 513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:57:42 514 [Warning] Aborted connection 514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 9:58:04 515 [Warning] Aborted connection 515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:07:12 516 [Warning] Aborted connection 516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:07:19 517 [Warning] Aborted connection 517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:07:22 518 [Warning] Aborted connection 518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:07:43 519 [Warning] Aborted connection 519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:08:04 520 [Warning] Aborted connection 520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:17:12 521 [Warning] Aborted connection 521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:17:19 522 [Warning] Aborted connection 522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:17:22 523 [Warning] Aborted connection 523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:17:43 524 [Warning] Aborted connection 524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:18:04 525 [Warning] Aborted connection 525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:27:13 526 [Warning] Aborted connection 526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:27:20 527 [Warning] Aborted connection 527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:27:22 528 [Warning] Aborted connection 528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:27:43 529 [Warning] Aborted connection 529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:28:05 530 [Warning] Aborted connection 530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:37:13 531 [Warning] Aborted connection 531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:37:20 532 [Warning] Aborted connection 532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:37:22 533 [Warning] Aborted connection 533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:37:43 534 [Warning] Aborted connection 534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:38:05 535 [Warning] Aborted connection 535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:47:13 536 [Warning] Aborted connection 536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:47:20 537 [Warning] Aborted connection 537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:47:23 538 [Warning] Aborted connection 538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:47:44 539 [Warning] Aborted connection 539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:48:05 540 [Warning] Aborted connection 540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:57:13 541 [Warning] Aborted connection 541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:57:20 542 [Warning] Aborted connection 542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:57:23 543 [Warning] Aborted connection 543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:57:44 544 [Warning] Aborted connection 544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 10:58:06 545 [Warning] Aborted connection 545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:07:14 546 [Warning] Aborted connection 546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:07:21 547 [Warning] Aborted connection 547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:07:23 548 [Warning] Aborted connection 548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:07:44 549 [Warning] Aborted connection 549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:08:06 550 [Warning] Aborted connection 550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:17:14 551 [Warning] Aborted connection 551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:17:21 552 [Warning] Aborted connection 552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:17:23 553 [Warning] Aborted connection 553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:17:44 554 [Warning] Aborted connection 554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:18:06 555 [Warning] Aborted connection 555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:27:14 556 [Warning] Aborted connection 556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:27:21 557 [Warning] Aborted connection 557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:27:24 558 [Warning] Aborted connection 558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:27:45 559 [Warning] Aborted connection 559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:28:06 560 [Warning] Aborted connection 560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:37:14 561 [Warning] Aborted connection 561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:37:22 562 [Warning] Aborted connection 562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:37:24 563 [Warning] Aborted connection 563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:37:45 564 [Warning] Aborted connection 564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:38:07 565 [Warning] Aborted connection 565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:47:15 566 [Warning] Aborted connection 566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:47:22 567 [Warning] Aborted connection 567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:47:24 568 [Warning] Aborted connection 568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:47:45 569 [Warning] Aborted connection 569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:48:07 570 [Warning] Aborted connection 570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:57:15 571 [Warning] Aborted connection 571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:57:22 572 [Warning] Aborted connection 572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:57:24 573 [Warning] Aborted connection 573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:57:46 574 [Warning] Aborted connection 574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 11:58:07 575 [Warning] Aborted connection 575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:07:15 576 [Warning] Aborted connection 576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:07:22 577 [Warning] Aborted connection 577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:07:25 578 [Warning] Aborted connection 578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:07:46 579 [Warning] Aborted connection 579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:08:07 580 [Warning] Aborted connection 580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:17:16 581 [Warning] Aborted connection 581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:17:23 582 [Warning] Aborted connection 582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:17:25 583 [Warning] Aborted connection 583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:17:46 584 [Warning] Aborted connection 584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:18:08 585 [Warning] Aborted connection 585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:27:16 586 [Warning] Aborted connection 586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:27:23 587 [Warning] Aborted connection 587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:27:25 588 [Warning] Aborted connection 588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:27:46 589 [Warning] Aborted connection 589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:28:08 590 [Warning] Aborted connection 590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:37:16 591 [Warning] Aborted connection 591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:37:23 592 [Warning] Aborted connection 592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:37:26 593 [Warning] Aborted connection 593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:37:47 594 [Warning] Aborted connection 594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:38:08 595 [Warning] Aborted connection 595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:47:16 596 [Warning] Aborted connection 596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:47:23 597 [Warning] Aborted connection 597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:47:26 598 [Warning] Aborted connection 598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:47:47 599 [Warning] Aborted connection 599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:48:08 600 [Warning] Aborted connection 600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:57:17 601 [Warning] Aborted connection 601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:57:24 602 [Warning] Aborted connection 602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:57:26 603 [Warning] Aborted connection 603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:57:47 604 [Warning] Aborted connection 604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 12:58:09 605 [Warning] Aborted connection 605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:07:17 606 [Warning] Aborted connection 606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:07:24 607 [Warning] Aborted connection 607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:07:26 608 [Warning] Aborted connection 608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:07:47 609 [Warning] Aborted connection 609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:08:09 610 [Warning] Aborted connection 610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:17:17 611 [Warning] Aborted connection 611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:17:24 612 [Warning] Aborted connection 612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:17:27 613 [Warning] Aborted connection 613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:17:48 614 [Warning] Aborted connection 614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:18:09 615 [Warning] Aborted connection 615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:27:17 616 [Warning] Aborted connection 616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:27:24 617 [Warning] Aborted connection 617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:27:27 618 [Warning] Aborted connection 618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:27:48 619 [Warning] Aborted connection 619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:28:10 620 [Warning] Aborted connection 620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:37:18 621 [Warning] Aborted connection 621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:37:25 622 [Warning] Aborted connection 622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:37:27 623 [Warning] Aborted connection 623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:37:48 624 [Warning] Aborted connection 624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:38:10 625 [Warning] Aborted connection 625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:47:18 626 [Warning] Aborted connection 626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:47:25 627 [Warning] Aborted connection 627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:47:28 628 [Warning] Aborted connection 628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:47:49 629 [Warning] Aborted connection 629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:48:10 630 [Warning] Aborted connection 630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:57:18 631 [Warning] Aborted connection 631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:57:25 632 [Warning] Aborted connection 632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:57:28 633 [Warning] Aborted connection 633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:57:49 634 [Warning] Aborted connection 634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 13:58:10 635 [Warning] Aborted connection 635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:07:19 636 [Warning] Aborted connection 636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:07:26 637 [Warning] Aborted connection 637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:07:28 638 [Warning] Aborted connection 638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:07:49 639 [Warning] Aborted connection 639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:08:11 640 [Warning] Aborted connection 640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:17:19 641 [Warning] Aborted connection 641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:17:26 642 [Warning] Aborted connection 642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:17:28 643 [Warning] Aborted connection 643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:17:49 644 [Warning] Aborted connection 644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:18:11 645 [Warning] Aborted connection 645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:27:19 646 [Warning] Aborted connection 646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:27:26 647 [Warning] Aborted connection 647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:27:29 648 [Warning] Aborted connection 648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:27:50 649 [Warning] Aborted connection 649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:28:11 650 [Warning] Aborted connection 650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:37:19 651 [Warning] Aborted connection 651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:37:26 652 [Warning] Aborted connection 652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:37:29 653 [Warning] Aborted connection 653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:37:50 654 [Warning] Aborted connection 654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:38:11 655 [Warning] Aborted connection 655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:47:20 656 [Warning] Aborted connection 656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:47:27 657 [Warning] Aborted connection 657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:47:29 658 [Warning] Aborted connection 658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:47:50 659 [Warning] Aborted connection 659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:48:12 660 [Warning] Aborted connection 660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:57:20 661 [Warning] Aborted connection 661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:57:27 662 [Warning] Aborted connection 662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:57:29 663 [Warning] Aborted connection 663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:57:50 664 [Warning] Aborted connection 664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 14:58:12 665 [Warning] Aborted connection 665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:07:20 666 [Warning] Aborted connection 666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:07:27 667 [Warning] Aborted connection 667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:07:30 668 [Warning] Aborted connection 668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:07:51 669 [Warning] Aborted connection 669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:08:12 670 [Warning] Aborted connection 670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:17:20 671 [Warning] Aborted connection 671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:17:27 672 [Warning] Aborted connection 672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:17:30 673 [Warning] Aborted connection 673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:17:51 674 [Warning] Aborted connection 674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:18:12 675 [Warning] Aborted connection 675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:27:21 676 [Warning] Aborted connection 676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:27:28 677 [Warning] Aborted connection 677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:27:30 678 [Warning] Aborted connection 678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:27:51 679 [Warning] Aborted connection 679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:28:13 680 [Warning] Aborted connection 680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:37:21 681 [Warning] Aborted connection 681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:37:28 682 [Warning] Aborted connection 682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:37:30 683 [Warning] Aborted connection 683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:37:51 684 [Warning] Aborted connection 684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:38:13 685 [Warning] Aborted connection 685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:47:21 686 [Warning] Aborted connection 686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:47:28 687 [Warning] Aborted connection 687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:47:31 688 [Warning] Aborted connection 688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:47:52 689 [Warning] Aborted connection 689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:48:13 690 [Warning] Aborted connection 690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:57:21 691 [Warning] Aborted connection 691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:57:28 692 [Warning] Aborted connection 692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:57:31 693 [Warning] Aborted connection 693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:57:52 694 [Warning] Aborted connection 694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 15:58:13 695 [Warning] Aborted connection 695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:07:22 696 [Warning] Aborted connection 696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:07:29 697 [Warning] Aborted connection 697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:07:31 698 [Warning] Aborted connection 698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:07:52 699 [Warning] Aborted connection 699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:08:14 700 [Warning] Aborted connection 700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:17:22 701 [Warning] Aborted connection 701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:17:29 702 [Warning] Aborted connection 702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:17:31 703 [Warning] Aborted connection 703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:17:52 704 [Warning] Aborted connection 704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:18:14 705 [Warning] Aborted connection 705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:27:22 706 [Warning] Aborted connection 706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:27:29 707 [Warning] Aborted connection 707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:27:32 708 [Warning] Aborted connection 708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:27:53 709 [Warning] Aborted connection 709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:28:14 710 [Warning] Aborted connection 710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:37:22 711 [Warning] Aborted connection 711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:37:29 712 [Warning] Aborted connection 712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:37:32 713 [Warning] Aborted connection 713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:37:53 714 [Warning] Aborted connection 714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:38:15 715 [Warning] Aborted connection 715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:47:23 716 [Warning] Aborted connection 716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:47:30 717 [Warning] Aborted connection 717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:47:32 718 [Warning] Aborted connection 718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:47:53 719 [Warning] Aborted connection 719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:48:15 720 [Warning] Aborted connection 720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:57:23 721 [Warning] Aborted connection 721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:57:30 722 [Warning] Aborted connection 722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:57:32 723 [Warning] Aborted connection 723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:57:54 724 [Warning] Aborted connection 724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 16:58:15 725 [Warning] Aborted connection 725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:07:23 726 [Warning] Aborted connection 726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:07:30 727 [Warning] Aborted connection 727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:07:33 728 [Warning] Aborted connection 728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:07:54 729 [Warning] Aborted connection 729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:08:15 730 [Warning] Aborted connection 730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:17:24 731 [Warning] Aborted connection 731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:17:30 732 [Warning] Aborted connection 732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:17:33 733 [Warning] Aborted connection 733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:17:54 734 [Warning] Aborted connection 734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:18:16 735 [Warning] Aborted connection 735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:27:24 736 [Warning] Aborted connection 736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:27:31 737 [Warning] Aborted connection 737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:27:33 738 [Warning] Aborted connection 738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:27:54 739 [Warning] Aborted connection 739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:28:16 740 [Warning] Aborted connection 740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:37:24 741 [Warning] Aborted connection 741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:37:31 742 [Warning] Aborted connection 742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:37:33 743 [Warning] Aborted connection 743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:37:55 744 [Warning] Aborted connection 744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:38:16 745 [Warning] Aborted connection 745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:47:24 746 [Warning] Aborted connection 746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:47:31 747 [Warning] Aborted connection 747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:47:34 748 [Warning] Aborted connection 748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:47:55 749 [Warning] Aborted connection 749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:48:16 750 [Warning] Aborted connection 750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:57:25 751 [Warning] Aborted connection 751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:57:32 752 [Warning] Aborted connection 752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:57:34 753 [Warning] Aborted connection 753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:57:55 754 [Warning] Aborted connection 754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 17:58:17 755 [Warning] Aborted connection 755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:07:25 756 [Warning] Aborted connection 756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:07:32 757 [Warning] Aborted connection 757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:07:34 758 [Warning] Aborted connection 758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:07:55 759 [Warning] Aborted connection 759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:08:17 760 [Warning] Aborted connection 760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:17:25 761 [Warning] Aborted connection 761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:17:32 762 [Warning] Aborted connection 762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:17:35 763 [Warning] Aborted connection 763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:17:56 764 [Warning] Aborted connection 764 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:18:17 765 [Warning] Aborted connection 765 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:27:25 766 [Warning] Aborted connection 766 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:27:32 767 [Warning] Aborted connection 767 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:27:35 768 [Warning] Aborted connection 768 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:27:56 769 [Warning] Aborted connection 769 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:28:17 770 [Warning] Aborted connection 770 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:37:26 771 [Warning] Aborted connection 771 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:37:33 772 [Warning] Aborted connection 772 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:37:35 773 [Warning] Aborted connection 773 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:37:56 774 [Warning] Aborted connection 774 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:38:18 775 [Warning] Aborted connection 775 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:47:26 776 [Warning] Aborted connection 776 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:47:33 777 [Warning] Aborted connection 777 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:47:35 778 [Warning] Aborted connection 778 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:47:56 779 [Warning] Aborted connection 779 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:48:18 780 [Warning] Aborted connection 780 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:57:26 781 [Warning] Aborted connection 781 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:57:33 782 [Warning] Aborted connection 782 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:57:36 783 [Warning] Aborted connection 783 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:57:57 784 [Warning] Aborted connection 784 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 18:58:18 785 [Warning] Aborted connection 785 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:07:26 786 [Warning] Aborted connection 786 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:07:33 787 [Warning] Aborted connection 787 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:07:36 788 [Warning] Aborted connection 788 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:07:57 789 [Warning] Aborted connection 789 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:08:19 790 [Warning] Aborted connection 790 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:17:27 791 [Warning] Aborted connection 791 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:17:34 792 [Warning] Aborted connection 792 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:17:36 793 [Warning] Aborted connection 793 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:17:57 794 [Warning] Aborted connection 794 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:18:19 795 [Warning] Aborted connection 795 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:27:27 796 [Warning] Aborted connection 796 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:27:34 797 [Warning] Aborted connection 797 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:27:36 798 [Warning] Aborted connection 798 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:27:58 799 [Warning] Aborted connection 799 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:28:19 800 [Warning] Aborted connection 800 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:37:27 801 [Warning] Aborted connection 801 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:37:34 802 [Warning] Aborted connection 802 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:37:37 803 [Warning] Aborted connection 803 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:37:58 804 [Warning] Aborted connection 804 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:38:19 805 [Warning] Aborted connection 805 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:47:27 806 [Warning] Aborted connection 806 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:47:35 807 [Warning] Aborted connection 807 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:47:37 808 [Warning] Aborted connection 808 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:47:58 809 [Warning] Aborted connection 809 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:48:20 810 [Warning] Aborted connection 810 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:57:28 811 [Warning] Aborted connection 811 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:57:35 812 [Warning] Aborted connection 812 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:57:37 813 [Warning] Aborted connection 813 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:57:58 814 [Warning] Aborted connection 814 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 19:58:20 815 [Warning] Aborted connection 815 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:07:28 816 [Warning] Aborted connection 816 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:07:35 817 [Warning] Aborted connection 817 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:07:38 818 [Warning] Aborted connection 818 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:07:59 819 [Warning] Aborted connection 819 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:08:20 820 [Warning] Aborted connection 820 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:17:28 821 [Warning] Aborted connection 821 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:17:35 822 [Warning] Aborted connection 822 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:17:38 823 [Warning] Aborted connection 823 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:17:59 824 [Warning] Aborted connection 824 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:18:20 825 [Warning] Aborted connection 825 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:27:29 826 [Warning] Aborted connection 826 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:27:36 827 [Warning] Aborted connection 827 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:27:38 828 [Warning] Aborted connection 828 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:27:59 829 [Warning] Aborted connection 829 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:28:21 830 [Warning] Aborted connection 830 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:37:29 831 [Warning] Aborted connection 831 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:37:36 832 [Warning] Aborted connection 832 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:37:38 833 [Warning] Aborted connection 833 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:37:59 834 [Warning] Aborted connection 834 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:38:21 835 [Warning] Aborted connection 835 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:47:29 836 [Warning] Aborted connection 836 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:47:36 837 [Warning] Aborted connection 837 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:47:39 838 [Warning] Aborted connection 838 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:48:00 839 [Warning] Aborted connection 839 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:48:21 840 [Warning] Aborted connection 840 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:57:29 841 [Warning] Aborted connection 841 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:57:36 842 [Warning] Aborted connection 842 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:57:39 843 [Warning] Aborted connection 843 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:58:00 844 [Warning] Aborted connection 844 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 20:58:21 845 [Warning] Aborted connection 845 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:07:30 846 [Warning] Aborted connection 846 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:07:37 847 [Warning] Aborted connection 847 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:07:39 848 [Warning] Aborted connection 848 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:08:00 849 [Warning] Aborted connection 849 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:08:22 850 [Warning] Aborted connection 850 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:17:30 851 [Warning] Aborted connection 851 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:17:37 852 [Warning] Aborted connection 852 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:17:39 853 [Warning] Aborted connection 853 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:18:00 854 [Warning] Aborted connection 854 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:18:22 855 [Warning] Aborted connection 855 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:27:30 856 [Warning] Aborted connection 856 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:27:37 857 [Warning] Aborted connection 857 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:27:40 858 [Warning] Aborted connection 858 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:28:01 859 [Warning] Aborted connection 859 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:28:22 860 [Warning] Aborted connection 860 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:37:30 861 [Warning] Aborted connection 861 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:37:37 862 [Warning] Aborted connection 862 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:37:40 863 [Warning] Aborted connection 863 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:38:01 864 [Warning] Aborted connection 864 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:38:22 865 [Warning] Aborted connection 865 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:47:31 866 [Warning] Aborted connection 866 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:47:38 867 [Warning] Aborted connection 867 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:47:40 868 [Warning] Aborted connection 868 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:48:01 869 [Warning] Aborted connection 869 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:48:23 870 [Warning] Aborted connection 870 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:57:31 871 [Warning] Aborted connection 871 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:57:38 872 [Warning] Aborted connection 872 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:57:40 873 [Warning] Aborted connection 873 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:58:02 874 [Warning] Aborted connection 874 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 21:58:23 875 [Warning] Aborted connection 875 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:07:31 876 [Warning] Aborted connection 876 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:07:38 877 [Warning] Aborted connection 877 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:07:41 878 [Warning] Aborted connection 878 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:08:02 879 [Warning] Aborted connection 879 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:08:23 880 [Warning] Aborted connection 880 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:17:31 881 [Warning] Aborted connection 881 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:17:38 882 [Warning] Aborted connection 882 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:17:41 883 [Warning] Aborted connection 883 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:18:02 884 [Warning] Aborted connection 884 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:18:24 885 [Warning] Aborted connection 885 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:27:32 886 [Warning] Aborted connection 886 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:27:39 887 [Warning] Aborted connection 887 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:27:41 888 [Warning] Aborted connection 888 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:28:02 889 [Warning] Aborted connection 889 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:28:24 890 [Warning] Aborted connection 890 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:37:32 891 [Warning] Aborted connection 891 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:37:39 892 [Warning] Aborted connection 892 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:37:41 893 [Warning] Aborted connection 893 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:38:02 894 [Warning] Aborted connection 894 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:38:24 895 [Warning] Aborted connection 895 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:47:32 896 [Warning] Aborted connection 896 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:47:39 897 [Warning] Aborted connection 897 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:47:42 898 [Warning] Aborted connection 898 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:48:03 899 [Warning] Aborted connection 899 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:48:24 900 [Warning] Aborted connection 900 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:57:32 901 [Warning] Aborted connection 901 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:57:40 902 [Warning] Aborted connection 902 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:57:42 903 [Warning] Aborted connection 903 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:58:03 904 [Warning] Aborted connection 904 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 22:58:25 905 [Warning] Aborted connection 905 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:07:33 906 [Warning] Aborted connection 906 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:07:40 907 [Warning] Aborted connection 907 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:07:42 908 [Warning] Aborted connection 908 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:08:03 909 [Warning] Aborted connection 909 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:08:25 910 [Warning] Aborted connection 910 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:17:33 911 [Warning] Aborted connection 911 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:17:40 912 [Warning] Aborted connection 912 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:17:43 913 [Warning] Aborted connection 913 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:18:03 914 [Warning] Aborted connection 914 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:18:25 915 [Warning] Aborted connection 915 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:27:33 916 [Warning] Aborted connection 916 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:27:40 917 [Warning] Aborted connection 917 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:27:43 918 [Warning] Aborted connection 918 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:28:04 919 [Warning] Aborted connection 919 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:28:25 920 [Warning] Aborted connection 920 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:37:34 921 [Warning] Aborted connection 921 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:37:40 922 [Warning] Aborted connection 922 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:37:43 923 [Warning] Aborted connection 923 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:38:04 924 [Warning] Aborted connection 924 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:38:26 925 [Warning] Aborted connection 925 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:47:34 926 [Warning] Aborted connection 926 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:47:41 927 [Warning] Aborted connection 927 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:47:43 928 [Warning] Aborted connection 928 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:48:04 929 [Warning] Aborted connection 929 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:48:26 930 [Warning] Aborted connection 930 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:57:34 931 [Warning] Aborted connection 931 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:57:41 932 [Warning] Aborted connection 932 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:57:44 933 [Warning] Aborted connection 933 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:58:05 934 [Warning] Aborted connection 934 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-25 23:58:26 935 [Warning] Aborted connection 935 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:07:34 936 [Warning] Aborted connection 936 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:07:41 937 [Warning] Aborted connection 937 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:07:44 938 [Warning] Aborted connection 938 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:08:05 939 [Warning] Aborted connection 939 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:08:26 940 [Warning] Aborted connection 940 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:17:35 941 [Warning] Aborted connection 941 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:17:42 942 [Warning] Aborted connection 942 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:17:44 943 [Warning] Aborted connection 943 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:18:05 944 [Warning] Aborted connection 944 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:18:27 945 [Warning] Aborted connection 945 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:27:35 946 [Warning] Aborted connection 946 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:27:42 947 [Warning] Aborted connection 947 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:27:44 948 [Warning] Aborted connection 948 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:28:05 949 [Warning] Aborted connection 949 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:28:27 950 [Warning] Aborted connection 950 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:37:35 951 [Warning] Aborted connection 951 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:37:42 952 [Warning] Aborted connection 952 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:37:45 953 [Warning] Aborted connection 953 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:38:06 954 [Warning] Aborted connection 954 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:38:27 955 [Warning] Aborted connection 955 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:47:35 956 [Warning] Aborted connection 956 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:47:42 957 [Warning] Aborted connection 957 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:47:45 958 [Warning] Aborted connection 958 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:48:06 959 [Warning] Aborted connection 959 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:48:27 960 [Warning] Aborted connection 960 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:57:36 961 [Warning] Aborted connection 961 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:57:43 962 [Warning] Aborted connection 962 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:57:45 963 [Warning] Aborted connection 963 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:58:06 964 [Warning] Aborted connection 964 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 0:58:28 965 [Warning] Aborted connection 965 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:07:36 966 [Warning] Aborted connection 966 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:07:43 967 [Warning] Aborted connection 967 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:07:45 968 [Warning] Aborted connection 968 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:08:06 969 [Warning] Aborted connection 969 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:08:28 970 [Warning] Aborted connection 970 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:17:36 971 [Warning] Aborted connection 971 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:17:43 972 [Warning] Aborted connection 972 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:17:46 973 [Warning] Aborted connection 973 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:18:07 974 [Warning] Aborted connection 974 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:18:28 975 [Warning] Aborted connection 975 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:27:36 976 [Warning] Aborted connection 976 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:27:43 977 [Warning] Aborted connection 977 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:27:46 978 [Warning] Aborted connection 978 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:28:07 979 [Warning] Aborted connection 979 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:28:28 980 [Warning] Aborted connection 980 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:37:37 981 [Warning] Aborted connection 981 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:37:44 982 [Warning] Aborted connection 982 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:37:46 983 [Warning] Aborted connection 983 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:38:07 984 [Warning] Aborted connection 984 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:38:29 985 [Warning] Aborted connection 985 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:47:37 986 [Warning] Aborted connection 986 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:47:44 987 [Warning] Aborted connection 987 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:47:46 988 [Warning] Aborted connection 988 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:48:07 989 [Warning] Aborted connection 989 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:48:29 990 [Warning] Aborted connection 990 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:57:37 991 [Warning] Aborted connection 991 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:57:44 992 [Warning] Aborted connection 992 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:57:47 993 [Warning] Aborted connection 993 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:58:08 994 [Warning] Aborted connection 994 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 1:58:29 995 [Warning] Aborted connection 995 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:07:37 996 [Warning] Aborted connection 996 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:07:44 997 [Warning] Aborted connection 997 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:07:47 998 [Warning] Aborted connection 998 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:08:08 999 [Warning] Aborted connection 999 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:08:30 1000 [Warning] Aborted connection 1000 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:17:38 1001 [Warning] Aborted connection 1001 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:17:45 1002 [Warning] Aborted connection 1002 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:17:47 1003 [Warning] Aborted connection 1003 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:18:08 1004 [Warning] Aborted connection 1004 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:18:30 1005 [Warning] Aborted connection 1005 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:27:38 1006 [Warning] Aborted connection 1006 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:27:45 1007 [Warning] Aborted connection 1007 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:27:47 1008 [Warning] Aborted connection 1008 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:28:09 1009 [Warning] Aborted connection 1009 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:28:30 1010 [Warning] Aborted connection 1010 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:37:38 1011 [Warning] Aborted connection 1011 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:37:45 1012 [Warning] Aborted connection 1012 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:37:48 1013 [Warning] Aborted connection 1013 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:38:09 1014 [Warning] Aborted connection 1014 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:38:30 1015 [Warning] Aborted connection 1015 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:47:38 1016 [Warning] Aborted connection 1016 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:47:46 1017 [Warning] Aborted connection 1017 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:47:48 1018 [Warning] Aborted connection 1018 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:48:09 1019 [Warning] Aborted connection 1019 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:48:31 1020 [Warning] Aborted connection 1020 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:57:39 1021 [Warning] Aborted connection 1021 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:57:46 1022 [Warning] Aborted connection 1022 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:57:48 1023 [Warning] Aborted connection 1023 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:58:09 1024 [Warning] Aborted connection 1024 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 2:58:31 1025 [Warning] Aborted connection 1025 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:07:39 1026 [Warning] Aborted connection 1026 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:07:46 1027 [Warning] Aborted connection 1027 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:07:49 1028 [Warning] Aborted connection 1028 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:08:10 1029 [Warning] Aborted connection 1029 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:08:31 1030 [Warning] Aborted connection 1030 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:17:39 1031 [Warning] Aborted connection 1031 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:17:46 1032 [Warning] Aborted connection 1032 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:17:49 1033 [Warning] Aborted connection 1033 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:18:10 1034 [Warning] Aborted connection 1034 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:18:31 1035 [Warning] Aborted connection 1035 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:27:39 1036 [Warning] Aborted connection 1036 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:27:47 1037 [Warning] Aborted connection 1037 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:27:49 1038 [Warning] Aborted connection 1038 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:28:10 1039 [Warning] Aborted connection 1039 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:28:32 1040 [Warning] Aborted connection 1040 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:37:40 1041 [Warning] Aborted connection 1041 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:37:47 1042 [Warning] Aborted connection 1042 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:37:49 1043 [Warning] Aborted connection 1043 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:38:10 1044 [Warning] Aborted connection 1044 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:38:32 1045 [Warning] Aborted connection 1045 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:47:40 1046 [Warning] Aborted connection 1046 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:47:47 1047 [Warning] Aborted connection 1047 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:47:50 1048 [Warning] Aborted connection 1048 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:48:11 1049 [Warning] Aborted connection 1049 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:48:32 1050 [Warning] Aborted connection 1050 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:57:40 1051 [Warning] Aborted connection 1051 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:57:47 1052 [Warning] Aborted connection 1052 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:57:50 1053 [Warning] Aborted connection 1053 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:58:11 1054 [Warning] Aborted connection 1054 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 3:58:32 1055 [Warning] Aborted connection 1055 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:07:41 1056 [Warning] Aborted connection 1056 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:07:48 1057 [Warning] Aborted connection 1057 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:07:50 1058 [Warning] Aborted connection 1058 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:08:11 1059 [Warning] Aborted connection 1059 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:08:33 1060 [Warning] Aborted connection 1060 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:17:41 1061 [Warning] Aborted connection 1061 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:17:48 1062 [Warning] Aborted connection 1062 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:17:50 1063 [Warning] Aborted connection 1063 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:18:11 1064 [Warning] Aborted connection 1064 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:18:33 1065 [Warning] Aborted connection 1065 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:27:41 1066 [Warning] Aborted connection 1066 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:27:48 1067 [Warning] Aborted connection 1067 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:27:51 1068 [Warning] Aborted connection 1068 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:28:12 1069 [Warning] Aborted connection 1069 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:28:33 1070 [Warning] Aborted connection 1070 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:37:41 1071 [Warning] Aborted connection 1071 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:37:48 1072 [Warning] Aborted connection 1072 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:37:51 1073 [Warning] Aborted connection 1073 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:38:12 1074 [Warning] Aborted connection 1074 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:38:33 1075 [Warning] Aborted connection 1075 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:47:42 1076 [Warning] Aborted connection 1076 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:47:49 1077 [Warning] Aborted connection 1077 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:47:51 1078 [Warning] Aborted connection 1078 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:48:12 1079 [Warning] Aborted connection 1079 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:48:34 1080 [Warning] Aborted connection 1080 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:57:42 1081 [Warning] Aborted connection 1081 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:57:49 1082 [Warning] Aborted connection 1082 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:57:51 1083 [Warning] Aborted connection 1083 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:58:12 1084 [Warning] Aborted connection 1084 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 4:58:34 1085 [Warning] Aborted connection 1085 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:07:42 1086 [Warning] Aborted connection 1086 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:07:49 1087 [Warning] Aborted connection 1087 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:07:52 1088 [Warning] Aborted connection 1088 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:08:13 1089 [Warning] Aborted connection 1089 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:08:34 1090 [Warning] Aborted connection 1090 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:17:42 1091 [Warning] Aborted connection 1091 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:17:49 1092 [Warning] Aborted connection 1092 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:17:52 1093 [Warning] Aborted connection 1093 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:18:13 1094 [Warning] Aborted connection 1094 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:18:35 1095 [Warning] Aborted connection 1095 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:27:43 1096 [Warning] Aborted connection 1096 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:27:50 1097 [Warning] Aborted connection 1097 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:27:52 1098 [Warning] Aborted connection 1098 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:28:13 1099 [Warning] Aborted connection 1099 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:28:35 1100 [Warning] Aborted connection 1100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:37:43 1101 [Warning] Aborted connection 1101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:37:50 1102 [Warning] Aborted connection 1102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:37:53 1103 [Warning] Aborted connection 1103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:38:14 1104 [Warning] Aborted connection 1104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:38:35 1105 [Warning] Aborted connection 1105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:47:43 1106 [Warning] Aborted connection 1106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:47:50 1107 [Warning] Aborted connection 1107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:47:53 1108 [Warning] Aborted connection 1108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:48:14 1109 [Warning] Aborted connection 1109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:48:35 1110 [Warning] Aborted connection 1110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:57:44 1111 [Warning] Aborted connection 1111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:57:50 1112 [Warning] Aborted connection 1112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:57:53 1113 [Warning] Aborted connection 1113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:58:14 1114 [Warning] Aborted connection 1114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 5:58:35 1115 [Warning] Aborted connection 1115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:07:44 1116 [Warning] Aborted connection 1116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:07:51 1117 [Warning] Aborted connection 1117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:07:53 1118 [Warning] Aborted connection 1118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:08:14 1119 [Warning] Aborted connection 1119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:08:36 1120 [Warning] Aborted connection 1120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:17:44 1121 [Warning] Aborted connection 1121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:17:51 1122 [Warning] Aborted connection 1122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:17:53 1123 [Warning] Aborted connection 1123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:18:15 1124 [Warning] Aborted connection 1124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:18:36 1125 [Warning] Aborted connection 1125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:27:44 1126 [Warning] Aborted connection 1126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:27:51 1127 [Warning] Aborted connection 1127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:27:54 1128 [Warning] Aborted connection 1128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:28:15 1129 [Warning] Aborted connection 1129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:28:36 1130 [Warning] Aborted connection 1130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:37:45 1131 [Warning] Aborted connection 1131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:37:52 1132 [Warning] Aborted connection 1132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:37:54 1133 [Warning] Aborted connection 1133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:38:15 1134 [Warning] Aborted connection 1134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:38:37 1135 [Warning] Aborted connection 1135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:47:45 1136 [Warning] Aborted connection 1136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:47:52 1137 [Warning] Aborted connection 1137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:47:54 1138 [Warning] Aborted connection 1138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:48:15 1139 [Warning] Aborted connection 1139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:48:37 1140 [Warning] Aborted connection 1140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:57:45 1141 [Warning] Aborted connection 1141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:57:52 1142 [Warning] Aborted connection 1142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:57:55 1143 [Warning] Aborted connection 1143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:58:16 1144 [Warning] Aborted connection 1144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 6:58:37 1145 [Warning] Aborted connection 1145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:07:45 1146 [Warning] Aborted connection 1146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:07:52 1147 [Warning] Aborted connection 1147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:07:55 1148 [Warning] Aborted connection 1148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:08:16 1149 [Warning] Aborted connection 1149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:08:37 1150 [Warning] Aborted connection 1150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:17:46 1151 [Warning] Aborted connection 1151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:17:53 1152 [Warning] Aborted connection 1152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:17:55 1153 [Warning] Aborted connection 1153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:18:16 1154 [Warning] Aborted connection 1154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:18:38 1155 [Warning] Aborted connection 1155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:27:46 1156 [Warning] Aborted connection 1156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:27:53 1157 [Warning] Aborted connection 1157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:27:55 1158 [Warning] Aborted connection 1158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:28:16 1159 [Warning] Aborted connection 1159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:28:38 1160 [Warning] Aborted connection 1160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:37:46 1161 [Warning] Aborted connection 1161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:37:53 1162 [Warning] Aborted connection 1162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:37:56 1163 [Warning] Aborted connection 1163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:38:17 1164 [Warning] Aborted connection 1164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:38:38 1165 [Warning] Aborted connection 1165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:47:46 1166 [Warning] Aborted connection 1166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:47:53 1167 [Warning] Aborted connection 1167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:47:56 1168 [Warning] Aborted connection 1168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:48:17 1169 [Warning] Aborted connection 1169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:48:38 1170 [Warning] Aborted connection 1170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:57:47 1171 [Warning] Aborted connection 1171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:57:54 1172 [Warning] Aborted connection 1172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:57:56 1173 [Warning] Aborted connection 1173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:58:17 1174 [Warning] Aborted connection 1174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 7:58:39 1175 [Warning] Aborted connection 1175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:07:47 1176 [Warning] Aborted connection 1176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:07:54 1177 [Warning] Aborted connection 1177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:07:56 1178 [Warning] Aborted connection 1178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:08:17 1179 [Warning] Aborted connection 1179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:08:39 1180 [Warning] Aborted connection 1180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:17:47 1181 [Warning] Aborted connection 1181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:17:54 1182 [Warning] Aborted connection 1182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:17:57 1183 [Warning] Aborted connection 1183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:18:18 1184 [Warning] Aborted connection 1184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:18:39 1185 [Warning] Aborted connection 1185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:27:47 1186 [Warning] Aborted connection 1186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:27:54 1187 [Warning] Aborted connection 1187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:27:57 1188 [Warning] Aborted connection 1188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:28:18 1189 [Warning] Aborted connection 1189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:28:40 1190 [Warning] Aborted connection 1190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:37:48 1191 [Warning] Aborted connection 1191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:37:55 1192 [Warning] Aborted connection 1192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:37:57 1193 [Warning] Aborted connection 1193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:38:18 1194 [Warning] Aborted connection 1194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:38:40 1195 [Warning] Aborted connection 1195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:47:48 1196 [Warning] Aborted connection 1196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:47:55 1197 [Warning] Aborted connection 1197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:47:57 1198 [Warning] Aborted connection 1198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:48:19 1199 [Warning] Aborted connection 1199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:48:40 1200 [Warning] Aborted connection 1200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:57:48 1201 [Warning] Aborted connection 1201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:57:55 1202 [Warning] Aborted connection 1202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:57:58 1203 [Warning] Aborted connection 1203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:58:19 1204 [Warning] Aborted connection 1204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 8:58:40 1205 [Warning] Aborted connection 1205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:07:48 1206 [Warning] Aborted connection 1206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:07:56 1207 [Warning] Aborted connection 1207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:07:58 1208 [Warning] Aborted connection 1208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:08:19 1209 [Warning] Aborted connection 1209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:08:40 1210 [Warning] Aborted connection 1210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:17:49 1211 [Warning] Aborted connection 1211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:17:56 1212 [Warning] Aborted connection 1212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:17:58 1213 [Warning] Aborted connection 1213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:18:19 1214 [Warning] Aborted connection 1214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:18:41 1215 [Warning] Aborted connection 1215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:27:49 1216 [Warning] Aborted connection 1216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:27:56 1217 [Warning] Aborted connection 1217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:27:58 1218 [Warning] Aborted connection 1218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:28:20 1219 [Warning] Aborted connection 1219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:28:41 1220 [Warning] Aborted connection 1220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:37:49 1221 [Warning] Aborted connection 1221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:37:56 1222 [Warning] Aborted connection 1222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:37:59 1223 [Warning] Aborted connection 1223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:38:20 1224 [Warning] Aborted connection 1224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:38:41 1225 [Warning] Aborted connection 1225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:47:50 1226 [Warning] Aborted connection 1226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:47:57 1227 [Warning] Aborted connection 1227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:47:59 1228 [Warning] Aborted connection 1228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:48:20 1229 [Warning] Aborted connection 1229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:48:42 1230 [Warning] Aborted connection 1230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:57:50 1231 [Warning] Aborted connection 1231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:57:57 1232 [Warning] Aborted connection 1232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:57:59 1233 [Warning] Aborted connection 1233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:58:20 1234 [Warning] Aborted connection 1234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 9:58:42 1235 [Warning] Aborted connection 1235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:07:50 1236 [Warning] Aborted connection 1236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:07:57 1237 [Warning] Aborted connection 1237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:08:00 1238 [Warning] Aborted connection 1238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:08:21 1239 [Warning] Aborted connection 1239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:08:42 1240 [Warning] Aborted connection 1240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:17:50 1241 [Warning] Aborted connection 1241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:17:57 1242 [Warning] Aborted connection 1242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:18:00 1243 [Warning] Aborted connection 1243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:18:21 1244 [Warning] Aborted connection 1244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:18:42 1245 [Warning] Aborted connection 1245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:27:51 1246 [Warning] Aborted connection 1246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:27:58 1247 [Warning] Aborted connection 1247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:28:00 1248 [Warning] Aborted connection 1248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:28:21 1249 [Warning] Aborted connection 1249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:28:43 1250 [Warning] Aborted connection 1250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:37:51 1251 [Warning] Aborted connection 1251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:37:58 1252 [Warning] Aborted connection 1252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:38:00 1253 [Warning] Aborted connection 1253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:38:21 1254 [Warning] Aborted connection 1254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:38:43 1255 [Warning] Aborted connection 1255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:47:51 1256 [Warning] Aborted connection 1256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:47:58 1257 [Warning] Aborted connection 1257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:48:01 1258 [Warning] Aborted connection 1258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:48:22 1259 [Warning] Aborted connection 1259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:48:43 1260 [Warning] Aborted connection 1260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:57:52 1261 [Warning] Aborted connection 1261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:57:59 1262 [Warning] Aborted connection 1262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:58:01 1263 [Warning] Aborted connection 1263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:58:22 1264 [Warning] Aborted connection 1264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 10:58:44 1265 [Warning] Aborted connection 1265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:07:52 1266 [Warning] Aborted connection 1266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:07:59 1267 [Warning] Aborted connection 1267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:08:01 1268 [Warning] Aborted connection 1268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:08:22 1269 [Warning] Aborted connection 1269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:08:44 1270 [Warning] Aborted connection 1270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:17:52 1271 [Warning] Aborted connection 1271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:17:59 1272 [Warning] Aborted connection 1272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:18:02 1273 [Warning] Aborted connection 1273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:18:23 1274 [Warning] Aborted connection 1274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:18:44 1275 [Warning] Aborted connection 1275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:27:52 1276 [Warning] Aborted connection 1276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:27:59 1277 [Warning] Aborted connection 1277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:28:02 1278 [Warning] Aborted connection 1278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:28:23 1279 [Warning] Aborted connection 1279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:28:44 1280 [Warning] Aborted connection 1280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:37:53 1281 [Warning] Aborted connection 1281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:38:00 1282 [Warning] Aborted connection 1282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:38:02 1283 [Warning] Aborted connection 1283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:38:23 1284 [Warning] Aborted connection 1284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:38:45 1285 [Warning] Aborted connection 1285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:47:53 1286 [Warning] Aborted connection 1286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:48:00 1287 [Warning] Aborted connection 1287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:48:02 1288 [Warning] Aborted connection 1288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:48:23 1289 [Warning] Aborted connection 1289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:48:45 1290 [Warning] Aborted connection 1290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:57:53 1291 [Warning] Aborted connection 1291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:58:00 1292 [Warning] Aborted connection 1292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:58:03 1293 [Warning] Aborted connection 1293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:58:24 1294 [Warning] Aborted connection 1294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 11:58:45 1295 [Warning] Aborted connection 1295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:07:53 1296 [Warning] Aborted connection 1296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:08:01 1297 [Warning] Aborted connection 1297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:08:03 1298 [Warning] Aborted connection 1298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:08:24 1299 [Warning] Aborted connection 1299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:08:46 1300 [Warning] Aborted connection 1300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:17:54 1301 [Warning] Aborted connection 1301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:18:01 1302 [Warning] Aborted connection 1302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:18:04 1303 [Warning] Aborted connection 1303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:18:24 1304 [Warning] Aborted connection 1304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:18:46 1305 [Warning] Aborted connection 1305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:27:54 1306 [Warning] Aborted connection 1306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:28:01 1307 [Warning] Aborted connection 1307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:28:04 1308 [Warning] Aborted connection 1308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:28:24 1309 [Warning] Aborted connection 1309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:28:46 1310 [Warning] Aborted connection 1310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:37:54 1311 [Warning] Aborted connection 1311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:38:01 1312 [Warning] Aborted connection 1312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:38:04 1313 [Warning] Aborted connection 1313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:38:25 1314 [Warning] Aborted connection 1314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:38:47 1315 [Warning] Aborted connection 1315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:47:55 1316 [Warning] Aborted connection 1316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:48:02 1317 [Warning] Aborted connection 1317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:48:05 1318 [Warning] Aborted connection 1318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:48:25 1319 [Warning] Aborted connection 1319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:48:47 1320 [Warning] Aborted connection 1320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:57:55 1321 [Warning] Aborted connection 1321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:58:02 1322 [Warning] Aborted connection 1322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:58:05 1323 [Warning] Aborted connection 1323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:58:26 1324 [Warning] Aborted connection 1324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 12:58:48 1325 [Warning] Aborted connection 1325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:07:55 1326 [Warning] Aborted connection 1326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:08:02 1327 [Warning] Aborted connection 1327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:08:05 1328 [Warning] Aborted connection 1328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:08:26 1329 [Warning] Aborted connection 1329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:08:48 1330 [Warning] Aborted connection 1330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:17:56 1331 [Warning] Aborted connection 1331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:18:03 1332 [Warning] Aborted connection 1332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:18:06 1333 [Warning] Aborted connection 1333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:18:26 1334 [Warning] Aborted connection 1334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:18:48 1335 [Warning] Aborted connection 1335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:27:56 1336 [Warning] Aborted connection 1336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:28:03 1337 [Warning] Aborted connection 1337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:28:06 1338 [Warning] Aborted connection 1338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:28:27 1339 [Warning] Aborted connection 1339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:28:49 1340 [Warning] Aborted connection 1340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:37:56 1341 [Warning] Aborted connection 1341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:38:03 1342 [Warning] Aborted connection 1342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:38:07 1343 [Warning] Aborted connection 1343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:38:27 1344 [Warning] Aborted connection 1344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:38:49 1345 [Warning] Aborted connection 1345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:47:57 1346 [Warning] Aborted connection 1346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:48:04 1347 [Warning] Aborted connection 1347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:48:07 1348 [Warning] Aborted connection 1348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:48:27 1349 [Warning] Aborted connection 1349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:48:49 1350 [Warning] Aborted connection 1350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:57:57 1351 [Warning] Aborted connection 1351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:58:04 1352 [Warning] Aborted connection 1352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:58:07 1353 [Warning] Aborted connection 1353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:58:28 1354 [Warning] Aborted connection 1354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 13:58:50 1355 [Warning] Aborted connection 1355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:07:57 1356 [Warning] Aborted connection 1356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:08:04 1357 [Warning] Aborted connection 1357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:08:07 1358 [Warning] Aborted connection 1358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:08:28 1359 [Warning] Aborted connection 1359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:08:50 1360 [Warning] Aborted connection 1360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:17:58 1361 [Warning] Aborted connection 1361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:18:05 1362 [Warning] Aborted connection 1362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:18:08 1363 [Warning] Aborted connection 1363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:18:28 1364 [Warning] Aborted connection 1364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:18:50 1365 [Warning] Aborted connection 1365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:27:58 1366 [Warning] Aborted connection 1366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:28:05 1367 [Warning] Aborted connection 1367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:28:08 1368 [Warning] Aborted connection 1368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:28:28 1369 [Warning] Aborted connection 1369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:28:50 1370 [Warning] Aborted connection 1370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:37:58 1371 [Warning] Aborted connection 1371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:38:05 1372 [Warning] Aborted connection 1372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:38:08 1373 [Warning] Aborted connection 1373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:38:29 1374 [Warning] Aborted connection 1374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:38:51 1375 [Warning] Aborted connection 1375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:55:37 1377 [Warning] Aborted connection 1377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:58:12 1378 [Warning] Aborted connection 1378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:59:40 1379 [Warning] Aborted connection 1379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:59:42 1380 [Warning] Aborted connection 1380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 14:59:46 1376 [Warning] Aborted connection 1376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:05:37 1381 [Warning] Aborted connection 1381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:08:13 1382 [Warning] Aborted connection 1382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:09:40 1383 [Warning] Aborted connection 1383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:09:43 1384 [Warning] Aborted connection 1384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:09:46 1385 [Warning] Aborted connection 1385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:15:38 1386 [Warning] Aborted connection 1386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:18:13 1387 [Warning] Aborted connection 1387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:19:40 1388 [Warning] Aborted connection 1388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:19:43 1389 [Warning] Aborted connection 1389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:19:46 1390 [Warning] Aborted connection 1390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:25:38 1391 [Warning] Aborted connection 1391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:28:13 1392 [Warning] Aborted connection 1392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:29:41 1393 [Warning] Aborted connection 1393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:29:43 1394 [Warning] Aborted connection 1394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:29:47 1395 [Warning] Aborted connection 1395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:35:38 1396 [Warning] Aborted connection 1396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:38:13 1397 [Warning] Aborted connection 1397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:39:41 1398 [Warning] Aborted connection 1398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:39:43 1399 [Warning] Aborted connection 1399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:39:47 1400 [Warning] Aborted connection 1400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:45:38 1401 [Warning] Aborted connection 1401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:48:14 1402 [Warning] Aborted connection 1402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:49:41 1403 [Warning] Aborted connection 1403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:49:44 1404 [Warning] Aborted connection 1404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:49:47 1405 [Warning] Aborted connection 1405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:55:39 1406 [Warning] Aborted connection 1406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:58:14 1407 [Warning] Aborted connection 1407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:59:41 1408 [Warning] Aborted connection 1408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:59:44 1409 [Warning] Aborted connection 1409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 15:59:47 1410 [Warning] Aborted connection 1410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:05:39 1411 [Warning] Aborted connection 1411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:08:14 1412 [Warning] Aborted connection 1412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:09:42 1413 [Warning] Aborted connection 1413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:09:44 1414 [Warning] Aborted connection 1414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:09:48 1415 [Warning] Aborted connection 1415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:15:39 1416 [Warning] Aborted connection 1416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:18:14 1417 [Warning] Aborted connection 1417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:19:42 1418 [Warning] Aborted connection 1418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:19:45 1419 [Warning] Aborted connection 1419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:19:48 1420 [Warning] Aborted connection 1420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:25:39 1421 [Warning] Aborted connection 1421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:28:15 1422 [Warning] Aborted connection 1422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:29:42 1423 [Warning] Aborted connection 1423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:29:45 1424 [Warning] Aborted connection 1424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:29:48 1425 [Warning] Aborted connection 1425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:35:40 1426 [Warning] Aborted connection 1426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:38:15 1427 [Warning] Aborted connection 1427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:39:43 1428 [Warning] Aborted connection 1428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:39:45 1429 [Warning] Aborted connection 1429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:39:49 1430 [Warning] Aborted connection 1430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:45:40 1431 [Warning] Aborted connection 1431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:49:43 1433 [Warning] Aborted connection 1433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:49:45 1434 [Warning] Aborted connection 1434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:49:49 1435 [Warning] Aborted connection 1435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:55:40 1436 [Warning] Aborted connection 1436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:57:13 1432 [Warning] Aborted connection 1432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:59:43 1437 [Warning] Aborted connection 1437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:59:46 1438 [Warning] Aborted connection 1438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 16:59:49 1439 [Warning] Aborted connection 1439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:05:41 1440 [Warning] Aborted connection 1440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:07:13 1441 [Warning] Aborted connection 1441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:09:43 1442 [Warning] Aborted connection 1442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:09:46 1443 [Warning] Aborted connection 1443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:09:49 1444 [Warning] Aborted connection 1444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:15:41 1445 [Warning] Aborted connection 1445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:17:13 1446 [Warning] Aborted connection 1446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:19:44 1447 [Warning] Aborted connection 1447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:19:46 1448 [Warning] Aborted connection 1448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:19:50 1449 [Warning] Aborted connection 1449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:25:41 1450 [Warning] Aborted connection 1450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:27:14 1451 [Warning] Aborted connection 1451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:29:44 1452 [Warning] Aborted connection 1452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:29:46 1453 [Warning] Aborted connection 1453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:29:50 1454 [Warning] Aborted connection 1454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:35:41 1455 [Warning] Aborted connection 1455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:37:14 1456 [Warning] Aborted connection 1456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:39:44 1457 [Warning] Aborted connection 1457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:39:47 1458 [Warning] Aborted connection 1458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:39:50 1459 [Warning] Aborted connection 1459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:45:42 1460 [Warning] Aborted connection 1460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:47:14 1461 [Warning] Aborted connection 1461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:49:44 1462 [Warning] Aborted connection 1462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:49:47 1463 [Warning] Aborted connection 1463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:49:51 1464 [Warning] Aborted connection 1464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:55:42 1465 [Warning] Aborted connection 1465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:57:15 1466 [Warning] Aborted connection 1466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:59:45 1467 [Warning] Aborted connection 1467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:59:47 1468 [Warning] Aborted connection 1468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 17:59:51 1469 [Warning] Aborted connection 1469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:05:42 1470 [Warning] Aborted connection 1470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:07:15 1471 [Warning] Aborted connection 1471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:09:45 1472 [Warning] Aborted connection 1472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:09:48 1473 [Warning] Aborted connection 1473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:09:51 1474 [Warning] Aborted connection 1474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:15:43 1475 [Warning] Aborted connection 1475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:17:15 1476 [Warning] Aborted connection 1476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:19:45 1477 [Warning] Aborted connection 1477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:19:48 1478 [Warning] Aborted connection 1478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:19:51 1479 [Warning] Aborted connection 1479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:25:43 1480 [Warning] Aborted connection 1480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:27:15 1481 [Warning] Aborted connection 1481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:29:46 1482 [Warning] Aborted connection 1482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:29:48 1483 [Warning] Aborted connection 1483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:29:52 1484 [Warning] Aborted connection 1484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:35:43 1485 [Warning] Aborted connection 1485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:37:16 1486 [Warning] Aborted connection 1486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:39:46 1487 [Warning] Aborted connection 1487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:39:48 1488 [Warning] Aborted connection 1488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:39:52 1489 [Warning] Aborted connection 1489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:45:43 1490 [Warning] Aborted connection 1490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:47:16 1491 [Warning] Aborted connection 1491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:49:46 1492 [Warning] Aborted connection 1492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:49:49 1493 [Warning] Aborted connection 1493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:49:52 1494 [Warning] Aborted connection 1494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:55:44 1495 [Warning] Aborted connection 1495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:57:16 1496 [Warning] Aborted connection 1496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:59:46 1497 [Warning] Aborted connection 1497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:59:49 1498 [Warning] Aborted connection 1498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 18:59:52 1499 [Warning] Aborted connection 1499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:05:44 1500 [Warning] Aborted connection 1500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:07:16 1501 [Warning] Aborted connection 1501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:09:47 1502 [Warning] Aborted connection 1502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:09:49 1503 [Warning] Aborted connection 1503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:09:53 1504 [Warning] Aborted connection 1504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:15:44 1505 [Warning] Aborted connection 1505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:17:17 1506 [Warning] Aborted connection 1506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:19:47 1507 [Warning] Aborted connection 1507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:19:49 1508 [Warning] Aborted connection 1508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:19:53 1509 [Warning] Aborted connection 1509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:25:44 1510 [Warning] Aborted connection 1510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:27:17 1511 [Warning] Aborted connection 1511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:29:47 1512 [Warning] Aborted connection 1512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:29:50 1513 [Warning] Aborted connection 1513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:29:53 1514 [Warning] Aborted connection 1514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:35:45 1515 [Warning] Aborted connection 1515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:37:17 1516 [Warning] Aborted connection 1516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:39:47 1517 [Warning] Aborted connection 1517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:39:50 1518 [Warning] Aborted connection 1518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:39:53 1519 [Warning] Aborted connection 1519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:45:45 1520 [Warning] Aborted connection 1520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:47:17 1521 [Warning] Aborted connection 1521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:49:48 1522 [Warning] Aborted connection 1522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:49:50 1523 [Warning] Aborted connection 1523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:49:54 1524 [Warning] Aborted connection 1524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:55:45 1525 [Warning] Aborted connection 1525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:57:18 1526 [Warning] Aborted connection 1526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:59:48 1527 [Warning] Aborted connection 1527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:59:51 1528 [Warning] Aborted connection 1528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 19:59:54 1529 [Warning] Aborted connection 1529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:05:45 1530 [Warning] Aborted connection 1530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:07:18 1531 [Warning] Aborted connection 1531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:09:48 1532 [Warning] Aborted connection 1532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:09:51 1533 [Warning] Aborted connection 1533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:09:54 1534 [Warning] Aborted connection 1534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:15:46 1535 [Warning] Aborted connection 1535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:17:18 1536 [Warning] Aborted connection 1536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:19:49 1537 [Warning] Aborted connection 1537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:19:51 1538 [Warning] Aborted connection 1538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:19:55 1539 [Warning] Aborted connection 1539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:25:46 1540 [Warning] Aborted connection 1540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:27:19 1541 [Warning] Aborted connection 1541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:29:49 1542 [Warning] Aborted connection 1542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:29:51 1543 [Warning] Aborted connection 1543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:29:55 1544 [Warning] Aborted connection 1544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:35:46 1545 [Warning] Aborted connection 1545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:37:19 1546 [Warning] Aborted connection 1546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:39:49 1547 [Warning] Aborted connection 1547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:39:52 1548 [Warning] Aborted connection 1548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:39:55 1549 [Warning] Aborted connection 1549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:45:47 1550 [Warning] Aborted connection 1550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:47:19 1551 [Warning] Aborted connection 1551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:49:49 1552 [Warning] Aborted connection 1552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:49:52 1553 [Warning] Aborted connection 1553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:49:55 1554 [Warning] Aborted connection 1554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:55:47 1555 [Warning] Aborted connection 1555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:57:19 1556 [Warning] Aborted connection 1556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:59:50 1557 [Warning] Aborted connection 1557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:59:52 1558 [Warning] Aborted connection 1558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 20:59:56 1559 [Warning] Aborted connection 1559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:05:47 1560 [Warning] Aborted connection 1560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:07:20 1561 [Warning] Aborted connection 1561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:09:50 1562 [Warning] Aborted connection 1562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:09:52 1563 [Warning] Aborted connection 1563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:09:56 1564 [Warning] Aborted connection 1564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:15:47 1565 [Warning] Aborted connection 1565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:17:20 1566 [Warning] Aborted connection 1566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:19:50 1567 [Warning] Aborted connection 1567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:19:53 1568 [Warning] Aborted connection 1568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:19:56 1569 [Warning] Aborted connection 1569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:25:48 1570 [Warning] Aborted connection 1570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:27:20 1571 [Warning] Aborted connection 1571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:29:50 1572 [Warning] Aborted connection 1572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:29:53 1573 [Warning] Aborted connection 1573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:29:56 1574 [Warning] Aborted connection 1574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:35:48 1575 [Warning] Aborted connection 1575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:37:21 1576 [Warning] Aborted connection 1576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:39:51 1577 [Warning] Aborted connection 1577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:39:53 1578 [Warning] Aborted connection 1578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:39:57 1579 [Warning] Aborted connection 1579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:45:48 1580 [Warning] Aborted connection 1580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:47:21 1581 [Warning] Aborted connection 1581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:49:51 1582 [Warning] Aborted connection 1582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:49:53 1583 [Warning] Aborted connection 1583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:49:57 1584 [Warning] Aborted connection 1584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:55:48 1585 [Warning] Aborted connection 1585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:57:21 1586 [Warning] Aborted connection 1586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:59:51 1587 [Warning] Aborted connection 1587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:59:54 1588 [Warning] Aborted connection 1588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 21:59:57 1589 [Warning] Aborted connection 1589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:05:49 1590 [Warning] Aborted connection 1590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:07:21 1591 [Warning] Aborted connection 1591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:09:51 1592 [Warning] Aborted connection 1592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:09:54 1593 [Warning] Aborted connection 1593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:09:58 1594 [Warning] Aborted connection 1594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:15:49 1595 [Warning] Aborted connection 1595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:17:22 1596 [Warning] Aborted connection 1596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:19:52 1597 [Warning] Aborted connection 1597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:19:54 1598 [Warning] Aborted connection 1598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:19:58 1599 [Warning] Aborted connection 1599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:25:49 1600 [Warning] Aborted connection 1600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:27:22 1601 [Warning] Aborted connection 1601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:29:52 1602 [Warning] Aborted connection 1602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:29:55 1603 [Warning] Aborted connection 1603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:29:58 1604 [Warning] Aborted connection 1604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:35:49 1605 [Warning] Aborted connection 1605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:37:22 1606 [Warning] Aborted connection 1606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:39:52 1607 [Warning] Aborted connection 1607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:39:55 1608 [Warning] Aborted connection 1608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:39:58 1609 [Warning] Aborted connection 1609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:45:50 1610 [Warning] Aborted connection 1610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:47:22 1611 [Warning] Aborted connection 1611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:49:53 1612 [Warning] Aborted connection 1612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:49:55 1613 [Warning] Aborted connection 1613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:49:59 1614 [Warning] Aborted connection 1614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:55:50 1615 [Warning] Aborted connection 1615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:57:23 1616 [Warning] Aborted connection 1616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:59:53 1617 [Warning] Aborted connection 1617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:59:55 1618 [Warning] Aborted connection 1618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 22:59:59 1619 [Warning] Aborted connection 1619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:05:50 1620 [Warning] Aborted connection 1620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:07:23 1621 [Warning] Aborted connection 1621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:09:53 1622 [Warning] Aborted connection 1622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:09:56 1623 [Warning] Aborted connection 1623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:09:59 1624 [Warning] Aborted connection 1624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:15:50 1625 [Warning] Aborted connection 1625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:17:23 1626 [Warning] Aborted connection 1626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:19:53 1627 [Warning] Aborted connection 1627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:19:56 1628 [Warning] Aborted connection 1628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:19:59 1629 [Warning] Aborted connection 1629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:25:51 1630 [Warning] Aborted connection 1630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:27:23 1631 [Warning] Aborted connection 1631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:29:54 1632 [Warning] Aborted connection 1632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:29:56 1633 [Warning] Aborted connection 1633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:30:00 1634 [Warning] Aborted connection 1634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:35:51 1635 [Warning] Aborted connection 1635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:37:24 1636 [Warning] Aborted connection 1636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:39:54 1637 [Warning] Aborted connection 1637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:39:56 1638 [Warning] Aborted connection 1638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:40:00 1639 [Warning] Aborted connection 1639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:45:51 1640 [Warning] Aborted connection 1640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:47:24 1641 [Warning] Aborted connection 1641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:49:54 1642 [Warning] Aborted connection 1642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:49:57 1643 [Warning] Aborted connection 1643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:50:00 1644 [Warning] Aborted connection 1644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:55:52 1645 [Warning] Aborted connection 1645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:57:24 1646 [Warning] Aborted connection 1646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:59:54 1647 [Warning] Aborted connection 1647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-26 23:59:57 1648 [Warning] Aborted connection 1648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:00:00 1649 [Warning] Aborted connection 1649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:05:52 1650 [Warning] Aborted connection 1650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:07:24 1651 [Warning] Aborted connection 1651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:09:55 1652 [Warning] Aborted connection 1652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:09:57 1653 [Warning] Aborted connection 1653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:10:01 1654 [Warning] Aborted connection 1654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:15:52 1655 [Warning] Aborted connection 1655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:17:25 1656 [Warning] Aborted connection 1656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:19:55 1657 [Warning] Aborted connection 1657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:19:57 1658 [Warning] Aborted connection 1658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:20:01 1659 [Warning] Aborted connection 1659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:25:52 1660 [Warning] Aborted connection 1660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:27:25 1661 [Warning] Aborted connection 1661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:29:55 1662 [Warning] Aborted connection 1662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:29:58 1663 [Warning] Aborted connection 1663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:30:01 1664 [Warning] Aborted connection 1664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:35:53 1665 [Warning] Aborted connection 1665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:37:25 1666 [Warning] Aborted connection 1666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:39:56 1667 [Warning] Aborted connection 1667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:39:58 1668 [Warning] Aborted connection 1668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:40:02 1669 [Warning] Aborted connection 1669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:45:53 1670 [Warning] Aborted connection 1670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:47:26 1671 [Warning] Aborted connection 1671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:49:56 1672 [Warning] Aborted connection 1672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:49:58 1673 [Warning] Aborted connection 1673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:50:02 1674 [Warning] Aborted connection 1674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:55:53 1675 [Warning] Aborted connection 1675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:57:26 1676 [Warning] Aborted connection 1676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:59:56 1677 [Warning] Aborted connection 1677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 0:59:58 1678 [Warning] Aborted connection 1678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:00:02 1679 [Warning] Aborted connection 1679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:05:53 1680 [Warning] Aborted connection 1680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:07:26 1681 [Warning] Aborted connection 1681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:09:56 1682 [Warning] Aborted connection 1682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:09:59 1683 [Warning] Aborted connection 1683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:10:02 1684 [Warning] Aborted connection 1684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:15:54 1685 [Warning] Aborted connection 1685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:17:26 1686 [Warning] Aborted connection 1686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:19:57 1687 [Warning] Aborted connection 1687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:19:59 1688 [Warning] Aborted connection 1688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:20:03 1689 [Warning] Aborted connection 1689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:25:54 1690 [Warning] Aborted connection 1690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:27:27 1691 [Warning] Aborted connection 1691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:29:57 1692 [Warning] Aborted connection 1692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:29:59 1693 [Warning] Aborted connection 1693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:30:03 1694 [Warning] Aborted connection 1694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:35:54 1695 [Warning] Aborted connection 1695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:37:27 1696 [Warning] Aborted connection 1696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:39:57 1697 [Warning] Aborted connection 1697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:39:59 1698 [Warning] Aborted connection 1698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:40:03 1699 [Warning] Aborted connection 1699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:45:55 1700 [Warning] Aborted connection 1700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:47:27 1701 [Warning] Aborted connection 1701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:49:57 1702 [Warning] Aborted connection 1702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:50:00 1703 [Warning] Aborted connection 1703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:50:03 1704 [Warning] Aborted connection 1704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:55:55 1705 [Warning] Aborted connection 1705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:57:27 1706 [Warning] Aborted connection 1706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 1:59:58 1707 [Warning] Aborted connection 1707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:00:00 1708 [Warning] Aborted connection 1708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:00:04 1709 [Warning] Aborted connection 1709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:05:55 1710 [Warning] Aborted connection 1710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:07:28 1711 [Warning] Aborted connection 1711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:09:58 1712 [Warning] Aborted connection 1712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:10:00 1713 [Warning] Aborted connection 1713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:10:04 1714 [Warning] Aborted connection 1714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:15:55 1715 [Warning] Aborted connection 1715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:17:28 1716 [Warning] Aborted connection 1716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:19:58 1717 [Warning] Aborted connection 1717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:20:01 1718 [Warning] Aborted connection 1718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:20:04 1719 [Warning] Aborted connection 1719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:25:56 1720 [Warning] Aborted connection 1720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:27:28 1721 [Warning] Aborted connection 1721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:29:58 1722 [Warning] Aborted connection 1722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:30:01 1723 [Warning] Aborted connection 1723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:30:04 1724 [Warning] Aborted connection 1724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:35:56 1725 [Warning] Aborted connection 1725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:37:28 1726 [Warning] Aborted connection 1726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:39:59 1727 [Warning] Aborted connection 1727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:40:01 1728 [Warning] Aborted connection 1728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:40:05 1729 [Warning] Aborted connection 1729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:45:56 1730 [Warning] Aborted connection 1730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:47:29 1731 [Warning] Aborted connection 1731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:49:59 1732 [Warning] Aborted connection 1732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:50:01 1733 [Warning] Aborted connection 1733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:50:05 1734 [Warning] Aborted connection 1734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:55:56 1735 [Warning] Aborted connection 1735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:57:29 1736 [Warning] Aborted connection 1736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 2:59:59 1737 [Warning] Aborted connection 1737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:00:02 1738 [Warning] Aborted connection 1738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:00:05 1739 [Warning] Aborted connection 1739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:05:57 1740 [Warning] Aborted connection 1740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:07:29 1741 [Warning] Aborted connection 1741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:09:59 1742 [Warning] Aborted connection 1742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:10:02 1743 [Warning] Aborted connection 1743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:10:05 1744 [Warning] Aborted connection 1744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:15:57 1745 [Warning] Aborted connection 1745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:17:29 1746 [Warning] Aborted connection 1746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:20:00 1747 [Warning] Aborted connection 1747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:20:02 1748 [Warning] Aborted connection 1748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:20:06 1749 [Warning] Aborted connection 1749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:25:57 1750 [Warning] Aborted connection 1750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:27:30 1751 [Warning] Aborted connection 1751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:30:00 1752 [Warning] Aborted connection 1752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:30:02 1753 [Warning] Aborted connection 1753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:30:06 1754 [Warning] Aborted connection 1754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:35:57 1755 [Warning] Aborted connection 1755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:37:30 1756 [Warning] Aborted connection 1756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:40:00 1757 [Warning] Aborted connection 1757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:40:03 1758 [Warning] Aborted connection 1758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:40:06 1759 [Warning] Aborted connection 1759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:45:58 1760 [Warning] Aborted connection 1760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:47:30 1761 [Warning] Aborted connection 1761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:50:00 1762 [Warning] Aborted connection 1762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-27 3:50:03 1763 [Warning] Aborted connection 1763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +220527 03:49:34 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-05-27 3:49:34 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 525 ... +2022-05-27 3:49:34 0 [Note] InnoDB: Uses event mutexes +2022-05-27 3:49:34 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-05-27 3:49:34 0 [Note] InnoDB: Number of pools: 1 +2022-05-27 3:49:34 0 [Note] InnoDB: Using generic crc32 instructions +2022-05-27 3:49:34 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-05-27 3:49:34 0 [Note] InnoDB: Using Linux native AIO +2022-05-27 3:49:34 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-05-27 3:49:34 0 [Note] InnoDB: Completed initialization of buffer pool +2022-05-27 3:49:34 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57880849,57880849 +2022-05-27 3:49:35 0 [Note] InnoDB: Starting final batch to recover 12 pages from redo log. +2022-05-27 3:49:35 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000101', position 1625 +2022-05-27 3:49:35 0 [Note] InnoDB: 128 rollback segments are active. +2022-05-27 3:49:35 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-05-27 3:49:35 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-05-27 3:49:35 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-05-27 3:49:35 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-05-27 3:49:35 0 [Note] InnoDB: 10.5.13 started; log sequence number 57885458; transaction id 169491 +2022-05-27 3:49:35 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-05-27 3:49:35 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-05-27 3:49:35 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-05-27 3:49:35 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-05-27 3:49:35 0 [Note] Starting crash recovery... +2022-05-27 3:49:35 0 [Note] Crash recovery finished. +2022-05-27 3:49:35 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-27 3:49:35 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-27 3:49:35 0 [Note] Server socket created on IP: '::'. +2022-05-27 3:49:35 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-05-27 3:49:35 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-05-27 3:49:35 0 [Note] Reading of all Master_info entries succeeded +2022-05-27 3:49:35 0 [Note] Added new Master_info '' to hash table +2022-05-27 3:49:35 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-05-27 3:50:40 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-27 3:50:40 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-30 11:11:02 6 [Warning] IP address '172.20.0.1' could not be resolved: Name does not resolve +2022-05-30 11:13:09 10 [Warning] Aborted connection 10 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-30 11:13:09 7 [Warning] Aborted connection 7 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-30 11:13:09 9 [Warning] Aborted connection 9 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-30 11:13:09 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-30 11:13:09 6 [Warning] Aborted connection 6 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got an error reading communication packets) +2022-05-30 11:23:12 15 [Warning] Aborted connection 15 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:23:18 11 [Warning] Aborted connection 11 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:23:21 12 [Warning] Aborted connection 12 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:23:22 13 [Warning] Aborted connection 13 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:23:26 14 [Warning] Aborted connection 14 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:33:13 16 [Warning] Aborted connection 16 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:33:19 17 [Warning] Aborted connection 17 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:33:21 18 [Warning] Aborted connection 18 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:33:22 19 [Warning] Aborted connection 19 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:33:26 20 [Warning] Aborted connection 20 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:43:13 21 [Warning] Aborted connection 21 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:43:19 22 [Warning] Aborted connection 22 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:43:21 23 [Warning] Aborted connection 23 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:43:23 24 [Warning] Aborted connection 24 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:43:26 25 [Warning] Aborted connection 25 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:53:19 27 [Warning] Aborted connection 27 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:53:22 28 [Warning] Aborted connection 28 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:53:23 29 [Warning] Aborted connection 29 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:53:27 30 [Warning] Aborted connection 30 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 11:58:52 26 [Warning] Aborted connection 26 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:12:15 35 [Warning] Aborted connection 35 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:12:26 31 [Warning] Aborted connection 31 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:12:28 32 [Warning] Aborted connection 32 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:12:30 33 [Warning] Aborted connection 33 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:12:36 34 [Warning] Aborted connection 34 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:22:16 36 [Warning] Aborted connection 36 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:22:26 37 [Warning] Aborted connection 37 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:22:28 38 [Warning] Aborted connection 38 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:22:30 39 [Warning] Aborted connection 39 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:22:37 40 [Warning] Aborted connection 40 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:32:16 41 [Warning] Aborted connection 41 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:32:27 42 [Warning] Aborted connection 42 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:32:28 43 [Warning] Aborted connection 43 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:32:30 44 [Warning] Aborted connection 44 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:32:37 45 [Warning] Aborted connection 45 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:35:14 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-30 12:35:14 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-30 12:35:14 4 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-30 12:35:14 4 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-05-30 12:42:16 46 [Warning] Aborted connection 46 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:42:27 47 [Warning] Aborted connection 47 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:42:28 48 [Warning] Aborted connection 48 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:42:30 49 [Warning] Aborted connection 49 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:42:37 50 [Warning] Aborted connection 50 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:52:17 51 [Warning] Aborted connection 51 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:52:27 52 [Warning] Aborted connection 52 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:52:29 53 [Warning] Aborted connection 53 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:52:31 54 [Warning] Aborted connection 54 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 12:52:38 55 [Warning] Aborted connection 55 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:02:17 56 [Warning] Aborted connection 56 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:02:28 57 [Warning] Aborted connection 57 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:02:29 58 [Warning] Aborted connection 58 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:02:31 59 [Warning] Aborted connection 59 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:02:38 60 [Warning] Aborted connection 60 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:12:17 61 [Warning] Aborted connection 61 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:12:28 62 [Warning] Aborted connection 62 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:12:29 63 [Warning] Aborted connection 63 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:12:31 64 [Warning] Aborted connection 64 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:12:38 65 [Warning] Aborted connection 65 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:22:18 66 [Warning] Aborted connection 66 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:22:28 67 [Warning] Aborted connection 67 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:22:30 68 [Warning] Aborted connection 68 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:22:32 69 [Warning] Aborted connection 69 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:22:39 70 [Warning] Aborted connection 70 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:32:18 71 [Warning] Aborted connection 71 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:32:28 72 [Warning] Aborted connection 72 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:32:30 73 [Warning] Aborted connection 73 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:32:32 74 [Warning] Aborted connection 74 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:32:39 75 [Warning] Aborted connection 75 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:42:18 76 [Warning] Aborted connection 76 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:42:29 77 [Warning] Aborted connection 77 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:42:30 78 [Warning] Aborted connection 78 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:42:32 79 [Warning] Aborted connection 79 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:42:39 80 [Warning] Aborted connection 80 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:52:18 81 [Warning] Aborted connection 81 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:52:29 82 [Warning] Aborted connection 82 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:52:30 83 [Warning] Aborted connection 83 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:52:32 84 [Warning] Aborted connection 84 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 13:52:39 85 [Warning] Aborted connection 85 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:02:18 86 [Warning] Aborted connection 86 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:02:29 87 [Warning] Aborted connection 87 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:02:31 88 [Warning] Aborted connection 88 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:02:33 89 [Warning] Aborted connection 89 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:02:40 90 [Warning] Aborted connection 90 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:12:19 91 [Warning] Aborted connection 91 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:12:29 92 [Warning] Aborted connection 92 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:12:31 93 [Warning] Aborted connection 93 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:12:33 94 [Warning] Aborted connection 94 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:12:40 95 [Warning] Aborted connection 95 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:22:19 96 [Warning] Aborted connection 96 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:22:30 97 [Warning] Aborted connection 97 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:22:31 98 [Warning] Aborted connection 98 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:22:33 99 [Warning] Aborted connection 99 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:22:40 100 [Warning] Aborted connection 100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:32:19 101 [Warning] Aborted connection 101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:32:30 102 [Warning] Aborted connection 102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:32:31 103 [Warning] Aborted connection 103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:32:33 104 [Warning] Aborted connection 104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:32:40 105 [Warning] Aborted connection 105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:42:20 106 [Warning] Aborted connection 106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:42:30 107 [Warning] Aborted connection 107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:42:32 108 [Warning] Aborted connection 108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:42:34 109 [Warning] Aborted connection 109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:42:41 110 [Warning] Aborted connection 110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:52:20 111 [Warning] Aborted connection 111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:52:30 112 [Warning] Aborted connection 112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:52:32 113 [Warning] Aborted connection 113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:52:34 114 [Warning] Aborted connection 114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 14:52:41 115 [Warning] Aborted connection 115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:02:20 116 [Warning] Aborted connection 116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:02:31 117 [Warning] Aborted connection 117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:02:32 118 [Warning] Aborted connection 118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:02:34 119 [Warning] Aborted connection 119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:02:41 120 [Warning] Aborted connection 120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:12:20 121 [Warning] Aborted connection 121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:12:31 122 [Warning] Aborted connection 122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:12:32 123 [Warning] Aborted connection 123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:12:34 124 [Warning] Aborted connection 124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:12:41 125 [Warning] Aborted connection 125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:22:21 126 [Warning] Aborted connection 126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:22:31 127 [Warning] Aborted connection 127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:22:33 128 [Warning] Aborted connection 128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:22:35 129 [Warning] Aborted connection 129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:22:42 130 [Warning] Aborted connection 130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:32:21 131 [Warning] Aborted connection 131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:32:31 132 [Warning] Aborted connection 132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:32:33 133 [Warning] Aborted connection 133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:32:35 134 [Warning] Aborted connection 134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:32:42 135 [Warning] Aborted connection 135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:42:21 136 [Warning] Aborted connection 136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:42:32 137 [Warning] Aborted connection 137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:42:33 138 [Warning] Aborted connection 138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:42:35 139 [Warning] Aborted connection 139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:42:42 140 [Warning] Aborted connection 140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:52:22 141 [Warning] Aborted connection 141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:52:32 142 [Warning] Aborted connection 142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:52:34 143 [Warning] Aborted connection 143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:52:36 144 [Warning] Aborted connection 144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 15:52:43 145 [Warning] Aborted connection 145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:02:22 146 [Warning] Aborted connection 146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:02:32 147 [Warning] Aborted connection 147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:02:34 148 [Warning] Aborted connection 148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:02:36 149 [Warning] Aborted connection 149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:02:43 150 [Warning] Aborted connection 150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:12:22 151 [Warning] Aborted connection 151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:12:33 152 [Warning] Aborted connection 152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:12:34 153 [Warning] Aborted connection 153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:12:36 154 [Warning] Aborted connection 154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:12:43 155 [Warning] Aborted connection 155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:22:22 156 [Warning] Aborted connection 156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:22:33 157 [Warning] Aborted connection 157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:22:34 158 [Warning] Aborted connection 158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:22:36 159 [Warning] Aborted connection 159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:22:43 160 [Warning] Aborted connection 160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:32:23 161 [Warning] Aborted connection 161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:32:33 162 [Warning] Aborted connection 162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:32:35 163 [Warning] Aborted connection 163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:32:37 164 [Warning] Aborted connection 164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:32:44 165 [Warning] Aborted connection 165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:42:23 166 [Warning] Aborted connection 166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:42:33 167 [Warning] Aborted connection 167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:42:35 168 [Warning] Aborted connection 168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:42:37 169 [Warning] Aborted connection 169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:42:44 170 [Warning] Aborted connection 170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:52:23 171 [Warning] Aborted connection 171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:52:34 172 [Warning] Aborted connection 172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:52:35 173 [Warning] Aborted connection 173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:52:37 174 [Warning] Aborted connection 174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 16:52:44 175 [Warning] Aborted connection 175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:02:23 176 [Warning] Aborted connection 176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:02:34 177 [Warning] Aborted connection 177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:02:35 178 [Warning] Aborted connection 178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:02:37 179 [Warning] Aborted connection 179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:02:44 180 [Warning] Aborted connection 180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:12:24 181 [Warning] Aborted connection 181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:12:34 182 [Warning] Aborted connection 182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:12:36 183 [Warning] Aborted connection 183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:12:38 184 [Warning] Aborted connection 184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:12:45 185 [Warning] Aborted connection 185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:22:24 186 [Warning] Aborted connection 186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:22:34 187 [Warning] Aborted connection 187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:22:36 188 [Warning] Aborted connection 188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:22:38 189 [Warning] Aborted connection 189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:22:45 190 [Warning] Aborted connection 190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:32:24 191 [Warning] Aborted connection 191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:32:35 192 [Warning] Aborted connection 192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:32:36 193 [Warning] Aborted connection 193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:32:38 194 [Warning] Aborted connection 194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:32:45 195 [Warning] Aborted connection 195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:42:24 196 [Warning] Aborted connection 196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:42:35 197 [Warning] Aborted connection 197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:42:37 198 [Warning] Aborted connection 198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:42:39 199 [Warning] Aborted connection 199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:42:46 200 [Warning] Aborted connection 200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:52:25 201 [Warning] Aborted connection 201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:52:35 202 [Warning] Aborted connection 202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:52:37 203 [Warning] Aborted connection 203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:52:39 204 [Warning] Aborted connection 204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 17:52:46 205 [Warning] Aborted connection 205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:02:25 206 [Warning] Aborted connection 206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:02:36 207 [Warning] Aborted connection 207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:02:37 208 [Warning] Aborted connection 208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:02:39 209 [Warning] Aborted connection 209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:02:46 210 [Warning] Aborted connection 210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:12:25 211 [Warning] Aborted connection 211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:12:36 212 [Warning] Aborted connection 212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:12:37 213 [Warning] Aborted connection 213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:12:39 214 [Warning] Aborted connection 214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:12:46 215 [Warning] Aborted connection 215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:22:26 216 [Warning] Aborted connection 216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:22:36 217 [Warning] Aborted connection 217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:22:38 218 [Warning] Aborted connection 218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:22:40 219 [Warning] Aborted connection 219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:22:47 220 [Warning] Aborted connection 220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:32:26 221 [Warning] Aborted connection 221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:32:36 222 [Warning] Aborted connection 222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:32:38 223 [Warning] Aborted connection 223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:32:40 224 [Warning] Aborted connection 224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:32:47 225 [Warning] Aborted connection 225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:42:26 226 [Warning] Aborted connection 226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:42:37 227 [Warning] Aborted connection 227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:42:38 228 [Warning] Aborted connection 228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:42:40 229 [Warning] Aborted connection 229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:42:47 230 [Warning] Aborted connection 230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:52:26 231 [Warning] Aborted connection 231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:52:37 232 [Warning] Aborted connection 232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:52:38 233 [Warning] Aborted connection 233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:52:40 234 [Warning] Aborted connection 234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 18:52:47 235 [Warning] Aborted connection 235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:02:27 236 [Warning] Aborted connection 236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:02:37 237 [Warning] Aborted connection 237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:02:39 238 [Warning] Aborted connection 238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:02:41 239 [Warning] Aborted connection 239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:02:48 240 [Warning] Aborted connection 240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:12:27 241 [Warning] Aborted connection 241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:12:38 242 [Warning] Aborted connection 242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:12:39 243 [Warning] Aborted connection 243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:12:41 244 [Warning] Aborted connection 244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:12:48 245 [Warning] Aborted connection 245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:22:27 246 [Warning] Aborted connection 246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:22:38 247 [Warning] Aborted connection 247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:22:39 248 [Warning] Aborted connection 248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:22:41 249 [Warning] Aborted connection 249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:22:48 250 [Warning] Aborted connection 250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:32:28 251 [Warning] Aborted connection 251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:32:38 252 [Warning] Aborted connection 252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:32:40 253 [Warning] Aborted connection 253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:32:42 254 [Warning] Aborted connection 254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:32:49 255 [Warning] Aborted connection 255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:42:28 256 [Warning] Aborted connection 256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:42:38 257 [Warning] Aborted connection 257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:42:40 258 [Warning] Aborted connection 258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:42:42 259 [Warning] Aborted connection 259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:42:49 260 [Warning] Aborted connection 260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:52:28 261 [Warning] Aborted connection 261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:52:39 262 [Warning] Aborted connection 262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:52:40 263 [Warning] Aborted connection 263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:52:42 264 [Warning] Aborted connection 264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 19:52:49 265 [Warning] Aborted connection 265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:02:28 266 [Warning] Aborted connection 266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:02:39 267 [Warning] Aborted connection 267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:02:40 268 [Warning] Aborted connection 268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:02:42 269 [Warning] Aborted connection 269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:02:49 270 [Warning] Aborted connection 270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:12:29 271 [Warning] Aborted connection 271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:12:39 272 [Warning] Aborted connection 272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:12:41 273 [Warning] Aborted connection 273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:12:43 274 [Warning] Aborted connection 274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:12:50 275 [Warning] Aborted connection 275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:22:29 276 [Warning] Aborted connection 276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:22:39 277 [Warning] Aborted connection 277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:22:41 278 [Warning] Aborted connection 278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:22:43 279 [Warning] Aborted connection 279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:22:50 280 [Warning] Aborted connection 280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:32:29 281 [Warning] Aborted connection 281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:32:40 282 [Warning] Aborted connection 282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:32:41 283 [Warning] Aborted connection 283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:32:43 284 [Warning] Aborted connection 284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:32:50 285 [Warning] Aborted connection 285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:42:29 286 [Warning] Aborted connection 286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:42:40 287 [Warning] Aborted connection 287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:42:41 288 [Warning] Aborted connection 288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:42:43 289 [Warning] Aborted connection 289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:42:50 290 [Warning] Aborted connection 290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:52:30 291 [Warning] Aborted connection 291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:52:40 292 [Warning] Aborted connection 292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:52:42 293 [Warning] Aborted connection 293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:52:44 294 [Warning] Aborted connection 294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 20:52:51 295 [Warning] Aborted connection 295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:02:30 296 [Warning] Aborted connection 296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:02:40 297 [Warning] Aborted connection 297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:02:42 298 [Warning] Aborted connection 298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:02:44 299 [Warning] Aborted connection 299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:02:51 300 [Warning] Aborted connection 300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:12:30 301 [Warning] Aborted connection 301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:12:41 302 [Warning] Aborted connection 302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:12:42 303 [Warning] Aborted connection 303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:12:44 304 [Warning] Aborted connection 304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:12:51 305 [Warning] Aborted connection 305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:22:30 306 [Warning] Aborted connection 306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:22:41 307 [Warning] Aborted connection 307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:22:42 308 [Warning] Aborted connection 308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:22:44 309 [Warning] Aborted connection 309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:22:51 310 [Warning] Aborted connection 310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:32:31 311 [Warning] Aborted connection 311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:32:41 312 [Warning] Aborted connection 312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:32:43 313 [Warning] Aborted connection 313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:32:45 314 [Warning] Aborted connection 314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:32:52 315 [Warning] Aborted connection 315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:42:31 316 [Warning] Aborted connection 316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:42:41 317 [Warning] Aborted connection 317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:42:43 318 [Warning] Aborted connection 318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:42:45 319 [Warning] Aborted connection 319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:42:52 320 [Warning] Aborted connection 320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:52:31 321 [Warning] Aborted connection 321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:52:42 322 [Warning] Aborted connection 322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:52:43 323 [Warning] Aborted connection 323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:52:45 324 [Warning] Aborted connection 324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 21:52:52 325 [Warning] Aborted connection 325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:02:31 326 [Warning] Aborted connection 326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:02:42 327 [Warning] Aborted connection 327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:02:43 328 [Warning] Aborted connection 328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:02:45 329 [Warning] Aborted connection 329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:02:52 330 [Warning] Aborted connection 330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:12:32 331 [Warning] Aborted connection 331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:12:42 332 [Warning] Aborted connection 332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:12:44 333 [Warning] Aborted connection 333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:12:46 334 [Warning] Aborted connection 334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:12:53 335 [Warning] Aborted connection 335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:22:32 336 [Warning] Aborted connection 336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:22:42 337 [Warning] Aborted connection 337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:22:44 338 [Warning] Aborted connection 338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:22:46 339 [Warning] Aborted connection 339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:22:53 340 [Warning] Aborted connection 340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:32:32 341 [Warning] Aborted connection 341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:32:43 342 [Warning] Aborted connection 342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:32:44 343 [Warning] Aborted connection 343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:32:46 344 [Warning] Aborted connection 344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:32:53 345 [Warning] Aborted connection 345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:42:33 346 [Warning] Aborted connection 346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:42:43 347 [Warning] Aborted connection 347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:42:45 348 [Warning] Aborted connection 348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:42:46 349 [Warning] Aborted connection 349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:42:54 350 [Warning] Aborted connection 350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:52:33 351 [Warning] Aborted connection 351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:52:43 352 [Warning] Aborted connection 352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:52:45 353 [Warning] Aborted connection 353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:52:47 354 [Warning] Aborted connection 354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 22:52:54 355 [Warning] Aborted connection 355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:02:33 356 [Warning] Aborted connection 356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:02:44 357 [Warning] Aborted connection 357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:02:45 358 [Warning] Aborted connection 358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:02:47 359 [Warning] Aborted connection 359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:02:54 360 [Warning] Aborted connection 360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:12:33 361 [Warning] Aborted connection 361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:12:44 362 [Warning] Aborted connection 362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:12:45 363 [Warning] Aborted connection 363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:12:47 364 [Warning] Aborted connection 364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:12:54 365 [Warning] Aborted connection 365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:22:34 366 [Warning] Aborted connection 366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:22:44 367 [Warning] Aborted connection 367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:22:46 368 [Warning] Aborted connection 368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:22:48 369 [Warning] Aborted connection 369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:22:55 370 [Warning] Aborted connection 370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:32:34 371 [Warning] Aborted connection 371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:32:44 372 [Warning] Aborted connection 372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:32:46 373 [Warning] Aborted connection 373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:32:48 374 [Warning] Aborted connection 374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:32:55 375 [Warning] Aborted connection 375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:42:34 376 [Warning] Aborted connection 376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:42:45 377 [Warning] Aborted connection 377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:42:46 378 [Warning] Aborted connection 378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:42:48 379 [Warning] Aborted connection 379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:42:55 380 [Warning] Aborted connection 380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:52:34 381 [Warning] Aborted connection 381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:52:45 382 [Warning] Aborted connection 382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:52:46 383 [Warning] Aborted connection 383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:52:48 384 [Warning] Aborted connection 384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-30 23:52:55 385 [Warning] Aborted connection 385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:02:35 386 [Warning] Aborted connection 386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:02:45 387 [Warning] Aborted connection 387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:02:47 388 [Warning] Aborted connection 388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:02:49 389 [Warning] Aborted connection 389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:02:56 390 [Warning] Aborted connection 390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:12:35 391 [Warning] Aborted connection 391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:12:45 392 [Warning] Aborted connection 392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:12:47 393 [Warning] Aborted connection 393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:12:49 394 [Warning] Aborted connection 394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:12:56 395 [Warning] Aborted connection 395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:22:35 396 [Warning] Aborted connection 396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:22:46 397 [Warning] Aborted connection 397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:22:47 398 [Warning] Aborted connection 398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:22:49 399 [Warning] Aborted connection 399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:22:56 400 [Warning] Aborted connection 400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:32:35 401 [Warning] Aborted connection 401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:32:46 402 [Warning] Aborted connection 402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:32:47 403 [Warning] Aborted connection 403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:32:49 404 [Warning] Aborted connection 404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:32:56 405 [Warning] Aborted connection 405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:42:36 406 [Warning] Aborted connection 406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:42:46 407 [Warning] Aborted connection 407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:42:48 408 [Warning] Aborted connection 408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:42:50 409 [Warning] Aborted connection 409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:42:57 410 [Warning] Aborted connection 410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:52:36 411 [Warning] Aborted connection 411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:52:46 412 [Warning] Aborted connection 412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:52:48 413 [Warning] Aborted connection 413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:52:50 414 [Warning] Aborted connection 414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 0:52:57 415 [Warning] Aborted connection 415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:02:36 416 [Warning] Aborted connection 416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:02:47 417 [Warning] Aborted connection 417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:02:48 418 [Warning] Aborted connection 418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:02:50 419 [Warning] Aborted connection 419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:02:57 420 [Warning] Aborted connection 420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:12:36 421 [Warning] Aborted connection 421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:12:47 422 [Warning] Aborted connection 422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:12:48 423 [Warning] Aborted connection 423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:12:50 424 [Warning] Aborted connection 424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:12:57 425 [Warning] Aborted connection 425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:22:37 426 [Warning] Aborted connection 426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:22:47 427 [Warning] Aborted connection 427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:22:49 428 [Warning] Aborted connection 428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:22:51 429 [Warning] Aborted connection 429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:22:58 430 [Warning] Aborted connection 430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:32:37 431 [Warning] Aborted connection 431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:32:47 432 [Warning] Aborted connection 432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:32:49 433 [Warning] Aborted connection 433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:32:51 434 [Warning] Aborted connection 434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:32:58 435 [Warning] Aborted connection 435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:42:37 436 [Warning] Aborted connection 436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:42:48 437 [Warning] Aborted connection 437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:42:49 438 [Warning] Aborted connection 438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:42:51 439 [Warning] Aborted connection 439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:42:58 440 [Warning] Aborted connection 440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:52:37 441 [Warning] Aborted connection 441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:52:48 442 [Warning] Aborted connection 442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:52:49 443 [Warning] Aborted connection 443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:52:51 444 [Warning] Aborted connection 444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 1:52:58 445 [Warning] Aborted connection 445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:02:38 446 [Warning] Aborted connection 446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:02:48 447 [Warning] Aborted connection 447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:02:50 448 [Warning] Aborted connection 448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:02:52 449 [Warning] Aborted connection 449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:02:59 450 [Warning] Aborted connection 450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:12:38 451 [Warning] Aborted connection 451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:12:48 452 [Warning] Aborted connection 452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:12:50 453 [Warning] Aborted connection 453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:12:52 454 [Warning] Aborted connection 454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:12:59 455 [Warning] Aborted connection 455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:22:38 456 [Warning] Aborted connection 456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:22:49 457 [Warning] Aborted connection 457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:22:50 458 [Warning] Aborted connection 458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:22:52 459 [Warning] Aborted connection 459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:22:59 460 [Warning] Aborted connection 460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:32:39 461 [Warning] Aborted connection 461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:32:49 462 [Warning] Aborted connection 462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:32:51 463 [Warning] Aborted connection 463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:32:53 464 [Warning] Aborted connection 464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:33:00 465 [Warning] Aborted connection 465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:42:39 466 [Warning] Aborted connection 466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:42:49 467 [Warning] Aborted connection 467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:42:51 468 [Warning] Aborted connection 468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:42:53 469 [Warning] Aborted connection 469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:43:00 470 [Warning] Aborted connection 470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:52:39 471 [Warning] Aborted connection 471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:52:50 472 [Warning] Aborted connection 472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:52:51 473 [Warning] Aborted connection 473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:52:53 474 [Warning] Aborted connection 474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 2:53:00 475 [Warning] Aborted connection 475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:02:39 476 [Warning] Aborted connection 476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:02:50 477 [Warning] Aborted connection 477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:02:51 478 [Warning] Aborted connection 478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:02:53 479 [Warning] Aborted connection 479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:03:00 480 [Warning] Aborted connection 480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:12:39 481 [Warning] Aborted connection 481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:12:50 482 [Warning] Aborted connection 482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:12:52 483 [Warning] Aborted connection 483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:12:54 484 [Warning] Aborted connection 484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:13:01 485 [Warning] Aborted connection 485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:22:40 486 [Warning] Aborted connection 486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:22:50 487 [Warning] Aborted connection 487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:22:52 488 [Warning] Aborted connection 488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:22:54 489 [Warning] Aborted connection 489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:23:01 490 [Warning] Aborted connection 490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:32:40 491 [Warning] Aborted connection 491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:32:51 492 [Warning] Aborted connection 492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:32:52 493 [Warning] Aborted connection 493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:32:54 494 [Warning] Aborted connection 494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:33:01 495 [Warning] Aborted connection 495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:42:40 496 [Warning] Aborted connection 496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:42:51 497 [Warning] Aborted connection 497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:42:52 498 [Warning] Aborted connection 498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:42:54 499 [Warning] Aborted connection 499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:43:01 500 [Warning] Aborted connection 500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:52:41 501 [Warning] Aborted connection 501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:52:51 502 [Warning] Aborted connection 502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:52:53 503 [Warning] Aborted connection 503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:52:55 504 [Warning] Aborted connection 504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 3:53:02 505 [Warning] Aborted connection 505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:02:41 506 [Warning] Aborted connection 506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:02:52 507 [Warning] Aborted connection 507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:02:53 508 [Warning] Aborted connection 508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:02:55 509 [Warning] Aborted connection 509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:03:02 510 [Warning] Aborted connection 510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:12:42 511 [Warning] Aborted connection 511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:12:52 512 [Warning] Aborted connection 512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:12:54 513 [Warning] Aborted connection 513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:12:56 514 [Warning] Aborted connection 514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:13:03 515 [Warning] Aborted connection 515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:22:42 516 [Warning] Aborted connection 516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:22:52 517 [Warning] Aborted connection 517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:22:54 518 [Warning] Aborted connection 518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:22:56 519 [Warning] Aborted connection 519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:23:03 520 [Warning] Aborted connection 520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:32:42 521 [Warning] Aborted connection 521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:32:53 522 [Warning] Aborted connection 522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:32:54 523 [Warning] Aborted connection 523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:32:56 524 [Warning] Aborted connection 524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:33:03 525 [Warning] Aborted connection 525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:42:42 526 [Warning] Aborted connection 526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:42:53 527 [Warning] Aborted connection 527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:42:55 528 [Warning] Aborted connection 528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:42:57 529 [Warning] Aborted connection 529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:43:04 530 [Warning] Aborted connection 530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:52:43 531 [Warning] Aborted connection 531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:52:53 532 [Warning] Aborted connection 532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:52:55 533 [Warning] Aborted connection 533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:52:57 534 [Warning] Aborted connection 534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 4:53:04 535 [Warning] Aborted connection 535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:02:43 536 [Warning] Aborted connection 536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:02:53 537 [Warning] Aborted connection 537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:02:55 538 [Warning] Aborted connection 538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:02:57 539 [Warning] Aborted connection 539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:03:04 540 [Warning] Aborted connection 540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:12:43 541 [Warning] Aborted connection 541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:12:54 542 [Warning] Aborted connection 542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:12:55 543 [Warning] Aborted connection 543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:12:57 544 [Warning] Aborted connection 544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:13:04 545 [Warning] Aborted connection 545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:22:44 546 [Warning] Aborted connection 546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:22:54 547 [Warning] Aborted connection 547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:22:56 548 [Warning] Aborted connection 548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:22:58 549 [Warning] Aborted connection 549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:23:05 550 [Warning] Aborted connection 550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:32:44 551 [Warning] Aborted connection 551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:32:54 552 [Warning] Aborted connection 552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:32:56 553 [Warning] Aborted connection 553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:32:58 554 [Warning] Aborted connection 554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:33:05 555 [Warning] Aborted connection 555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:42:44 556 [Warning] Aborted connection 556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:42:55 557 [Warning] Aborted connection 557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:42:56 558 [Warning] Aborted connection 558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:42:58 559 [Warning] Aborted connection 559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:43:05 560 [Warning] Aborted connection 560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:52:44 561 [Warning] Aborted connection 561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:52:55 562 [Warning] Aborted connection 562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:52:56 563 [Warning] Aborted connection 563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:52:58 564 [Warning] Aborted connection 564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 5:53:05 565 [Warning] Aborted connection 565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:02:45 566 [Warning] Aborted connection 566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:02:55 567 [Warning] Aborted connection 567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:02:57 568 [Warning] Aborted connection 568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:02:59 569 [Warning] Aborted connection 569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:03:06 570 [Warning] Aborted connection 570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:12:45 571 [Warning] Aborted connection 571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:12:55 572 [Warning] Aborted connection 572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:12:57 573 [Warning] Aborted connection 573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:12:59 574 [Warning] Aborted connection 574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:13:06 575 [Warning] Aborted connection 575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:22:45 576 [Warning] Aborted connection 576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:22:56 577 [Warning] Aborted connection 577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:22:57 578 [Warning] Aborted connection 578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:22:59 579 [Warning] Aborted connection 579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:23:06 580 [Warning] Aborted connection 580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:32:45 581 [Warning] Aborted connection 581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:32:56 582 [Warning] Aborted connection 582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:32:57 583 [Warning] Aborted connection 583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:32:59 584 [Warning] Aborted connection 584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:33:06 585 [Warning] Aborted connection 585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:42:46 586 [Warning] Aborted connection 586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:42:56 587 [Warning] Aborted connection 587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:42:58 588 [Warning] Aborted connection 588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:43:00 589 [Warning] Aborted connection 589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:43:07 590 [Warning] Aborted connection 590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:52:46 591 [Warning] Aborted connection 591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:52:56 592 [Warning] Aborted connection 592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:52:58 593 [Warning] Aborted connection 593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:53:00 594 [Warning] Aborted connection 594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 6:53:07 595 [Warning] Aborted connection 595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:02:46 596 [Warning] Aborted connection 596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:02:57 597 [Warning] Aborted connection 597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:02:58 598 [Warning] Aborted connection 598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:03:00 599 [Warning] Aborted connection 599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:03:07 600 [Warning] Aborted connection 600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:12:46 601 [Warning] Aborted connection 601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:12:57 602 [Warning] Aborted connection 602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:12:58 603 [Warning] Aborted connection 603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:13:00 604 [Warning] Aborted connection 604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:13:07 605 [Warning] Aborted connection 605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:22:47 606 [Warning] Aborted connection 606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:22:57 607 [Warning] Aborted connection 607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:22:59 608 [Warning] Aborted connection 608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:23:01 609 [Warning] Aborted connection 609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:23:08 610 [Warning] Aborted connection 610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:32:47 611 [Warning] Aborted connection 611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:32:57 612 [Warning] Aborted connection 612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:32:59 613 [Warning] Aborted connection 613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:33:01 614 [Warning] Aborted connection 614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:33:08 615 [Warning] Aborted connection 615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:42:47 616 [Warning] Aborted connection 616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:42:58 617 [Warning] Aborted connection 617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:42:59 618 [Warning] Aborted connection 618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:43:01 619 [Warning] Aborted connection 619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:43:08 620 [Warning] Aborted connection 620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:52:47 621 [Warning] Aborted connection 621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:52:58 622 [Warning] Aborted connection 622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:52:59 623 [Warning] Aborted connection 623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:53:01 624 [Warning] Aborted connection 624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 7:53:08 625 [Warning] Aborted connection 625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:02:48 626 [Warning] Aborted connection 626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:02:58 627 [Warning] Aborted connection 627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:03:00 628 [Warning] Aborted connection 628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:03:02 629 [Warning] Aborted connection 629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:03:09 630 [Warning] Aborted connection 630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:12:48 631 [Warning] Aborted connection 631 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:12:58 632 [Warning] Aborted connection 632 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:13:00 633 [Warning] Aborted connection 633 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:13:02 634 [Warning] Aborted connection 634 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:13:09 635 [Warning] Aborted connection 635 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:22:48 636 [Warning] Aborted connection 636 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:22:59 637 [Warning] Aborted connection 637 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:23:00 638 [Warning] Aborted connection 638 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:23:02 639 [Warning] Aborted connection 639 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:23:09 640 [Warning] Aborted connection 640 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:32:48 641 [Warning] Aborted connection 641 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:32:59 642 [Warning] Aborted connection 642 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:33:01 643 [Warning] Aborted connection 643 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:33:03 644 [Warning] Aborted connection 644 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:33:09 645 [Warning] Aborted connection 645 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:42:49 646 [Warning] Aborted connection 646 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:42:59 647 [Warning] Aborted connection 647 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:43:01 648 [Warning] Aborted connection 648 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:43:03 649 [Warning] Aborted connection 649 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:43:10 650 [Warning] Aborted connection 650 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:52:49 651 [Warning] Aborted connection 651 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:53:00 652 [Warning] Aborted connection 652 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:53:01 653 [Warning] Aborted connection 653 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:53:03 654 [Warning] Aborted connection 654 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 8:53:10 655 [Warning] Aborted connection 655 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:02:49 656 [Warning] Aborted connection 656 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:03:00 657 [Warning] Aborted connection 657 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:03:01 658 [Warning] Aborted connection 658 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:03:03 659 [Warning] Aborted connection 659 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:03:10 660 [Warning] Aborted connection 660 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:12:49 661 [Warning] Aborted connection 661 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:13:00 662 [Warning] Aborted connection 662 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:13:02 663 [Warning] Aborted connection 663 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:13:04 664 [Warning] Aborted connection 664 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:13:11 665 [Warning] Aborted connection 665 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:22:50 666 [Warning] Aborted connection 666 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:23:00 667 [Warning] Aborted connection 667 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:23:02 668 [Warning] Aborted connection 668 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:23:04 669 [Warning] Aborted connection 669 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:23:11 670 [Warning] Aborted connection 670 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:32:50 671 [Warning] Aborted connection 671 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:33:01 672 [Warning] Aborted connection 672 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:33:02 673 [Warning] Aborted connection 673 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:33:04 674 [Warning] Aborted connection 674 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:33:11 675 [Warning] Aborted connection 675 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:42:50 676 [Warning] Aborted connection 676 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:43:01 677 [Warning] Aborted connection 677 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:43:02 678 [Warning] Aborted connection 678 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:43:04 679 [Warning] Aborted connection 679 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:43:11 680 [Warning] Aborted connection 680 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:52:51 681 [Warning] Aborted connection 681 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:53:01 682 [Warning] Aborted connection 682 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:53:03 683 [Warning] Aborted connection 683 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:53:05 684 [Warning] Aborted connection 684 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 9:53:12 685 [Warning] Aborted connection 685 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:02:51 686 [Warning] Aborted connection 686 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:03:01 687 [Warning] Aborted connection 687 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:03:03 688 [Warning] Aborted connection 688 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:03:05 689 [Warning] Aborted connection 689 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:03:12 690 [Warning] Aborted connection 690 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:12:51 691 [Warning] Aborted connection 691 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:13:02 692 [Warning] Aborted connection 692 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:13:03 693 [Warning] Aborted connection 693 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:13:05 694 [Warning] Aborted connection 694 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:13:12 695 [Warning] Aborted connection 695 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:22:51 696 [Warning] Aborted connection 696 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:23:02 697 [Warning] Aborted connection 697 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:23:03 698 [Warning] Aborted connection 698 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:23:05 699 [Warning] Aborted connection 699 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:23:12 700 [Warning] Aborted connection 700 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:32:52 701 [Warning] Aborted connection 701 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:33:02 702 [Warning] Aborted connection 702 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:33:04 703 [Warning] Aborted connection 703 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:33:06 704 [Warning] Aborted connection 704 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:33:13 705 [Warning] Aborted connection 705 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:42:52 706 [Warning] Aborted connection 706 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:43:02 707 [Warning] Aborted connection 707 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:43:04 708 [Warning] Aborted connection 708 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:43:06 709 [Warning] Aborted connection 709 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:43:13 710 [Warning] Aborted connection 710 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:52:52 711 [Warning] Aborted connection 711 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:53:03 712 [Warning] Aborted connection 712 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:53:04 713 [Warning] Aborted connection 713 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:53:06 714 [Warning] Aborted connection 714 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 10:53:13 715 [Warning] Aborted connection 715 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:02:52 716 [Warning] Aborted connection 716 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:03:03 717 [Warning] Aborted connection 717 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:03:04 718 [Warning] Aborted connection 718 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:03:06 719 [Warning] Aborted connection 719 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:03:13 720 [Warning] Aborted connection 720 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:12:53 721 [Warning] Aborted connection 721 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:13:03 722 [Warning] Aborted connection 722 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:13:05 723 [Warning] Aborted connection 723 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:13:07 724 [Warning] Aborted connection 724 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:13:14 725 [Warning] Aborted connection 725 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:22:53 726 [Warning] Aborted connection 726 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:23:04 727 [Warning] Aborted connection 727 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:23:05 728 [Warning] Aborted connection 728 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:23:07 729 [Warning] Aborted connection 729 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:23:14 730 [Warning] Aborted connection 730 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:32:53 731 [Warning] Aborted connection 731 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:33:04 732 [Warning] Aborted connection 732 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:33:05 733 [Warning] Aborted connection 733 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:33:07 734 [Warning] Aborted connection 734 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:33:14 735 [Warning] Aborted connection 735 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:42:53 736 [Warning] Aborted connection 736 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:43:04 737 [Warning] Aborted connection 737 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:43:06 738 [Warning] Aborted connection 738 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:43:08 739 [Warning] Aborted connection 739 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:43:15 740 [Warning] Aborted connection 740 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:52:54 741 [Warning] Aborted connection 741 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:53:04 742 [Warning] Aborted connection 742 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:53:06 743 [Warning] Aborted connection 743 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:53:08 744 [Warning] Aborted connection 744 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 11:53:15 745 [Warning] Aborted connection 745 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:02:54 746 [Warning] Aborted connection 746 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:03:05 747 [Warning] Aborted connection 747 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:03:06 748 [Warning] Aborted connection 748 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:03:08 749 [Warning] Aborted connection 749 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:03:15 750 [Warning] Aborted connection 750 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:12:54 751 [Warning] Aborted connection 751 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:13:05 752 [Warning] Aborted connection 752 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:13:06 753 [Warning] Aborted connection 753 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:13:08 754 [Warning] Aborted connection 754 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:13:15 755 [Warning] Aborted connection 755 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:22:55 756 [Warning] Aborted connection 756 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:23:05 757 [Warning] Aborted connection 757 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:23:07 758 [Warning] Aborted connection 758 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:23:09 759 [Warning] Aborted connection 759 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:23:16 760 [Warning] Aborted connection 760 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:32:55 761 [Warning] Aborted connection 761 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:33:05 762 [Warning] Aborted connection 762 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:33:07 763 [Warning] Aborted connection 763 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:33:09 764 [Warning] Aborted connection 764 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:33:16 765 [Warning] Aborted connection 765 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:42:55 766 [Warning] Aborted connection 766 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:43:06 767 [Warning] Aborted connection 767 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:43:07 768 [Warning] Aborted connection 768 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:43:09 769 [Warning] Aborted connection 769 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:43:16 770 [Warning] Aborted connection 770 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:52:55 771 [Warning] Aborted connection 771 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:53:06 772 [Warning] Aborted connection 772 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:53:08 773 [Warning] Aborted connection 773 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:53:10 774 [Warning] Aborted connection 774 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 12:53:16 775 [Warning] Aborted connection 775 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:02:56 776 [Warning] Aborted connection 776 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:03:06 777 [Warning] Aborted connection 777 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:03:08 778 [Warning] Aborted connection 778 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:03:10 779 [Warning] Aborted connection 779 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:03:17 780 [Warning] Aborted connection 780 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:12:56 781 [Warning] Aborted connection 781 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:13:06 782 [Warning] Aborted connection 782 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:13:08 783 [Warning] Aborted connection 783 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:13:10 784 [Warning] Aborted connection 784 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:13:17 785 [Warning] Aborted connection 785 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:22:56 786 [Warning] Aborted connection 786 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:23:07 787 [Warning] Aborted connection 787 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:23:08 788 [Warning] Aborted connection 788 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:23:10 789 [Warning] Aborted connection 789 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:23:17 790 [Warning] Aborted connection 790 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:32:57 791 [Warning] Aborted connection 791 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:33:07 792 [Warning] Aborted connection 792 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:33:09 793 [Warning] Aborted connection 793 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:33:11 794 [Warning] Aborted connection 794 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:33:18 795 [Warning] Aborted connection 795 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:42:57 796 [Warning] Aborted connection 796 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:43:07 797 [Warning] Aborted connection 797 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:43:09 798 [Warning] Aborted connection 798 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:43:11 799 [Warning] Aborted connection 799 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:43:18 800 [Warning] Aborted connection 800 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:52:57 801 [Warning] Aborted connection 801 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:53:08 802 [Warning] Aborted connection 802 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:53:09 803 [Warning] Aborted connection 803 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:53:11 804 [Warning] Aborted connection 804 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 13:53:18 805 [Warning] Aborted connection 805 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:02:57 806 [Warning] Aborted connection 806 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:03:08 807 [Warning] Aborted connection 807 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:03:09 808 [Warning] Aborted connection 808 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:03:11 809 [Warning] Aborted connection 809 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:03:18 810 [Warning] Aborted connection 810 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:12:58 811 [Warning] Aborted connection 811 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:13:08 812 [Warning] Aborted connection 812 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:13:10 813 [Warning] Aborted connection 813 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:13:12 814 [Warning] Aborted connection 814 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:13:19 815 [Warning] Aborted connection 815 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:22:58 816 [Warning] Aborted connection 816 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:23:08 817 [Warning] Aborted connection 817 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:23:10 818 [Warning] Aborted connection 818 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:23:12 819 [Warning] Aborted connection 819 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:23:19 820 [Warning] Aborted connection 820 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:32:58 821 [Warning] Aborted connection 821 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:33:09 822 [Warning] Aborted connection 822 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:33:10 823 [Warning] Aborted connection 823 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:33:12 824 [Warning] Aborted connection 824 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:33:19 825 [Warning] Aborted connection 825 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:42:58 826 [Warning] Aborted connection 826 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:43:09 827 [Warning] Aborted connection 827 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:43:11 828 [Warning] Aborted connection 828 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:43:13 829 [Warning] Aborted connection 829 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:43:20 830 [Warning] Aborted connection 830 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:52:59 831 [Warning] Aborted connection 831 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:53:09 832 [Warning] Aborted connection 832 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:53:11 833 [Warning] Aborted connection 833 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:53:13 834 [Warning] Aborted connection 834 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 14:53:20 835 [Warning] Aborted connection 835 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:02:59 836 [Warning] Aborted connection 836 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:03:10 837 [Warning] Aborted connection 837 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:03:11 838 [Warning] Aborted connection 838 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:03:13 839 [Warning] Aborted connection 839 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:03:20 840 [Warning] Aborted connection 840 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:12:59 841 [Warning] Aborted connection 841 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:13:10 842 [Warning] Aborted connection 842 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:13:11 843 [Warning] Aborted connection 843 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:13:13 844 [Warning] Aborted connection 844 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:13:20 845 [Warning] Aborted connection 845 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:23:00 846 [Warning] Aborted connection 846 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:23:10 847 [Warning] Aborted connection 847 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:23:12 848 [Warning] Aborted connection 848 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:23:14 849 [Warning] Aborted connection 849 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:23:21 850 [Warning] Aborted connection 850 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:33:00 851 [Warning] Aborted connection 851 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:33:10 852 [Warning] Aborted connection 852 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:33:12 853 [Warning] Aborted connection 853 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:33:14 854 [Warning] Aborted connection 854 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:33:21 855 [Warning] Aborted connection 855 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:43:00 856 [Warning] Aborted connection 856 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:43:11 857 [Warning] Aborted connection 857 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:43:12 858 [Warning] Aborted connection 858 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:43:14 859 [Warning] Aborted connection 859 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:43:21 860 [Warning] Aborted connection 860 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:53:00 861 [Warning] Aborted connection 861 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:53:11 862 [Warning] Aborted connection 862 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:53:12 863 [Warning] Aborted connection 863 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:53:14 864 [Warning] Aborted connection 864 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-05-31 15:53:21 865 [Warning] Aborted connection 865 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +220601 17:09:16 mysqld_safe Starting mariadbd daemon with databases from /config/databases +2022-06-01 17:09:16 0 [Note] /usr/bin/mariadbd (mysqld 10.5.13-MariaDB-log) starting as process 524 ... +2022-06-01 17:09:16 0 [Note] InnoDB: Uses event mutexes +2022-06-01 17:09:16 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2022-06-01 17:09:16 0 [Note] InnoDB: Number of pools: 1 +2022-06-01 17:09:16 0 [Note] InnoDB: Using generic crc32 instructions +2022-06-01 17:09:16 0 [Note] mariadbd: O_TMPFILE is not supported on /var/tmp (disabling future attempts) +2022-06-01 17:09:16 0 [Note] InnoDB: Using Linux native AIO +2022-06-01 17:09:16 0 [Note] InnoDB: Initializing buffer pool, total size = 268435456, chunk size = 134217728 +2022-06-01 17:09:16 0 [Note] InnoDB: Completed initialization of buffer pool +2022-06-01 17:09:16 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=57885723,57885723 +2022-06-01 17:09:17 0 [Note] InnoDB: Last binlog file '/config/log/mysql/mariadb-bin.000101', position 1625 +2022-06-01 17:09:17 0 [Note] InnoDB: 128 rollback segments are active. +2022-06-01 17:09:17 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" +2022-06-01 17:09:17 0 [Note] InnoDB: Creating shared tablespace for temporary tables +2022-06-01 17:09:17 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... +2022-06-01 17:09:17 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. +2022-06-01 17:09:17 0 [Note] InnoDB: 10.5.13 started; log sequence number 57885972; transaction id 169491 +2022-06-01 17:09:17 0 [Note] Plugin 'FEEDBACK' is disabled. +2022-06-01 17:09:17 0 [Note] InnoDB: Loading buffer pool(s) from /config/databases/ib_buffer_pool +2022-06-01 17:09:17 0 [Note] InnoDB: Cannot open '/config/databases/ib_buffer_pool' for reading: No such file or directory +2022-06-01 17:09:17 0 [Note] Recovering after a crash using /config/log/mysql/mariadb-bin +2022-06-01 17:09:17 0 [Note] Starting crash recovery... +2022-06-01 17:09:17 0 [Note] Crash recovery finished. +2022-06-01 17:09:17 1 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:09:17 1 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:09:17 0 [Note] Server socket created on IP: '::'. +2022-06-01 17:09:17 0 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU +2022-06-01 17:09:17 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. +2022-06-01 17:09:17 0 [Note] Reading of all Master_info entries succeeded +2022-06-01 17:09:17 0 [Note] Added new Master_info '' to hash table +2022-06-01 17:09:17 0 [Note] /usr/bin/mariadbd: ready for connections. +Version: '10.5.13-MariaDB-log' socket: '/run/mysqld/mysqld.sock' port: 3306 MariaDB Server +2022-06-01 17:09:17 4 [Warning] IP address '172.20.0.1' could not be resolved: Name does not resolve +2022-06-01 17:09:22 9 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:09:22 9 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:21:53 5 [Warning] Aborted connection 5 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:21:55 6 [Warning] Aborted connection 6 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:21:57 7 [Warning] Aborted connection 7 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:21:59 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:22:01 4 [Warning] Aborted connection 4 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:22:31 9 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:22:31 9 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:22:31 9 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:22:31 9 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade +2022-06-01 17:31:53 11 [Warning] Aborted connection 11 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:31:55 12 [Warning] Aborted connection 12 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:31:57 13 [Warning] Aborted connection 13 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:31:59 14 [Warning] Aborted connection 14 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:32:01 15 [Warning] Aborted connection 15 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:41:54 16 [Warning] Aborted connection 16 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:41:56 17 [Warning] Aborted connection 17 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:41:57 18 [Warning] Aborted connection 18 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:42:00 19 [Warning] Aborted connection 19 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:42:01 20 [Warning] Aborted connection 20 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:51:54 21 [Warning] Aborted connection 21 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:51:56 22 [Warning] Aborted connection 22 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:51:57 23 [Warning] Aborted connection 23 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:52:00 24 [Warning] Aborted connection 24 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 17:52:01 25 [Warning] Aborted connection 25 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:01:54 26 [Warning] Aborted connection 26 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:01:56 27 [Warning] Aborted connection 27 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:01:58 28 [Warning] Aborted connection 28 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:02:00 29 [Warning] Aborted connection 29 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:02:02 30 [Warning] Aborted connection 30 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:11:54 31 [Warning] Aborted connection 31 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:11:56 32 [Warning] Aborted connection 32 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:11:58 33 [Warning] Aborted connection 33 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:12:00 34 [Warning] Aborted connection 34 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:12:02 35 [Warning] Aborted connection 35 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:21:55 36 [Warning] Aborted connection 36 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:21:57 37 [Warning] Aborted connection 37 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:21:58 38 [Warning] Aborted connection 38 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:22:01 39 [Warning] Aborted connection 39 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:22:02 40 [Warning] Aborted connection 40 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:31:55 41 [Warning] Aborted connection 41 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:31:57 42 [Warning] Aborted connection 42 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:31:58 43 [Warning] Aborted connection 43 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:32:01 44 [Warning] Aborted connection 44 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:32:02 45 [Warning] Aborted connection 45 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:41:55 46 [Warning] Aborted connection 46 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:41:57 47 [Warning] Aborted connection 47 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:41:59 48 [Warning] Aborted connection 48 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:42:01 49 [Warning] Aborted connection 49 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:42:03 50 [Warning] Aborted connection 50 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:51:55 51 [Warning] Aborted connection 51 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:51:57 52 [Warning] Aborted connection 52 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:51:59 53 [Warning] Aborted connection 53 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:52:01 54 [Warning] Aborted connection 54 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 18:52:03 55 [Warning] Aborted connection 55 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:01:56 56 [Warning] Aborted connection 56 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:01:58 57 [Warning] Aborted connection 57 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:01:59 58 [Warning] Aborted connection 58 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:02:02 59 [Warning] Aborted connection 59 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:02:03 60 [Warning] Aborted connection 60 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:11:56 61 [Warning] Aborted connection 61 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:11:58 62 [Warning] Aborted connection 62 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:12:00 63 [Warning] Aborted connection 63 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:12:02 64 [Warning] Aborted connection 64 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:12:03 65 [Warning] Aborted connection 65 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:21:56 66 [Warning] Aborted connection 66 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:21:58 67 [Warning] Aborted connection 67 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:22:00 68 [Warning] Aborted connection 68 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:22:02 69 [Warning] Aborted connection 69 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:22:04 70 [Warning] Aborted connection 70 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:31:57 71 [Warning] Aborted connection 71 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:31:58 72 [Warning] Aborted connection 72 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:32:00 73 [Warning] Aborted connection 73 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:32:03 74 [Warning] Aborted connection 74 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:32:04 75 [Warning] Aborted connection 75 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:41:57 76 [Warning] Aborted connection 76 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:41:59 77 [Warning] Aborted connection 77 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:42:00 78 [Warning] Aborted connection 78 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:42:03 79 [Warning] Aborted connection 79 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:42:04 80 [Warning] Aborted connection 80 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:51:57 81 [Warning] Aborted connection 81 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:51:59 82 [Warning] Aborted connection 82 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:52:01 83 [Warning] Aborted connection 83 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:52:03 84 [Warning] Aborted connection 84 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 19:52:05 85 [Warning] Aborted connection 85 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:01:57 86 [Warning] Aborted connection 86 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:01:59 87 [Warning] Aborted connection 87 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:02:01 88 [Warning] Aborted connection 88 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:02:03 89 [Warning] Aborted connection 89 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:02:05 90 [Warning] Aborted connection 90 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:11:58 91 [Warning] Aborted connection 91 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:12:00 92 [Warning] Aborted connection 92 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:12:01 93 [Warning] Aborted connection 93 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:12:04 94 [Warning] Aborted connection 94 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:12:05 95 [Warning] Aborted connection 95 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:21:58 96 [Warning] Aborted connection 96 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:22:00 97 [Warning] Aborted connection 97 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:22:01 98 [Warning] Aborted connection 98 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:22:04 99 [Warning] Aborted connection 99 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:22:05 100 [Warning] Aborted connection 100 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:31:58 101 [Warning] Aborted connection 101 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:32:00 102 [Warning] Aborted connection 102 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:32:02 103 [Warning] Aborted connection 103 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:32:04 104 [Warning] Aborted connection 104 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:32:06 105 [Warning] Aborted connection 105 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:41:58 106 [Warning] Aborted connection 106 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:42:00 107 [Warning] Aborted connection 107 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:42:02 108 [Warning] Aborted connection 108 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:42:04 109 [Warning] Aborted connection 109 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:42:06 110 [Warning] Aborted connection 110 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:51:59 111 [Warning] Aborted connection 111 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:52:01 112 [Warning] Aborted connection 112 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:52:02 113 [Warning] Aborted connection 113 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:52:05 114 [Warning] Aborted connection 114 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 20:52:06 115 [Warning] Aborted connection 115 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:01:59 116 [Warning] Aborted connection 116 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:02:01 117 [Warning] Aborted connection 117 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:02:02 118 [Warning] Aborted connection 118 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:02:05 119 [Warning] Aborted connection 119 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:02:06 120 [Warning] Aborted connection 120 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:11:59 121 [Warning] Aborted connection 121 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:12:01 122 [Warning] Aborted connection 122 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:12:03 123 [Warning] Aborted connection 123 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:12:05 124 [Warning] Aborted connection 124 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:12:07 125 [Warning] Aborted connection 125 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:21:59 126 [Warning] Aborted connection 126 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:22:01 127 [Warning] Aborted connection 127 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:22:03 128 [Warning] Aborted connection 128 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:22:05 129 [Warning] Aborted connection 129 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:22:07 130 [Warning] Aborted connection 130 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:32:00 131 [Warning] Aborted connection 131 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:32:02 132 [Warning] Aborted connection 132 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:32:03 133 [Warning] Aborted connection 133 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:32:06 134 [Warning] Aborted connection 134 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:32:07 135 [Warning] Aborted connection 135 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:42:00 136 [Warning] Aborted connection 136 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:42:02 137 [Warning] Aborted connection 137 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:42:03 138 [Warning] Aborted connection 138 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:42:06 139 [Warning] Aborted connection 139 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:42:07 140 [Warning] Aborted connection 140 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:52:00 141 [Warning] Aborted connection 141 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:52:02 142 [Warning] Aborted connection 142 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:52:04 143 [Warning] Aborted connection 143 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:52:06 144 [Warning] Aborted connection 144 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 21:52:08 145 [Warning] Aborted connection 145 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:02:00 146 [Warning] Aborted connection 146 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:02:02 147 [Warning] Aborted connection 147 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:02:04 148 [Warning] Aborted connection 148 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:02:06 149 [Warning] Aborted connection 149 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:02:08 150 [Warning] Aborted connection 150 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:12:01 151 [Warning] Aborted connection 151 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:12:03 152 [Warning] Aborted connection 152 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:12:04 153 [Warning] Aborted connection 153 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:12:07 154 [Warning] Aborted connection 154 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:12:08 155 [Warning] Aborted connection 155 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:22:01 156 [Warning] Aborted connection 156 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:22:03 157 [Warning] Aborted connection 157 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:22:04 158 [Warning] Aborted connection 158 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:22:07 159 [Warning] Aborted connection 159 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:22:08 160 [Warning] Aborted connection 160 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:32:01 161 [Warning] Aborted connection 161 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:32:03 162 [Warning] Aborted connection 162 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:32:05 163 [Warning] Aborted connection 163 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:32:07 164 [Warning] Aborted connection 164 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:32:09 165 [Warning] Aborted connection 165 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:42:01 166 [Warning] Aborted connection 166 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:42:03 167 [Warning] Aborted connection 167 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:42:05 168 [Warning] Aborted connection 168 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:42:08 169 [Warning] Aborted connection 169 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:42:09 170 [Warning] Aborted connection 170 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:52:02 171 [Warning] Aborted connection 171 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:52:04 172 [Warning] Aborted connection 172 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:52:05 173 [Warning] Aborted connection 173 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:52:08 174 [Warning] Aborted connection 174 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 22:52:09 175 [Warning] Aborted connection 175 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:02:02 176 [Warning] Aborted connection 176 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:02:04 177 [Warning] Aborted connection 177 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:02:06 178 [Warning] Aborted connection 178 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:02:08 179 [Warning] Aborted connection 179 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:02:10 180 [Warning] Aborted connection 180 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:12:02 181 [Warning] Aborted connection 181 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:12:04 182 [Warning] Aborted connection 182 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:12:06 183 [Warning] Aborted connection 183 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:12:08 184 [Warning] Aborted connection 184 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:12:10 185 [Warning] Aborted connection 185 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:22:02 186 [Warning] Aborted connection 186 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:22:05 187 [Warning] Aborted connection 187 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:22:06 188 [Warning] Aborted connection 188 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:22:09 189 [Warning] Aborted connection 189 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:22:10 190 [Warning] Aborted connection 190 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:32:03 191 [Warning] Aborted connection 191 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:32:05 192 [Warning] Aborted connection 192 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:32:06 193 [Warning] Aborted connection 193 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:32:09 194 [Warning] Aborted connection 194 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:32:10 195 [Warning] Aborted connection 195 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:42:03 196 [Warning] Aborted connection 196 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:42:05 197 [Warning] Aborted connection 197 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:42:06 198 [Warning] Aborted connection 198 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:42:09 199 [Warning] Aborted connection 199 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:42:10 200 [Warning] Aborted connection 200 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:52:03 201 [Warning] Aborted connection 201 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:52:05 202 [Warning] Aborted connection 202 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:52:07 203 [Warning] Aborted connection 203 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:52:09 204 [Warning] Aborted connection 204 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-01 23:52:11 205 [Warning] Aborted connection 205 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:02:03 206 [Warning] Aborted connection 206 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:02:06 207 [Warning] Aborted connection 207 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:02:07 208 [Warning] Aborted connection 208 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:02:09 209 [Warning] Aborted connection 209 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:02:11 210 [Warning] Aborted connection 210 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:12:04 211 [Warning] Aborted connection 211 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:12:06 212 [Warning] Aborted connection 212 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:12:07 213 [Warning] Aborted connection 213 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:12:10 214 [Warning] Aborted connection 214 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:12:11 215 [Warning] Aborted connection 215 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:22:04 216 [Warning] Aborted connection 216 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:22:06 217 [Warning] Aborted connection 217 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:22:08 218 [Warning] Aborted connection 218 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:22:10 219 [Warning] Aborted connection 219 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:22:12 220 [Warning] Aborted connection 220 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:32:04 221 [Warning] Aborted connection 221 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:32:06 222 [Warning] Aborted connection 222 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:32:08 223 [Warning] Aborted connection 223 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:32:10 224 [Warning] Aborted connection 224 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:32:12 225 [Warning] Aborted connection 225 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:42:05 226 [Warning] Aborted connection 226 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:42:07 227 [Warning] Aborted connection 227 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:42:08 228 [Warning] Aborted connection 228 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:42:11 229 [Warning] Aborted connection 229 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:42:12 230 [Warning] Aborted connection 230 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:52:05 231 [Warning] Aborted connection 231 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:52:07 232 [Warning] Aborted connection 232 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:52:08 233 [Warning] Aborted connection 233 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:52:11 234 [Warning] Aborted connection 234 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 0:52:12 235 [Warning] Aborted connection 235 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:02:05 236 [Warning] Aborted connection 236 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:02:07 237 [Warning] Aborted connection 237 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:02:09 238 [Warning] Aborted connection 238 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:02:11 239 [Warning] Aborted connection 239 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:02:13 240 [Warning] Aborted connection 240 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:12:05 241 [Warning] Aborted connection 241 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:12:07 242 [Warning] Aborted connection 242 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:12:09 243 [Warning] Aborted connection 243 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:12:11 244 [Warning] Aborted connection 244 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:12:13 245 [Warning] Aborted connection 245 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:22:06 246 [Warning] Aborted connection 246 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:22:08 247 [Warning] Aborted connection 247 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:22:09 248 [Warning] Aborted connection 248 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:22:12 249 [Warning] Aborted connection 249 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:22:13 250 [Warning] Aborted connection 250 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:32:06 251 [Warning] Aborted connection 251 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:32:08 252 [Warning] Aborted connection 252 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:32:09 253 [Warning] Aborted connection 253 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:32:12 254 [Warning] Aborted connection 254 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:32:13 255 [Warning] Aborted connection 255 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:42:06 256 [Warning] Aborted connection 256 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:42:08 257 [Warning] Aborted connection 257 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:42:10 258 [Warning] Aborted connection 258 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:42:12 259 [Warning] Aborted connection 259 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:42:14 260 [Warning] Aborted connection 260 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:52:06 261 [Warning] Aborted connection 261 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:52:08 262 [Warning] Aborted connection 262 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:52:10 263 [Warning] Aborted connection 263 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:52:12 264 [Warning] Aborted connection 264 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 1:52:14 265 [Warning] Aborted connection 265 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:02:07 266 [Warning] Aborted connection 266 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:02:09 267 [Warning] Aborted connection 267 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:02:10 268 [Warning] Aborted connection 268 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:02:13 269 [Warning] Aborted connection 269 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:02:14 270 [Warning] Aborted connection 270 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:12:07 271 [Warning] Aborted connection 271 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:12:09 272 [Warning] Aborted connection 272 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:12:10 273 [Warning] Aborted connection 273 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:12:13 274 [Warning] Aborted connection 274 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:12:14 275 [Warning] Aborted connection 275 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:22:07 276 [Warning] Aborted connection 276 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:22:09 277 [Warning] Aborted connection 277 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:22:11 278 [Warning] Aborted connection 278 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:22:13 279 [Warning] Aborted connection 279 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:22:15 280 [Warning] Aborted connection 280 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:32:07 281 [Warning] Aborted connection 281 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:32:09 282 [Warning] Aborted connection 282 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:32:11 283 [Warning] Aborted connection 283 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:32:13 284 [Warning] Aborted connection 284 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:32:15 285 [Warning] Aborted connection 285 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:42:08 286 [Warning] Aborted connection 286 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:42:10 287 [Warning] Aborted connection 287 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:42:11 288 [Warning] Aborted connection 288 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:42:14 289 [Warning] Aborted connection 289 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:42:15 290 [Warning] Aborted connection 290 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:52:08 291 [Warning] Aborted connection 291 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:52:10 292 [Warning] Aborted connection 292 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:52:11 293 [Warning] Aborted connection 293 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:52:14 294 [Warning] Aborted connection 294 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 2:52:15 295 [Warning] Aborted connection 295 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:02:08 296 [Warning] Aborted connection 296 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:02:10 297 [Warning] Aborted connection 297 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:02:12 298 [Warning] Aborted connection 298 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:02:14 299 [Warning] Aborted connection 299 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:02:16 300 [Warning] Aborted connection 300 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:12:09 301 [Warning] Aborted connection 301 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:12:11 302 [Warning] Aborted connection 302 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:12:12 303 [Warning] Aborted connection 303 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:12:14 304 [Warning] Aborted connection 304 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:12:16 305 [Warning] Aborted connection 305 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:22:09 306 [Warning] Aborted connection 306 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:22:11 307 [Warning] Aborted connection 307 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:22:12 308 [Warning] Aborted connection 308 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:22:15 309 [Warning] Aborted connection 309 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:22:16 310 [Warning] Aborted connection 310 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:32:09 311 [Warning] Aborted connection 311 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:32:11 312 [Warning] Aborted connection 312 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:32:13 313 [Warning] Aborted connection 313 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:32:15 314 [Warning] Aborted connection 314 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:32:17 315 [Warning] Aborted connection 315 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:42:09 316 [Warning] Aborted connection 316 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:42:11 317 [Warning] Aborted connection 317 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:42:13 318 [Warning] Aborted connection 318 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:42:15 319 [Warning] Aborted connection 319 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:42:17 320 [Warning] Aborted connection 320 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:52:10 321 [Warning] Aborted connection 321 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:52:12 322 [Warning] Aborted connection 322 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:52:13 323 [Warning] Aborted connection 323 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:52:15 324 [Warning] Aborted connection 324 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 3:52:17 325 [Warning] Aborted connection 325 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:02:10 326 [Warning] Aborted connection 326 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:02:12 327 [Warning] Aborted connection 327 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:02:13 328 [Warning] Aborted connection 328 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:02:16 329 [Warning] Aborted connection 329 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:02:17 330 [Warning] Aborted connection 330 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:12:10 331 [Warning] Aborted connection 331 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:12:12 332 [Warning] Aborted connection 332 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:12:13 333 [Warning] Aborted connection 333 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:12:16 334 [Warning] Aborted connection 334 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:12:18 335 [Warning] Aborted connection 335 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:22:10 336 [Warning] Aborted connection 336 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:22:12 337 [Warning] Aborted connection 337 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:22:14 338 [Warning] Aborted connection 338 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:22:16 339 [Warning] Aborted connection 339 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:22:18 340 [Warning] Aborted connection 340 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:32:11 341 [Warning] Aborted connection 341 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:32:13 342 [Warning] Aborted connection 342 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:32:14 343 [Warning] Aborted connection 343 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:32:17 344 [Warning] Aborted connection 344 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:32:18 345 [Warning] Aborted connection 345 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:42:11 346 [Warning] Aborted connection 346 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:42:13 347 [Warning] Aborted connection 347 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:42:14 348 [Warning] Aborted connection 348 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:42:17 349 [Warning] Aborted connection 349 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:42:18 350 [Warning] Aborted connection 350 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:52:11 351 [Warning] Aborted connection 351 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:52:13 352 [Warning] Aborted connection 352 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:52:15 353 [Warning] Aborted connection 353 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:52:17 354 [Warning] Aborted connection 354 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 4:52:19 355 [Warning] Aborted connection 355 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:02:11 356 [Warning] Aborted connection 356 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:02:13 357 [Warning] Aborted connection 357 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:02:15 358 [Warning] Aborted connection 358 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:02:17 359 [Warning] Aborted connection 359 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:02:19 360 [Warning] Aborted connection 360 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:12:12 361 [Warning] Aborted connection 361 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:12:14 362 [Warning] Aborted connection 362 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:12:15 363 [Warning] Aborted connection 363 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:12:18 364 [Warning] Aborted connection 364 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:12:19 365 [Warning] Aborted connection 365 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:22:12 366 [Warning] Aborted connection 366 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:22:14 367 [Warning] Aborted connection 367 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:22:15 368 [Warning] Aborted connection 368 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:22:18 369 [Warning] Aborted connection 369 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:22:19 370 [Warning] Aborted connection 370 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:32:12 371 [Warning] Aborted connection 371 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:32:14 372 [Warning] Aborted connection 372 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:32:16 373 [Warning] Aborted connection 373 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:32:18 374 [Warning] Aborted connection 374 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:32:20 375 [Warning] Aborted connection 375 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:42:12 376 [Warning] Aborted connection 376 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:42:14 377 [Warning] Aborted connection 377 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:42:16 378 [Warning] Aborted connection 378 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:42:18 379 [Warning] Aborted connection 379 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:42:20 380 [Warning] Aborted connection 380 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:52:13 381 [Warning] Aborted connection 381 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:52:15 382 [Warning] Aborted connection 382 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:52:16 383 [Warning] Aborted connection 383 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:52:19 384 [Warning] Aborted connection 384 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 5:52:20 385 [Warning] Aborted connection 385 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:02:13 386 [Warning] Aborted connection 386 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:02:15 387 [Warning] Aborted connection 387 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:02:16 388 [Warning] Aborted connection 388 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:02:19 389 [Warning] Aborted connection 389 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:02:20 390 [Warning] Aborted connection 390 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:12:13 391 [Warning] Aborted connection 391 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:12:15 392 [Warning] Aborted connection 392 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:12:17 393 [Warning] Aborted connection 393 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:12:19 394 [Warning] Aborted connection 394 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:12:21 395 [Warning] Aborted connection 395 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:22:13 396 [Warning] Aborted connection 396 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:22:15 397 [Warning] Aborted connection 397 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:22:17 398 [Warning] Aborted connection 398 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:22:19 399 [Warning] Aborted connection 399 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:22:21 400 [Warning] Aborted connection 400 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:32:14 401 [Warning] Aborted connection 401 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:32:16 402 [Warning] Aborted connection 402 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:32:17 403 [Warning] Aborted connection 403 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:32:20 404 [Warning] Aborted connection 404 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:32:21 405 [Warning] Aborted connection 405 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:42:14 406 [Warning] Aborted connection 406 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:42:16 407 [Warning] Aborted connection 407 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:42:17 408 [Warning] Aborted connection 408 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:42:20 409 [Warning] Aborted connection 409 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:42:21 410 [Warning] Aborted connection 410 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:52:14 411 [Warning] Aborted connection 411 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:52:16 412 [Warning] Aborted connection 412 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:52:18 413 [Warning] Aborted connection 413 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:52:20 414 [Warning] Aborted connection 414 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 6:52:22 415 [Warning] Aborted connection 415 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:02:14 416 [Warning] Aborted connection 416 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:02:16 417 [Warning] Aborted connection 417 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:02:18 418 [Warning] Aborted connection 418 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:02:20 419 [Warning] Aborted connection 419 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:02:22 420 [Warning] Aborted connection 420 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:12:15 421 [Warning] Aborted connection 421 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:12:17 422 [Warning] Aborted connection 422 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:12:18 423 [Warning] Aborted connection 423 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:12:21 424 [Warning] Aborted connection 424 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:12:22 425 [Warning] Aborted connection 425 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:22:15 426 [Warning] Aborted connection 426 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:22:17 427 [Warning] Aborted connection 427 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:22:18 428 [Warning] Aborted connection 428 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:22:21 429 [Warning] Aborted connection 429 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:22:23 430 [Warning] Aborted connection 430 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:32:15 431 [Warning] Aborted connection 431 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:32:17 432 [Warning] Aborted connection 432 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:32:19 433 [Warning] Aborted connection 433 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:32:21 434 [Warning] Aborted connection 434 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:32:23 435 [Warning] Aborted connection 435 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:42:16 436 [Warning] Aborted connection 436 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:42:18 437 [Warning] Aborted connection 437 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:42:19 438 [Warning] Aborted connection 438 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:42:22 439 [Warning] Aborted connection 439 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:42:23 440 [Warning] Aborted connection 440 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:52:16 441 [Warning] Aborted connection 441 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:52:18 442 [Warning] Aborted connection 442 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:52:19 443 [Warning] Aborted connection 443 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:52:22 444 [Warning] Aborted connection 444 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 7:52:23 445 [Warning] Aborted connection 445 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:02:16 446 [Warning] Aborted connection 446 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:02:18 447 [Warning] Aborted connection 447 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:02:20 448 [Warning] Aborted connection 448 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:02:22 449 [Warning] Aborted connection 449 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:02:24 450 [Warning] Aborted connection 450 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:12:16 451 [Warning] Aborted connection 451 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:12:18 452 [Warning] Aborted connection 452 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:12:20 453 [Warning] Aborted connection 453 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:12:22 454 [Warning] Aborted connection 454 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:12:24 455 [Warning] Aborted connection 455 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:22:17 456 [Warning] Aborted connection 456 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:22:19 457 [Warning] Aborted connection 457 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:22:20 458 [Warning] Aborted connection 458 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:22:23 459 [Warning] Aborted connection 459 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:22:24 460 [Warning] Aborted connection 460 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:32:17 461 [Warning] Aborted connection 461 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:32:19 462 [Warning] Aborted connection 462 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:32:20 463 [Warning] Aborted connection 463 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:32:23 464 [Warning] Aborted connection 464 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:32:24 465 [Warning] Aborted connection 465 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:42:17 466 [Warning] Aborted connection 466 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:42:19 467 [Warning] Aborted connection 467 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:42:21 468 [Warning] Aborted connection 468 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:42:23 469 [Warning] Aborted connection 469 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:42:25 470 [Warning] Aborted connection 470 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:52:17 471 [Warning] Aborted connection 471 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:52:19 472 [Warning] Aborted connection 472 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:52:21 473 [Warning] Aborted connection 473 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:52:23 474 [Warning] Aborted connection 474 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 8:52:25 475 [Warning] Aborted connection 475 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:02:18 476 [Warning] Aborted connection 476 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:02:20 477 [Warning] Aborted connection 477 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:02:21 478 [Warning] Aborted connection 478 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:02:24 479 [Warning] Aborted connection 479 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:02:25 480 [Warning] Aborted connection 480 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:12:18 481 [Warning] Aborted connection 481 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:12:20 482 [Warning] Aborted connection 482 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:12:21 483 [Warning] Aborted connection 483 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:12:24 484 [Warning] Aborted connection 484 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:12:25 485 [Warning] Aborted connection 485 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:22:18 486 [Warning] Aborted connection 486 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:22:20 487 [Warning] Aborted connection 487 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:22:22 488 [Warning] Aborted connection 488 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:22:24 489 [Warning] Aborted connection 489 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:22:26 490 [Warning] Aborted connection 490 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:32:18 491 [Warning] Aborted connection 491 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:32:20 492 [Warning] Aborted connection 492 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:32:22 493 [Warning] Aborted connection 493 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:32:24 494 [Warning] Aborted connection 494 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:32:26 495 [Warning] Aborted connection 495 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:42:19 496 [Warning] Aborted connection 496 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:42:21 497 [Warning] Aborted connection 497 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:42:22 498 [Warning] Aborted connection 498 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:42:25 499 [Warning] Aborted connection 499 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:42:26 500 [Warning] Aborted connection 500 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:52:19 501 [Warning] Aborted connection 501 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:52:21 502 [Warning] Aborted connection 502 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:52:22 503 [Warning] Aborted connection 503 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:52:25 504 [Warning] Aborted connection 504 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 9:52:26 505 [Warning] Aborted connection 505 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:02:19 506 [Warning] Aborted connection 506 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:02:21 507 [Warning] Aborted connection 507 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:02:23 508 [Warning] Aborted connection 508 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:02:25 509 [Warning] Aborted connection 509 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:02:27 510 [Warning] Aborted connection 510 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:12:19 511 [Warning] Aborted connection 511 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:12:22 512 [Warning] Aborted connection 512 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:12:23 513 [Warning] Aborted connection 513 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:12:26 514 [Warning] Aborted connection 514 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:12:27 515 [Warning] Aborted connection 515 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:22:20 516 [Warning] Aborted connection 516 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:22:22 517 [Warning] Aborted connection 517 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:22:23 518 [Warning] Aborted connection 518 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:22:26 519 [Warning] Aborted connection 519 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:22:27 520 [Warning] Aborted connection 520 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:32:20 521 [Warning] Aborted connection 521 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:32:22 522 [Warning] Aborted connection 522 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:32:24 523 [Warning] Aborted connection 523 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:32:26 524 [Warning] Aborted connection 524 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:32:28 525 [Warning] Aborted connection 525 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:42:20 526 [Warning] Aborted connection 526 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:42:22 527 [Warning] Aborted connection 527 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:42:24 528 [Warning] Aborted connection 528 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:42:26 529 [Warning] Aborted connection 529 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:42:28 530 [Warning] Aborted connection 530 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:52:21 531 [Warning] Aborted connection 531 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:52:23 532 [Warning] Aborted connection 532 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:52:24 533 [Warning] Aborted connection 533 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:52:27 534 [Warning] Aborted connection 534 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 10:52:28 535 [Warning] Aborted connection 535 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:02:21 536 [Warning] Aborted connection 536 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:02:23 537 [Warning] Aborted connection 537 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:02:24 538 [Warning] Aborted connection 538 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:02:27 539 [Warning] Aborted connection 539 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:02:28 540 [Warning] Aborted connection 540 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:12:21 541 [Warning] Aborted connection 541 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:12:23 542 [Warning] Aborted connection 542 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:12:25 543 [Warning] Aborted connection 543 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:12:27 544 [Warning] Aborted connection 544 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:12:29 545 [Warning] Aborted connection 545 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:22:21 546 [Warning] Aborted connection 546 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:22:23 547 [Warning] Aborted connection 547 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:22:25 548 [Warning] Aborted connection 548 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:22:27 549 [Warning] Aborted connection 549 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:22:29 550 [Warning] Aborted connection 550 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:32:22 551 [Warning] Aborted connection 551 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:32:24 552 [Warning] Aborted connection 552 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:32:25 553 [Warning] Aborted connection 553 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:32:28 554 [Warning] Aborted connection 554 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:32:29 555 [Warning] Aborted connection 555 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:42:22 556 [Warning] Aborted connection 556 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:42:24 557 [Warning] Aborted connection 557 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:42:25 558 [Warning] Aborted connection 558 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:42:28 559 [Warning] Aborted connection 559 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:42:29 560 [Warning] Aborted connection 560 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:52:22 561 [Warning] Aborted connection 561 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:52:24 562 [Warning] Aborted connection 562 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:52:26 563 [Warning] Aborted connection 563 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:52:28 564 [Warning] Aborted connection 564 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 11:52:30 565 [Warning] Aborted connection 565 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:02:23 566 [Warning] Aborted connection 566 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:02:25 567 [Warning] Aborted connection 567 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:02:26 568 [Warning] Aborted connection 568 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:02:28 569 [Warning] Aborted connection 569 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:02:30 570 [Warning] Aborted connection 570 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:12:23 571 [Warning] Aborted connection 571 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:12:25 572 [Warning] Aborted connection 572 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:12:26 573 [Warning] Aborted connection 573 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:12:29 574 [Warning] Aborted connection 574 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:12:30 575 [Warning] Aborted connection 575 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:22:23 576 [Warning] Aborted connection 576 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:22:25 577 [Warning] Aborted connection 577 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:22:27 578 [Warning] Aborted connection 578 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:22:29 579 [Warning] Aborted connection 579 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:22:31 580 [Warning] Aborted connection 580 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:32:23 581 [Warning] Aborted connection 581 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:32:25 582 [Warning] Aborted connection 582 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:32:27 583 [Warning] Aborted connection 583 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:32:29 584 [Warning] Aborted connection 584 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:32:31 585 [Warning] Aborted connection 585 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:42:24 586 [Warning] Aborted connection 586 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:42:26 587 [Warning] Aborted connection 587 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:42:27 588 [Warning] Aborted connection 588 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:42:30 589 [Warning] Aborted connection 589 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:42:31 590 [Warning] Aborted connection 590 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:52:24 591 [Warning] Aborted connection 591 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:52:26 592 [Warning] Aborted connection 592 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:52:27 593 [Warning] Aborted connection 593 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:52:30 594 [Warning] Aborted connection 594 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 12:52:31 595 [Warning] Aborted connection 595 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:02:24 596 [Warning] Aborted connection 596 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:02:26 597 [Warning] Aborted connection 597 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:02:28 598 [Warning] Aborted connection 598 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:02:30 599 [Warning] Aborted connection 599 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:02:32 600 [Warning] Aborted connection 600 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:12:24 601 [Warning] Aborted connection 601 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:12:26 602 [Warning] Aborted connection 602 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:12:28 603 [Warning] Aborted connection 603 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:12:30 604 [Warning] Aborted connection 604 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:12:32 605 [Warning] Aborted connection 605 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:22:25 606 [Warning] Aborted connection 606 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:22:27 607 [Warning] Aborted connection 607 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:22:28 608 [Warning] Aborted connection 608 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:22:31 609 [Warning] Aborted connection 609 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:22:32 610 [Warning] Aborted connection 610 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:32:25 611 [Warning] Aborted connection 611 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:32:27 612 [Warning] Aborted connection 612 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:32:28 613 [Warning] Aborted connection 613 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:32:31 614 [Warning] Aborted connection 614 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:32:32 615 [Warning] Aborted connection 615 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:42:25 616 [Warning] Aborted connection 616 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:42:27 617 [Warning] Aborted connection 617 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:42:29 618 [Warning] Aborted connection 618 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:42:31 619 [Warning] Aborted connection 619 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:42:33 620 [Warning] Aborted connection 620 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:52:26 621 [Warning] Aborted connection 621 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:52:27 622 [Warning] Aborted connection 622 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:52:29 623 [Warning] Aborted connection 623 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:52:32 624 [Warning] Aborted connection 624 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 13:52:33 625 [Warning] Aborted connection 625 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 14:02:26 626 [Warning] Aborted connection 626 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 14:02:28 627 [Warning] Aborted connection 627 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 14:02:29 628 [Warning] Aborted connection 628 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 14:02:32 629 [Warning] Aborted connection 629 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) +2022-06-02 14:02:33 630 [Warning] Aborted connection 630 to db: 'unconnected' user: 'aplication' host: '172.20.0.1' (Got timeout reading communication packets) diff --git a/data_db2/databases/aria_log.00000001 b/data_db2/databases/aria_log.00000001 new file mode 100644 index 0000000..1c593be Binary files /dev/null and b/data_db2/databases/aria_log.00000001 differ diff --git a/data_db2/databases/aria_log_control b/data_db2/databases/aria_log_control new file mode 100644 index 0000000..9267921 Binary files /dev/null and b/data_db2/databases/aria_log_control differ diff --git a/data_db2/databases/ib_logfile0 b/data_db2/databases/ib_logfile0 new file mode 100644 index 0000000..64c4b8d Binary files /dev/null and b/data_db2/databases/ib_logfile0 differ diff --git a/data_db2/databases/ibdata1 b/data_db2/databases/ibdata1 new file mode 100644 index 0000000..8663f4f Binary files /dev/null and b/data_db2/databases/ibdata1 differ diff --git a/data_db2/databases/ibtmp1 b/data_db2/databases/ibtmp1 new file mode 100644 index 0000000..202d95c Binary files /dev/null and b/data_db2/databases/ibtmp1 differ diff --git a/data_db2/databases/main_database/Chaleco_807D3AF66C18.frm b/data_db2/databases/main_database/Chaleco_807D3AF66C18.frm new file mode 100644 index 0000000..089a9ef Binary files /dev/null and b/data_db2/databases/main_database/Chaleco_807D3AF66C18.frm differ diff --git a/data_db2/databases/main_database/Chaleco_807D3AF66C18.ibd b/data_db2/databases/main_database/Chaleco_807D3AF66C18.ibd new file mode 100644 index 0000000..1099eab Binary files /dev/null and b/data_db2/databases/main_database/Chaleco_807D3AF66C18.ibd differ diff --git a/data_db2/databases/main_database/db.opt b/data_db2/databases/main_database/db.opt new file mode 100644 index 0000000..ccbf699 --- /dev/null +++ b/data_db2/databases/main_database/db.opt @@ -0,0 +1,2 @@ +default-character-set=utf8mb4 +default-collation=utf8mb4_general_ci diff --git a/data_db2/databases/main_database/devices.frm b/data_db2/databases/main_database/devices.frm new file mode 100644 index 0000000..23d039e Binary files /dev/null and b/data_db2/databases/main_database/devices.frm differ diff --git a/data_db2/databases/main_database/devices.ibd b/data_db2/databases/main_database/devices.ibd new file mode 100644 index 0000000..b3cc8df Binary files /dev/null and b/data_db2/databases/main_database/devices.ibd differ diff --git a/data_db2/databases/main_database/firmwares.frm b/data_db2/databases/main_database/firmwares.frm new file mode 100644 index 0000000..601d3ae Binary files /dev/null and b/data_db2/databases/main_database/firmwares.frm differ diff --git a/data_db2/databases/main_database/firmwares.ibd b/data_db2/databases/main_database/firmwares.ibd new file mode 100644 index 0000000..d2638d1 Binary files /dev/null and b/data_db2/databases/main_database/firmwares.ibd differ diff --git a/data_db2/databases/main_database/getFilepath.frm b/data_db2/databases/main_database/getFilepath.frm new file mode 100644 index 0000000..b5fd3eb --- /dev/null +++ b/data_db2/databases/main_database/getFilepath.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`firmwares`.`filepath` AS `filepath`,`main_database`.`firmwares`.`etiqueta` AS `etiqueta`,`main_database`.`products`.`product` AS `product`,`main_database`.`devices`.`product_id` AS `product_id`,`main_database`.`devices`.`chip_id` AS `chip_id` from ((`main_database`.`devices` join `main_database`.`firmwares` on(`main_database`.`devices`.`firmware_id_update` = `main_database`.`firmwares`.`firmware_id`)) join `main_database`.`products` on(`main_database`.`devices`.`product_id` = `main_database`.`products`.`product_id`)) +md5=2924f0f66852d1cee702f8a855488c29 +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `firmwares`.`firmware_id` AS `firmware_id`,`firmwares`.`filepath` AS `filepath`,`firmwares`.`etiqueta` AS `etiqueta`,`products`.`product` AS `product`,`devices`.`product_id` AS `product_id`,`devices`.`chip_id` AS `chip_id` from ((`devices` join `firmwares` on((`devices`.`firmware_id_update` = `firmwares`.`firmware_id`))) join `products` on((`devices`.`product_id` = `products`.`product_id`))) +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`firmwares`.`filepath` AS `filepath`,`main_database`.`firmwares`.`etiqueta` AS `etiqueta`,`main_database`.`products`.`product` AS `product`,`main_database`.`devices`.`product_id` AS `product_id`,`main_database`.`devices`.`chip_id` AS `chip_id` from ((`main_database`.`devices` join `main_database`.`firmwares` on(`main_database`.`devices`.`firmware_id_update` = `main_database`.`firmwares`.`firmware_id`)) join `main_database`.`products` on(`main_database`.`devices`.`product_id` = `main_database`.`products`.`product_id`)) +mariadb-version=100513 diff --git a/data_db2/databases/main_database/getFilepathInsert.frm b/data_db2/databases/main_database/getFilepathInsert.frm new file mode 100644 index 0000000..c28ea82 --- /dev/null +++ b/data_db2/databases/main_database/getFilepathInsert.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`firmwares`.`filepath` AS `filepath`,`main_database`.`products`.`product` AS `product`,`main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`products`.`product_id` AS `product_id` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`products`.`product_id` = `main_database`.`firmwares`.`product_id`)) order by `main_database`.`firmwares`.`firmware_id` desc +md5=978a1ebe2892e80f4998591925ea81db +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `firmwares`.`filepath` AS `filepath`,`products`.`product` AS `product`,`firmwares`.`firmware_id` AS `firmware_id`,`products`.`product_id` AS `product_id` from (`firmwares` join `products` on((`products`.`product_id` = `firmwares`.`product_id`))) order by `firmwares`.`firmware_id` desc +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`firmwares`.`filepath` AS `filepath`,`main_database`.`products`.`product` AS `product`,`main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`products`.`product_id` AS `product_id` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`products`.`product_id` = `main_database`.`firmwares`.`product_id`)) order by `main_database`.`firmwares`.`firmware_id` desc +mariadb-version=100513 diff --git a/data_db2/databases/main_database/getFirmwareProductId.frm b/data_db2/databases/main_database/getFirmwareProductId.frm new file mode 100644 index 0000000..57dd016 --- /dev/null +++ b/data_db2/databases/main_database/getFirmwareProductId.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`products`.`product` AS `product`,`main_database`.`products`.`product_id` AS `product_id` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`products`.`product_id` = `main_database`.`firmwares`.`product_id`)) order by `main_database`.`firmwares`.`firmware_id` desc +md5=186200faacfe434d4e6222b404ae7dfd +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `firmwares`.`firmware_id` AS `firmware_id`,`products`.`product` AS `product`,`products`.`product_id` AS `product_id` from (`firmwares` join `products` on((`products`.`product_id` = `firmwares`.`product_id`))) order by `firmwares`.`firmware_id` desc +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`products`.`product` AS `product`,`main_database`.`products`.`product_id` AS `product_id` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`products`.`product_id` = `main_database`.`firmwares`.`product_id`)) order by `main_database`.`firmwares`.`firmware_id` desc +mariadb-version=100513 diff --git a/data_db2/databases/main_database/getFirmwareVersion.frm b/data_db2/databases/main_database/getFirmwareVersion.frm new file mode 100644 index 0000000..dfd5fd5 --- /dev/null +++ b/data_db2/databases/main_database/getFirmwareVersion.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`devices`.`chip_id` AS `chip_id`,`main_database`.`firmwares`.`firmware_version` AS `firmware_version` from (`main_database`.`devices` join `main_database`.`firmwares` on(`main_database`.`devices`.`firmware_id_update` = `main_database`.`firmwares`.`firmware_id`)) +md5=1810b2feb0ec9d693ba9a4d44f4393f1 +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `devices`.`chip_id` AS `chip_id`,`firmwares`.`firmware_version` AS `firmware_version` from (`devices` join `firmwares` on((`devices`.`firmware_id_update` = `firmwares`.`firmware_id`))) +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`devices`.`chip_id` AS `chip_id`,`main_database`.`firmwares`.`firmware_version` AS `firmware_version` from (`main_database`.`devices` join `main_database`.`firmwares` on(`main_database`.`devices`.`firmware_id_update` = `main_database`.`firmwares`.`firmware_id`)) +mariadb-version=100513 diff --git a/data_db2/databases/main_database/getProductChipId.frm b/data_db2/databases/main_database/getProductChipId.frm new file mode 100644 index 0000000..df23c2f --- /dev/null +++ b/data_db2/databases/main_database/getProductChipId.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`products`.`product` AS `product`,`main_database`.`devices`.`chip_id` AS `chip_id` from (`main_database`.`devices` join `main_database`.`products` on(`main_database`.`devices`.`product_id` = `main_database`.`products`.`product_id`)) +md5=d8b81498fe3f62a4011a2fb0cc23b288 +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `products`.`product` AS `product`,`devices`.`chip_id` AS `chip_id` from (`devices` join `products` on((`devices`.`product_id` = `products`.`product_id`))) +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`products`.`product` AS `product`,`main_database`.`devices`.`chip_id` AS `chip_id` from (`main_database`.`devices` join `main_database`.`products` on(`main_database`.`devices`.`product_id` = `main_database`.`products`.`product_id`)) +mariadb-version=100513 diff --git a/data_db2/databases/main_database/getProductFirmware.frm b/data_db2/databases/main_database/getProductFirmware.frm new file mode 100644 index 0000000..2f2a2d1 --- /dev/null +++ b/data_db2/databases/main_database/getProductFirmware.frm @@ -0,0 +1,16 @@ +TYPE=VIEW +query=select `main_database`.`products`.`product` AS `product`,`main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`firmwares`.`product_id` AS `product_id`,`main_database`.`firmwares`.`firmware_version` AS `firmware_version` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`firmwares`.`product_id` = `main_database`.`products`.`product_id`)) +md5=75b755f10b00d2f75d526587ddad8849 +updatable=1 +algorithm=0 +definer_user=aplication +definer_host=% +suid=1 +with_check_option=0 +timestamp=2022-02-18 11:22:55 +create-version=2 +source=select `products`.`product` AS `product`,`firmwares`.`firmware_id` AS `firmware_id`,`firmwares`.`product_id` AS `product_id`,`firmwares`.`firmware_version` AS `firmware_version` from (`firmwares` join `products` on((`firmwares`.`product_id` = `products`.`product_id`))) +client_cs_name=utf8mb4 +connection_cl_name=utf8mb4_general_ci +view_body_utf8=select `main_database`.`products`.`product` AS `product`,`main_database`.`firmwares`.`firmware_id` AS `firmware_id`,`main_database`.`firmwares`.`product_id` AS `product_id`,`main_database`.`firmwares`.`firmware_version` AS `firmware_version` from (`main_database`.`firmwares` join `main_database`.`products` on(`main_database`.`firmwares`.`product_id` = `main_database`.`products`.`product_id`)) +mariadb-version=100513 diff --git a/data_db2/databases/main_database/pings.frm b/data_db2/databases/main_database/pings.frm new file mode 100644 index 0000000..4586dd0 Binary files /dev/null and b/data_db2/databases/main_database/pings.frm differ diff --git a/data_db2/databases/main_database/pings.ibd b/data_db2/databases/main_database/pings.ibd new file mode 100644 index 0000000..9591275 Binary files /dev/null and b/data_db2/databases/main_database/pings.ibd differ diff --git a/data_db2/databases/main_database/products.frm b/data_db2/databases/main_database/products.frm new file mode 100644 index 0000000..9aea2a7 Binary files /dev/null and b/data_db2/databases/main_database/products.frm differ diff --git a/data_db2/databases/main_database/products.ibd b/data_db2/databases/main_database/products.ibd new file mode 100644 index 0000000..a8d482a Binary files /dev/null and b/data_db2/databases/main_database/products.ibd differ diff --git a/data_db2/databases/multi-master.info b/data_db2/databases/multi-master.info new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/column_stats.MYD b/data_db2/databases/mysql/column_stats.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/column_stats.MYI b/data_db2/databases/mysql/column_stats.MYI new file mode 100644 index 0000000..efad726 Binary files /dev/null and b/data_db2/databases/mysql/column_stats.MYI differ diff --git a/data_db2/databases/mysql/column_stats.frm b/data_db2/databases/mysql/column_stats.frm new file mode 100644 index 0000000..a5b28af Binary files /dev/null and b/data_db2/databases/mysql/column_stats.frm differ diff --git a/data_db2/databases/mysql/columns_priv.MYD b/data_db2/databases/mysql/columns_priv.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/columns_priv.MYI b/data_db2/databases/mysql/columns_priv.MYI new file mode 100644 index 0000000..eef5fea Binary files /dev/null and b/data_db2/databases/mysql/columns_priv.MYI differ diff --git a/data_db2/databases/mysql/columns_priv.frm b/data_db2/databases/mysql/columns_priv.frm new file mode 100644 index 0000000..8587bda Binary files /dev/null and b/data_db2/databases/mysql/columns_priv.frm differ diff --git a/data_db2/databases/mysql/db.MYD b/data_db2/databases/mysql/db.MYD new file mode 100644 index 0000000..17dab56 --- /dev/null +++ b/data_db2/databases/mysql/db.MYD @@ -0,0 +1 @@ +% main_database aplication  \ No newline at end of file diff --git a/data_db2/databases/mysql/db.MYI b/data_db2/databases/mysql/db.MYI new file mode 100644 index 0000000..5d56ad4 Binary files /dev/null and b/data_db2/databases/mysql/db.MYI differ diff --git a/data_db2/databases/mysql/db.frm b/data_db2/databases/mysql/db.frm new file mode 100644 index 0000000..6e08d19 Binary files /dev/null and b/data_db2/databases/mysql/db.frm differ diff --git a/data_db2/databases/mysql/db.opt b/data_db2/databases/mysql/db.opt new file mode 100644 index 0000000..ccbf699 --- /dev/null +++ b/data_db2/databases/mysql/db.opt @@ -0,0 +1,2 @@ +default-character-set=utf8mb4 +default-collation=utf8mb4_general_ci diff --git a/data_db2/databases/mysql/event.MYD b/data_db2/databases/mysql/event.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/event.MYI b/data_db2/databases/mysql/event.MYI new file mode 100644 index 0000000..9c7d83d Binary files /dev/null and b/data_db2/databases/mysql/event.MYI differ diff --git a/data_db2/databases/mysql/event.frm b/data_db2/databases/mysql/event.frm new file mode 100644 index 0000000..32040de Binary files /dev/null and b/data_db2/databases/mysql/event.frm differ diff --git a/data_db2/databases/mysql/func.MYD b/data_db2/databases/mysql/func.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/func.MYI b/data_db2/databases/mysql/func.MYI new file mode 100644 index 0000000..ea76419 Binary files /dev/null and b/data_db2/databases/mysql/func.MYI differ diff --git a/data_db2/databases/mysql/func.frm b/data_db2/databases/mysql/func.frm new file mode 100644 index 0000000..dffbf76 Binary files /dev/null and b/data_db2/databases/mysql/func.frm differ diff --git a/data_db2/databases/mysql/general_log.CSM b/data_db2/databases/mysql/general_log.CSM new file mode 100644 index 0000000..8d08b8d Binary files /dev/null and b/data_db2/databases/mysql/general_log.CSM differ diff --git a/data_db2/databases/mysql/general_log.CSV b/data_db2/databases/mysql/general_log.CSV new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/general_log.frm b/data_db2/databases/mysql/general_log.frm new file mode 100644 index 0000000..e1ee6d8 Binary files /dev/null and b/data_db2/databases/mysql/general_log.frm differ diff --git a/data_db2/databases/mysql/gtid_slave_pos.frm b/data_db2/databases/mysql/gtid_slave_pos.frm new file mode 100644 index 0000000..da5d455 Binary files /dev/null and b/data_db2/databases/mysql/gtid_slave_pos.frm differ diff --git a/data_db2/databases/mysql/gtid_slave_pos.ibd b/data_db2/databases/mysql/gtid_slave_pos.ibd new file mode 100644 index 0000000..cf51835 Binary files /dev/null and b/data_db2/databases/mysql/gtid_slave_pos.ibd differ diff --git a/data_db2/databases/mysql/help_category.MYD b/data_db2/databases/mysql/help_category.MYD new file mode 100644 index 0000000..360a41a Binary files /dev/null and b/data_db2/databases/mysql/help_category.MYD differ diff --git a/data_db2/databases/mysql/help_category.MYI b/data_db2/databases/mysql/help_category.MYI new file mode 100644 index 0000000..8d1e375 Binary files /dev/null and b/data_db2/databases/mysql/help_category.MYI differ diff --git a/data_db2/databases/mysql/help_category.frm b/data_db2/databases/mysql/help_category.frm new file mode 100644 index 0000000..7d512e4 Binary files /dev/null and b/data_db2/databases/mysql/help_category.frm differ diff --git a/data_db2/databases/mysql/help_keyword.MYD b/data_db2/databases/mysql/help_keyword.MYD new file mode 100644 index 0000000..570509b Binary files /dev/null and b/data_db2/databases/mysql/help_keyword.MYD differ diff --git a/data_db2/databases/mysql/help_keyword.MYI b/data_db2/databases/mysql/help_keyword.MYI new file mode 100644 index 0000000..f4b5a91 Binary files /dev/null and b/data_db2/databases/mysql/help_keyword.MYI differ diff --git a/data_db2/databases/mysql/help_keyword.frm b/data_db2/databases/mysql/help_keyword.frm new file mode 100644 index 0000000..b7f4846 Binary files /dev/null and b/data_db2/databases/mysql/help_keyword.frm differ diff --git a/data_db2/databases/mysql/help_relation.MYD b/data_db2/databases/mysql/help_relation.MYD new file mode 100644 index 0000000..f963ea5 Binary files /dev/null and b/data_db2/databases/mysql/help_relation.MYD differ diff --git a/data_db2/databases/mysql/help_relation.MYI b/data_db2/databases/mysql/help_relation.MYI new file mode 100644 index 0000000..cfc7837 Binary files /dev/null and b/data_db2/databases/mysql/help_relation.MYI differ diff --git a/data_db2/databases/mysql/help_relation.frm b/data_db2/databases/mysql/help_relation.frm new file mode 100644 index 0000000..7c1d432 Binary files /dev/null and b/data_db2/databases/mysql/help_relation.frm differ diff --git a/data_db2/databases/mysql/help_topic.MYD b/data_db2/databases/mysql/help_topic.MYD new file mode 100644 index 0000000..ad4c19e Binary files /dev/null and b/data_db2/databases/mysql/help_topic.MYD differ diff --git a/data_db2/databases/mysql/help_topic.MYI b/data_db2/databases/mysql/help_topic.MYI new file mode 100644 index 0000000..7f80dfa Binary files /dev/null and b/data_db2/databases/mysql/help_topic.MYI differ diff --git a/data_db2/databases/mysql/help_topic.frm b/data_db2/databases/mysql/help_topic.frm new file mode 100644 index 0000000..4b7b777 Binary files /dev/null and b/data_db2/databases/mysql/help_topic.frm differ diff --git a/data_db2/databases/mysql/host.MYD b/data_db2/databases/mysql/host.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/host.MYI b/data_db2/databases/mysql/host.MYI new file mode 100644 index 0000000..b69ba40 Binary files /dev/null and b/data_db2/databases/mysql/host.MYI differ diff --git a/data_db2/databases/mysql/host.frm b/data_db2/databases/mysql/host.frm new file mode 100644 index 0000000..1cf3cd2 Binary files /dev/null and b/data_db2/databases/mysql/host.frm differ diff --git a/data_db2/databases/mysql/index_stats.MYD b/data_db2/databases/mysql/index_stats.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/index_stats.MYI b/data_db2/databases/mysql/index_stats.MYI new file mode 100644 index 0000000..7d4d781 Binary files /dev/null and b/data_db2/databases/mysql/index_stats.MYI differ diff --git a/data_db2/databases/mysql/index_stats.frm b/data_db2/databases/mysql/index_stats.frm new file mode 100644 index 0000000..1907677 Binary files /dev/null and b/data_db2/databases/mysql/index_stats.frm differ diff --git a/data_db2/databases/mysql/innodb_index_stats.frm b/data_db2/databases/mysql/innodb_index_stats.frm new file mode 100644 index 0000000..2cc914f Binary files /dev/null and b/data_db2/databases/mysql/innodb_index_stats.frm differ diff --git a/data_db2/databases/mysql/innodb_index_stats.ibd b/data_db2/databases/mysql/innodb_index_stats.ibd new file mode 100644 index 0000000..14e48df Binary files /dev/null and b/data_db2/databases/mysql/innodb_index_stats.ibd differ diff --git a/data_db2/databases/mysql/innodb_table_stats.frm b/data_db2/databases/mysql/innodb_table_stats.frm new file mode 100644 index 0000000..8c953ed Binary files /dev/null and b/data_db2/databases/mysql/innodb_table_stats.frm differ diff --git a/data_db2/databases/mysql/innodb_table_stats.ibd b/data_db2/databases/mysql/innodb_table_stats.ibd new file mode 100644 index 0000000..65b4ad9 Binary files /dev/null and b/data_db2/databases/mysql/innodb_table_stats.ibd differ diff --git a/data_db2/databases/mysql/plugin.MYD b/data_db2/databases/mysql/plugin.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/plugin.MYI b/data_db2/databases/mysql/plugin.MYI new file mode 100644 index 0000000..89721f9 Binary files /dev/null and b/data_db2/databases/mysql/plugin.MYI differ diff --git a/data_db2/databases/mysql/plugin.frm b/data_db2/databases/mysql/plugin.frm new file mode 100644 index 0000000..8aa42dd Binary files /dev/null and b/data_db2/databases/mysql/plugin.frm differ diff --git a/data_db2/databases/mysql/proc.MYD b/data_db2/databases/mysql/proc.MYD new file mode 100644 index 0000000..023ae4a Binary files /dev/null and b/data_db2/databases/mysql/proc.MYD differ diff --git a/data_db2/databases/mysql/proc.MYI b/data_db2/databases/mysql/proc.MYI new file mode 100644 index 0000000..c055cd3 Binary files /dev/null and b/data_db2/databases/mysql/proc.MYI differ diff --git a/data_db2/databases/mysql/proc.frm b/data_db2/databases/mysql/proc.frm new file mode 100644 index 0000000..e7c26fe Binary files /dev/null and b/data_db2/databases/mysql/proc.frm differ diff --git a/data_db2/databases/mysql/procs_priv.MYD b/data_db2/databases/mysql/procs_priv.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/procs_priv.MYI b/data_db2/databases/mysql/procs_priv.MYI new file mode 100644 index 0000000..8fea201 Binary files /dev/null and b/data_db2/databases/mysql/procs_priv.MYI differ diff --git a/data_db2/databases/mysql/procs_priv.frm b/data_db2/databases/mysql/procs_priv.frm new file mode 100644 index 0000000..9101958 Binary files /dev/null and b/data_db2/databases/mysql/procs_priv.frm differ diff --git a/data_db2/databases/mysql/proxies_priv.MYD b/data_db2/databases/mysql/proxies_priv.MYD new file mode 100644 index 0000000..44aa4ae --- /dev/null +++ b/data_db2/databases/mysql/proxies_priv.MYD @@ -0,0 +1 @@ +localhost root  `去3a9cede433bd root  `去 \ No newline at end of file diff --git a/data_db2/databases/mysql/proxies_priv.MYI b/data_db2/databases/mysql/proxies_priv.MYI new file mode 100644 index 0000000..7a8b733 Binary files /dev/null and b/data_db2/databases/mysql/proxies_priv.MYI differ diff --git a/data_db2/databases/mysql/proxies_priv.frm b/data_db2/databases/mysql/proxies_priv.frm new file mode 100644 index 0000000..6402c6f Binary files /dev/null and b/data_db2/databases/mysql/proxies_priv.frm differ diff --git a/data_db2/databases/mysql/roles_mapping.MYD b/data_db2/databases/mysql/roles_mapping.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/roles_mapping.MYI b/data_db2/databases/mysql/roles_mapping.MYI new file mode 100644 index 0000000..683551a Binary files /dev/null and b/data_db2/databases/mysql/roles_mapping.MYI differ diff --git a/data_db2/databases/mysql/roles_mapping.frm b/data_db2/databases/mysql/roles_mapping.frm new file mode 100644 index 0000000..de61fef Binary files /dev/null and b/data_db2/databases/mysql/roles_mapping.frm differ diff --git a/data_db2/databases/mysql/servers.MYD b/data_db2/databases/mysql/servers.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/servers.MYI b/data_db2/databases/mysql/servers.MYI new file mode 100644 index 0000000..6bdfcfa Binary files /dev/null and b/data_db2/databases/mysql/servers.MYI differ diff --git a/data_db2/databases/mysql/servers.frm b/data_db2/databases/mysql/servers.frm new file mode 100644 index 0000000..93f784f Binary files /dev/null and b/data_db2/databases/mysql/servers.frm differ diff --git a/data_db2/databases/mysql/slow_log.CSM b/data_db2/databases/mysql/slow_log.CSM new file mode 100644 index 0000000..8d08b8d Binary files /dev/null and b/data_db2/databases/mysql/slow_log.CSM differ diff --git a/data_db2/databases/mysql/slow_log.CSV b/data_db2/databases/mysql/slow_log.CSV new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/slow_log.frm b/data_db2/databases/mysql/slow_log.frm new file mode 100644 index 0000000..db18c9b Binary files /dev/null and b/data_db2/databases/mysql/slow_log.frm differ diff --git a/data_db2/databases/mysql/table_stats.MYD b/data_db2/databases/mysql/table_stats.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/table_stats.MYI b/data_db2/databases/mysql/table_stats.MYI new file mode 100644 index 0000000..a7f8227 Binary files /dev/null and b/data_db2/databases/mysql/table_stats.MYI differ diff --git a/data_db2/databases/mysql/table_stats.frm b/data_db2/databases/mysql/table_stats.frm new file mode 100644 index 0000000..eadddfc Binary files /dev/null and b/data_db2/databases/mysql/table_stats.frm differ diff --git a/data_db2/databases/mysql/tables_priv.MYD b/data_db2/databases/mysql/tables_priv.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/tables_priv.MYI b/data_db2/databases/mysql/tables_priv.MYI new file mode 100644 index 0000000..8ef3a5b Binary files /dev/null and b/data_db2/databases/mysql/tables_priv.MYI differ diff --git a/data_db2/databases/mysql/tables_priv.frm b/data_db2/databases/mysql/tables_priv.frm new file mode 100644 index 0000000..add4595 Binary files /dev/null and b/data_db2/databases/mysql/tables_priv.frm differ diff --git a/data_db2/databases/mysql/time_zone.MYD b/data_db2/databases/mysql/time_zone.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/time_zone.MYI b/data_db2/databases/mysql/time_zone.MYI new file mode 100644 index 0000000..4a8e251 Binary files /dev/null and b/data_db2/databases/mysql/time_zone.MYI differ diff --git a/data_db2/databases/mysql/time_zone.frm b/data_db2/databases/mysql/time_zone.frm new file mode 100644 index 0000000..83f8c57 Binary files /dev/null and b/data_db2/databases/mysql/time_zone.frm differ diff --git a/data_db2/databases/mysql/time_zone_leap_second.MYD b/data_db2/databases/mysql/time_zone_leap_second.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/time_zone_leap_second.MYI b/data_db2/databases/mysql/time_zone_leap_second.MYI new file mode 100644 index 0000000..050ea5c Binary files /dev/null and b/data_db2/databases/mysql/time_zone_leap_second.MYI differ diff --git a/data_db2/databases/mysql/time_zone_leap_second.frm b/data_db2/databases/mysql/time_zone_leap_second.frm new file mode 100644 index 0000000..4d3763c Binary files /dev/null and b/data_db2/databases/mysql/time_zone_leap_second.frm differ diff --git a/data_db2/databases/mysql/time_zone_name.MYD b/data_db2/databases/mysql/time_zone_name.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/time_zone_name.MYI b/data_db2/databases/mysql/time_zone_name.MYI new file mode 100644 index 0000000..addb2fd Binary files /dev/null and b/data_db2/databases/mysql/time_zone_name.MYI differ diff --git a/data_db2/databases/mysql/time_zone_name.frm b/data_db2/databases/mysql/time_zone_name.frm new file mode 100644 index 0000000..8b8e099 Binary files /dev/null and b/data_db2/databases/mysql/time_zone_name.frm differ diff --git a/data_db2/databases/mysql/time_zone_transition.MYD b/data_db2/databases/mysql/time_zone_transition.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/time_zone_transition.MYI b/data_db2/databases/mysql/time_zone_transition.MYI new file mode 100644 index 0000000..74b1976 Binary files /dev/null and b/data_db2/databases/mysql/time_zone_transition.MYI differ diff --git a/data_db2/databases/mysql/time_zone_transition.frm b/data_db2/databases/mysql/time_zone_transition.frm new file mode 100644 index 0000000..dfe3b24 Binary files /dev/null and b/data_db2/databases/mysql/time_zone_transition.frm differ diff --git a/data_db2/databases/mysql/time_zone_transition_type.MYD b/data_db2/databases/mysql/time_zone_transition_type.MYD new file mode 100644 index 0000000..e69de29 diff --git a/data_db2/databases/mysql/time_zone_transition_type.MYI b/data_db2/databases/mysql/time_zone_transition_type.MYI new file mode 100644 index 0000000..e6b0ca1 Binary files /dev/null and b/data_db2/databases/mysql/time_zone_transition_type.MYI differ diff --git a/data_db2/databases/mysql/time_zone_transition_type.frm b/data_db2/databases/mysql/time_zone_transition_type.frm new file mode 100644 index 0000000..8f593a8 Binary files /dev/null and b/data_db2/databases/mysql/time_zone_transition_type.frm differ diff --git a/data_db2/databases/mysql/user.MYD b/data_db2/databases/mysql/user.MYD new file mode 100644 index 0000000..2117a6f Binary files /dev/null and b/data_db2/databases/mysql/user.MYD differ diff --git a/data_db2/databases/mysql/user.MYI b/data_db2/databases/mysql/user.MYI new file mode 100644 index 0000000..2967e3a Binary files /dev/null and b/data_db2/databases/mysql/user.MYI differ diff --git a/data_db2/databases/mysql/user.frm b/data_db2/databases/mysql/user.frm new file mode 100644 index 0000000..fff92f4 Binary files /dev/null and b/data_db2/databases/mysql/user.frm differ diff --git a/data_db2/databases/performance_schema/db.opt b/data_db2/databases/performance_schema/db.opt new file mode 100644 index 0000000..4ed6015 --- /dev/null +++ b/data_db2/databases/performance_schema/db.opt @@ -0,0 +1,2 @@ +default-character-set=utf8 +default-collation=utf8_general_ci diff --git a/data_db2/log/mysql/error.log b/data_db2/log/mysql/error.log new file mode 100644 index 0000000..dd3ad61 --- /dev/null +++ b/data_db2/log/mysql/error.log @@ -0,0 +1,82 @@ +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Using mutexes to ref count buffer pool pages +2021-06-15 13:06:47 3069942592 [Note] InnoDB: The InnoDB memory heap is disabled +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins +2021-06-15 13:06:47 3069942592 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Using Linux native AIO +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Using generic crc32 instructions +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Initializing buffer pool, size = 256.0M +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Completed initialization of buffer pool +2021-06-15 13:06:47 3069942592 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB +2021-06-15 13:06:47 3069942592 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB +2021-06-15 13:06:49 3069942592 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 +2021-06-15 13:06:51 3069942592 [Warning] InnoDB: New log files created, LSN=45780 +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Doublewrite buffer not found: creating new +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Doublewrite buffer created +2021-06-15 13:06:51 3069942592 [Note] InnoDB: 128 rollback segment(s) are active. +2021-06-15 13:06:51 3069942592 [Warning] InnoDB: Creating foreign key constraint system tables. +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Foreign key constraint system tables created +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Creating tablespace and datafile system tables. +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Tablespace and datafile system tables created. +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Waiting for purge to start +2021-06-15 13:06:51 3069942592 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.49-89.0 started; log sequence number 0 +2021-06-15 13:06:51 2319446960 [Note] InnoDB: Dumping buffer pool(s) not yet started +2021-06-15 13:06:51 3063346096 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1146: Table 'mysql.gtid_slave_pos' doesn't exist +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Using mutexes to ref count buffer pool pages +2021-06-15 13:06:54 3069786944 [Note] InnoDB: The InnoDB memory heap is disabled +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins +2021-06-15 13:06:54 3069786944 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Using Linux native AIO +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Using generic crc32 instructions +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Initializing buffer pool, size = 256.0M +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Completed initialization of buffer pool +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Highest supported file format is Barracuda. +2021-06-15 13:06:54 3069786944 [Note] InnoDB: 128 rollback segment(s) are active. +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Waiting for purge to start +2021-06-15 13:06:54 3069786944 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.49-89.0 started; log sequence number 1616693 +2021-06-15 13:06:54 2323641264 [Note] InnoDB: Dumping buffer pool(s) not yet started +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Using mutexes to ref count buffer pool pages +2021-06-15 13:06:57 3069406016 [Note] InnoDB: The InnoDB memory heap is disabled +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins +2021-06-15 13:06:57 3069406016 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Using Linux native AIO +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Using generic crc32 instructions +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Initializing buffer pool, size = 256.0M +2021-06-15 13:06:57 3069406016 [Note] InnoDB: Completed initialization of buffer pool +2021-06-15 13:06:58 3069406016 [Note] InnoDB: Highest supported file format is Barracuda. +2021-06-15 13:06:58 3069406016 [Note] InnoDB: 128 rollback segment(s) are active. +2021-06-15 13:06:58 3069406016 [Note] InnoDB: Waiting for purge to start +2021-06-15 13:06:58 3069406016 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.49-89.0 started; log sequence number 1616703 +2021-06-15 13:06:58 2323641264 [Note] InnoDB: Dumping buffer pool(s) not yet started +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Using mutexes to ref count buffer pool pages +2021-06-15 13:07:01 3069365056 [Note] InnoDB: The InnoDB memory heap is disabled +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins +2021-06-15 13:07:01 3069365056 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Compressed tables use zlib 1.2.11 +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Using Linux native AIO +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Using generic crc32 instructions +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Initializing buffer pool, size = 256.0M +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Completed initialization of buffer pool +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Highest supported file format is Barracuda. +2021-06-15 13:07:01 3069365056 [Note] InnoDB: 128 rollback segment(s) are active. +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Waiting for purge to start +2021-06-15 13:07:01 3069365056 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.49-89.0 started; log sequence number 1616713 +2021-06-15 13:07:01 2323641264 [Note] InnoDB: Dumping buffer pool(s) not yet started +2021-06-15 13:07:01 3069365056 [Note] Plugin 'FEEDBACK' is disabled. +2021-06-15 13:07:01 3069365056 [Note] Server socket created on IP: '::'. +2021-06-15 13:07:01 3069365056 [Note] Reading of all Master_info entries succeeded +2021-06-15 13:07:01 3069365056 [Note] Added new Master_info '' to hash table +2021-06-15 13:07:01 3069365056 [Note] mysqld: ready for connections. +Version: '10.1.48-MariaDB-0ubuntu0.18.04.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Ubuntu 18.04 +2021-06-15 13:07:03 3028280240 [Note] mysqld: Normal shutdown +2021-06-15 13:07:03 3028280240 [Note] Event Scheduler: Purging the queue. 0 events +2021-06-15 13:07:03 2386547632 [Note] InnoDB: FTS optimize thread exiting. +2021-06-15 13:07:03 3028280240 [Note] InnoDB: Starting shutdown... +2021-06-15 13:07:03 3028280240 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool +2021-06-15 13:07:05 3028280240 [Note] InnoDB: Shutdown completed; log sequence number 1616723 +2021-06-15 13:07:05 3028280240 [Note] mysqld: Shutdown complete + diff --git a/data_db2/log/mysql/mariadb-bin.000101 b/data_db2/log/mysql/mariadb-bin.000101 new file mode 100644 index 0000000..1dbdb44 Binary files /dev/null and b/data_db2/log/mysql/mariadb-bin.000101 differ diff --git a/data_db2/log/mysql/mariadb-bin.000102 b/data_db2/log/mysql/mariadb-bin.000102 new file mode 100644 index 0000000..88f28b3 Binary files /dev/null and b/data_db2/log/mysql/mariadb-bin.000102 differ diff --git a/data_db2/log/mysql/mariadb-bin.000103 b/data_db2/log/mysql/mariadb-bin.000103 new file mode 100644 index 0000000..05094bb Binary files /dev/null and b/data_db2/log/mysql/mariadb-bin.000103 differ diff --git a/data_db2/log/mysql/mariadb-bin.000104 b/data_db2/log/mysql/mariadb-bin.000104 new file mode 100644 index 0000000..f9edf34 Binary files /dev/null and b/data_db2/log/mysql/mariadb-bin.000104 differ diff --git a/data_db2/log/mysql/mariadb-bin.index b/data_db2/log/mysql/mariadb-bin.index new file mode 100644 index 0000000..4c6bf30 --- /dev/null +++ b/data_db2/log/mysql/mariadb-bin.index @@ -0,0 +1,4 @@ +/config/log/mysql/mariadb-bin.000101 +/config/log/mysql/mariadb-bin.000102 +/config/log/mysql/mariadb-bin.000103 +/config/log/mysql/mariadb-bin.000104 diff --git a/data_node_red/.config.nodes.json b/data_node_red/.config.nodes.json new file mode 100644 index 0000000..f7bfe5d --- /dev/null +++ b/data_node_red/.config.nodes.json @@ -0,0 +1,705 @@ +{ + "node-red": { + "name": "node-red", + "version": "2.2.1", + "local": false, + "user": false, + "nodes": { + "inject": { + "name": "inject", + "types": [ + "inject" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/20-inject.js" + }, + "debug": { + "name": "debug", + "types": [ + "debug" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/21-debug.js" + }, + "complete": { + "name": "complete", + "types": [ + "complete" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/24-complete.js" + }, + "catch": { + "name": "catch", + "types": [ + "catch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-catch.js" + }, + "status": { + "name": "status", + "types": [ + "status" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-status.js" + }, + "link": { + "name": "link", + "types": [ + "link in", + "link out", + "link call" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/60-link.js" + }, + "comment": { + "name": "comment", + "types": [ + "comment" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/90-comment.js" + }, + "unknown": { + "name": "unknown", + "types": [ + "unknown" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/98-unknown.js" + }, + "function": { + "name": "function", + "types": [ + "function" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-function.js" + }, + "switch": { + "name": "switch", + "types": [ + "switch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-switch.js" + }, + "change": { + "name": "change", + "types": [ + "change" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/15-change.js" + }, + "range": { + "name": "range", + "types": [ + "range" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/16-range.js" + }, + "template": { + "name": "template", + "types": [ + "template" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/80-template.js" + }, + "delay": { + "name": "delay", + "types": [ + "delay" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-delay.js" + }, + "trigger": { + "name": "trigger", + "types": [ + "trigger" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-trigger.js" + }, + "exec": { + "name": "exec", + "types": [ + "exec" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/90-exec.js" + }, + "rbe": { + "name": "rbe", + "types": [ + "rbe" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/rbe.js" + }, + "tls": { + "name": "tls", + "types": [ + "tls-config" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/05-tls.js" + }, + "httpproxy": { + "name": "httpproxy", + "types": [ + "http proxy" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/06-httpproxy.js" + }, + "mqtt": { + "name": "mqtt", + "types": [ + "mqtt in", + "mqtt out", + "mqtt-broker" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/10-mqtt.js" + }, + "httpin": { + "name": "httpin", + "types": [ + "http in", + "http response" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httpin.js" + }, + "httprequest": { + "name": "httprequest", + "types": [ + "http request" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httprequest.js" + }, + "websocket": { + "name": "websocket", + "types": [ + "websocket in", + "websocket out", + "websocket-listener", + "websocket-client" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/22-websocket.js" + }, + "tcpin": { + "name": "tcpin", + "types": [ + "tcp in", + "tcp out", + "tcp request" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/31-tcpin.js" + }, + "udp": { + "name": "udp", + "types": [ + "udp in", + "udp out" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/32-udp.js" + }, + "CSV": { + "name": "CSV", + "types": [ + "csv" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-CSV.js" + }, + "HTML": { + "name": "HTML", + "types": [ + "html" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-HTML.js" + }, + "JSON": { + "name": "JSON", + "types": [ + "json" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-JSON.js" + }, + "XML": { + "name": "XML", + "types": [ + "xml" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-XML.js" + }, + "YAML": { + "name": "YAML", + "types": [ + "yaml" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-YAML.js" + }, + "split": { + "name": "split", + "types": [ + "split", + "join" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/17-split.js" + }, + "sort": { + "name": "sort", + "types": [ + "sort" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/18-sort.js" + }, + "batch": { + "name": "batch", + "types": [ + "batch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/19-batch.js" + }, + "file": { + "name": "file", + "types": [ + "file", + "file in" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/10-file.js" + }, + "watch": { + "name": "watch", + "types": [ + "watch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/23-watch.js" + } + } + }, + "node-red-node-mysql": { + "name": "node-red-node-mysql", + "version": "0.1.9", + "local": true, + "user": true, + "nodes": { + "mysql": { + "name": "mysql", + "types": [ + "MySQLdatabase", + "mysql" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-mysql", + "file": "/data/node_modules/node-red-node-mysql/68-mysql.js" + } + } + }, + "node-red-dashboard": { + "name": "node-red-dashboard", + "version": "2.29.3", + "local": true, + "user": true, + "nodes": { + "ui_base": { + "name": "ui_base", + "types": [ + "ui_base" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_base.js" + }, + "ui_button": { + "name": "ui_button", + "types": [ + "ui_button" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_button.js" + }, + "ui_dropdown": { + "name": "ui_dropdown", + "types": [ + "ui_dropdown" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_dropdown.js" + }, + "ui_switch": { + "name": "ui_switch", + "types": [ + "ui_switch" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_switch.js" + }, + "ui_slider": { + "name": "ui_slider", + "types": [ + "ui_slider" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_slider.js" + }, + "ui_numeric": { + "name": "ui_numeric", + "types": [ + "ui_numeric" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_numeric.js" + }, + "ui_text_input": { + "name": "ui_text_input", + "types": [ + "ui_text_input" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_text_input.js" + }, + "ui_date_picker": { + "name": "ui_date_picker", + "types": [ + "ui_date_picker" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_date_picker.js" + }, + "ui_colour_picker": { + "name": "ui_colour_picker", + "types": [ + "ui_colour_picker" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_colour_picker.js" + }, + "ui_form": { + "name": "ui_form", + "types": [ + "ui_form" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_form.js" + }, + "ui_text": { + "name": "ui_text", + "types": [ + "ui_text" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_text.js" + }, + "ui_gauge": { + "name": "ui_gauge", + "types": [ + "ui_gauge" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_gauge.js" + }, + "ui_chart": { + "name": "ui_chart", + "types": [ + "ui_chart" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_chart.js" + }, + "ui_audio": { + "name": "ui_audio", + "types": [ + "ui_audio" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_audio.js" + }, + "ui_toast": { + "name": "ui_toast", + "types": [ + "ui_toast" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_toast.js" + }, + "ui_ui_control": { + "name": "ui_ui_control", + "types": [ + "ui_ui_control" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_ui_control.js" + }, + "ui_template": { + "name": "ui_template", + "types": [ + "ui_template" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_template.js" + }, + "ui_link": { + "name": "ui_link", + "types": [ + "ui_link" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_link.js" + }, + "ui_tab": { + "name": "ui_tab", + "types": [ + "ui_tab" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_tab.js" + }, + "ui_group": { + "name": "ui_group", + "types": [ + "ui_group" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_group.js" + }, + "ui_spacer": { + "name": "ui_spacer", + "types": [ + "ui_spacer" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_spacer.js" + } + } + }, + "node-red-node-ui-table": { + "name": "node-red-node-ui-table", + "version": "0.3.11", + "local": true, + "user": true, + "nodes": { + "ui_table": { + "name": "ui_table", + "types": [ + "ui_table" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-ui-table", + "file": "/data/node_modules/node-red-node-ui-table/node.js" + } + } + }, + "node-red-node-ping": { + "name": "node-red-node-ping", + "version": "0.3.1", + "local": true, + "user": true, + "nodes": { + "ping": { + "name": "ping", + "types": [ + "ping" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-ping", + "file": "/data/node_modules/node-red-node-ping/88-ping.js" + } + } + } +} \ No newline at end of file diff --git a/data_node_red/.config.nodes.json.backup b/data_node_red/.config.nodes.json.backup new file mode 100644 index 0000000..04165ce --- /dev/null +++ b/data_node_red/.config.nodes.json.backup @@ -0,0 +1,743 @@ +{ + "node-red": { + "name": "node-red", + "version": "2.2.1", + "local": false, + "user": false, + "nodes": { + "inject": { + "name": "inject", + "types": [ + "inject" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/20-inject.js" + }, + "debug": { + "name": "debug", + "types": [ + "debug" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/21-debug.js" + }, + "complete": { + "name": "complete", + "types": [ + "complete" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/24-complete.js" + }, + "catch": { + "name": "catch", + "types": [ + "catch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-catch.js" + }, + "status": { + "name": "status", + "types": [ + "status" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-status.js" + }, + "link": { + "name": "link", + "types": [ + "link in", + "link out", + "link call" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/60-link.js" + }, + "comment": { + "name": "comment", + "types": [ + "comment" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/90-comment.js" + }, + "unknown": { + "name": "unknown", + "types": [ + "unknown" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/98-unknown.js" + }, + "function": { + "name": "function", + "types": [ + "function" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-function.js" + }, + "switch": { + "name": "switch", + "types": [ + "switch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-switch.js" + }, + "change": { + "name": "change", + "types": [ + "change" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/15-change.js" + }, + "range": { + "name": "range", + "types": [ + "range" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/16-range.js" + }, + "template": { + "name": "template", + "types": [ + "template" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/80-template.js" + }, + "delay": { + "name": "delay", + "types": [ + "delay" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-delay.js" + }, + "trigger": { + "name": "trigger", + "types": [ + "trigger" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-trigger.js" + }, + "exec": { + "name": "exec", + "types": [ + "exec" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/90-exec.js" + }, + "rbe": { + "name": "rbe", + "types": [ + "rbe" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/rbe.js" + }, + "tls": { + "name": "tls", + "types": [ + "tls-config" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/05-tls.js" + }, + "httpproxy": { + "name": "httpproxy", + "types": [ + "http proxy" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/06-httpproxy.js" + }, + "mqtt": { + "name": "mqtt", + "types": [ + "mqtt in", + "mqtt out", + "mqtt-broker" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/10-mqtt.js" + }, + "httpin": { + "name": "httpin", + "types": [ + "http in", + "http response" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httpin.js" + }, + "httprequest": { + "name": "httprequest", + "types": [ + "http request" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httprequest.js" + }, + "websocket": { + "name": "websocket", + "types": [ + "websocket in", + "websocket out", + "websocket-listener", + "websocket-client" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/22-websocket.js" + }, + "tcpin": { + "name": "tcpin", + "types": [ + "tcp in", + "tcp out", + "tcp request" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/31-tcpin.js" + }, + "udp": { + "name": "udp", + "types": [ + "udp in", + "udp out" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/32-udp.js" + }, + "CSV": { + "name": "CSV", + "types": [ + "csv" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-CSV.js" + }, + "HTML": { + "name": "HTML", + "types": [ + "html" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-HTML.js" + }, + "JSON": { + "name": "JSON", + "types": [ + "json" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-JSON.js" + }, + "XML": { + "name": "XML", + "types": [ + "xml" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-XML.js" + }, + "YAML": { + "name": "YAML", + "types": [ + "yaml" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-YAML.js" + }, + "split": { + "name": "split", + "types": [ + "split", + "join" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/17-split.js" + }, + "sort": { + "name": "sort", + "types": [ + "sort" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/18-sort.js" + }, + "batch": { + "name": "batch", + "types": [ + "batch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/19-batch.js" + }, + "file": { + "name": "file", + "types": [ + "file", + "file in" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/10-file.js" + }, + "watch": { + "name": "watch", + "types": [ + "watch" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/23-watch.js" + } + } + }, + "node-red-node-rbe": { + "name": "node-red-node-rbe", + "version": "0.5.0", + "local": false, + "user": false, + "nodes": { + "rbe": { + "name": "rbe", + "types": [ + "rbe" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red-node-rbe", + "file": "/usr/src/node-red/node_modules/node-red-node-rbe/rbe.js" + } + } + }, + "node-red-node-tail": { + "name": "node-red-node-tail", + "version": "0.3.1", + "local": false, + "user": false, + "nodes": { + "tail": { + "name": "tail", + "types": [ + "tail" + ], + "enabled": true, + "local": false, + "user": false, + "module": "node-red-node-tail", + "file": "/usr/src/node-red/node_modules/node-red-node-tail/28-tail.js" + } + } + }, + "node-red-node-mysql": { + "name": "node-red-node-mysql", + "version": "0.1.9", + "local": true, + "user": true, + "nodes": { + "mysql": { + "name": "mysql", + "types": [ + "MySQLdatabase", + "mysql" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-mysql", + "file": "/data/node_modules/node-red-node-mysql/68-mysql.js" + } + } + }, + "node-red-dashboard": { + "name": "node-red-dashboard", + "version": "2.29.3", + "local": true, + "user": true, + "nodes": { + "ui_base": { + "name": "ui_base", + "types": [ + "ui_base" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_base.js" + }, + "ui_button": { + "name": "ui_button", + "types": [ + "ui_button" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_button.js" + }, + "ui_dropdown": { + "name": "ui_dropdown", + "types": [ + "ui_dropdown" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_dropdown.js" + }, + "ui_switch": { + "name": "ui_switch", + "types": [ + "ui_switch" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_switch.js" + }, + "ui_slider": { + "name": "ui_slider", + "types": [ + "ui_slider" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_slider.js" + }, + "ui_numeric": { + "name": "ui_numeric", + "types": [ + "ui_numeric" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_numeric.js" + }, + "ui_text_input": { + "name": "ui_text_input", + "types": [ + "ui_text_input" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_text_input.js" + }, + "ui_date_picker": { + "name": "ui_date_picker", + "types": [ + "ui_date_picker" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_date_picker.js" + }, + "ui_colour_picker": { + "name": "ui_colour_picker", + "types": [ + "ui_colour_picker" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_colour_picker.js" + }, + "ui_form": { + "name": "ui_form", + "types": [ + "ui_form" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_form.js" + }, + "ui_text": { + "name": "ui_text", + "types": [ + "ui_text" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_text.js" + }, + "ui_gauge": { + "name": "ui_gauge", + "types": [ + "ui_gauge" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_gauge.js" + }, + "ui_chart": { + "name": "ui_chart", + "types": [ + "ui_chart" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_chart.js" + }, + "ui_audio": { + "name": "ui_audio", + "types": [ + "ui_audio" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_audio.js" + }, + "ui_toast": { + "name": "ui_toast", + "types": [ + "ui_toast" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_toast.js" + }, + "ui_ui_control": { + "name": "ui_ui_control", + "types": [ + "ui_ui_control" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_ui_control.js" + }, + "ui_template": { + "name": "ui_template", + "types": [ + "ui_template" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_template.js" + }, + "ui_link": { + "name": "ui_link", + "types": [ + "ui_link" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_link.js" + }, + "ui_tab": { + "name": "ui_tab", + "types": [ + "ui_tab" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_tab.js" + }, + "ui_group": { + "name": "ui_group", + "types": [ + "ui_group" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_group.js" + }, + "ui_spacer": { + "name": "ui_spacer", + "types": [ + "ui_spacer" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-dashboard", + "file": "/data/node_modules/node-red-dashboard/nodes/ui_spacer.js" + } + } + }, + "node-red-node-ui-table": { + "name": "node-red-node-ui-table", + "version": "0.3.11", + "local": true, + "user": true, + "nodes": { + "ui_table": { + "name": "ui_table", + "types": [ + "ui_table" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-ui-table", + "file": "/data/node_modules/node-red-node-ui-table/node.js" + } + } + }, + "node-red-node-ping": { + "name": "node-red-node-ping", + "version": "0.3.1", + "local": true, + "user": true, + "nodes": { + "ping": { + "name": "ping", + "types": [ + "ping" + ], + "enabled": true, + "local": true, + "user": false, + "module": "node-red-node-ping", + "file": "/data/node_modules/node-red-node-ping/88-ping.js" + } + } + } +} \ No newline at end of file diff --git a/data_node_red/.config.runtime.json b/data_node_red/.config.runtime.json new file mode 100644 index 0000000..a477249 --- /dev/null +++ b/data_node_red/.config.runtime.json @@ -0,0 +1,3 @@ +{ + "_credentialSecret": "88f124d1af8aedc4b397952902816babe95743bfa20917711ce63747c5cfce8e" +} \ No newline at end of file diff --git a/data_node_red/.config.users.json b/data_node_red/.config.users.json new file mode 100644 index 0000000..4d349b1 --- /dev/null +++ b/data_node_red/.config.users.json @@ -0,0 +1,35 @@ +{ + "_": { + "editor": { + "view": { + "view-show-grid": true, + "view-snap-grid": true, + "view-grid-size": 20, + "view-node-status": true, + "view-node-show-label": true, + "view-show-tips": true + } + } + }, + "FANIoT": { + "editor": { + "view": { + "view-show-grid": true, + "view-snap-grid": true, + "view-grid-size": "20", + "view-node-status": true, + "view-node-show-label": true, + "view-show-tips": true, + "view-show-welcome-tours": true, + "view-store-position": false, + "view-store-zoom": false + }, + "tours": { + "welcome": "2.2.1" + } + }, + "menu-deploymenu-item-flow": false, + "menu-deploymenu-item-full": true, + "menu-menu-item-sidebar": false + } +} \ No newline at end of file diff --git a/data_node_red/.config.users.json.backup b/data_node_red/.config.users.json.backup new file mode 100644 index 0000000..1cf1990 --- /dev/null +++ b/data_node_red/.config.users.json.backup @@ -0,0 +1,32 @@ +{ + "_": { + "editor": { + "view": { + "view-show-grid": true, + "view-snap-grid": true, + "view-grid-size": 20, + "view-node-status": true, + "view-node-show-label": true, + "view-show-tips": true + } + } + }, + "FANIoT": { + "editor": { + "view": { + "view-show-grid": true, + "view-snap-grid": true, + "view-grid-size": "20", + "view-node-status": true, + "view-node-show-label": true, + "view-show-tips": true, + "view-show-welcome-tours": true, + "view-store-position": false, + "view-store-zoom": false + } + }, + "menu-deploymenu-item-flow": false, + "menu-deploymenu-item-full": true, + "menu-menu-item-sidebar": false + } +} \ No newline at end of file diff --git a/data_node_red/.flows.json.backup b/data_node_red/.flows.json.backup new file mode 100644 index 0000000..9a79b5b --- /dev/null +++ b/data_node_red/.flows.json.backup @@ -0,0 +1 @@ +[{"id":"6250d7a0.2d62e8","type":"tab","label":"OTA update","disabled":false,"info":""},{"id":"62051268.8937ac","type":"tab","label":"Dashboard","disabled":false,"info":""},{"id":"402e352d.79d1dc","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"d1d5ce25.67cc6","type":"tab","label":"Chaleco","disabled":false,"info":""},{"id":"bdf7265d.d181a8","type":"MySQLdatabase","name":"","host":"db","port":"3306","db":"main_database","tz":"","charset":"UTF8"},{"id":"6ed961cf.e226d","type":"ui_tab","name":"Nuevo device","icon":"dashboard","disabled":false,"hidden":false},{"id":"df418b8a.02a728","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","reset":false},"themeState":{"base-color":{"default":"#0094CE","value":"#0094CE","edited":true},"page-titlebar-backgroundColor":{"value":"#0094CE","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#ffffff","edited":false},"group-textColor":{"value":"#1bbfff","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#0094ce","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey","palette":"light"}},"site":{"name":"FANIoT Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"71b4f020.58093","type":"ui_group","name":"Agregar Dispositivo","tab":"6ed961cf.e226d","order":1,"disp":true,"width":"6","collapse":false},{"id":"7cba5717.c4ee98","type":"ui_group","name":"Estadisticas","tab":"6ed961cf.e226d","order":2,"disp":true,"width":"6","collapse":false},{"id":"4a39f6ab.e86eb8","type":"ui_spacer","name":"spacer","group":"7cba5717.c4ee98","order":1,"width":1,"height":1},{"id":"2116c966.928d66","type":"ui_spacer","name":"spacer","group":"7cba5717.c4ee98","order":3,"width":1,"height":1},{"id":"73c240a7.6209e","type":"ui_tab","name":"Admin","icon":"build","order":2,"disabled":false,"hidden":false},{"id":"2446fdf8.239892","type":"ui_group","name":"Nuevo Firmware","tab":"73c240a7.6209e","order":1,"disp":true,"width":"6","collapse":false},{"id":"cd74ed6a.1f417","type":"mqtt-broker","name":"","broker":"mqtt","port":"1883","clientid":"NodeRED","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"d17c23db.54daf","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/update","method":"get","upload":false,"swaggerDoc":"","x":100,"y":320,"wires":[["f51c0174.a2067"]]},{"id":"73a0fad6.d83bc4","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":490,"y":340,"wires":[]},{"id":"3cf74d3d.1a9332","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/octet-stream"},"x":860,"y":380,"wires":[]},{"id":"f51c0174.a2067","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload.product_id)\n{\n msg.topic = \"SELECT `filepath` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `product`='\"+msg.payload.product_id+\"' \";\n msg.topic += \"AND `etiqueta`='latest' LIMIT 1;\";\n}\nelse\n{\n msg.topic = \"SELECT `filepath` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n}\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":320,"wires":[["9d52a12e.fe17a","e70974bc.76b448"]]},{"id":"a022dcd3.f3c5c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":850,"y":340,"wires":[]},{"id":"aa3dcdfe.5c38","type":"file in","z":"6250d7a0.2d62e8","name":"ArchivBin","filename":"","format":"","chunk":false,"sendError":false,"encoding":"none","x":660,"y":380,"wires":[["a022dcd3.f3c5c","3cf74d3d.1a9332"]]},{"id":"9d52a12e.fe17a","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":430,"y":260,"wires":[]},{"id":"6fc03cb1.eed7a4","type":"catch","z":"6250d7a0.2d62e8","name":"Catch ArchivoBin","scope":["aa3dcdfe.5c38"],"uncaught":false,"x":680,"y":440,"wires":[["9c45eede.11ce3","ca075ff.3f1c6a"]]},{"id":"9c45eede.11ce3","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":850,"y":480,"wires":[]},{"id":"ca075ff.3f1c6a","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"404","headers":{},"x":860,"y":440,"wires":[]},{"id":"da4dce46.efe94","type":"comment","z":"6250d7a0.2d62e8","name":"Envio el binario segun chip ID","info":"Envio el binario.","x":140,"y":220,"wires":[]},{"id":"c4ece9e3.b03fc8","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/firmwareversion","method":"get","upload":false,"swaggerDoc":"","x":130,"y":160,"wires":[["1e187bfa.cf7174","4afd3e0b.8c118"]]},{"id":"e0f843d8.7f1c6","type":"comment","z":"6250d7a0.2d62e8","name":"Obtener Ultima version de Firmware.","info":"Obtener Ultima version de Firmware.","x":160,"y":80,"wires":[]},{"id":"1e187bfa.cf7174","type":"function","z":"6250d7a0.2d62e8","name":"","func":"\n//msg.payload.chip_id\n//SELECT `device_id`, `date`, `chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update` FROM `main_database`.`devices` WHERE `device_id`=3;\n//SELECT `firmware_id`, `date`, `product_id`, `firmware_version`, `etiqueta` FROM `main_database`.`firmwares` WHERE `firmware_id`=2;\n//msg.topic = \"SELECT `firmware_id`, `date`, `product_id`, `firmware_version`, `etiqueta`\";\n//msg.topic += \"FROM `main_database`.`firmwares` \";\n//msg.topic += \"WHERE `firmware_id`=2;\";\n\nmsg.topic = \"SELECT `firmware_version` \";\nmsg.topic += \"FROM `main_database`.`getFirmwareVersion` \";\nmsg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":160,"wires":[["87e2c1b.761964"]]},{"id":"4afd3e0b.8c118","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":120,"wires":[]},{"id":"87e2c1b.761964","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":520,"y":160,"wires":[["1fa31fc2.7d5b7","d056a3.cd25b96"]]},{"id":"d056a3.cd25b96","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":670,"y":120,"wires":[]},{"id":"51211ad.61c61e4","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/json"},"x":860,"y":160,"wires":[]},{"id":"1fa31fc2.7d5b7","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\n msg.payload = msg.payload[0];\nelse\n msg.payload = {firmware_version: \" \"};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":160,"wires":[["51211ad.61c61e4"]]},{"id":"e70974bc.76b448","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":320,"y":380,"wires":[["73a0fad6.d83bc4","c8382129.662a8"]]},{"id":"c8382129.662a8","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\nmsg.filename = msg.payload[0].filepath;\nelse\nmsg.filename = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":380,"wires":[["162619a1.f3c116","aa3dcdfe.5c38"]]},{"id":"162619a1.f3c116","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":340,"wires":[]},{"id":"61ff7d15.076a64","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/update","method":"post","upload":false,"swaggerDoc":"","x":100,"y":580,"wires":[["77ef7ca5.8f7274","bc9172c3.9632c"]]},{"id":"edb0df8a.91458","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":740,"wires":[]},{"id":"bc9172c3.9632c","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{},"x":280,"y":580,"wires":[]},{"id":"77ef7ca5.8f7274","type":"function","z":"6250d7a0.2d62e8","name":"get product_id y el firmware_id","func":"if(msg.payload.product_id)\n{\n msg.topic = \"SELECT `firmware_id`, `product_id` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `product`='\"+msg.payload.product_id+\"' \";\n msg.topic += \"AND `etiqueta`='latest';\";\n}\nelse\n{\n msg.topic = \"SELECT `firmware_id_update` \";\n msg.topic += \"FROM `main_database`.`devices` \";\n msg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n}\nmsg.device = {};\n\nmsg.device.chip_id = msg.payload.chip_id;\nmsg.device.product = msg.payload.product_id;\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":620,"wires":[["e6d73d81.b336a","52c6a438.afc65c"]]},{"id":"e6d73d81.b336a","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":680,"wires":[["25444fbf.ff98c","3cb14a20.1b3626"]]},{"id":"52c6a438.afc65c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":620,"wires":[]},{"id":"25444fbf.ff98c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":680,"wires":[]},{"id":"3cb14a20.1b3626","type":"function","z":"6250d7a0.2d62e8","name":"UPDATE Firmware actual","func":"if(msg.device.product)\n{\n msg.topic = \"INSERT INTO `main_database`.`devices`\";\n msg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`)\";\n msg.topic += \"VALUES('\" + msg.device.chip_id + \"' , '\" + msg.payload[0].product_id + \"' , '\" + msg.payload[0].firmware_id + \"', '\" + msg.payload[0].firmware_id + \"' );\";\n}\nelse\n{\n msg.topic = \"UPDATE `main_database`.`devices` \";\n msg.topic += \"SET `firmware_id_act`='\" + msg.payload[0].firmware_id_update + \"' \";\n msg.topic += \"WHERE `chip_id`='\"+msg.device.chip_id+\"';\";\n}\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":740,"wires":[["edb0df8a.91458","98a7fa9.0903708"]]},{"id":"98a7fa9.0903708","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":800,"wires":[["f49f4eef.985d8"]]},{"id":"f49f4eef.985d8","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":800,"wires":[]},{"id":"fece2b0d.fb8d88","type":"function","z":"6250d7a0.2d62e8","name":"INSERT si no existe","func":"if(!(msg.payload.affectedRows > 0))\n{\n msg.topic = \"INSERT INTO `main_database`.`devices`\";\n msg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`)\";\n msg.topic += \"VALUES('\" + msg.device.chip_id + \"' , '\" + msg.device.product_id + \"' , '\" + msg.device.firmware_id + \"', '\" + msg.device.firmware_id + \"' );\";\n}\nelse\n{\n msg.topic = \"\";\n}\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;\n\n\n ","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":880,"wires":[["692a5d77.63b504","3e341316.4f169c"]]},{"id":"692a5d77.63b504","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":880,"wires":[]},{"id":"3e341316.4f169c","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":940,"wires":[["b961cf12.88a52"]]},{"id":"b961cf12.88a52","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":940,"wires":[]},{"id":"fe5baa80.bcce28","type":"comment","z":"6250d7a0.2d62e8","name":"Actualiza el registro de firmware actual o crea nueva entrada","info":"Envio el binario.","x":240,"y":520,"wires":[]},{"id":"de076312.de3ca","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/download","method":"get","upload":false,"swaggerDoc":"","x":120,"y":1120,"wires":[["c086326f.d5d56"]]},{"id":"48abb27e.b5fa3c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":1140,"wires":[]},{"id":"bfe6d652.d4b218","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/octet-stream"},"x":880,"y":1180,"wires":[]},{"id":"c086326f.d5d56","type":"function","z":"6250d7a0.2d62e8","name":"","func":"msg.topic = \"SELECT `filepath`,`firmware_id`,`product_id` \";\nmsg.topic += \"FROM `main_database`.`getFilepathInsert` \";\nmsg.topic += \"WHERE `product`='\"+msg.payload.product+\"' LIMIT 1;\";\n\nmsg.chip_id = msg.payload.chip_id;\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":1120,"wires":[["cc73afc4.03a03","18865107.d9d00f"]]},{"id":"f6f11313.2ca04","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":1140,"wires":[]},{"id":"db6aa3da.5fc8a","type":"file in","z":"6250d7a0.2d62e8","name":"ArchivBin","filename":"","format":"","chunk":false,"sendError":false,"encoding":"none","x":680,"y":1180,"wires":[["f6f11313.2ca04","bfe6d652.d4b218"]]},{"id":"cc73afc4.03a03","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":450,"y":1060,"wires":[]},{"id":"de2a4b92.886e18","type":"catch","z":"6250d7a0.2d62e8","name":"Catch ArchivoBin","scope":["db6aa3da.5fc8a"],"uncaught":false,"x":700,"y":1240,"wires":[["b5a4b350.45175","2e5b848c.7c37ec"]]},{"id":"b5a4b350.45175","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":1280,"wires":[]},{"id":"2e5b848c.7c37ec","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"304","headers":{},"x":880,"y":1240,"wires":[]},{"id":"18865107.d9d00f","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":340,"y":1180,"wires":[["48abb27e.b5fa3c","d1823532.0379e8","a2e1df28.d541b"]]},{"id":"a2e1df28.d541b","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\nmsg.filename = msg.payload[0].filepath;\nelse\nmsg.filename = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1180,"wires":[["14c95f5e.484f71","db6aa3da.5fc8a"]]},{"id":"14c95f5e.484f71","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":670,"y":1140,"wires":[]},{"id":"d1823532.0379e8","type":"function","z":"6250d7a0.2d62e8","name":"Insert device","func":"msg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + msg.chip_id + \"', '\" + msg.payload[0].product_id + \"', '\" + msg.payload[0].firmware_id + \"', '\" + msg.payload[0].firmware_id + \"');\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":1240,"wires":[["35a9271d.1d01a8"]]},{"id":"35a9271d.1d01a8","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":460,"y":1300,"wires":[["14a4f23b.5bec4e"]]},{"id":"14a4f23b.5bec4e","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":630,"y":1300,"wires":[]},{"id":"8b54e4d8.bff278","type":"comment","z":"6250d7a0.2d62e8","name":"Primer envio de binario segun producto","info":"Envio el binario.","x":190,"y":1060,"wires":[]},{"id":"63987b2e.220f14","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":400,"wires":[]},{"id":"31291e50.500cd2","type":"ui_dropdown","z":"62051268.8937ac","name":"","label":"Producto","tooltip":"","place":"Select option","group":"71b4f020.58093","order":1,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":280,"y":160,"wires":[["d3057464.99b7c8"]]},{"id":"eee74b39.1df488","type":"ui_dropdown","z":"62051268.8937ac","d":true,"name":"","label":"Firmware","tooltip":"","place":"Select option","group":"71b4f020.58093","order":2,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":320,"y":1300,"wires":[["dac37797.cef188"]]},{"id":"56387adc.9ccdb4","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1300,"wires":[]},{"id":"23420e83.b93162","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":340,"wires":[]},{"id":"1b672662.65707a","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese CHIP ID","tooltip":"","group":"71b4f020.58093","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":300,"y":340,"wires":[["12055074.c8909"]]},{"id":"6b2a87d3.439798","type":"ui_button","z":"62051268.8937ac","name":"","group":"71b4f020.58093","order":4,"width":0,"height":0,"passthru":false,"label":"Ingresar","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":280,"y":400,"wires":[["e88e017f.aed7"]]},{"id":"e88e017f.aed7","type":"function","z":"62051268.8937ac","name":"","func":"var productID = flow.get(\"productID\");\nvar firmwareID = flow.get(\"firmwareID\");\nvar chipID = flow.get(\"chipID\");\n\nif(chipID === undefined || chipID === \"\")\n return null;\n\nmsg.device = {\n \"chip_id\" : chipID,\n \"product_id\" : productID,\n \"firmware_id_act\" : firmwareID,\n \"firmware_id_update\" : firmwareID\n};\n\nmsg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + chipID + \"', '\" + productID + \"', '\" + firmwareID + \"', '\" + firmwareID + \"');\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":400,"wires":[["63987b2e.220f14","7e8f8271.3c85cc"]]},{"id":"4ec547ed.9329b8","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].product] = msg.payload[i].product_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nmsg.payload = 0;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":120,"y":160,"wires":[["31291e50.500cd2"]]},{"id":"ba2c5eb6.0e3b5","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":300,"y":100,"wires":[["cdf44006.1ec37","4ec547ed.9329b8"]]},{"id":"639a3366.80b05c","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"SELECT product_id, product FROM main_database.products","payload":"","payloadType":"date","x":130,"y":100,"wires":[["ba2c5eb6.0e3b5"]]},{"id":"cdf44006.1ec37","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":470,"y":100,"wires":[]},{"id":"17099f40.ba8e01","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":500,"y":220,"wires":[["eab99093.20401"]]},{"id":"d3057464.99b7c8","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"productID\", msg.payload);\n\nmsg.topic = \"SELECT firmware_id, firmware_version \";\nmsg.topic += \"FROM main_database.firmwares \";\nmsg.topic += \"WHERE product_id=\" + msg.payload + \" ORDER BY `firmware_id` DESC LIMIT 1;\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":160,"wires":[["17099f40.ba8e01"]]},{"id":"3aafc8aa.cd2c88","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":280,"wires":[]},{"id":"969d6fa5.1a8bf","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].firmware_version] = msg.payload[i].firmware_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":140,"y":1300,"wires":[["eee74b39.1df488"]]},{"id":"dac37797.cef188","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareID\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1300,"wires":[["56387adc.9ccdb4"]]},{"id":"12055074.c8909","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"chipID\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":340,"wires":[["23420e83.b93162"]]},{"id":"8234b7ea.3cf3b8","type":"comment","z":"62051268.8937ac","name":"Nuevo Device","info":"Crear nuevo dispositivo en Base de Datos","x":110,"y":40,"wires":[]},{"id":"7e8f8271.3c85cc","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":500,"y":460,"wires":[["66005164.05fb9"]]},{"id":"66005164.05fb9","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":460,"wires":[]},{"id":"9562b161.b6cf1","type":"ui_toast","z":"62051268.8937ac","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":680,"y":580,"wires":[]},{"id":"ae5a9ee7.4769a","type":"catch","z":"62051268.8937ac","name":"","scope":["7e8f8271.3c85cc"],"uncaught":false,"x":470,"y":520,"wires":[["5dcc2ca2.806bd4","9dc0256.0eb7cd8"]]},{"id":"5dcc2ca2.806bd4","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":520,"wires":[]},{"id":"9dc0256.0eb7cd8","type":"function","z":"62051268.8937ac","name":"","func":"msg.payload = msg.error.message;\nmsg.topic = \"DATABASE\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":580,"wires":[["9562b161.b6cf1"]]},{"id":"eab99093.20401","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareID\", msg.payload[0].firmware_id);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":280,"wires":[["3aafc8aa.cd2c88"]]},{"id":"cd0741f9.6840e","type":"function","z":"62051268.8937ac","name":"","func":"//SELECT product,COUNT(DISTINCT(chip_id)) FROM `main_database`.`getProductChipId` GROUP BY product;\n \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":620,"wires":[[]]},{"id":"921decf1.854fb","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"SELECT product,COUNT(DISTINCT(chip_id)) as \"cantidad\" FROM `main_database`.`getProductChipId` GROUP BY product;","payload":"","payloadType":"date","x":170,"y":660,"wires":[["9deb908e.4e48b"]]},{"id":"9deb908e.4e48b","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":360,"y":660,"wires":[["29b63526.98633a"]]},{"id":"50fd5cd7.5170b4","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":700,"wires":[]},{"id":"5f114e14.f17f","type":"ui_table","z":"62051268.8937ac","group":"7cba5717.c4ee98","name":"Dispositivos","order":2,"width":4,"height":5,"columns":[],"outputs":0,"cts":false,"x":710,"y":660,"wires":[]},{"id":"29b63526.98633a","type":"function","z":"62051268.8937ac","name":"","func":"let array = [];\n\nlet obj= {};\n\nfor(let i in msg.payload)\n{\n obj = {\n \"dispositivo\": msg.payload[i].product,\n \"cantidad\": msg.payload[i].cantidad\n };\n array.push(obj);\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":660,"wires":[["5f114e14.f17f","50fd5cd7.5170b4"]]},{"id":"c7317eb5.203c8","type":"comment","z":"62051268.8937ac","name":"Tabla Devices","info":"Crear nuevo dispositivo en Base de Datos","x":110,"y":620,"wires":[]},{"id":"244de0c3.e2e13","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1060,"wires":[]},{"id":"36162568.906eca","type":"ui_dropdown","z":"62051268.8937ac","name":"","label":"Producto","tooltip":"","place":"Select option","group":"2446fdf8.239892","order":1,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":320,"y":820,"wires":[["13d2d5a9.0da5ba"]]},{"id":"6a9dfcf2.21c2e4","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":940,"wires":[]},{"id":"5226c81e.0858d8","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese etiqueta","tooltip":"","group":"2446fdf8.239892","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":340,"y":940,"wires":[["79de81bf.1addd"]]},{"id":"82459776.7b3a08","type":"ui_button","z":"62051268.8937ac","name":"","group":"2446fdf8.239892","order":5,"width":0,"height":0,"passthru":false,"label":"Ingresar","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":320,"y":1060,"wires":[["2c6c5bf8.f26ca4"]]},{"id":"2c6c5bf8.f26ca4","type":"function","z":"62051268.8937ac","name":"","func":"var productID = flow.get(\"productIDAdm\");\nvar firmwareVersion = flow.get(\"firmwareVersionAdm\");\nvar etiqueta = flow.get(\"etiquetaAdm\");\nvar filename = flow.get(\"filenameAdm\");\n\n\nif(chipID === undefined || chipID === \"\")\n return null;\n\nmsg.device = {\n \"chip_id\" : chipID,\n \"product_id\" : productID,\n \"firmware_id_act\" : firmwareID,\n \"firmware_id_update\" : firmwareID\n};\n\nmsg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + chipID + \"', '\" + productID + \"', '\" + firmwareID + \"', '\" + firmwareID + \"');\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1060,"wires":[["244de0c3.e2e13"]]},{"id":"36df2732.b69a18","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].product] = msg.payload[i].product_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nmsg.payload = 0;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":160,"y":820,"wires":[["36162568.906eca"]]},{"id":"9f2a227.79b4ce","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":340,"y":760,"wires":[["ce6846d9.3d80c8","36df2732.b69a18"]]},{"id":"ab1f4128.ba981","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"SELECT product_id, product FROM main_database.products","payload":"","payloadType":"date","x":170,"y":760,"wires":[["9f2a227.79b4ce"]]},{"id":"ce6846d9.3d80c8","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":760,"wires":[]},{"id":"13d2d5a9.0da5ba","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"productIDAdm\", msg.payload);\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":820,"wires":[[]]},{"id":"79de81bf.1addd","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"etiquetaAdm\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":940,"wires":[["6a9dfcf2.21c2e4"]]},{"id":"4a7d910e.7fe1e","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":540,"y":1120,"wires":[["5b8416d0.f2bb28"]]},{"id":"5b8416d0.f2bb28","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1120,"wires":[]},{"id":"1cf3b01a.f78aa","type":"ui_toast","z":"62051268.8937ac","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":720,"y":1240,"wires":[]},{"id":"6fd8ce51.eebd7","type":"catch","z":"62051268.8937ac","name":"","scope":["4a7d910e.7fe1e"],"uncaught":false,"x":510,"y":1180,"wires":[["d2701b42.e448e8","4608a3f7.fa475c"]]},{"id":"d2701b42.e448e8","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1180,"wires":[]},{"id":"4608a3f7.fa475c","type":"function","z":"62051268.8937ac","name":"","func":"msg.payload = msg.error.message;\nmsg.topic = \"DATABASE\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1240,"wires":[["1cf3b01a.f78aa"]]},{"id":"a1aef455.557888","type":"comment","z":"62051268.8937ac","name":"Nuevo Firmware","info":"Crear nuevo dispositivo en Base de Datos","x":120,"y":720,"wires":[]},{"id":"1b0183e7.200a3c","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese Firmware Version","tooltip":"","group":"2446fdf8.239892","order":2,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":370,"y":880,"wires":[["743ea08c.76b57"]]},{"id":"743ea08c.76b57","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareVersionAdm\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":880,"wires":[["c9223ca4.040b2"]]},{"id":"c9223ca4.040b2","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":880,"wires":[]},{"id":"240e02c5.59ff8e","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1000,"wires":[]},{"id":"6a56394c.70c788","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese Filename","tooltip":"","group":"2446fdf8.239892","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":350,"y":1000,"wires":[["b5af7df8.39131"]]},{"id":"b5af7df8.39131","type":"function","z":"62051268.8937ac","name":"","func":"\nflow.set(\"filenameAdm\", \"/data/binarios/\" + msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1000,"wires":[["240e02c5.59ff8e"]]},{"id":"cd2815e4.d47d88","type":"ping","z":"402e352d.79d1dc","protocol":"Automatic","mode":"timed","name":"","host":"www.google.com","timer":"60","inputs":0,"x":120,"y":220,"wires":[["cedbf3b0.beb6f"]]},{"id":"cedbf3b0.beb6f","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":160,"wires":[]},{"id":"3a7f2b27.15b3b4","type":"function","z":"402e352d.79d1dc","name":"","func":"let url = msg.topic;\nlet ping = msg.payload;\n\nmsg.topic = \"INSERT INTO `main_database`.`pings` \";\nmsg.topic += \"(`url`, `ping`) \";\nmsg.topic += \"VALUES ('\" + url + \"', '\" + ping + \"');\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":220,"wires":[["f0bad261.7fbc6","1f24ae5d.7729b2"]]},{"id":"f0bad261.7fbc6","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":180,"wires":[]},{"id":"1f24ae5d.7729b2","type":"mysql","z":"402e352d.79d1dc","mydb":"bdf7265d.d181a8","name":"","x":540,"y":220,"wires":[["75c09e28.f1ae4"]]},{"id":"75c09e28.f1ae4","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":220,"wires":[]},{"id":"76a11136.4d052","type":"http request","z":"402e352d.79d1dc","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":450,"y":380,"wires":[["d9e0da9e.aa9278","de2c46e1.52e328"]]},{"id":"a62879bf.c02498","type":"function","z":"402e352d.79d1dc","name":"","func":"\nmsg.url = \"http://franciscotimez.com.ar:1880/ping\";\nmsg.method = \"GET\";\nmsg.requestTimeout = 20000;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":380,"wires":[["76a11136.4d052"]]},{"id":"47721816.20e708","type":"inject","z":"402e352d.79d1dc","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":380,"wires":[[]]},{"id":"d9e0da9e.aa9278","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":610,"y":440,"wires":[]},{"id":"de2c46e1.52e328","type":"function","z":"402e352d.79d1dc","name":"","func":"msg.topic = msg.url;\nmsg.payload = msg.statusCode;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":380,"wires":[["3a7f2b27.15b3b4"]]},{"id":"24770838.3d5d18","type":"ui_chart","z":"402e352d.79d1dc","name":"","group":"2446fdf8.239892","order":4,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#0f92f0","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"x":610,"y":680,"wires":[[]]},{"id":"686d8e58.e8b0d","type":"function","z":"402e352d.79d1dc","name":"","func":"array = [];\n\nobj = {};\n\nobj[\"series\"] = [ \"Google\"];\nobj[\"data\"] = [];\nobj[\"labels\"] = [\"\"];\n\nfor(let i in msg.payload)\n{\n obj[\"data\"].push(msg.payload[i].ping);\n}\n\narray.push(obj);\nmsg.payload = array;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":600,"wires":[["90009c37.9e39","24770838.3d5d18"]]},{"id":"359f063f.03372a","type":"function","z":"402e352d.79d1dc","name":"","func":"\nmsg.topic = \"SELECT `date`, `ping` \";\nmsg.topic += \"FROM `main_database`.`pings` \";\nmsg.topic += \"WHERE url = 'www.google.com' \";\nmsg.topic += \"ORDER BY `ping_id` ASC LIMIT 1000;\";\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":260,"y":480,"wires":[["8e3b574b.86afe8"]]},{"id":"8e3b574b.86afe8","type":"mysql","z":"402e352d.79d1dc","mydb":"bdf7265d.d181a8","name":"","x":460,"y":480,"wires":[["a09b92fd.41e0e","686d8e58.e8b0d"]]},{"id":"3da7874d.ea7f78","type":"inject","z":"402e352d.79d1dc","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":480,"wires":[["359f063f.03372a"]]},{"id":"a09b92fd.41e0e","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":500,"wires":[]},{"id":"90009c37.9e39","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":600,"wires":[]},{"id":"ae641d57.dfbe98","type":"inject","z":"d1d5ce25.67cc6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"DROP TABLE Chaleco_30AEA4EFDC5C;","payload":"","payloadType":"date","x":120,"y":260,"wires":[[]]},{"id":"484764e.b97e21c","type":"comment","z":"d1d5ce25.67cc6","name":"Envio datos http a database","info":"Envio el binario.","x":160,"y":40,"wires":[]},{"id":"5eee8a99.ad5054","type":"http in","z":"d1d5ce25.67cc6","name":"","url":"/logs","method":"post","upload":false,"swaggerDoc":"","x":100,"y":80,"wires":[["5611646a.2a0d04","9d44ce1d.539a7","2c4de125.741426"]]},{"id":"5611646a.2a0d04","type":"http response","z":"d1d5ce25.67cc6","name":"","statusCode":"200","headers":{},"x":300,"y":80,"wires":[]},{"id":"9d44ce1d.539a7","type":"function","z":"d1d5ce25.67cc6","name":"Data al database","func":"\ncolumn_title = msg.payload;\nvar os = new Date();\n//var os = \"157\";\nconsole.log(os);\n\n//if (msg.payload.Op_cafe==null && msg.payload.Energy_Total!=null){\n// msg.topic = \"INSERT INTO powerx (Potencia , COFI, ENERGIA_Wh, HORA, FECHA) VALUES ('\"+msg.payload.Active_Power+\"','\"+msg.payload.Power_Factor+\"','\"+msg.payload.Energy_Total+\"','\"+msg.payload.Op_hora+\"', '\"+msg.payload.Op_fecha+\"')\";\n// return msg; \n//}\n\n\n //{\"chipid\":\"30AEA4EFDC5C\",\"hour\":14,\"min\":35,\"sec\":13,\"lat\":-27.37025,\"long\":-55.99204,\"pitch\":168.1814,\"beat\":0,\"temperatura\":23.125,\"bateria\":100}\n //Hora,Latitud[掳],Longitud[掳],Pitch[掳],Beat[bpm],Temperatura[掳C],Bater铆a[%]\n\n//msg.topic += \"FROM `main_database`.`getFirmwareVersion` \";\n\n//msg.topic = \"INSERT INTO Chaleco (CHIPID, HORA, LATITUD, LONGITUD, PITCH, BEAT, TEMPERATURA, BATERIA ) VALUES ('\"+msg.payload.chipid+\"','\"+msg.payload.hour+\"','\"+msg.payload.min+\"','\"+msg.payload.sec+\"','\"+msg.payload.lat+\"','\"+msg.payload.long+\"','\"+msg.payload.pitch+\"','\"+msg.payload.beat+\"','\"+msg.payload.temperatura+\"','\"+msg.payload.bateria+\"')\";\nmsg.topic = \"INSERT INTO Chaleco_\";\nmsg.topic += msg.payload.chipid;\nmsg.topic += \" (HORA, LATITUD, LONGITUD, PITCH, BEAT, TEMPERATURA, BATERIA ) \";\nmsg.topic += \"VALUES ('\"+msg.payload.hour+\"','\";\nmsg.topic += msg.payload.lat+\"','\"+msg.payload.long+\"','\";\nmsg.topic += msg.payload.pitch+\"','\"+msg.payload.beat+\"','\";\nmsg.topic += msg.payload.temperatura+\"','\"+msg.payload.bateria+\"')\";\n\n//msg.topic = \"INSERT INTO testx (SELECCION , OPCION, HORA, FECHA) VALUES ('\"+msg.payload.Op_cafe+\"',\"+msg.payload.Op_num+\",'\"+msg.payload.Op_hora+\"', '\"+msg.payload.Op_fecha+\"')\";\n//msg.topic = \"INSERT INTO testx (OPCION) VALUES ('\"+msg.payload.temp+\"')\";\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":200,"wires":[["e909f8cf.b99cc8","57777a1f.3a44cc"]]},{"id":"e909f8cf.b99cc8","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":200,"wires":[]},{"id":"2c4de125.741426","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":290,"y":140,"wires":[]},{"id":"6a21f271.1310a4","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":400,"wires":[]},{"id":"d16e7ebd.b5d938","type":"catch","z":"d1d5ce25.67cc6","name":"","scope":["57777a1f.3a44cc"],"uncaught":false,"x":110,"y":400,"wires":[["9d9def7.06ac69"]]},{"id":"4dd2784c.1ec838","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":260,"wires":[]},{"id":"9d9def7.06ac69","type":"function","z":"d1d5ce25.67cc6","name":"INSERT si no existe","func":"/*\nCREATE TABLE table_name (\n column1 datatype,\n column2 datatype,\n column3 datatype,\n ....\n); \n*/\n msg.topic = \"CREATE TABLE \";\n msg.topic += \"Chaleco_\"+msg.payload.chipid;\n msg.topic += \" (\"\n //msg.topic += \" CHIPID varchar(255),\"\n msg.topic += \" HORA varchar(255),\"\n msg.topic += \" LATITUD varchar(255),\"\n msg.topic += \" LONGITUD varchar(255),\"\n msg.topic += \" PITCH varchar(255),\"\n msg.topic += \" BEAT int,\"\n msg.topic += \" TEMPERATURA varchar(255),\"\n msg.topic += \" BATERIA int\"\n msg.topic +=\");\"\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":400,"wires":[["6a21f271.1310a4","ced0fc6f.43cfd8"]]},{"id":"40deb601.5fe368","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":340,"wires":[]},{"id":"57777a1f.3a44cc","type":"mysql","z":"d1d5ce25.67cc6","mydb":"bdf7265d.d181a8","name":"","x":320,"y":260,"wires":[["4dd2784c.1ec838"]]},{"id":"ced0fc6f.43cfd8","type":"mysql","z":"d1d5ce25.67cc6","mydb":"bdf7265d.d181a8","name":"","x":320,"y":340,"wires":[["40deb601.5fe368"]]},{"id":"53b6adf2.ec19ac","type":"http in","z":"d1d5ce25.67cc6","name":"","url":"/logs","method":"get","upload":false,"swaggerDoc":"","x":100,"y":140,"wires":[["2c4de125.741426"]]}] \ No newline at end of file diff --git a/data_node_red/.flows_cred.json.backup b/data_node_red/.flows_cred.json.backup new file mode 100644 index 0000000..4446425 --- /dev/null +++ b/data_node_red/.flows_cred.json.backup @@ -0,0 +1 @@ +{"$":"85500e592d8ea3f715f464a51e3cbd99Nx2mMyPternvKrH7x+dtr7B+c8CMMnKpRnV/n8CbQrVXU3KsArfr4UpCR3XYw6XoufGzJ2qg24SiCCaXwf0="} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/00/8e/06d8094320c372dbc2f8ed76a0ca6c8ac419 b/data_node_red/.npm/_cacache/content-v2/sha1/00/8e/06d8094320c372dbc2f8ed76a0ca6c8ac419 new file mode 100644 index 0000000..9edc4ac Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/00/8e/06d8094320c372dbc2f8ed76a0ca6c8ac419 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/00/c6/08ab7dcd93897c0009651b1d3a8e1e73bbd1 b/data_node_red/.npm/_cacache/content-v2/sha1/00/c6/08ab7dcd93897c0009651b1d3a8e1e73bbd1 new file mode 100644 index 0000000..73295da Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/00/c6/08ab7dcd93897c0009651b1d3a8e1e73bbd1 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/02/58/eae4d3d0c0974de1c169188ef0051d1d1988 b/data_node_red/.npm/_cacache/content-v2/sha1/02/58/eae4d3d0c0974de1c169188ef0051d1d1988 new file mode 100644 index 0000000..403b4dd Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/02/58/eae4d3d0c0974de1c169188ef0051d1d1988 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/13/79/18d6d78283f7df7a6b7c5a63e140e69425e6 b/data_node_red/.npm/_cacache/content-v2/sha1/13/79/18d6d78283f7df7a6b7c5a63e140e69425e6 new file mode 100644 index 0000000..27c3514 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/13/79/18d6d78283f7df7a6b7c5a63e140e69425e6 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/16/1c/7dac177659fd9811f43771fa99381478628c b/data_node_red/.npm/_cacache/content-v2/sha1/16/1c/7dac177659fd9811f43771fa99381478628c new file mode 100644 index 0000000..e6fe2e4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/16/1c/7dac177659fd9811f43771fa99381478628c differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/17/e6/c11f73dd4f3d74cda7a4ff3238e9ad9bf890 b/data_node_red/.npm/_cacache/content-v2/sha1/17/e6/c11f73dd4f3d74cda7a4ff3238e9ad9bf890 new file mode 100644 index 0000000..94072d4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/17/e6/c11f73dd4f3d74cda7a4ff3238e9ad9bf890 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/20/f1/336481b083cd75337992a16971aa2d906947 b/data_node_red/.npm/_cacache/content-v2/sha1/20/f1/336481b083cd75337992a16971aa2d906947 new file mode 100644 index 0000000..b413c97 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/20/f1/336481b083cd75337992a16971aa2d906947 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/22/99/f02c6ded30d4a5961b0b9f74524a18f634fc b/data_node_red/.npm/_cacache/content-v2/sha1/22/99/f02c6ded30d4a5961b0b9f74524a18f634fc new file mode 100644 index 0000000..c69174f Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/22/99/f02c6ded30d4a5961b0b9f74524a18f634fc differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/31/ab/1ac8b129363463e35b3ebb69f4dfcfba7947 b/data_node_red/.npm/_cacache/content-v2/sha1/31/ab/1ac8b129363463e35b3ebb69f4dfcfba7947 new file mode 100644 index 0000000..cd537d0 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/31/ab/1ac8b129363463e35b3ebb69f4dfcfba7947 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/3d/8c/add90d976569fa835ab1f8e4b23a105605a7 b/data_node_red/.npm/_cacache/content-v2/sha1/3d/8c/add90d976569fa835ab1f8e4b23a105605a7 new file mode 100644 index 0000000..e45ccf6 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/3d/8c/add90d976569fa835ab1f8e4b23a105605a7 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/41/ae/2eeb65efa62268aebfea83ac7d79299b0887 b/data_node_red/.npm/_cacache/content-v2/sha1/41/ae/2eeb65efa62268aebfea83ac7d79299b0887 new file mode 100644 index 0000000..9e3103a Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/41/ae/2eeb65efa62268aebfea83ac7d79299b0887 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/45/0d/4dc9fa70de732762fbd2d4a28981419a0ccf b/data_node_red/.npm/_cacache/content-v2/sha1/45/0d/4dc9fa70de732762fbd2d4a28981419a0ccf new file mode 100644 index 0000000..544aac0 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/45/0d/4dc9fa70de732762fbd2d4a28981419a0ccf differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/47/53/93ff9e91479aea62dcaf0ca3d14983a7fb40 b/data_node_red/.npm/_cacache/content-v2/sha1/47/53/93ff9e91479aea62dcaf0ca3d14983a7fb40 new file mode 100644 index 0000000..9a06eed Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/47/53/93ff9e91479aea62dcaf0ca3d14983a7fb40 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/56/08/aeadfc00be6c2901df5f9861788de0d597c8 b/data_node_red/.npm/_cacache/content-v2/sha1/56/08/aeadfc00be6c2901df5f9861788de0d597c8 new file mode 100644 index 0000000..5e3cc7c Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/56/08/aeadfc00be6c2901df5f9861788de0d597c8 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/59/0c/61156b0ae2f4f0255732a158b266bc56b21d b/data_node_red/.npm/_cacache/content-v2/sha1/59/0c/61156b0ae2f4f0255732a158b266bc56b21d new file mode 100644 index 0000000..00711eb Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/59/0c/61156b0ae2f4f0255732a158b266bc56b21d differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/5e/47/4793f7ea9843d1bb99c23eef49ff126fff39 b/data_node_red/.npm/_cacache/content-v2/sha1/5e/47/4793f7ea9843d1bb99c23eef49ff126fff39 new file mode 100644 index 0000000..2ca7d1e Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/5e/47/4793f7ea9843d1bb99c23eef49ff126fff39 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/64/5f/c4adf58b72b649d5cae65135619db26ff143 b/data_node_red/.npm/_cacache/content-v2/sha1/64/5f/c4adf58b72b649d5cae65135619db26ff143 new file mode 100644 index 0000000..fca7aa1 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/64/5f/c4adf58b72b649d5cae65135619db26ff143 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/82/dc/336d232b9062179d05ab3293a66059fd435d b/data_node_red/.npm/_cacache/content-v2/sha1/82/dc/336d232b9062179d05ab3293a66059fd435d new file mode 100644 index 0000000..234092f Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/82/dc/336d232b9062179d05ab3293a66059fd435d differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/97/88/57442c44749e4206613e37946205826abd80 b/data_node_red/.npm/_cacache/content-v2/sha1/97/88/57442c44749e4206613e37946205826abd80 new file mode 100644 index 0000000..fd9e826 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/97/88/57442c44749e4206613e37946205826abd80 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/98/18/c79e059b1355f97e0428a017c838e90ba812 b/data_node_red/.npm/_cacache/content-v2/sha1/98/18/c79e059b1355f97e0428a017c838e90ba812 new file mode 100644 index 0000000..1f1f008 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/98/18/c79e059b1355f97e0428a017c838e90ba812 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/9b/cd/52e14c097763e749b274c4346ed2e560b5a9 b/data_node_red/.npm/_cacache/content-v2/sha1/9b/cd/52e14c097763e749b274c4346ed2e560b5a9 new file mode 100644 index 0000000..9657544 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/9b/cd/52e14c097763e749b274c4346ed2e560b5a9 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/a3/7d/94ed9cda2d59865c9f76fe596ee1f338741e b/data_node_red/.npm/_cacache/content-v2/sha1/a3/7d/94ed9cda2d59865c9f76fe596ee1f338741e new file mode 100644 index 0000000..9c5de6a Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/a3/7d/94ed9cda2d59865c9f76fe596ee1f338741e differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/ad/3f/f4c86ec2d029322f5a02c3a9a606c95b3f59 b/data_node_red/.npm/_cacache/content-v2/sha1/ad/3f/f4c86ec2d029322f5a02c3a9a606c95b3f59 new file mode 100644 index 0000000..3188fd8 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/ad/3f/f4c86ec2d029322f5a02c3a9a606c95b3f59 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/b5/fd/54220aa2bc5ab57aab7140c940754503c1a7 b/data_node_red/.npm/_cacache/content-v2/sha1/b5/fd/54220aa2bc5ab57aab7140c940754503c1a7 new file mode 100644 index 0000000..47be59d Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/b5/fd/54220aa2bc5ab57aab7140c940754503c1a7 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/bb/93/5d48582cba168c06834957a54a3e07124f11 b/data_node_red/.npm/_cacache/content-v2/sha1/bb/93/5d48582cba168c06834957a54a3e07124f11 new file mode 100644 index 0000000..0a87bc9 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/bb/93/5d48582cba168c06834957a54a3e07124f11 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/d3/28/15404d689699f85a4ea4fa8755dd13a96048 b/data_node_red/.npm/_cacache/content-v2/sha1/d3/28/15404d689699f85a4ea4fa8755dd13a96048 new file mode 100644 index 0000000..666f034 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/d3/28/15404d689699f85a4ea4fa8755dd13a96048 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha1/fe/db/394f9f0e02aa9768e702bda23b505fae7e1f b/data_node_red/.npm/_cacache/content-v2/sha1/fe/db/394f9f0e02aa9768e702bda23b505fae7e1f new file mode 100644 index 0000000..24c5e4b Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha1/fe/db/394f9f0e02aa9768e702bda23b505fae7e1f differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/00/5d/ebecfe5d5b12fc331c884d132539140d68e036224005693af893b054ba68cfb51a460d36699743dbd5708ee89783081769d76e8282cf6c331a928e063246 b/data_node_red/.npm/_cacache/content-v2/sha512/00/5d/ebecfe5d5b12fc331c884d132539140d68e036224005693af893b054ba68cfb51a460d36699743dbd5708ee89783081769d76e8282cf6c331a928e063246 new file mode 100644 index 0000000..a4a2b50 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/00/5d/ebecfe5d5b12fc331c884d132539140d68e036224005693af893b054ba68cfb51a460d36699743dbd5708ee89783081769d76e8282cf6c331a928e063246 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/01/48/de9fcb0090681aa3b532097e8086fd2020ad9f0012a6623bcfe319b2e4968abdc6d346e788a883c72c07eadf4c4975da92134df720e31448e30270add2a3 b/data_node_red/.npm/_cacache/content-v2/sha512/01/48/de9fcb0090681aa3b532097e8086fd2020ad9f0012a6623bcfe319b2e4968abdc6d346e788a883c72c07eadf4c4975da92134df720e31448e30270add2a3 new file mode 100644 index 0000000..38092d1 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/01/48/de9fcb0090681aa3b532097e8086fd2020ad9f0012a6623bcfe319b2e4968abdc6d346e788a883c72c07eadf4c4975da92134df720e31448e30270add2a3 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/05/c6/be824d985a6aa9d947fa93934512eaf063fd2d77472979b02e705a58ff78e1af0ad51aec54dae4050878d4d7d4897e37b4c90be2fab55676aefc851e658a b/data_node_red/.npm/_cacache/content-v2/sha512/05/c6/be824d985a6aa9d947fa93934512eaf063fd2d77472979b02e705a58ff78e1af0ad51aec54dae4050878d4d7d4897e37b4c90be2fab55676aefc851e658a new file mode 100644 index 0000000..d8426c7 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/05/c6/be824d985a6aa9d947fa93934512eaf063fd2d77472979b02e705a58ff78e1af0ad51aec54dae4050878d4d7d4897e37b4c90be2fab55676aefc851e658a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/06/c5/4ab2219c40c1704fc531ca9a1b50acafee2ac23511e4d53d06ebcd2f93cf327fa2c107219c649393242ad33f6c5537ac88f978cf25c36e1375787d3f6c02 b/data_node_red/.npm/_cacache/content-v2/sha512/06/c5/4ab2219c40c1704fc531ca9a1b50acafee2ac23511e4d53d06ebcd2f93cf327fa2c107219c649393242ad33f6c5537ac88f978cf25c36e1375787d3f6c02 new file mode 100644 index 0000000..1a0bb80 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/06/c5/4ab2219c40c1704fc531ca9a1b50acafee2ac23511e4d53d06ebcd2f93cf327fa2c107219c649393242ad33f6c5537ac88f978cf25c36e1375787d3f6c02 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/07/b0/eab663557829e4a35cae0972ebd98da4404b21556f3dda6ee9972df9b1015a61e5b02c21cfe69252af2c11347e0cca10cca41fb5e50bd0c8b1a90c583b60 b/data_node_red/.npm/_cacache/content-v2/sha512/07/b0/eab663557829e4a35cae0972ebd98da4404b21556f3dda6ee9972df9b1015a61e5b02c21cfe69252af2c11347e0cca10cca41fb5e50bd0c8b1a90c583b60 new file mode 100644 index 0000000..64a7678 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/07/b0/eab663557829e4a35cae0972ebd98da4404b21556f3dda6ee9972df9b1015a61e5b02c21cfe69252af2c11347e0cca10cca41fb5e50bd0c8b1a90c583b60 @@ -0,0 +1 @@ +{"name":"component-bind","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"component-bind","version":"1.0.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"00c608ab7dcd93897c0009651b1d3a8e1e73bbd1","tarball":"https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"}}},"modified":"2017-05-22T20:52:54.317Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/08/d1/9fe81fbee7feea3006db8bde66e1b01c8e2c285b0cb7602fc07d202fb27bed8ec1dee29279d5519aa33c487a760e56fb78a0fb3ce4fbde29a2bcbdc28ced b/data_node_red/.npm/_cacache/content-v2/sha512/08/d1/9fe81fbee7feea3006db8bde66e1b01c8e2c285b0cb7602fc07d202fb27bed8ec1dee29279d5519aa33c487a760e56fb78a0fb3ce4fbde29a2bcbdc28ced new file mode 100644 index 0000000..5bc099a --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/08/d1/9fe81fbee7feea3006db8bde66e1b01c8e2c285b0cb7602fc07d202fb27bed8ec1dee29279d5519aa33c487a760e56fb78a0fb3ce4fbde29a2bcbdc28ced @@ -0,0 +1 @@ +{"name":"isarray","dist-tags":{"latest":"2.0.5"},"versions":{"0.0.0":{"name":"isarray","version":"0.0.0","devDependencies":{"tap":"*"},"dist":{"shasum":"643ef22a01dd5b244411c2afedd4347489fb392e","tarball":"https://registry.npmjs.org/isarray/-/isarray-0.0.0.tgz"}},"0.0.1":{"name":"isarray","version":"0.0.1","devDependencies":{"tap":"*"},"dist":{"shasum":"8a18acfca9a8f4177e09abfc6038939b05d1eedf","tarball":"https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"}},"1.0.0":{"name":"isarray","version":"1.0.0","devDependencies":{"tape":"~2.13.4"},"dist":{"shasum":"bb935d48582cba168c06834957a54a3e07124f11","tarball":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"}},"2.0.0":{"name":"isarray","version":"2.0.0","devDependencies":{"tape":"~2.13.4"},"dist":{"shasum":"3ac1d0b7cb66703a6aa1feaa92aedcb49b5ebf53","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.0.tgz"}},"2.0.1":{"name":"isarray","version":"2.0.1","devDependencies":{"tape":"~2.13.4"},"dist":{"shasum":"a37d94ed9cda2d59865c9f76fe596ee1f338741e","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz"}},"2.0.2":{"name":"isarray","version":"2.0.2","devDependencies":{"tape":"~2.13.4"},"dist":{"integrity":"sha512-DKCXsIpN+352zm3Sd75dY9HyaIcxU6grh118GhTPXc85jJ5nEGKOsPQOwSuE7aRd+XVRcC/Em6W44onQEQ9RBg==","shasum":"5aa99638daf2248b10b9598b763a045688ece3ee","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.2.tgz"}},"2.0.3":{"name":"isarray","version":"2.0.3","devDependencies":{"tape":"~2.13.4"},"dist":{"integrity":"sha512-KhjEV7y7pkyOeEZfHnN3aad5508EleFYsMhZXxr5Xo+Gh2gNA02Me6K0BYKiYHb6dw+q7XknaopupAgzCzoCJQ==","shasum":"ff8dbee3f576335273f1de2d6b420627717f0714","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.3.tgz","fileCount":3,"unpackedSize":3348}},"2.0.4":{"name":"isarray","version":"2.0.4","devDependencies":{"tape":"~2.13.4"},"dist":{"integrity":"sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==","shasum":"38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz","fileCount":3,"unpackedSize":3443}},"2.0.5":{"name":"isarray","version":"2.0.5","devDependencies":{"tape":"~2.13.4"},"dist":{"integrity":"sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==","shasum":"8af1e4c1221244cc62459faf38940d4e644a5723","tarball":"https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz","fileCount":4,"unpackedSize":3430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI0NSCRA9TVsSAnZWagAAzjYP/RFkf3rbIX0T4eFE3hpL\nr80bdfbn0AIjPAaKMIteJztmVZfIWH5/shXvJWT88AAdLVfGH+fTn//XVMF9\neYesuQYcBIRI65hMVENmmaTuz9Pyrmq52xl8W4UU+NRKKC1qwXrGUWbsmFOF\n7Cvvd2fy7J7Z5cyR+6sP2TAY7cRgzYdNPf7FVE9la/Ahg4DUb7ETTUbrKwN9\npMM+RJEtDA1vRuMUFeh0t6DTCLn7EkJcc/qfm3jePJJ1OXkO8dkfIhtCfWeG\nkePKQiI6+n32kJJtku1F3GxCGgwQiOXI5sX3hPix3oHGs3q5zBIrgCVoj6GZ\nNnhTfcHTvnnhYak8TNmSVATzhhOdNLJUY9+szxbGr0XGBF+Lgi1FFb2Spdyc\nvcqG7O4m4PHPrRsNZRrsTeQ3RcfZcoZ9zmdKqea4QzA4FQjPB1RZom4STuXX\nLIpiylo8H/6GodraHrSJ256xSeGy5P3sp6qsKRGtxhJwfdQNCFeCqFMNgmNL\n2TJLm5ojvsViOHeJonDa4olaVWh6eaI2T9UzH61yR71/E0Gbjb4D0e9f/ex5\nvpnvgUcFutSk7E9IbnZHao4B61o53r0qJWaxgdzL22QuFJEOszoiqF9gL2Ou\nIO3toVc6CROs6zznHpM2VlMB7SuOCC45lQsPORPW617nDtt77oKQrCU/Bqq9\nOMMX\r\n=GpHT\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-07-08T13:21:24.888Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/0a/2c/9e3b1153fc96723799b4cfd3df5f0e1208127a4b2833d43a65d30aa39610c418604fd469ec51510bd29eb78681b57dc8f77c7ca75e2f4d60ee2758e2fea9 b/data_node_red/.npm/_cacache/content-v2/sha512/0a/2c/9e3b1153fc96723799b4cfd3df5f0e1208127a4b2833d43a65d30aa39610c418604fd469ec51510bd29eb78681b57dc8f77c7ca75e2f4d60ee2758e2fea9 new file mode 100644 index 0000000..009d263 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/0a/2c/9e3b1153fc96723799b4cfd3df5f0e1208127a4b2833d43a65d30aa39610c418604fd469ec51510bd29eb78681b57dc8f77c7ca75e2f4d60ee2758e2fea9 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/0a/2e/ce1a2b49bdc54254bea58ab1eaa67299e95137c4097621862b9db6ffd505e3c7a88fe1111fa9d76b3e8a474d1df304adcb0108e1ca0ed60932adce974ad8 b/data_node_red/.npm/_cacache/content-v2/sha512/0a/2e/ce1a2b49bdc54254bea58ab1eaa67299e95137c4097621862b9db6ffd505e3c7a88fe1111fa9d76b3e8a474d1df304adcb0108e1ca0ed60932adce974ad8 new file mode 100644 index 0000000..5cd3c9d --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/0a/2e/ce1a2b49bdc54254bea58ab1eaa67299e95137c4097621862b9db6ffd505e3c7a88fe1111fa9d76b3e8a474d1df304adcb0108e1ca0ed60932adce974ad8 @@ -0,0 +1 @@ +{"name":"inherits","dist-tags":{"latest":"2.0.4"},"versions":{"1.0.0":{"name":"inherits","version":"1.0.0","dist":{"shasum":"38e1975285bf1f7ba9c84da102bb12771322ac48","tarball":"https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz"},"engines":{"node":"*"}},"2.0.0":{"name":"inherits","version":"2.0.0","dist":{"shasum":"76c81b3b1c10ddee3a60bf2c247162bc369f8ba8","tarball":"https://registry.npmjs.org/inherits/-/inherits-2.0.0.tgz"}},"2.0.1":{"name":"inherits","version":"2.0.1","dist":{"shasum":"b17d08d326b4423e568eff719f91b0b1cbdf69f1","tarball":"https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"}},"1.0.1":{"name":"inherits","version":"1.0.1","dist":{"shasum":"1bdf16c6ff8266cb858c6da2baf3637a99fb3d87","tarball":"https://registry.npmjs.org/inherits/-/inherits-1.0.1.tgz"}},"1.0.2":{"name":"inherits","version":"1.0.2","dist":{"shasum":"ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b","tarball":"https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz"}},"2.0.3":{"name":"inherits","version":"2.0.3","devDependencies":{"tap":"^7.1.0"},"dist":{"shasum":"633c2c83e3da42a502f52466022480f4208261de","tarball":"https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"}},"2.0.4":{"name":"inherits","version":"2.0.4","devDependencies":{"tap":"^14.2.4"},"dist":{"integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","shasum":"0fa2c64f932917c3433a0ded55363aae37416b7c","tarball":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","fileCount":5,"unpackedSize":3958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCpisCRA9TVsSAnZWagAA34wP/R7/M+OPDguEHhSTBFwm\nyr5qskotwW0egz8MlwqkYJnKmkNMGVwH2ciD0+mzkoomD+iUf9cAI6qjAT+p\n2b+qFTikQpScNZRMKnMF+f5Jf0X6IVS03tojFm2i9BSxD0DL7fRoNLw/3seH\nO/5vYeiQUq0Ojx3AY4hf31AQTfBlZ7pohiE6BNAYWBXWpCq2c3uENGaeiwxk\nnmTL/fUs8RRubjrqW5Bwpi+PZrkmwcL+Te/juGLP1Ef52BDjaeVk1e9YlNtJ\nX++I+HyVR0Kb4pYyBO/iRE1ifanLmGm70PsBFUmwAAq21FGhFH/cfAeoRJo7\n3MuW5+W8n2BmJKwpngGIf/92SWJP9Ww1Vo1Lo11fpwGjPjF4RiFkD81+GDSI\n6LXikSQRmGS+6FIrkXDKZ45ir8K3tGw6peXr/fq1FmzicySGRd8gFpAZIxCw\nLIM7YXBonoGsG8p/LqG6rTfmC3ymOR8R+WH5NGeMXkRw08KJED5nMkSp5b4I\nIRenKnfIZgz+daoFE8p/W6KtTz+Ac1pMou9vnSa3B7YZjr1y6B6B3PLDq3kC\nyZZWvv3u78F8u8WkVS8iA8BvEO6aPcENzQcT61P4h0r8mitpLmvKN2+WViLV\nowBn8STKGeuXImHwPgY6Et6U29r9ec1Y01YNNf8Qfd03eNhroDFKBsC3rPGU\nT9HJ\r\n=18y6\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-06-19T20:18:56.232Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/0b/61/241d7c17bcbb1baee7094d14b7c451efecc7ffcbd92598a0f13d313cc9ebc2a07e61f007baf58fbf94ff9a8695bdd5cae7ce03bbf1e94e93613a00f25f21 b/data_node_red/.npm/_cacache/content-v2/sha512/0b/61/241d7c17bcbb1baee7094d14b7c451efecc7ffcbd92598a0f13d313cc9ebc2a07e61f007baf58fbf94ff9a8695bdd5cae7ce03bbf1e94e93613a00f25f21 new file mode 100644 index 0000000..945c9b4 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/0b/61/241d7c17bcbb1baee7094d14b7c451efecc7ffcbd92598a0f13d313cc9ebc2a07e61f007baf58fbf94ff9a8695bdd5cae7ce03bbf1e94e93613a00f25f21 @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/0d/0d/d5cadd30473ad436dc12b5a70e8b5f1af01f92e1bd371fd6c4e621666f9c44fe6b14fd5e30518b329b0b843a99c838f9734436a460c6283973b4531cb6ed b/data_node_red/.npm/_cacache/content-v2/sha512/0d/0d/d5cadd30473ad436dc12b5a70e8b5f1af01f92e1bd371fd6c4e621666f9c44fe6b14fd5e30518b329b0b843a99c838f9734436a460c6283973b4531cb6ed new file mode 100644 index 0000000..80617d3 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/0d/0d/d5cadd30473ad436dc12b5a70e8b5f1af01f92e1bd371fd6c4e621666f9c44fe6b14fd5e30518b329b0b843a99c838f9734436a460c6283973b4531cb6ed @@ -0,0 +1 @@ +{"name":"backo2","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"backo2","version":"1.0.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"2e4bd2ed1b9c09b4bd9fe6773f64755dda605abf","tarball":"https://registry.npmjs.org/backo2/-/backo2-1.0.1.tgz"}},"1.0.2":{"name":"backo2","version":"1.0.2","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"31ab1ac8b129363463e35b3ebb69f4dfcfba7947","tarball":"https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz"}}},"modified":"2018-02-01T12:16:38.921Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/0d/e4/5664a234cbad9568aa12d8dc19359bd78a7f451cd9de87f2a867c605d498ccbe3b3b2165d65bbc5031db663911379d6a3b9aabd709c0d910805e8711d40a b/data_node_red/.npm/_cacache/content-v2/sha512/0d/e4/5664a234cbad9568aa12d8dc19359bd78a7f451cd9de87f2a867c605d498ccbe3b3b2165d65bbc5031db663911379d6a3b9aabd709c0d910805e8711d40a new file mode 100644 index 0000000..2a7d248 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/0d/e4/5664a234cbad9568aa12d8dc19359bd78a7f451cd9de87f2a867c605d498ccbe3b3b2165d65bbc5031db663911379d6a3b9aabd709c0d910805e8711d40a @@ -0,0 +1 @@ +{"name":"socket.io-parser","dist-tags":{"latest":"4.0.4","beta":"4.0.1-rc3","v2-latest":"3.3.2"},"versions":{"1.0.1":{"name":"socket.io-parser","version":"1.0.1","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"1e4f458c637d62afb51184832669d4db5c8d95c0","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-1.0.1.tgz"}},"1.0.2":{"name":"socket.io-parser","version":"1.0.2","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"2689acd3b81477f270a112b7ef6ad584370981b5","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-1.0.2.tgz"}},"1.1.0":{"name":"socket.io-parser","version":"1.1.0","dependencies":{"debug":"0.6.0","json3":"3.2.6"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0"},"dist":{"shasum":"3929528fbe7f43bdc9887db037db6fe933376150","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-1.1.0.tgz"}},"1.1.1":{"name":"socket.io-parser","version":"1.1.1","dependencies":{"debug":"0.7.4","json3":"3.2.6"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0"},"dist":{"shasum":"a7b7c3d799cda79704aa2960eb1dfd153e904fb4","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-1.1.1.tgz"}},"1.1.2":{"name":"socket.io-parser","version":"1.1.2","dependencies":{"debug":"0.7.4","json3":"3.3.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0"},"dist":{"shasum":"ac3ff22eefe2b5e6b2f546151038d27a22bea6ba","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-1.1.2.tgz"}},"2.0.0":{"name":"socket.io-parser","version":"2.0.0","dependencies":{"debug":"0.7.4","msgpack-js":"0.3.0","json3":"3.2.6","isarray":"0.0.1","base64-js":"0.0.6","msgpack-allbrowsers":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0"},"dist":{"shasum":"2d00f6c0a0a1952bfcca8de7897960c9f8c9e82a","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.0.0.tgz"}},"2.1.0":{"name":"socket.io-parser","version":"2.1.0","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.5.4"},"dist":{"shasum":"1c0569a214ec1453a11bc457f472b126b8ec6dd8","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.0.tgz"}},"2.1.1":{"name":"socket.io-parser","version":"2.1.1","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.5.4"},"dist":{"shasum":"fbb21a4ccb216e659d77ef2ed8c5f80575a9b8ee","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.1.tgz"}},"2.1.2":{"name":"socket.io-parser","version":"2.1.2","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.5.4"},"dist":{"shasum":"876655b9edd555c5bdf7301cedf30a436c67b8b0","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.2.tgz"}},"2.1.3":{"name":"socket.io-parser","version":"2.1.3","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"539a6ee23f18c578f52acccd12c8a4e582469aef","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.3.tgz"}},"2.1.4":{"name":"socket.io-parser","version":"2.1.4","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"ed2ec2608aa2e21189d922512a4703984166c270","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.4.tgz"}},"2.1.5":{"name":"socket.io-parser","version":"2.1.5","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"4deb9339a36ec4b2bc782dffbfdbd53811493ebf","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.5.tgz"}},"2.2.0":{"name":"socket.io-parser","version":"2.2.0","dependencies":{"debug":"0.7.4","json3":"3.2.6","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","isarray":"0.0.1"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"2609601f59e6a7fab436a53be3d333fbbfcbd30a","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.0.tgz"}},"2.2.1":{"name":"socket.io-parser","version":"2.2.1","dependencies":{"debug":"0.7.4","json3":"3.2.6","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"22e79d7a8458f4b48cc20884c00285487b1b77d8","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.1.tgz"}},"2.2.2":{"name":"socket.io-parser","version":"2.2.2","dependencies":{"debug":"0.7.4","json3":"3.2.6","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"3d7af6b64497e956b7d9fe775f999716027f9417","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz"}},"2.2.3":{"name":"socket.io-parser","version":"2.2.3","dependencies":{"debug":"0.7.4","json3":"3.2.6","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"6b2c2d6b971a0c0b8510eb83dd2d281a00ee7320","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.3.tgz"}},"2.2.4":{"name":"socket.io-parser","version":"2.2.4","dependencies":{"debug":"0.7.4","json3":"3.2.6","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"1.6.3"},"dist":{"shasum":"f9ce19bf1909608ceb15d97721e23bfdd1e7cf65","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.4.tgz"}},"2.2.5":{"name":"socket.io-parser","version":"2.2.5","dependencies":{"debug":"2.2.0","json3":"3.3.2","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"3.7.3"},"dist":{"shasum":"8d945b6da2158bafaf04f4e9c77c573b44cde52c","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.5.tgz"}},"2.2.6":{"name":"socket.io-parser","version":"2.2.6","dependencies":{"debug":"2.2.0","json3":"3.3.2","component-emitter":"1.1.2","isarray":"0.0.1","benchmark":"1.0.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.0","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"38dfd61df50dcf8ab1d9e2091322bf902ba28b99","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz"}},"2.3.0":{"name":"socket.io-parser","version":"2.3.0","dependencies":{"debug":"2.2.0","json3":"3.3.2","component-emitter":"1.1.2"},"devDependencies":{"benchmark":"1.0.0","expect.js":"0.2.0","mocha":"1.16.2","zuul":"3.11.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"deb02dc50f7f5ac7a35f43bc6f7d413dc46a5153","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.0.tgz"}},"2.3.1":{"name":"socket.io-parser","version":"2.3.1","dependencies":{"debug":"2.2.0","json3":"3.3.2","component-emitter":"1.1.2","isarray":"0.0.1"},"devDependencies":{"benchmark":"1.0.0","expect.js":"0.2.0","mocha":"1.16.2","zuul":"3.11.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"dd532025103ce429697326befd64005fcfe5b4a0","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz"}},"2.3.2":{"name":"socket.io-parser","version":"2.3.2","dependencies":{"debug":"2.3.3","json3":"3.3.2","component-emitter":"1.2.1","isarray":"0.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"ae64f90cd8d0b5316556280d98cb744f7422cd94","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.2.tgz"}},"3.0.0":{"name":"socket.io-parser","version":"3.0.0","dependencies":{"debug":"2.3.3","component-emitter":"1.2.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"19c1cd4582b8a0b729ec013af744465e0f1400bc","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.0.0.tgz"}},"3.1.0":{"name":"socket.io-parser","version":"3.1.0","dependencies":{"debug":"~2.6.4","component-emitter":"1.2.1","has-binary2":"1.0.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"b58a3d780fe63370e4055d51bff6cb1b582715e9","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.0.tgz"}},"3.1.1":{"name":"socket.io-parser","version":"3.1.1","dependencies":{"debug":"~2.6.4","component-emitter":"1.2.1","has-binary2":"1.0.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"9dce6ed0a66abdcc927b4572e8fd1a8b64e3df36","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.1.tgz"}},"3.1.2":{"name":"socket.io-parser","version":"3.1.2","dependencies":{"debug":"~2.6.4","component-emitter":"1.2.1","has-binary2":"~1.0.2","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"dbc2282151fc4faebbe40aeedc0772eba619f7f2","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz"}},"3.1.3":{"name":"socket.io-parser","version":"3.1.3","dependencies":{"debug":"~3.1.0","component-emitter":"1.2.1","has-binary2":"~1.0.2","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==","shasum":"ed2da5ee79f10955036e3da413bfd7f1e4d86c8e","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz","fileCount":6,"unpackedSize":16194}},"3.2.0":{"name":"socket.io-parser","version":"3.2.0","dependencies":{"debug":"~3.1.0","component-emitter":"1.2.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==","shasum":"e7c6228b6aa1f814e6148aea325b51aa9499e077","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz","fileCount":6,"unpackedSize":16643}},"3.3.0":{"name":"socket.io-parser","version":"3.3.0","dependencies":{"debug":"~3.1.0","component-emitter":"1.2.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==","shasum":"2b52a96a509fdf31440ba40fed6094c7d4f1262f","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz","fileCount":6,"unpackedSize":16537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb425JCRA9TVsSAnZWagAACYYP/jgStg6omyEpLbx+h2iB\nXZtoZrI863809JVXI5JrA0Pd5FFOqyGnkmzYouFT56lBLnHPuAVIq3U5WYK/\n7R7q1y2ypXy0An/Ut0lNT8GJUsKIFIF7bq2TC7yP+0gHJNweK8/gs1+dYC1w\nIqaGrXEpkfsxEcEuwLvHs5t4F9tHMGsZlQa8XuXd8SNM5srkmTqi6TtBEzr9\nPRfcv4c5ueWblq7hDQiZnqbqcjSieNQbQ45gJvirap4ZJaEG0qIlT2ggQ1dy\nJPqqs4JK7XNCAyxNBZmkebz6Osb42OKKIJESd+deAz0MiEVZbDfmEeed8Yt6\nq5N3e6QLRDUwP+8xuwmfz+eL9dmtNtuCCV65zEZbMzBAvRWJwI2Yn1nujx3e\n7ZqW0PZ2BbVWIs8pB+mTYYiaL12BzX+eco4kFJmwvFgILhXhdwhY3/IQcvZf\npJGt8oQQuMvGD1yaBXnUXy3IRGPcxM5PqlEqPEEMFGAIiIMHyB92g2/3eXdd\naeL03CS2S8zD2vyNOzqUtxTxh+oTd4lHdbYBYwTIdUs9qrkWvYHSwgpdWbpe\nkABocA5gzy3IJs5jaR1SUuyHlHnBdlAZ6DW6f9r0v4mowsVcOmOvzYsH+bjo\nGshKV6qVebLuCAfbYANUQax30dfqM+I91G2s1ZPPZLwb1YnM1n2+kD1/OAnq\n7X1t\r\n=Ahma\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.0":{"name":"socket.io-parser","version":"3.4.0","dependencies":{"debug":"~4.1.0","component-emitter":"1.2.1","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==","shasum":"370bb4a151df2f77ce3345ff55a7072cc6e9565a","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz","fileCount":6,"unpackedSize":16537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhJWPCRA9TVsSAnZWagAAR00P/22O2wKopDPFpETLfCSN\nMZynRl3EIztbFdA4BbEk8TPQxrlGQCB454hFfoSpw1In0vFvVXP8fvSuiVnU\nMqogbFDeD+PHsRcZfhvXu/UD6Edw5K3ffibzyRrQN+dRSp25WeiXXW7B6uvG\nLh/85ovdDL99Z8lZgQcrVpx14YyjE3b8VSBmw+X62frPs+miEIS1IzamTcwt\ngZTgrwzCBL19ztYt8ZBobfYy7B/ZoYWNh71ZQPhlEDbVLJXbkvq/dvxFx2Ez\nHQJgUXMwPzmK/nV0xrQgJN+ubXo0Fu76FiwEyexoFwtTZAsnnyTYNinD3Wpf\n0gQ3fpdq+UJXfzPbPbEXluLfDqnocetRL92ZhswmP6EbGX+YcY0TtD84iNES\nEfqWF3NVexHSu34LfRMks/cPMXI5KJDaY0JVtcINfaUGSTSwgjHaxEN0/z9o\nJ0wiOMM+rlDXdHjtzDrTCV0iWOntG8qeCACDBEG+VmG66hQHvhtRxNEEh9YB\nIJARAZ1Rh5Hjq7Ba4SzxCw8LdMyB5XbZBdsEH3kVUiQyrX2cIyIdUpcPmYwb\nF6yr4SMewaFmtksM6z5h5yg29/SCfnjt8fUGl+qY/pNK1OYMNlLi35H9B2n8\negT5voPkHGCivXlapMBr4VLXxBfwhu0jB7xgsPczNCFIlmdTxlHzH4SiqQHU\n0NC+\r\n=2/Mf\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.1":{"name":"socket.io-parser","version":"3.4.1","dependencies":{"debug":"~4.1.0","component-emitter":"1.2.1","isarray":"2.0.1"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==","shasum":"b06af838302975837eab2dc980037da24054d64a","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz","fileCount":7,"unpackedSize":16969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu4zsCRA9TVsSAnZWagAA3cIP/1hgeTHEbn5eNViCo3Vm\nHSsv5NBVNARH0/a0cy5V6uQNl9UE4flPdiEbN2tyU/o8CAWtwHTGr/PgnoSH\nt8wHbx2WgKjvr49Uhmbt1WP4r8r6ZbQ0wpMhN7VVVcMejhfurWDe3Y8DbWNo\n9EL7wE/xMATspZSdRxHq+NteQlmBGhcTWxD5pL81CGilVy6g1czTHVSLEIxw\nHOnyk7T6BKGRiOghg+cHNo9yi8kkIpLTxjDwlmOP7yJi5zmOEeyBViS78o/a\nNPLiPL15e9ej/RGJRmzsN66L6S1/m3g8x2LGIh2gLvfARyNPbl5AVvYnvkZn\nc1KKblGWm3uDgEBDBO2y5yQU7k05bn01EDp6e+gRoLSvTdmwtrEdn8snsQNI\na5DtCar8ADI/2MiErAnmfjjJ8DAEvxQUYjwISLnxyQs429KuO5GoJjRFJqy2\nGAt11d90papFVpAHnJpQLhQqoiLoD54oPug50UKnqe5gvGfN8Uoi/scR4Pe6\nZOJOWQSt8ViGxdjW3+dqkApBTLm1jXBS6VXAngu0UPqho2vByfqbO+46ORd4\ndXDsTQQBgo/6oQfnKkiqJOEffrWrJoV9qYPDhQWvVxZcDWRlOvT5s5P4NZa0\ntv4MHEveFjjTpy17Uon4sAyj7rD2a281Tsg1wyRrlzY67jHbX/GSTa/neWyB\nK5Gd\r\n=2r0W\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0":{"name":"socket.io-parser","version":"4.0.0","dependencies":{"component-emitter":"~1.3.0","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/component-emitter":"^1.2.10","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-uH2Pfy9AeKCokfhMRQ74aZ2/dXv14AJ83Fzzz7zbq9rRpM+1NGHWI8iGcrP4E0MxKEvh7LochViCEX8cU+5DWg==","shasum":"678de0a56a7e332235f876b718cd0e3ab106d731","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.0.tgz","fileCount":12,"unpackedSize":21158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcd1sCRA9TVsSAnZWagAAUdgP/32B9LLzpiJvFug+ka7u\nzozPzeedIr4Rj6GiVNig6xKxdaBtK9IrQ3eSXOcOwdXjlX2BmX38i0ZHM1Fz\nY5Gc4qR7TiTCb000bgncWnlkrZT3fjyh2jGlAmTsQc4ypoqh0mVMWMGFP9hV\nPGXHwMquAXZQlxqfO+ZrfAu6QmuxTX/F3JKgzI6PeeLU4p0cRDY7yGBpyFdv\n32WasgrypT9ThVfxAW10wXKW8AYPeSvBwMzKFIZutX7WCmJId1NRegJGyGDF\nw6sMnQX24D5KHFFWFO+0+f6E+a86dKPterqKVwHOM0gJyPzNoQ7xMCgxY70w\n388gxYahi9KPnkokQInsKR2sClErtNZsA3Bo8O5DgRRNZPCZtz2KKPx8lPBA\n2IbRRz8molmSpw6x1ae3XPHexDfblWe4OX6X/gBSPnBJSOHTVNSms3TlnSpt\nul5IM8YdQ4D14KVegNPTgKe49J0QY2x+ZfGkd9wXd9Uu47Wp5xiLKNTvY8IN\n7fafYHb1WAUtfrSmzK2fGzASkRi9aotq1LixPL5AOBcKdNnkQ47Uv8nICuoW\n+JWZGNMZytG0FZHlvzPJ/jj0/YHplBcDXx+IHLfrIf2nd3iR3KAZJGl0STWJ\n10W9bi8Zk/kZnVoJ+1wR3qU3WfAmLV2NcsN1G6fibfc6dE+LJJ9r8CJt0xce\nWrZA\r\n=K51n\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.3.1":{"name":"socket.io-parser","version":"3.3.1","dependencies":{"component-emitter":"~1.3.0","debug":"~3.1.0","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==","shasum":"f07d9c8cb3fb92633aa93e76d98fd3a334623199","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz","fileCount":7,"unpackedSize":16631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc9P8CRA9TVsSAnZWagAAD+8P/2zjQohdJrUFP8QOfc/2\nCqkE6uhIeUWhccDYlPZbl0RdKwEvQS0Ss90tpMBppF9rC3lku+vM7m64LlYX\nrXuIBu3gVfkceYfGosUTwyfmTvhllebC4UtHfhRJ6CNFlkf9tr6oyddJdpDe\n2FOvpWGttcp2ue4x5Hfw6n7Xwh/wS4c6xpaHp+u7BLOBpzSje3wef5nU7zXC\nU0nA8N3xPjmes+saVpskj8E6foGdl/dMdSVMGSeVjrPh5YDkFWHW/dAFi8yO\nH5pZ2zKvZNC1Q9FASaxtXoVgdG4G+INlIjRVXPNqrnPGB7SeQj1/HemSF+Y5\nYRgukdPxKC7bQk0K42XBPDZqLHkC/tvLM3YrFVjd1tWdKO3rZcQNt1sMWbyF\nl51ZH3wtUrIp0EZfias1O1CgwY7wZnarg/vYg9iTHc0dV/hlpw3JW48l3xUC\nk7OcHB47NbiB4bKTGTvyiDnYKnZSevnC+2HjVmXWiX0MCJAf9ct/vBqvKmzJ\nl8NeijIWQSNE2dPPxVAWuReXSd2ToE+evKgmyiVwRa76Oo4dU9ptgal9Zewk\nvwGEMLqyXevgbsO2/eTV9AGQbuQEELIAX2GrdN3lht5gwh+TpgUWRk6cnuZF\nuUCnaUDotm7/RBWGoBKxpZ9kAI4y+ecNoZCMxDJVRcCQ1Qo1z2R99ePEmjdb\nwxB5\r\n=M6MA\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.1-rc1":{"name":"socket.io-parser","version":"4.0.1-rc1","dependencies":{"component-emitter":"~1.3.0","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/component-emitter":"^1.2.10","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-bkOwROtXKg6Q4Si3vsZq4SOxxqN0ZZ9G1QhZ/oUtbAwVenCq/QbOFu3DcVZAIfVQfRgRJpyuq4RhGVOqGbi2Tg==","shasum":"80980a03b245462d614c75911970447990df9169","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1-rc1.tgz","fileCount":10,"unpackedSize":21265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhFjICRA9TVsSAnZWagAAd8YP/1Cat/jPaDvVB7vL2aLE\ng8xp0lfmloR7I5fFyeiH1z+O4/J5C28yrk1gBNHxxwo5N87d7l0ku/0FDdrj\nwh2UyoUf3IwRaFQ+w14lNCP+dxPEcIMEAj9FA38INIfTUm/X3vCUuiCQ3z7W\njeSsC9VuzTqh7DQQhoHacHwxGtPF5d9AI81GwRU659IhxUHRBC/G8pYY3PKB\n02jNZN3dadembCMSjXank+byEWL42fYbPWpVIA7gU/gyassgJFK0FIRF6kgb\ncSPn2vND+sdwlflEcUvi6E3idtWQldNRo82ATZxSRytWhjTxhArYkdgpI/HH\nmOisg8qUV4c2BEBSJw7xWtgvkQeVpaJAPj3eXQQhJ4/xIAulGJWRCTHkr6Mr\nQpZzSmgynyhrBhy5NXLaRLqVafkX7+bm4MFdS2Zl9pCFYPvBh29A3WHHI3go\n6FurtDqSkyZTfrpA7yOY/4MuhrhT5x9hLhuxhOGh4h6KF2DSSl8Uwq2jxbLH\n8jCofX5Hq9ZoMMRpLMH7G8DYuz3I21fC+qpOKB9DpSU529Pykni/ftKdPkII\nle7qfXn+ktp/qCFxAeifYUd1rq676CfDX6h9xPgiCbiauYXZbP+A93zAt/wq\n5ci9kVDsYskvHusWeTThJG9dvWFx/R3H9tJ5iqJVy4CPiST6V8tx4qFWeVir\n+hEv\r\n=riWk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1-rc2":{"name":"socket.io-parser","version":"4.0.1-rc2","dependencies":{"component-emitter":"~1.3.0","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/component-emitter":"^1.2.10","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-aI20UWITf5vKgwA1HjCanYlM8cr2VDmOBiM3+1MM1MautnHAngiceuN0gUOtQs4MmWatuD2Td8g00EwHf3qthQ==","shasum":"70cf1b97eedf93957daaed0667f3723e4a699033","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1-rc2.tgz","fileCount":10,"unpackedSize":22013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiAeDCRA9TVsSAnZWagAAfsQP/jl69XWIUP7EApkisPdX\nd57Wsm7LvtCg4CS3ziKJe6/SSat7TE/iaQ/qgcRC7KxPO2/zFY6A3JXJACpT\ndqRjUaZe5yw4CcqIvy+gsMHGDwY2dW95sPoZfbpRZcv8ZoUze0Bnrzcfykve\nLqz/54N0gsMrHijoiJGOm91RdD+w8iSZAoJZsYUH6ZaHgv1A3vZOLD7jOgu6\nCxGaC9XL9gPKK+fVZ9CXLT/fKd9T3JXxBOp5fg8MW484N5PNPg409GSi0SPg\nyOUgOddbgwfMRHjwjEBI8aq8k14jndRgFBya52oCVphzrMrQQKb+4CWQ0RcV\nq6W2TT4ekxcgvfteNVC/DQ3sNkHQ/MXayP1aWC8An5myw7bulNF8g47cmijX\no9bRRFIIE6TaJy8lQcCs2jwPpBcui/cW8PpFYqefgblvOW1VCEzbP3bInD7u\nlNVOKcZmLxsDN2LqbXYZ94dhgFzG//FGuZv6ajX1hl0r1ljh54bUr6C92yK0\nG34A0yvHYQLzbsWfPsklrajiTuAUgXD4jLS53GeQ3DT7qDEe3iBDS+Ub7y1h\nFV5YKZiEP8Im0N3hh0uav1/Gvbb5R2spV5KFJqzOzHgrsxLm8A6ooWqxU0fh\nmsQna+ozajFB4FVaxA/hmt0OhZVtgrcDzv4yR83RxeDmqxyi7+tsR4qoU5uO\nP5Pc\r\n=8Jrm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1-rc3":{"name":"socket.io-parser","version":"4.0.1-rc3","dependencies":{"component-emitter":"~1.3.0","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/component-emitter":"^1.2.10","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-H85dvTVUOBMzquX5AojQvxRPCvH7jMkrhp2la+2gYn/uiS20sK1U8osWCMwU00oUITDUkjDTxLjw0fGkDTA76w==","shasum":"cfb3d7ecdde5be90af37ca07a7ad86a38f2a28fa","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1-rc3.tgz","fileCount":10,"unpackedSize":22184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflge3CRA9TVsSAnZWagAAvogP/0vZsl6BCBJG1vyK+BQQ\nqw4AprYJk0mx6kaLDEn/k7LK/8GpbqRSqXEGVc9HbwtsQudLL4JPU5meEuYy\nGfC+9fB+hhHJFNb51z4ON5BY6Mdnuu7yD2D/7U2O94PM3nCqunt1kKsaXTzc\ncDIDQe6sagNY5FfPJNe8beUx4gNJZ5H13rdgSLfVFj8A66x4DYiCnxEKkhF4\nSW8ryvVAYRz6q1Mace2HQ5ljU/2m32o9hyBucDtaoX2vvMb7MTO3JGiPAFQW\nFL+pKF1WmEWKLt/4dargGUwfrRlICMfmGXhOkHpjjTmHuluJNQTa+RNSYDki\nKbhfepA5OerxGzRdB/AIYNgKGNW/3db780TYTZtfIyWkVMX+j17EQVHVvUUJ\nimXZRXN+repp1mtS7B8Q5fA+2GRKl0um6YO9CJNuV0Woh7bxncOKAuAu/CmW\nWXLjdYa4GLrJo95//z5LK8DZR7+OLfgAVmVLxAJeQOL7mzFMie4fD9LMU7Ix\nu6/gN0G/YMf7Op7lEiRZmyf1RzqJbAiyLvhsyGNSVtB7x0pr63SWaosbsIE0\nkEso43F7e7WQrnlkPLcuv40q+nZLfQ3KRk3JkqAlhiR3ptnck/wj0yWQqFza\nEblN+0qZUql4R57Mw7e7FHrL8n2jRD9o53MLKiAncdcWMrdAniEq3U19V5u/\nuHR0\r\n=0tyH\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1":{"name":"socket.io-parser","version":"4.0.1","dependencies":{"component-emitter":"~1.3.0","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/component-emitter":"^1.2.10","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-5JfNykYptCwU2lkOI0ieoePWm+6stEhkZ2UnLDjqnE1YEjUlXXLd1lpxPZ+g+h3rtaytwWkWrLQCaJULlGqjOg==","shasum":"b8ec84364c7369ad32ae0c16dd4d388db19b3a04","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1.tgz","fileCount":10,"unpackedSize":23056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpBVoCRA9TVsSAnZWagAAA/sP/RIK/3fV6rn0X95kH87O\nXrC+6n1DH1bUTVb5m7ggmL8k/4W+kyUR+FI0YTk92xXHm8d3ZBZI7DZ2pWwg\nuw0zgI3kF7aMVJO5WeFkJRSwAoOmG3epfIEGwnDCs71UKonHzoWg6wv0+ki6\n9J/kxYFIzqWGy9bp9oE+2cZAOAXnOk98LNaj2wkPLWkojHsP0hz8zL3S8kry\nnIFYJQ4RSHSEhDMWc+f24Znf7S7fi+mqsm/gJKd6pPN1jTCj6p4Igj8ziVsP\nJ6PXDcfiC1IN8x1T9qkyVAJLNkmVgnKD1aC8B/UaK9JbFpNUP0Bnq1t699Ks\nqhu1eRtQnoqNOnPRzS5U7cpzEvtCGqYG3VUturCZUeRvvW+HjfildfIQUoqn\nlYG6U97TAvCXQ4QjufMUfqUiPJ+136cgX0tSd2ouHN4pOit7m7Ts04zU2QJa\nEACtwSs7aOvx7orUP/YK8PBQcb06q7ztSlT7xopzZyHY9o3Ih/3WG7UHVkn3\nehmwd4BAiG/UxJAOCTu/BTER18pbKPxPiQRDSUOGpgqpdtt0LVetBpvM7iFR\nqa3lEZHr7pDibyE9HXwlxisYTNwvexZL76CXDPTOHC0Rg84aZx5Nag/cGmrS\ncTvtq7wshE7RD8edRCeXkyjcNY+SikL6Ib2j1WOYrM4CxuqccQPPpTU0bYfx\n88JP\r\n=in4o\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.2":{"name":"socket.io-parser","version":"4.0.2","dependencies":{"component-emitter":"~1.3.0","@types/component-emitter":"^1.2.10","debug":"~4.1.0"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-Bs3IYHDivwf+bAAuW/8xwJgIiBNtlvnjYRc4PbXgniLmcP1BrakBoq/QhO24rgtgW7VZ7uAaswRGxutUnlAK7g==","shasum":"3d021a9c86671bb079e7c6c806db6a1d9b1bc780","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.2.tgz","fileCount":10,"unpackedSize":23760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvitmCRA9TVsSAnZWagAABPIP/jEDgXfXxx/oRHWzSHne\nF2XnBVDyrXV5juf6u7ZsBX3yYzuBLJ74bBRRLOG73AGuDHP4RRSEnbsnjkJa\nBwaJT8aSB3Qvi5LuqdVbVPtTKBmeaip8ug3pdZbqliuBPayLqG17njnElTiy\nVEGMxY2WhQpDLtzJM6vxELJtllrtskJtawur6p9KadsyO/cE5VEus/uYjBNt\nUIiSYWLudP6YwZpS++HZjljtm2Ia9Y7TC4DpU4RghdOGsdNqextZNArvhE+B\ne+bo64Mn0DFNVHMj2HuFOb1VHCKJ633iABXYYxUHki4f/yuuEms48S4eaRxj\ncPIL+EHKe+iKmuCKC/VN4DVDOxyJjadzOceZ8iC1/fyfX1d3V1NTJLECwpie\n5R7i9voVOvQS8t3g/S4oiBtPLWwnsix6fhzjxqRkoPkJG8Feer7qhdmcni9a\nIPvzLNgCD0DiRyOq+pakocexUnd0mk++EpxvrFrqbJrfQ/GyGQrSi7yqJz4v\nJsh+1nFpUlSrutGYmSJAJiPdhewyRyF9BhPwFktZCnE4Eupkg+2sF1LS3xBw\n4R2JUFN9RX8PD2ErgNVApO0ugPNDGRZQFOtZxyNUab5BKZjK9Ds2DExfzFOI\nvcPEN6WOkd05TxzmY3jSdYxCsmiaVH9DPvMUw6N/sy61ihKKuIus6Q9d21oc\n/bbh\r\n=WiCC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.3":{"name":"socket.io-parser","version":"4.0.3","dependencies":{"@types/component-emitter":"^1.2.10","component-emitter":"~1.3.0","debug":"~4.3.1"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-m4ybFiP4UYVORRt7jcdqf8UWx+ywVdAqqsJyruXxAdD3Sv6MDemijWij34mOWdMJ55bEdIb9jACBhxUgNK6sxw==","shasum":"2c494f2de1e7c1b40a14ba1512227e9798d8b10e","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.3.tgz","fileCount":10,"unpackedSize":23855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9D70CRA9TVsSAnZWagAATfkP/0YDdPU8oSfflbgwLUjx\nKUijgJ7Ii9x0LBSJ9yT8hIPn+aL68ZAyq5tsYD/g9MZ8A1PTbeszk/yEcxrv\nQr3T2Vid5Wdc5PBNYFaMMKB4mezK/3/k5+/3HDCC5er/GyLv02XTbRHPi65y\nh97guXjRcE7ZXcLrgC1KRNILnGAng/jIGF/NGlfIkO0yRyyt5CX7dG1A3fvz\nFP5RL3fujyPmecQEzuE3A0lxxdMhaXdvB6VBsnw+4kxJnQ2P0ZkFOfGX1pBQ\ncKJlS+0j489a7WldLCMoR7JSTAS+mc/aHNatUQFU5uzWMrTuWP96G0iL6ciT\nhrd2CzvUavmA4CY51nrFfjzkONdDC3xygqMgg/j1VIzneZawxpwC+n1Dm1yq\nm6PO/pd0iI4rz/YmL+rcIjfZ2UKqqiTkvJUHruR/9Vj2K8+IACmKbXyyUtPq\n2j092MdyCt+MoyBl4vr+YMIAjAkzIqv9mC2RFc+6gNO0E22fHn7H4awytNs6\npNpv6tT0GC6hl7l0eRxVTr5hhaLBt5TUdOHS3UzniTrY1RDfHzV7oBLUkcGu\nzVNPYNZ/1PHMAtzyuHNg7Rj0cx9fVK1idYtZESLjYNKgV70q/Oj4noIh3QBu\nZ8QDO6HXWw8J1l+SOiw+El86nYFIaFfC1BvXBMMypWRzjdTErzN3hHACGr7K\n1sM+\r\n=PAsl\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.3.2":{"name":"socket.io-parser","version":"3.3.2","dependencies":{"component-emitter":"~1.3.0","debug":"~3.1.0","isarray":"2.0.1"},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==","shasum":"ef872009d0adcf704f2fbe830191a14752ad50b6","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz","fileCount":7,"unpackedSize":16982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+bUjCRA9TVsSAnZWagAAXOkP/3SUl5tyBw44I8NeFmDy\nmS+sMG5/5I2okpFHWXduMkPC30WE4dgu/LDXHnYNldPASLNf61yrfJFcN2Us\nLjMNoFpUsn87Nf2tN0PGKxwnP5rqVF3HykSFrrU1v/umchYRUicafLejjvOE\nj9dDEs/NZZUy0h3q0Eyf/PDRbLvFa35j7YLCFejQdh2eWLtdx02gUh0gw4uu\nwpVErrG/BRIe6BVyYQc7reUz31v5PcB4yRDP04DKDksmdcOL7f7W1ljmfAOJ\nWtmUjpjZxujuGbzJ435xzO4qy9gsDShEdqN+Za0KvIi9ZQ7w/eRPvpgaQFRl\nDP60mWTfuRlxqqhJEcEMtjWqRqu0/KFxLd70Jh+3gWLgTAZb70Z33NqQ0bS3\nEAewZWbAikKTV1w6M/7XzMlCSVOHFVJLjR5gn2CF2wpWBjQZ7qWU9iDvIJ9g\niFKJN/kOT7HWEE8hRd+2kEK1hgN9Yx6AXZrt9mjzC0aYGsvfdfjTb2TLmZrZ\nsUiuDkx692kMq9yKMCu4yth3g7tt/7ttaubYkK5YGbpqnuePTkBofuDskkZ4\nAtAPpChWQd64TN5rpKpgqaE0wNSjqeiImDtsjnFJHspT+176stnyvs/XkXbm\nlBX7ZNMz6OxcWJwWrzLiBibCBfx8ODUngOlg+Z9gtUqUjOSG9hu3ti4PRo5U\nka40\r\n=ugoV\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.4":{"name":"socket.io-parser","version":"4.0.4","dependencies":{"@types/component-emitter":"^1.2.10","component-emitter":"~1.3.0","debug":"~4.3.1"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","@types/debug":"^4.1.5","@types/node":"^14.11.1","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io-browsers":"^1.0.0","typescript":"^4.0.3","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==","shasum":"9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0","tarball":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz","fileCount":10,"unpackedSize":24092,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAOXPCRA9TVsSAnZWagAAbpIP/iX+yjVVBZRs9TvdMrsi\nn8bVaKsdxfkau+4aLVgMQJbl08Fc9+F4KPMDkxB8BjyuaAI/aa3Uz2kbUIuY\nWXRyjYNemOFaTK161YiSbaxe4JgNJHyD4AAfxZchnNclqAVeonTbFCga5ttb\nx8YZe52xEgL1xIh7AcEXRFp177FULhnvNPdL5Q61iMvHQYvZ1OpJ/oT7GyQW\npxDVjzlLyVAiUEsZFMdffoqtHylFVa5XvyN9NmOvi7GiCE8qcZKcx97OdnNT\nk/l75JcRVRH8XZexGdm3KkQDwKhb9B+4Ex/uSs0bNDlkGCD7Cd1kR4YRrzv1\nPeA5cSPezFDFmG7fgE/XxTGspoazxNCOS5IAVTGCMocr6cbLe8t5feARIIju\nXzksLeampdqozTboyPlHkduOR+1zcgGOi+6JbRpzb0ho4w3xQQCyEGlUjubl\nlsCorvWh55HpMlGzttylSGK3LOmso/Po/qMBIcPHx5AlO8zyYqXhbLD1p6M7\ne5BljSetxPNhvCRi1lm4fH+q0frlWLARyH+peyZLp6gDYPHSuuB8MuGR/i6G\nCH65Qk+oRaIfkb/MRWTsBXoG+Jo3kRXQbyN70IqNL7SCrknyNBFIZL9NRxqV\nsup5lnCfYINhcvi0sTgAwO+G6efqedgnan1ONmFEpJSPjPJZ6Tfe1f2G0Lb3\nP9SK\r\n=FYMo\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}}},"modified":"2021-01-15T00:46:08.963Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/10/cd/26a93bcf526b9bd6b6cbf3d81a7777e3e51e2cb36407de50ec2098c62721e03fb6164ce5c460990343a3b746149b84fb4c7d17be25518f2d37b9afb9a396 b/data_node_red/.npm/_cacache/content-v2/sha512/10/cd/26a93bcf526b9bd6b6cbf3d81a7777e3e51e2cb36407de50ec2098c62721e03fb6164ce5c460990343a3b746149b84fb4c7d17be25518f2d37b9afb9a396 new file mode 100644 index 0000000..786328d --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/10/cd/26a93bcf526b9bd6b6cbf3d81a7777e3e51e2cb36407de50ec2098c62721e03fb6164ce5c460990343a3b746149b84fb4c7d17be25518f2d37b9afb9a396 @@ -0,0 +1 @@ +{"name":"fresh","dist-tags":{"latest":"0.5.2"},"versions":{"0.0.1":{"name":"fresh","version":"0.0.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"f98a0a1b9001b6e227fb9c65ff3927bdb7b404fa","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.0.1.tgz"},"engines":{"node":"*"}},"0.1.0":{"name":"fresh","version":"0.1.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"03e4b0178424e4c2d5d19a54d8814cdc97934850","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"fresh","version":"0.2.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"bfd9402cf3df12c4a4c310c79f99a3dde13d34a7","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz"}},"0.2.1":{"name":"fresh","version":"0.2.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"13cc0b1f53fe0e6fa6a70c18d52ce3c5c56be066","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.2.1.tgz"}},"0.2.2":{"name":"fresh","version":"0.2.2","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"9731dcf5678c7faeb44fb903c4f72df55187fa77","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz"}},"0.2.3":{"name":"fresh","version":"0.2.3","devDependencies":{"istanbul":"0","mocha":"1","should":"3"},"dist":{"shasum":"2db40d43bc63830f418519380879d6bedde2e845","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.2.3.tgz"}},"0.2.4":{"name":"fresh","version":"0.2.4","devDependencies":{"istanbul":"0","mocha":"1","should":"3"},"dist":{"shasum":"3582499206c9723714190edd74b4604feb4a614c","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz"},"engines":{"node":">= 0.6"}},"0.3.0":{"name":"fresh","version":"0.3.0","devDependencies":{"istanbul":"0.3.9","mocha":"1.21.5"},"dist":{"shasum":"651f838e22424e7566de161d8358caa199f83d4f","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz"},"engines":{"node":">= 0.6"}},"0.4.0":{"name":"fresh","version":"0.4.0","devDependencies":{"eslint":"3.15.0","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"475626a934a8d3480b2101a1d6ecef7dafd7c553","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.4.0.tgz"},"engines":{"node":">= 0.6"}},"0.5.0":{"name":"fresh","version":"0.5.0","devDependencies":{"eslint":"3.16.0","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz"},"engines":{"node":">= 0.6"}},"0.5.1":{"name":"fresh","version":"0.5.1","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"c3a08bcec0fcdcc223edf3b23eb327f1f9fcbf5c","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.5.1.tgz"},"engines":{"node":">= 0.6"}},"0.5.2":{"name":"fresh","version":"0.5.2","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"3d8cadd90d976569fa835ab1f8e4b23a105605a7","tarball":"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"},"engines":{"node":">= 0.6"}}},"modified":"2017-12-04T10:08:50.043Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/11/11/d9b0423753d8efc1f48377ac37154e111f58ae1742fb6407db55767955f5d123d16971445700fcf087bf6cd82634e464ceff0758ad954ce4f67854ca5145 b/data_node_red/.npm/_cacache/content-v2/sha512/11/11/d9b0423753d8efc1f48377ac37154e111f58ae1742fb6407db55767955f5d123d16971445700fcf087bf6cd82634e464ceff0758ad954ce4f67854ca5145 new file mode 100644 index 0000000..ca4213c --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/11/11/d9b0423753d8efc1f48377ac37154e111f58ae1742fb6407db55767955f5d123d16971445700fcf087bf6cd82634e464ceff0758ad954ce4f67854ca5145 @@ -0,0 +1 @@ +{"name":"negotiator","dist-tags":{"latest":"0.6.2"},"versions":{"0.1.0":{"name":"negotiator","version":"0.1.0","dependencies":{"underscore":"1.2.x","coffee-script":"1.2.x"},"devDependencies":{"nodeunit":"0.6.x","iconv":"1.1.x","gzip-buffer":"x.x.x"},"dist":{"shasum":"eceb71a868cb56ae156cc563a1a881669d4e9650","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.1.0.tgz"},"engines":{"node":"*"}},"0.2.3":{"name":"negotiator","version":"0.2.3","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"e93dd1d816112185f752cbb4c4c1df8cfca4f399","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.3.tgz"},"engines":{"node":"*"}},"0.2.4":{"name":"negotiator","version":"0.2.4","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"8c82cc553bbfc8ada49a969ead7bcfac3fb190f7","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.4.tgz"},"engines":{"node":"*"}},"0.2.5":{"name":"negotiator","version":"0.2.5","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"12ec7b4a9f3b4c894c31d8c4ec015925ba547eec","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.5.tgz"},"engines":{"node":"*"}},"0.2.6":{"name":"negotiator","version":"0.2.6","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"28db6bc2e442c8655325d156ff74055dc0db289c","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.6.tgz"},"engines":{"node":"*"}},"0.2.7":{"name":"negotiator","version":"0.2.7","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"f31240c6a4aed34c1c2f22f2ce325a5414a00a9e","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.7.tgz"},"engines":{"node":"*"}},"0.2.8":{"name":"negotiator","version":"0.2.8","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"adfd207a3875c4d37095729c2e7c283c5ba2ee72","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.2.8.tgz"},"engines":{"node":"*"}},"0.3.0":{"name":"negotiator","version":"0.3.0","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"706d692efeddf574d57ea9fb1ab89a4fa7ee8f60","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz"},"engines":{"node":"*"}},"0.4.0":{"name":"negotiator","version":"0.4.0","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"06992a7c3d6014cace59f6368a5803452a6ae5c1","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.0.tgz"},"engines":{"node":"*"}},"0.4.1":{"name":"negotiator","version":"0.4.1","devDependencies":{"nodeunit":"0.6.x"},"dist":{"shasum":"7806f0041eca5b05bb00758d8ad7611ff18f357c","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.1.tgz"},"engines":{"node":"*"}},"0.4.2":{"name":"negotiator","version":"0.4.2","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.2.tgz"},"engines":{"node":"*"}},"0.4.3":{"name":"negotiator","version":"0.4.3","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"9d6b5cf549547ca06a3971a81f80d25f3cf9db02","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.3.tgz"},"engines":{"node":"*"}},"0.4.4":{"name":"negotiator","version":"0.4.4","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"321ec00f2d3a9f597c62581082030b49c39fd199","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.4.tgz"},"engines":{"node":"*"}},"0.4.5":{"name":"negotiator","version":"0.4.5","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"0e738eb225e3a166ee7d69ebcfdc702ba236a77b","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.5.tgz"},"engines":{"node":"*"}},"0.4.6":{"name":"negotiator","version":"0.4.6","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"f45faf9fa833ed3ca51250ea9a7ddfc4267a44b3","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.6.tgz"},"engines":{"node":"*"}},"0.4.7":{"name":"negotiator","version":"0.4.7","devDependencies":{"nodeunit":"0.8.x"},"dist":{"shasum":"a4160f7177ec806738631d0d3052325da42abdc8","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz"},"engines":{"node":"*"}},"0.4.8":{"name":"negotiator","version":"0.4.8","devDependencies":{"istanbul":"~0.3.2","nodeunit":"0.8.x"},"dist":{"shasum":"96010b23b63c387f47a4bed96762a831cda39eab","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.8.tgz"},"engines":{"node":">= 0.6"}},"0.4.9":{"name":"negotiator","version":"0.4.9","devDependencies":{"istanbul":"~0.3.2","nodeunit":"0.8.x"},"dist":{"shasum":"92e46b6db53c7e421ed64a2bc94f08be7630df3f","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"},"engines":{"node":">= 0.6"}},"0.5.0":{"name":"negotiator","version":"0.5.0","devDependencies":{"istanbul":"0.3.5","nodeunit":"0.9.0"},"dist":{"shasum":"bb77b3139d80d9b1ee8c913520a18b0d475b1b90","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.5.0.tgz"},"engines":{"node":">= 0.6"}},"0.5.1":{"name":"negotiator","version":"0.5.1","devDependencies":{"istanbul":"0.3.5","nodeunit":"0.9.0","tap":"0.5.0"},"dist":{"shasum":"498f661c522470153c6086ac83019cb3eb66f61c","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.5.1.tgz"},"engines":{"node":">= 0.6"}},"0.5.2":{"name":"negotiator","version":"0.5.2","devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"17bf5c8322f6c8284a8f3c7dfec356106438a41a","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.5.2.tgz"},"engines":{"node":">= 0.6"}},"0.5.3":{"name":"negotiator","version":"0.5.3","devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"269d5c476810ec92edbe7b6c2f28316384f9a7e8","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"},"engines":{"node":">= 0.6"}},"0.6.0":{"name":"negotiator","version":"0.6.0","devDependencies":{"istanbul":"0.3.21","mocha":"~1.21.5"},"dist":{"shasum":"33593a5a2b0ce30c985840c6f56b6fb1ea9e3a55","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.0.tgz"},"engines":{"node":">= 0.6"}},"0.6.1":{"name":"negotiator","version":"0.6.1","devDependencies":{"istanbul":"0.4.3","mocha":"~1.21.5"},"dist":{"shasum":"2b327184e8992101177b28563fb5e7102acd0ca9","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"},"engines":{"node":">= 0.6"}},"0.6.2":{"name":"negotiator","version":"0.6.2","devDependencies":{"eslint":"5.16.0","eslint-plugin-markdown":"1.0.0","mocha":"6.1.4","nyc":"14.0.0"},"dist":{"integrity":"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==","shasum":"feacf7ccf525a77ae9634436a64883ffeca346fb","tarball":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","fileCount":9,"unpackedSize":28102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcx5cnCRA9TVsSAnZWagAAP20P/0MCkOVbsy3QpadyxP2l\nfQaJNj3676xMnX1jvmbttyR2pejPTOeACkojxti4dkza3VoK5i0P2vxXVjjC\nFTS+joLUaqyS/urJFhQOxICR37l1s849MnXrwV/+mIo7kytMelYJcTbPj3ov\np6OYauZfzPlnFP3zxBYaPmIOKSILILVoVGPSwkRrJlgJUgdqzaMKSUTfTCzq\nELh0wT834veFEnFIeu84Z4NWf6QPrWLwO8Fi6clDpTc0TYJl4xi0cEo9euSB\nQdKVK2gwPCLq6vV3TZoPHCs4/8XLX9zSZLqrAeiK6gC8rrJiGIEFTVLgUXIc\nDb7bKpcOlpvRBBGwtoa0crIGWEFZ5HCTLeDL3ZyfafZ6XqTYeOrYUpvmhv+A\nU6abBAxcE2FGdWkYuSMrbSU1KplzubcLEthVfVilREcQl7V/INK1rRzC/YPb\nlvXd0VqHH+JzsIqe5okX6prnQmKJ6I9Xtu2y7/ocI1WkikaU3bFjbIwke40w\nLTjqvSGCmc9End3k50XOG/AwhitANuOMugJ8iYwn1DwT995tj6IW8Am+C2gR\n0lceIeUnOq5VxtDYN/q2rfVg/cHcr9srAnPdGp4dwcSLTwWX9/vDKB6piasF\nZnYHmofBFT2ensRv1qYU4nlDZPULH5T+rPFVhZgGUCpJzzc2wAMTpFcQixQ3\nCEXq\r\n=qmZ/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2019-04-30T00:30:33.236Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/11/b8/68f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f b/data_node_red/.npm/_cacache/content-v2/sha512/11/b8/68f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f new file mode 100644 index 0000000..4bdf5e9 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/11/b8/68f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/14/9b/c306e3802f174223dab046b3bf45fa7dc9f9dd46d7358d2815815f050eb6a286648ffcc2c60f93c4b89acd7e300bbdc43ebcc0ccff7dc058e60ffc94a30e b/data_node_red/.npm/_cacache/content-v2/sha512/14/9b/c306e3802f174223dab046b3bf45fa7dc9f9dd46d7358d2815815f050eb6a286648ffcc2c60f93c4b89acd7e300bbdc43ebcc0ccff7dc058e60ffc94a30e new file mode 100644 index 0000000..8b4c2ae Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/14/9b/c306e3802f174223dab046b3bf45fa7dc9f9dd46d7358d2815815f050eb6a286648ffcc2c60f93c4b89acd7e300bbdc43ebcc0ccff7dc058e60ffc94a30e differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/14/cd/d0c3157e4e7658436691aa194a04c1f1935d254db32dddb064300a79e1d76b35e5527dc41838e2ae1aecb70ddae6dfc234e087fcdf87ce512ab5cb3b2525 b/data_node_red/.npm/_cacache/content-v2/sha512/14/cd/d0c3157e4e7658436691aa194a04c1f1935d254db32dddb064300a79e1d76b35e5527dc41838e2ae1aecb70ddae6dfc234e087fcdf87ce512ab5cb3b2525 new file mode 100644 index 0000000..9f7b813 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/14/cd/d0c3157e4e7658436691aa194a04c1f1935d254db32dddb064300a79e1d76b35e5527dc41838e2ae1aecb70ddae6dfc234e087fcdf87ce512ab5cb3b2525 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/18/7a/7b8f2d9d0d495c6bc4c23c20dba8ed089fc96935bae529f11eb4b0ca12afe400766043ce8ccf7505b8c2a497c9a89ebda014e37e1feaf2932c6ececcc072 b/data_node_red/.npm/_cacache/content-v2/sha512/18/7a/7b8f2d9d0d495c6bc4c23c20dba8ed089fc96935bae529f11eb4b0ca12afe400766043ce8ccf7505b8c2a497c9a89ebda014e37e1feaf2932c6ececcc072 new file mode 100644 index 0000000..801b5aa --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/18/7a/7b8f2d9d0d495c6bc4c23c20dba8ed089fc96935bae529f11eb4b0ca12afe400766043ce8ccf7505b8c2a497c9a89ebda014e37e1feaf2932c6ececcc072 @@ -0,0 +1 @@ +{"name":"process-nextick-args","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"process-nextick-args","version":"1.0.0","devDependencies":{"tap-spec":"^3.0.0","tape":"^4.0.0"},"dist":{"shasum":"287028923c8d1626558765564696ae8a3c124d53","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.0.tgz"}},"1.0.1":{"name":"process-nextick-args","version":"1.0.1","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"918a5ab4a7744340b83ff416101ba53c5c531879","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.1.tgz"}},"1.0.2":{"name":"process-nextick-args","version":"1.0.2","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"8b4d3fc586668bd5b6573e732edf2b71c1c1d8aa","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.2.tgz"}},"1.0.3":{"name":"process-nextick-args","version":"1.0.3","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"e272eed825d5e9f4ea74d8d73b1fe311c3beb630","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz"}},"1.0.4":{"name":"process-nextick-args","version":"1.0.4","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"7890ef9b7f70e1200ff716c22fc65d09803dfdd4","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.4.tgz"}},"1.0.5":{"name":"process-nextick-args","version":"1.0.5","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"aec23defcb8e82f50c81aefa206661b67f3f6ee5","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.5.tgz"}},"1.0.6":{"name":"process-nextick-args","version":"1.0.6","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"0f96b001cea90b12592ce566edb97ec11e69bd05","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz"}},"1.0.7":{"name":"process-nextick-args","version":"1.0.7","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"150e20b756590ad3f91093f25a4f2ad8bff30ba3","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"}},"2.0.0":{"name":"process-nextick-args","version":"2.0.0","devDependencies":{"tap":"~0.2.6"},"dist":{"integrity":"sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==","shasum":"a37d732f4271b4ab1ad070d35508e8290788ffaa","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz"}},"2.0.1":{"name":"process-nextick-args","version":"2.0.1","devDependencies":{"tap":"~0.2.6"},"dist":{"integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==","shasum":"7820d9b16120cc55ca9ae7792680ae7dba6d7fe2","tarball":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","fileCount":4,"unpackedSize":3175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCpxfCRA9TVsSAnZWagAA2wUQAJE/zQojeYBtJTNHDGq7\ntlqxR0qbiugyY02+BV/s6cTIRG7uCAwpyWelDotgFeE5IfxoLNOLuRtc5y5w\nZr/xlgT5KxchI87af3FpNTB2Y/0+lKDjbSdj0k+Mz8IjxwUtBdt/8yqH89EF\nxOE+H9WCjL94tqDrnaPAXfIo84m0FLUA5hneNrJqmhXGfC/a7ncO5x1AmBDj\nPGV0pyS4XxuUEsV2KSx2Fy2pXxsI01mxq7nAeOwNPb20XbPbGhzTU9eLOzAJ\nMggd+bKbuDdxCFdf/CQ76d9Gz2T6fxjHNsKrw7AYcfrTi6bLQQKBpeN5KE7i\nagIYpzq2HWsjhrClsm1TQNbV8SWQR2OhbgDdMKn8OkIsvQGKJpJbW6I+m1va\nTd4Gc9i1dIweSjvS2g/iaVdm2E0EWhU9tSH7SnKKmEOBCsWsGW5XJQP7W+sO\nKuxicRik6vCGyaMrZz83blayXuXGWPSP9uDt0/2MINRefJTTusWaSikZxyQn\nZ0uqV9Li6WEEWALHQf3NtlAq49U0w/NN9jRPI2iViPdf4Q/cyf/Fwp5PmVKt\nFYx9V7me9XNCxu1kBlx7ZkbZW0M0eEuLYW8J2hNMiJjuksUr0mOlXjSKwMGf\nru2wMy7dCU+zVeA65QtGPSSfMOrATVzjbRWuXkR3xAmv3bJmbMIn1IG/rtSr\nnc/W\r\n=K8U9\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-06-19T20:34:41.797Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/19/dd/94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa b/data_node_red/.npm/_cacache/content-v2/sha512/19/dd/94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa new file mode 100644 index 0000000..d3b5cf8 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/19/dd/94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/1b/52/d62a10d2be119e010f263d5425a8d70e076b09770013b592a5da90ca2877e97ffad88f6e259229f17faf5b9496e7b2fb6aa8d53e2f748be74bf36615ce9f b/data_node_red/.npm/_cacache/content-v2/sha512/1b/52/d62a10d2be119e010f263d5425a8d70e076b09770013b592a5da90ca2877e97ffad88f6e259229f17faf5b9496e7b2fb6aa8d53e2f748be74bf36615ce9f new file mode 100644 index 0000000..ce3bfa4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/1b/52/d62a10d2be119e010f263d5425a8d70e076b09770013b592a5da90ca2877e97ffad88f6e259229f17faf5b9496e7b2fb6aa8d53e2f748be74bf36615ce9f differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/1e/b8/2cc7ea2baa8ca09e68456ca68713a736f7a27e1d30105e8c4417a80dba944e9a6189468cb37c6ddc700bdea8206bc2bff6cb143905577f1939796a03b04a b/data_node_red/.npm/_cacache/content-v2/sha512/1e/b8/2cc7ea2baa8ca09e68456ca68713a736f7a27e1d30105e8c4417a80dba944e9a6189468cb37c6ddc700bdea8206bc2bff6cb143905577f1939796a03b04a new file mode 100644 index 0000000..c3a2ea7 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/1e/b8/2cc7ea2baa8ca09e68456ca68713a736f7a27e1d30105e8c4417a80dba944e9a6189468cb37c6ddc700bdea8206bc2bff6cb143905577f1939796a03b04a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/22/5f/3442cd968d89492013733642ba298aa554c4db64b5e01f1da84f4a54fdf8d11f2129f8f11f10f634477582c001953ad6aec61d613b136021fe5bbfb750a4 b/data_node_red/.npm/_cacache/content-v2/sha512/22/5f/3442cd968d89492013733642ba298aa554c4db64b5e01f1da84f4a54fdf8d11f2129f8f11f10f634477582c001953ad6aec61d613b136021fe5bbfb750a4 new file mode 100644 index 0000000..6e12282 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/22/5f/3442cd968d89492013733642ba298aa554c4db64b5e01f1da84f4a54fdf8d11f2129f8f11f10f634477582c001953ad6aec61d613b136021fe5bbfb750a4 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/23/d5/aaae51c6fd064dd0b55aa2664dc2edaf5e3ff60facafb227d3f3eb1b1f3a1fcd00ef8aa10ef5d10a104d9145fe872fb6d8a582a51e5c7bf26e6bd9fc24b2 b/data_node_red/.npm/_cacache/content-v2/sha512/23/d5/aaae51c6fd064dd0b55aa2664dc2edaf5e3ff60facafb227d3f3eb1b1f3a1fcd00ef8aa10ef5d10a104d9145fe872fb6d8a582a51e5c7bf26e6bd9fc24b2 new file mode 100644 index 0000000..7454c35 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/23/d5/aaae51c6fd064dd0b55aa2664dc2edaf5e3ff60facafb227d3f3eb1b1f3a1fcd00ef8aa10ef5d10a104d9145fe872fb6d8a582a51e5c7bf26e6bd9fc24b2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/24/ca/ef530139e1e98261695323e846ac6bf923c744c26728ff4d04be4cc822c47b32aac7a276c3f693b630e7c59e9167b65ede72966cfb7996f976d066ef500a b/data_node_red/.npm/_cacache/content-v2/sha512/24/ca/ef530139e1e98261695323e846ac6bf923c744c26728ff4d04be4cc822c47b32aac7a276c3f693b630e7c59e9167b65ede72966cfb7996f976d066ef500a new file mode 100644 index 0000000..2d965cc Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/24/ca/ef530139e1e98261695323e846ac6bf923c744c26728ff4d04be4cc822c47b32aac7a276c3f693b630e7c59e9167b65ede72966cfb7996f976d066ef500a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/24/cd/ec441e7aaf0965b7623e387e8b7353bf71fccf6d302c2ff377c192f7a9bf394fdc0544cbe8da2f2332f62d3e7d79a1b94a836c123173ca6f144852d975a5 b/data_node_red/.npm/_cacache/content-v2/sha512/24/cd/ec441e7aaf0965b7623e387e8b7353bf71fccf6d302c2ff377c192f7a9bf394fdc0544cbe8da2f2332f62d3e7d79a1b94a836c123173ca6f144852d975a5 new file mode 100644 index 0000000..938d1df --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/24/cd/ec441e7aaf0965b7623e387e8b7353bf71fccf6d302c2ff377c192f7a9bf394fdc0544cbe8da2f2332f62d3e7d79a1b94a836c123173ca6f144852d975a5 @@ -0,0 +1 @@ +{"name":"vary","dist-tags":{"latest":"1.1.2"},"versions":{"0.0.0":{"name":"vary","version":"0.0.0","devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0"},"dist":{"shasum":"9edfb6837236e6fa500788995cd85a11c62c482d","tarball":"https://registry.npmjs.org/vary/-/vary-0.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.1.0":{"name":"vary","version":"0.1.0","devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0"},"dist":{"shasum":"df0945899e93c0cc5bd18cc8321d9d21e74f6176","tarball":"https://registry.npmjs.org/vary/-/vary-0.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.0":{"name":"vary","version":"1.0.0","devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4","should":"~4.0.4","supertest":"~0.13.0"},"dist":{"shasum":"c5e76cec20d3820d8f2a96e7bee38731c34da1e7","tarball":"https://registry.npmjs.org/vary/-/vary-1.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.1":{"name":"vary","version":"1.0.1","devDependencies":{"istanbul":"0.3.17","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"99e4981566a286118dfb2b817357df7993376d10","tarball":"https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"},"engines":{"node":">= 0.8"}},"1.1.0":{"name":"vary","version":"1.1.0","devDependencies":{"istanbul":"0.3.21","mocha":"2.3.3","supertest":"1.1.0"},"dist":{"shasum":"e1e5affbbd16ae768dd2674394b9ad3022653140","tarball":"https://registry.npmjs.org/vary/-/vary-1.1.0.tgz"},"engines":{"node":">= 0.8"}},"1.1.1":{"name":"vary","version":"1.1.1","devDependencies":{"eslint":"3.18.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"67535ebb694c1d52257457984665323f587e8d37","tarball":"https://registry.npmjs.org/vary/-/vary-1.1.1.tgz"},"engines":{"node":">= 0.8"}},"1.1.2":{"name":"vary","version":"1.1.2","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"2299f02c6ded30d4a5961b0b9f74524a18f634fc","tarball":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"},"engines":{"node":">= 0.8"}}},"modified":"2018-08-03T00:42:18.119Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/25/5c/c047f02306f56dd81998871442498cac0ec3dcb2c7664c59f3c8b12db3da8dc268e6bb825300c62e6c47f054e4b0a50d48d6c28a15cc616422366ee7ab7f b/data_node_red/.npm/_cacache/content-v2/sha512/25/5c/c047f02306f56dd81998871442498cac0ec3dcb2c7664c59f3c8b12db3da8dc268e6bb825300c62e6c47f054e4b0a50d48d6c28a15cc616422366ee7ab7f new file mode 100644 index 0000000..4c3a9ec Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/25/5c/c047f02306f56dd81998871442498cac0ec3dcb2c7664c59f3c8b12db3da8dc268e6bb825300c62e6c47f054e4b0a50d48d6c28a15cc616422366ee7ab7f differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/26/5e/3606beaed89b76c7b94dfa013d5412ca7f63f502937e807c92eea5ce4522c119e2aef4dcfa193deeb7e335ee7f8f81335256922b128175c3f19fef115747 b/data_node_red/.npm/_cacache/content-v2/sha512/26/5e/3606beaed89b76c7b94dfa013d5412ca7f63f502937e807c92eea5ce4522c119e2aef4dcfa193deeb7e335ee7f8f81335256922b128175c3f19fef115747 new file mode 100644 index 0000000..fec45c0 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/26/5e/3606beaed89b76c7b94dfa013d5412ca7f63f502937e807c92eea5ce4522c119e2aef4dcfa193deeb7e335ee7f8f81335256922b128175c3f19fef115747 @@ -0,0 +1 @@ +{"name":"accepts","dist-tags":{"latest":"1.3.7"},"versions":{"1.0.0":{"name":"accepts","version":"1.0.0","dependencies":{"mime":"~1.2.11","negotiator":"~0.3.0"},"devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"3604c765586c3b9cf7877b6937cdbd4587f947dc","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.0.tgz"}},"1.0.1":{"name":"accepts","version":"1.0.1","dependencies":{"mime":"~1.2.11","negotiator":"~0.4.0"},"devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"c1e06d613e6246ba874678d6d9b92389b7ce310c","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.1.tgz"}},"1.0.2":{"name":"accepts","version":"1.0.2","dependencies":{"mime":"~1.2.11","negotiator":"0.4.5"},"devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"96266ace1b4c03f9637428f3acafe891959f3883","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.3":{"name":"accepts","version":"1.0.3","dependencies":{"mime":"~1.2.11","negotiator":"0.4.6"},"devDependencies":{"istanbul":"0.2.10","mocha":"*","should":"*"},"dist":{"shasum":"92b1db0d4f3db47b0530df6e15ae97db514dc2f8","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.4":{"name":"accepts","version":"1.0.4","dependencies":{"mime-types":"~1.0.0","negotiator":"0.4.6"},"devDependencies":{"istanbul":"0.2.10","mocha":"*","should":"*"},"dist":{"shasum":"a01739f55fbd67b26056ac5bc26537166a0707ca","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.5":{"name":"accepts","version":"1.0.5","dependencies":{"mime-types":"~1.0.0","negotiator":"0.4.6"},"devDependencies":{"istanbul":"0.2.10","mocha":"*","should":"*"},"dist":{"shasum":"3a484f1870a8264cfa4266cf6fb0197d6bc86bff","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.5.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.6":{"name":"accepts","version":"1.0.6","dependencies":{"mime-types":"~1.0.0","negotiator":"0.4.7"},"devDependencies":{"istanbul":"0.2.11","mocha":"*","should":"*"},"dist":{"shasum":"8cbbf84772d70211110d9b00b1208aae01f15724","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.6.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.7":{"name":"accepts","version":"1.0.7","dependencies":{"mime-types":"~1.0.0","negotiator":"0.4.7"},"devDependencies":{"istanbul":"0.2.11","mocha":"*","should":"*"},"dist":{"shasum":"5b501fb4f0704309964ccdb048172541208dab1a","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.0":{"name":"accepts","version":"1.1.0","dependencies":{"mime-types":"~2.0.0","negotiator":"0.4.7"},"devDependencies":{"istanbul":"~0.3.0","mocha":"1","should":"4"},"dist":{"shasum":"43ba6d946374c80f91823eaec6bb43dc4955500b","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.1":{"name":"accepts","version":"1.1.1","dependencies":{"mime-types":"~2.0.2","negotiator":"0.4.8"},"devDependencies":{"istanbul":"~0.3.0","mocha":"1"},"dist":{"shasum":"3b40bf6abc3fe3bc004534f4672ae1efd0063a96","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.1.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.2":{"name":"accepts","version":"1.1.2","dependencies":{"mime-types":"~2.0.2","negotiator":"0.4.9"},"devDependencies":{"istanbul":"~0.3.0","mocha":"1"},"dist":{"shasum":"8469a0a0a215b50cb0d156d351662f8978b00876","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.1.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.3":{"name":"accepts","version":"1.1.3","dependencies":{"mime-types":"~2.0.3","negotiator":"0.4.9"},"devDependencies":{"istanbul":"~0.3.0","mocha":"~2.0.1"},"dist":{"shasum":"14d99f8ee3ea69f8709d4bd17ffe153bef0f6c6d","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.1.3.tgz"},"engines":{"node":">= 0.8"}},"1.1.4":{"name":"accepts","version":"1.1.4","dependencies":{"mime-types":"~2.0.4","negotiator":"0.4.9"},"devDependencies":{"istanbul":"~0.3.4","mocha":"~2.0.1"},"dist":{"shasum":"d71c96f7d41d0feda2c38cd14e8a27c04158df4a","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz"},"engines":{"node":">= 0.8"}},"1.2.0":{"name":"accepts","version":"1.2.0","dependencies":{"mime-types":"~2.0.4","negotiator":"0.5.0"},"devDependencies":{"istanbul":"~0.3.4","mocha":"~2.0.1"},"dist":{"shasum":"6dabb991bfa82ad0011f6e970b99151d6e109966","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.0.tgz"},"engines":{"node":">= 0.8"}},"1.2.1":{"name":"accepts","version":"1.2.1","dependencies":{"mime-types":"~2.0.5","negotiator":"0.5.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0"},"dist":{"shasum":"07f17ad3e9d8f0cc6097931c310079d6c1eac704","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.1.tgz"},"engines":{"node":">= 0.8"}},"1.2.2":{"name":"accepts","version":"1.2.2","dependencies":{"mime-types":"~2.0.7","negotiator":"0.5.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0"},"dist":{"shasum":"9bc29b9b39f33a351e76a76058184ebc8ed7783f","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.2.tgz"},"engines":{"node":">= 0.8"}},"1.2.3":{"name":"accepts","version":"1.2.3","dependencies":{"mime-types":"~2.0.8","negotiator":"0.5.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0"},"dist":{"shasum":"2cb8b306cce2aa70e73ab39cc750061526c0778f","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.3.tgz"},"engines":{"node":">= 0.8"}},"1.2.4":{"name":"accepts","version":"1.2.4","dependencies":{"mime-types":"~2.0.9","negotiator":"0.5.1"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"f4e6c66f4faf69c76bd7a63a1ffc5bd2dacfb2ac","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.4.tgz"},"engines":{"node":">= 0.6"}},"1.2.5":{"name":"accepts","version":"1.2.5","dependencies":{"mime-types":"~2.0.10","negotiator":"0.5.1"},"devDependencies":{"istanbul":"0.3.7","mocha":"~1.21.5"},"dist":{"shasum":"bb07dc52c141ae562611a836ff433bcec8871ce9","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.5.tgz"},"engines":{"node":">= 0.6"}},"1.2.6":{"name":"accepts","version":"1.2.6","dependencies":{"mime-types":"~2.0.11","negotiator":"0.5.2"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"8f6c694267f0dc2f722d8b1752f56434e58be469","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.6.tgz"},"engines":{"node":">= 0.6"}},"1.2.7":{"name":"accepts","version":"1.2.7","dependencies":{"mime-types":"~2.0.11","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"efea24e36e0b5b93d001a7598ac441c32ef56003","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.7.tgz"},"engines":{"node":">= 0.6"}},"1.2.8":{"name":"accepts","version":"1.2.8","dependencies":{"mime-types":"~2.1.0","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.14","mocha":"~1.21.5"},"dist":{"shasum":"6ae87f81ceb551258163531988b435142cf927e2","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.8.tgz"},"engines":{"node":">= 0.6"}},"1.2.9":{"name":"accepts","version":"1.2.9","dependencies":{"mime-types":"~2.1.1","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.14","mocha":"~1.21.5"},"dist":{"shasum":"76e9631d05e3ff192a34afb9389f7b3953ded001","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.9.tgz"},"engines":{"node":">= 0.6"}},"1.2.10":{"name":"accepts","version":"1.2.10","dependencies":{"mime-types":"~2.1.2","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"f825f151c0960914881625be845d04940691ef69","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.10.tgz"},"engines":{"node":">= 0.6"}},"1.2.11":{"name":"accepts","version":"1.2.11","dependencies":{"mime-types":"~2.1.3","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"d341c6e3b420489632f0f4f8d2ad4fd9ddf374e0","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.11.tgz"},"engines":{"node":">= 0.6"}},"1.2.12":{"name":"accepts","version":"1.2.12","dependencies":{"mime-types":"~2.1.4","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"7e6d880f473b5c48d46e3e35f71ea7c3b68514c3","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.12.tgz"},"engines":{"node":">= 0.6"}},"1.2.13":{"name":"accepts","version":"1.2.13","dependencies":{"mime-types":"~2.1.6","negotiator":"0.5.3"},"devDependencies":{"istanbul":"0.3.19","mocha":"~1.21.5"},"dist":{"shasum":"e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz"},"engines":{"node":">= 0.6"}},"1.3.0":{"name":"accepts","version":"1.3.0","dependencies":{"mime-types":"~2.1.7","negotiator":"0.6.0"},"devDependencies":{"istanbul":"0.3.21","mocha":"~1.21.5"},"dist":{"shasum":"2341420f16d0b2d538a5898416ab0faa28912622","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.0.tgz"},"engines":{"node":">= 0.6"}},"1.3.1":{"name":"accepts","version":"1.3.1","dependencies":{"mime-types":"~2.1.9","negotiator":"0.6.0"},"devDependencies":{"istanbul":"0.4.2","mocha":"~1.21.5"},"dist":{"shasum":"dc295faf85024e05b04f5a6faf5eec1d1fd077e5","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.1.tgz"},"engines":{"node":">= 0.6"}},"1.3.2":{"name":"accepts","version":"1.3.2","dependencies":{"mime-types":"~2.1.10","negotiator":"0.6.0"},"devDependencies":{"istanbul":"0.4.2","mocha":"~1.21.5"},"dist":{"shasum":"9bfd7ddc497fdc1dad73a97b3f7cdc133929fac1","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.2.tgz"},"engines":{"node":">= 0.6"}},"1.3.3":{"name":"accepts","version":"1.3.3","dependencies":{"mime-types":"~2.1.11","negotiator":"0.6.1"},"devDependencies":{"istanbul":"0.4.3","mocha":"~1.21.5"},"dist":{"shasum":"c3ca7434938648c3e0d9c1e328dd68b622c284ca","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"},"engines":{"node":">= 0.6"}},"1.3.4":{"name":"accepts","version":"1.3.4","dependencies":{"mime-types":"~2.1.16","negotiator":"0.6.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"86246758c7dd6d21a6474ff084a4740ec05eb21f","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz"},"engines":{"node":">= 0.6"}},"1.3.5":{"name":"accepts","version":"1.3.5","dependencies":{"mime-types":"~2.1.18","negotiator":"0.6.1"},"devDependencies":{"eslint":"4.18.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.9.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"eb777df6011723a3b14e8a72c0805c8e86746bd2","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz","fileCount":5,"unpackedSize":16555},"engines":{"node":">= 0.6"}},"1.3.6":{"name":"accepts","version":"1.3.6","dependencies":{"mime-types":"~2.1.24","negotiator":"0.6.1"},"devDependencies":{"deep-equal":"1.0.1","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4"},"dist":{"integrity":"sha512-QsaoUD2dpVpjENy8JFpQnXP9vyzoZPmAoKrE3S6HtSB7qzSebkJNnmdY4p004FQUSSiHXPueENpoeuUW/7a8Ig==","shasum":"27de8682f0833e966dde5c5d7a63ec8523106e4b","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.6.tgz","fileCount":5,"unpackedSize":16622,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxdY4CRA9TVsSAnZWagAAwVsQAKRxXFaYDKxfJF2Uo/Qc\ns5SyR5DD5cZNA+jAvBvbbHPMCN1Unqkyqvy7wqzyvK/4NbISi3zgkUqKBRfy\nt1twSdfeVorBx7RuL+RuzL9xB4xu7puksd7GzV/43gaclLN1/XHYgKfJnQTj\nUsqqhXLDWYo8GDJtKPh+i5wjOBNyLEa1Ygyhl7D/7+SlgK8fqRthR4UqRYg5\nOTsrRmYJTzMKKE+rmsPFHkYMK2VM0nITBzCBAqAr5dIQjOG0fkUPOqQKAJ4M\nSR1+mcrWZfU7qEUKcGtVpRaZufRYpdS9DfB4I+8nDIjuSoDLjkLD5NsZddZt\nvHjDzQMttHTlnKBhTCLq1FtbXgZ+IrEbRwzCYhbCmQIJXX39w1eDWUydUHuQ\nElPS2kYBFtrSWMrrtuVjXC2eXf3vbGX+i+iQyoN8+ZJgqFydLjXT8e5oFCki\nSQNK5x9MyVJfiXBM2tv363GEPfd3r7eW5Uo6KjMTS/OrzLFCZImlaoUsUy1P\nj/4gDyUWlYrOO7500hVj+4+a0aqvK/IarS4ozBYiWMQLENlLvJilcPNTINv2\nE2ljP0xi0P/c8ryFghSB3cpvMbAe+goCo8WGq3CXXcmlIbHnc1+cZnQUv2Jp\nMdVdCmhEfCZE9iTiRmJOGJrmWHU1IOLJVlEsKJT4twNY1K9bz31KeIuCnxG9\nmvTH\r\n=JCfs\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.3.7":{"name":"accepts","version":"1.3.7","dependencies":{"mime-types":"~2.1.24","negotiator":"0.6.2"},"devDependencies":{"deep-equal":"1.0.1","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.0.0"},"dist":{"integrity":"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","shasum":"531bc726517a3b2b41f850021c6cc15eaab507cd","tarball":"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","fileCount":5,"unpackedSize":16646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcx8PPCRA9TVsSAnZWagAAM+kP/jPydIHPrA4TftraRNde\nnxojlC9prOP0Sn9FxBvevf3S9zBFEa2sa5fVUP4LUkNmG57fcmroDAaXnllW\nof8elLx8Al27QtOUi5lZ36AZAJ/aYHtGcTPnLjZejZOido1Mi2h8em/4Rk7M\nK/1RhYxG48u6B1Q/ZPXyJ23r95/PqfBhzAmaAKUfYBrcCMU/WT1SPS6DLCKv\nQZ6Oj9DFFlK7R+L15vRG7U1qmyMjkOVgK+oaNev7fpR0qVtc92xhfomgfrSK\ngqTrj05bKu4KIpJwH/T5GieWE2w7s42Q5TlmgWh/OMJNUFs9rltoe9tyetJE\nJcpTPFysR2lX5DS3YYwjgyguy515sseGMOIts0+92oE53OCKIC0FzE3IbPQw\nmXQCsUXK2IR+p3JwpIUz0oMswN4JDZ4I+BLNIy6LLibTiWw12NKdg1BWK/Yw\nJqZ5cyUW+45S3i82slyGttRABPS6WXq3CU5SqVp8+EUnwKqMceglw/b9dLfk\n0OiaPGGqUU48012PNNkqu1ERWqbb0JaGAlSrmaQRofGnceuAXvv2lCvAdhyc\n1hD32bl54Xox1ejJMCihiFJQCEOpTXrIEfXUEbyJFzSIZwaCW2uIP1OkYs9W\nPLWCaBiMcE12foiMMqv0cO1QrLYRyW1OPPttUhQoxbk//uKTMlrKPUjZM5PE\nR3Kk\r\n=HEy7\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2019-04-30T03:41:05.722Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/26/f7/4059f6d778819a67d7082e9dfc1e7b594854a8de65a0eb119c249b1df9de1a44c3aa6ae6a0d42eb77497c3c3b39a318c046c730ec4467596a55160fd8e03 b/data_node_red/.npm/_cacache/content-v2/sha512/26/f7/4059f6d778819a67d7082e9dfc1e7b594854a8de65a0eb119c249b1df9de1a44c3aa6ae6a0d42eb77497c3c3b39a318c046c730ec4467596a55160fd8e03 new file mode 100644 index 0000000..cd7eec8 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/26/f7/4059f6d778819a67d7082e9dfc1e7b594854a8de65a0eb119c249b1df9de1a44c3aa6ae6a0d42eb77497c3c3b39a318c046c730ec4467596a55160fd8e03 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/29/be/6b7bb2b2ab421e414de200c743552b5940325f027c08b438478511db105adf9530dfe7c7ac987622918bcdbc3c6f048281132fab298fb83d13d5e35296ef b/data_node_red/.npm/_cacache/content-v2/sha512/29/be/6b7bb2b2ab421e414de200c743552b5940325f027c08b438478511db105adf9530dfe7c7ac987622918bcdbc3c6f048281132fab298fb83d13d5e35296ef new file mode 100644 index 0000000..95f9a0c --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/29/be/6b7bb2b2ab421e414de200c743552b5940325f027c08b438478511db105adf9530dfe7c7ac987622918bcdbc3c6f048281132fab298fb83d13d5e35296ef @@ -0,0 +1 @@ +{"name":"mime-db","dist-tags":{"latest":"1.48.0"},"versions":{"0.0.0":{"name":"mime-db","version":"0.0.0","devDependencies":{"stream-to-array":"2","csv-parse":"0","cogent":"1","mocha":"1","co":"3"},"dist":{"shasum":"e0d8c5ca1d3905e1287a87701cd2e003911ac4ed","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-0.0.0.tgz"}},"1.0.0":{"name":"mime-db","version":"1.0.0","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.0.8","istanbul":"0.3.0","mocha":"1","stream-to-array":"2"},"dist":{"shasum":"05786d9d41fd2b93065f05c7378d6be273602c06","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.0.0.tgz"}},"1.0.1":{"name":"mime-db","version":"1.0.1","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.0.8","istanbul":"0.3.0","mocha":"1","stream-to-array":"2"},"dist":{"shasum":"35d99b0965967253bb30633a7d07a8de9975a952","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.0.1.tgz"}},"1.0.2":{"name":"mime-db","version":"1.0.2","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"dfb351df979c2b59bfcab5c1e187469b6da1bba4","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.0.2.tgz"}},"1.0.3":{"name":"mime-db","version":"1.0.3","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"5680b12300b3cecea5620f20f269ee80f2632d81","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.0.3.tgz"},"engines":{"node":">= 0.6"}},"1.1.0":{"name":"mime-db","version":"1.1.0","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"4613f418ab995450bf4bda240cd0ab38016a07a9","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.1.0.tgz"},"engines":{"node":">= 0.6"}},"1.1.1":{"name":"mime-db","version":"1.1.1","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"0fc890cda05d0edadefde73d241ef7e28d110a98","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.1.1.tgz"},"engines":{"node":">= 0.6"}},"1.1.2":{"name":"mime-db","version":"1.1.2","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"893d6c510f7e3f64fc75d8a23a48401f669e7fdb","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.1.2.tgz"},"engines":{"node":">= 0.6"}},"1.2.0":{"name":"mime-db","version":"1.2.0","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.2","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"76b92e7ecac673f5dab066a10b66faea1be2f01f","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.2.0.tgz"},"engines":{"node":">= 0.6"}},"1.3.0":{"name":"mime-db","version":"1.3.0","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.4","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"5fefeb25dd9b097c5d45091c60f8149b98d749ec","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.3.0.tgz"},"engines":{"node":">= 0.6"}},"1.3.1":{"name":"mime-db","version":"1.3.1","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","stream-to-array":"2"},"dist":{"shasum":"b1cd51ee8c4a674c49e03a96d67565fc768ce941","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.3.1.tgz"},"engines":{"node":">= 0.6"}},"1.4.0":{"name":"mime-db","version":"1.4.0","devDependencies":{"co":"3","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","raw-body":"~1.3.1","stream-to-array":"2"},"dist":{"shasum":"58573481b042aca7da48bd22510891b1dbf11b03","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.4.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.0":{"name":"mime-db","version":"1.5.0","devDependencies":{"co":"4","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","raw-body":"~1.3.1","stream-to-array":"2"},"dist":{"shasum":"bd80b576157991c3b46c71be7041fc6d5402a6ee","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz"},"engines":{"node":">= 0.6"}},"1.6.0":{"name":"mime-db","version":"1.6.0","devDependencies":{"co":"4","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","raw-body":"~1.3.2","stream-to-array":"2"},"dist":{"shasum":"7453d2097b080cad8044f04e856b3408f31e1ff3","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.6.0.tgz"},"engines":{"node":">= 0.6"}},"1.6.1":{"name":"mime-db","version":"1.6.1","devDependencies":{"co":"4","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","raw-body":"~1.3.2","stream-to-array":"2"},"dist":{"shasum":"6e85cd87c961d130d6ebd37efdfc2c0e06fdfcd3","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.6.1.tgz"},"engines":{"node":">= 0.6"}},"1.7.0":{"name":"mime-db","version":"1.7.0","devDependencies":{"co":"4","cogent":"1","csv-parse":"0","gnode":"0.1.0","istanbul":"0.3.5","mocha":"~1.21.4","raw-body":"~1.3.2","stream-to-array":"2"},"dist":{"shasum":"36cf66a6c52ea71827bde287f77c254f5ef1b8d3","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"},"engines":{"node":">= 0.6"}},"1.8.0":{"name":"mime-db","version":"1.8.0","devDependencies":{"bluebird":"~2.9.14","co":"~4.4.0","cogent":"1","csv-parse":"0.0.9","gnode":"0.1.1","istanbul":"0.3.7","mocha":"~1.21.4","raw-body":"~1.3.3","stream-to-array":"2"},"dist":{"shasum":"82a9b385f22b0f5954dec4d445faba0722c4ad25","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"},"engines":{"node":">= 0.6"}},"1.9.0":{"name":"mime-db","version":"1.9.0","devDependencies":{"bluebird":"~2.9.20","co":"4.5.1","cogent":"1","csv-parse":"0.1.0","gnode":"0.1.1","istanbul":"0.3.8","mocha":"~1.21.4","raw-body":"~1.3.3","stream-to-array":"2"},"dist":{"shasum":"dba46663957551864f8142cc22ef364b2a9b4797","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.9.0.tgz"},"engines":{"node":">= 0.6"}},"1.9.1":{"name":"mime-db","version":"1.9.1","devDependencies":{"bluebird":"~2.9.20","co":"4.5.1","cogent":"1","csv-parse":"0.1.0","gnode":"0.1.1","istanbul":"0.3.8","mocha":"~1.21.4","raw-body":"~1.3.3","stream-to-array":"2"},"dist":{"shasum":"1431049a71791482c29f37bafc8ea2cb3a6dd3e8","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.9.1.tgz"},"engines":{"node":">= 0.6"}},"1.10.0":{"name":"mime-db","version":"1.10.0","devDependencies":{"bluebird":"~2.9.20","co":"4.5.4","cogent":"1.0.1","csv-parse":"0.1.1","gnode":"0.1.1","istanbul":"0.3.9","mocha":"1.21.5","raw-body":"2.0.1","stream-to-array":"2"},"dist":{"shasum":"e6308063c758ebd12837874c3d1ea9170766b03b","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.10.0.tgz"},"engines":{"node":">= 0.6"}},"1.11.0":{"name":"mime-db","version":"1.11.0","devDependencies":{"bluebird":"2.9.27","co":"4.5.4","cogent":"1.0.1","csv-parse":"0.1.2","gnode":"0.1.1","istanbul":"0.3.9","mocha":"1.21.5","raw-body":"2.1.0","stream-to-array":"2"},"dist":{"shasum":"658e1563b52d733a78161224b835166b457069ab","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.11.0.tgz"},"engines":{"node":">= 0.6"}},"1.12.0":{"name":"mime-db","version":"1.12.0","devDependencies":{"bluebird":"2.9.27","co":"4.5.4","cogent":"1.0.1","csv-parse":"0.1.2","gnode":"0.1.1","istanbul":"0.3.9","mocha":"1.21.5","raw-body":"2.1.0","stream-to-array":"2"},"dist":{"shasum":"3d0c63180f458eb10d325aaa37d7c58ae312e9d7","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"},"engines":{"node":">= 0.6"}},"1.13.0":{"name":"mime-db","version":"1.13.0","devDependencies":{"bluebird":"2.9.27","co":"4.5.4","cogent":"1.0.1","csv-parse":"0.1.2","gnode":"0.1.1","istanbul":"0.3.14","mocha":"1.21.5","raw-body":"2.1.0","stream-to-array":"2"},"dist":{"shasum":"fd6808168fe30835e7ea2205fc981d3b633e4e34","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.13.0.tgz"},"engines":{"node":">= 0.6"}},"1.14.0":{"name":"mime-db","version":"1.14.0","devDependencies":{"bluebird":"2.9.30","co":"4.5.4","cogent":"1.0.1","csv-parse":"0.1.3","gnode":"0.1.1","istanbul":"0.3.16","mocha":"1.21.5","raw-body":"2.1.1","stream-to-array":"2"},"dist":{"shasum":"d561f10b6ee66db51f94ae657a2951a74217ed83","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.14.0.tgz"},"engines":{"node":">= 0.6"}},"1.15.0":{"name":"mime-db","version":"1.15.0","devDependencies":{"bluebird":"2.9.33","co":"4.6.0","cogent":"1.0.1","csv-parse":"0.1.3","gnode":"0.1.1","istanbul":"0.3.17","mocha":"1.21.5","raw-body":"2.1.2","stream-to-array":"2"},"dist":{"shasum":"d219e6214bbcae23a6fa69c0868c4fadc1405e8a","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.15.0.tgz"},"engines":{"node":">= 0.6"}},"1.16.0":{"name":"mime-db","version":"1.16.0","devDependencies":{"bluebird":"2.9.34","co":"4.6.0","cogent":"1.0.1","csv-parse":"0.1.4","gnode":"0.1.1","istanbul":"0.3.17","mocha":"1.21.5","raw-body":"2.1.2","stream-to-array":"2"},"dist":{"shasum":"e83dce4f81ca5455d29048e6c3422e9de3154f70","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.16.0.tgz"},"engines":{"node":">= 0.6"}},"1.17.0":{"name":"mime-db","version":"1.17.0","devDependencies":{"bluebird":"2.9.34","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.0","gnode":"0.1.1","istanbul":"0.3.17","mocha":"1.21.5","raw-body":"2.1.2","stream-to-array":"2"},"dist":{"shasum":"95bdc044092d2bcc3189dd19fbed6ed3a3f3df2a","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.17.0.tgz"},"engines":{"node":">= 0.6"}},"1.18.0":{"name":"mime-db","version":"1.18.0","devDependencies":{"bluebird":"2.9.34","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.0","gnode":"0.1.1","istanbul":"0.3.19","mocha":"1.21.5","raw-body":"2.1.2","stream-to-array":"2"},"dist":{"shasum":"5317e28224c08af1d484f60973dd386ba8f389e0","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz"},"engines":{"node":">= 0.6"}},"1.19.0":{"name":"mime-db","version":"1.19.0","devDependencies":{"bluebird":"2.10.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.0","gnode":"0.1.1","istanbul":"0.3.20","mocha":"1.21.5","raw-body":"2.1.3","stream-to-array":"2"},"dist":{"shasum":"496a18198a7ce8244534e25bb102b74fb420fd56","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"},"engines":{"node":">= 0.6"}},"1.20.0":{"name":"mime-db","version":"1.20.0","devDependencies":{"bluebird":"2.10.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.0","gnode":"0.1.1","istanbul":"0.4.0","mocha":"1.21.5","raw-body":"2.1.4","stream-to-array":"2.2.0"},"dist":{"shasum":"496f90fd01fe0e031c8823ec3aa9450ffda18ed8","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.20.0.tgz"},"engines":{"node":">= 0.6"}},"1.21.0":{"name":"mime-db","version":"1.21.0","devDependencies":{"bluebird":"3.1.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.1","gnode":"0.1.1","istanbul":"0.4.1","mocha":"1.21.5","raw-body":"2.1.5","stream-to-array":"2.2.0"},"dist":{"shasum":"9b5239e3353cf6eb015a00d890261027c36d4bac","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz"},"engines":{"node":">= 0.6"}},"1.22.0":{"name":"mime-db","version":"1.22.0","devDependencies":{"bluebird":"3.3.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.0.1","gnode":"0.1.2","istanbul":"0.4.2","mocha":"1.21.5","raw-body":"2.1.5","stream-to-array":"2.2.1"},"dist":{"shasum":"ab23a6372dc9d86d3dc9121bd0ebd38105a1904a","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz"},"engines":{"node":">= 0.6"}},"1.23.0":{"name":"mime-db","version":"1.23.0","devDependencies":{"bluebird":"3.3.5","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.1.0","gnode":"0.1.2","istanbul":"0.4.3","mocha":"1.21.5","raw-body":"2.1.6","stream-to-array":"2.3.0"},"dist":{"shasum":"a31b4070adaea27d732ea333740a64d0ec9a6659","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz"},"engines":{"node":">= 0.6"}},"1.24.0":{"name":"mime-db","version":"1.24.0","devDependencies":{"bluebird":"3.4.6","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.1.7","gnode":"0.1.2","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.1.7","stream-to-array":"2.3.0"},"dist":{"shasum":"e2d13f939f0016c6e4e9ad25a8652f126c467f0c","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz"},"engines":{"node":">= 0.6"}},"1.25.0":{"name":"mime-db","version":"1.25.0","devDependencies":{"bluebird":"3.4.6","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.1.7","eslint":"3.9.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.0","eslint-plugin-standard":"2.0.1","gnode":"0.1.2","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.1.7","stream-to-array":"2.3.0"},"dist":{"shasum":"c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz"},"engines":{"node":">= 0.6"}},"1.26.0":{"name":"mime-db","version":"1.26.0","devDependencies":{"bluebird":"3.4.7","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.1.9","eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.0","eslint-plugin-standard":"2.0.1","gnode":"0.1.2","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.2.0","stream-to-array":"2.3.0"},"dist":{"shasum":"eaffcd0e4fc6935cf8134da246e2e6c35305adff","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"},"engines":{"node":">= 0.6"}},"1.27.0":{"name":"mime-db","version":"1.27.0","devDependencies":{"bluebird":"3.5.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.2.0","eslint":"3.17.1","eslint-config-standard":"7.0.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","gnode":"0.1.2","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.2.0","stream-to-array":"2.3.0"},"dist":{"shasum":"820f572296bbd20ec25ed55e5b5de869e5436eb1","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"},"engines":{"node":">= 0.6"}},"1.28.0":{"name":"mime-db","version":"1.28.0","devDependencies":{"bluebird":"3.5.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.2.0","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.2.0","eslint-plugin-node":"4.2.2","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.2.0","stream-to-array":"2.3.0"},"dist":{"shasum":"fedd349be06d2865b7fc57d837c6de4f17d7ac3c","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.28.0.tgz"},"engines":{"node":">= 0.6"}},"1.29.0":{"name":"mime-db","version":"1.29.0","devDependencies":{"bluebird":"3.5.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.2.0","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.2.0","eslint-plugin-node":"4.2.2","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.0.3","raw-body":"2.2.0","stream-to-array":"2.3.0"},"dist":{"shasum":"48d26d235589651704ac5916ca06001914266878","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz"},"engines":{"node":">= 0.6"}},"1.30.0":{"name":"mime-db","version":"1.30.0","devDependencies":{"bluebird":"3.5.0","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.2.1","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.1.0","raw-body":"2.3.0","stream-to-array":"2.3.0"},"dist":{"shasum":"74c643da2dd9d6a45399963465b26d5ca7d71f01","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz"},"engines":{"node":">= 0.6"}},"1.31.0":{"name":"mime-db","version":"1.31.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.3.1","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.3.0","raw-body":"2.3.2","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-oB3w9lx50CMd6nfonoV5rBRUbJtjMifUHaFb5MfzjC8ksAIfVjT0BsX46SjjqBz7n9JGTrTX3paIeLSK+rS5fQ==","shasum":"a49cd8f3ebf3ed1a482b60561d9105ad40ca74cb","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.31.0.tgz"},"engines":{"node":">= 0.6"}},"1.32.0":{"name":"mime-db","version":"1.32.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.3.1","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.3.0","raw-body":"2.3.2","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-+ZWo/xZN40Tt6S+HyakUxnSOgff+JEdaneLWIm0Z6LmpCn5DMcZntLyUY5c/rTDog28LhXLKOUZKoTxTCAdBVw==","shasum":"485b3848b01a3cda5f968b4882c0771e58e09414","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.32.0.tgz"},"engines":{"node":">= 0.6"}},"1.33.0":{"name":"mime-db","version":"1.33.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"1.3.1","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.4.1","raw-body":"2.3.2","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==","shasum":"a3492050a5cb9b63450541e39d9788d2272783db","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz","fileCount":6,"unpackedSize":168885},"engines":{"node":">= 0.6"}},"1.34.0":{"name":"mime-db","version":"1.34.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"2.4.0","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.11.0","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.7.0","eslint-plugin-standard":"3.1.0","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.8.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"shasum":"452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz","fileCount":6,"unpackedSize":181432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFHwhCRA9TVsSAnZWagAAj+UP/1dByzwBfD1snnnxY1NR\nmeJz6+pNaEBsfJCS9ui+75FCRvuSdn5cnoUZcaN+R+Q4AC0GuOFVJDqKA391\nXtLHiWdWi00I6CJy9BWJGGNzkXI80yxuxog/aSbPEG+1b7eGF2KmNW7TO3J8\nqmWmXhHNw+AQJrsbYpEnyqp9+sGsTqcsVOZqtvgBtdWFNBP3P7dCghMt9nKD\ngs/0GBOLA6iYrnZEh7UDxedZId7Eulhv2x3Nvw3UvUV6whawLm9ZyR6/pE29\neBFe/vaoF4ITrDMJfSreFUKG9agPBZfG3QufkXKte0DZ7irHuk3Mxsn4HiXk\nUhxyDeHBgQI31zw5cuhLfcHgumzRBMDy6t0qQ2APUBHk4HLzLaTo6t4Ekv7g\nfRDbVuIXTqSfT9ABiF9LEq/UuJqaHOsAOTpJMKtq5x7hrw65KPt+mowdrGn9\nbCDjyDs0YIKFeNI66MvzUO5frl3NJnb99WuuOajJHh/jsWuEc9sZLGxttsm2\nrST+Aoj7eCLsIXFgbNJ/nz+ipvpufgaohc6wEbks7qj/0pWq9IROKhvaBnEB\nAsNnRhE64qnKucZKfHCemhPDZ7bn/h/rukTl/s+uJ8xKtDKp31cNjaORspRY\nGlfwJUk5Iv+HFm085YKoxYhAQC94k/TXnQ9Uw6HJtqmTrkvWUJOW28Qa3pDE\n2QLX\r\n=VWrj\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.35.0":{"name":"mime-db","version":"1.35.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"2.5.0","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.8.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==","shasum":"0569d657466491283709663ad379a99b90d9ab47","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz","fileCount":6,"unpackedSize":182437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbS230CRA9TVsSAnZWagAAVAQP/1JXucIXemrOFc45tlD2\nve3Q+DauA5xCvgZb3Aqk6Z2ayRSYVvQEi6TWhZ8xvTGDc5Lma5X7RFBR8YWI\n7fg5s8HzT91e9rgPoCbZiiPG28k0BNgI5gPutN3zyYrzy5oAACf3dJmHKbPa\nk4HLl6cd7zVLtLBIhrt+9gLnztjVPB4IWWGj7Df5I4xtYsSVgR7SERqkgw9Y\nuLOUCkGAERF1A/+5SDys7LucVspERlExQh2RNfz3iQLdj3LHq5LyfeqoL/7p\nVOFYaLMS07Zv8yh5YTqf6AHVKTbNy1/i7f7wv3wmnOUj8OMcV7RIQI7AMmhC\n0XWS3vbJWDiRm2VmoO2Xv10sZT7wFEr3getuffzMFxhOmHlnD3bvul64YWo/\nWR+ZUmYBll0obu/hUKfnimJ4/lRJKY4R7oUzR7prUL5ZQwD2x6xjWG3fNbaX\nPQXkKUPvhhyxvKbqpQmv23uF0XSaELAf2PKfo+MhCcQPwWLaXG7sylIbN3xk\n+Yn8CAgv2Vdby+OR7VL8pTxOIizjUPBntZlvtmLo3MId64NJZeALO9aGu3AO\nxqaQmm81SAvi/3V/dvPSxtDJyL14L99nxsPGUm4CXF7O8BoS/mEpen3hGPYg\nk+dEZHsK1Cok35XDboPWF9paoSI56D4WnNHWJRc6vaenR1uiZXqAMmP6BHET\nTjhI\r\n=Df31\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.36.0":{"name":"mime-db","version":"1.36.0","devDependencies":{"bluebird":"3.5.1","co":"4.6.0","cogent":"1.0.1","csv-parse":"2.5.0","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","gnode":"0.1.2","mocha":"1.21.5","nyc":"11.8.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==","shasum":"5020478db3c7fe93aad7bbcc4dcf869c43363397","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz","fileCount":6,"unpackedSize":183662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbet1WCRA9TVsSAnZWagAAJN0QAKPc2EF8RzEB4aqN05Q7\nSTdLSmPgU72pGFXE3mP7qRNd0qXdawCZfRIirnbVkC9gIEAVf0E41GiIcMIu\nTH/G5lndkLj3DIvxlXAWgXl/EoVJrxe05aWK0gzJupECXWipBpK2WLqit5yb\noxBYDs00nnoMvdbp/mNinl+YbptjJKWaLH+f/MldtoUTkMQvPBhkCP0IZoTM\nLKD2JQJYZYRDUyFU0cN1OmdOKBKFf7noYJ8TukZnFOPQSbiW3bdOXYi8AZO9\nrmZ7aeTFwPz1+YD/PtljE1DpnLI4ky+PP1oonoPh2KRwK2+pNitp9hpsltzm\nbgt9rLLaecngzqKoKGggaE0q2Y0NAwS2MohGMqMyEvUtEuH86wo1Fcaf694F\nEAM0sMRJ0gPHepdkTrX/80W3QF+n3gxE93jxN5dpBbyfmmJXfE5S6V+EhkrP\nzH5gYtR6NIT4cyuvl7RO2oaTDYiWq1+j1t00f/a0a2+tmH2A0fJ5H11Dbq1F\nm/N8Ynh185zGIbrhwFTTpaBQDybzPcngQFX++Ex8NJw9d40GiyURfsPxtuVR\n/uBN9Qb09ueHuQRl1aXlIGroLxxgkPpUzJeR1cVhSrExqV/0LIyM1muKApUa\nPzXRPdn9s+zXdBqYrzPJzsqoaHfliyVEsuSoMWqZJYP/en9LqeShK9PtOU8T\nEaXI\r\n=Vqm0\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.37.0":{"name":"mime-db","version":"1.37.0","devDependencies":{"bluebird":"3.5.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"2.5.0","eslint":"5.7.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","gnode":"0.1.2","mocha":"5.2.0","nyc":"13.1.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==","shasum":"0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz","fileCount":6,"unpackedSize":184115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyodWCRA9TVsSAnZWagAAWJQQAJWun8rA9X0PAqWORTCM\nM4zVTulxxINQn+3eWvWrmi/uxAu6EIhygcrFvq2VBI65yqkn7p+YJKA6dj55\nQNuFsuviaejJ8TunSUNqD2YNqv6mFtnm/bn0akiVrsL1bbM2ExoYvx9cO9/9\nLT1YOdKI2xVxYjI8bE0kaWBFkxUn6QPJ7wksKgukQesmyNb+c6Uv4Snvu/c1\ninT6WfSNH5jSJ/A0yf03OruzJqToVjfuhBFJOBSOFDfQWbbxS3vDzgZn2X1S\n9ey6Ewkt1oyWoo9mh9n9pjY5rhukP56WrfXxi8vI0Xb9AqPwik1e5aNxd6HK\noNW2T1zr5GjwMsQFERGB9nbu2ql0Qu9QvbEdn9sy2eKB/xBaFKuDIlwoaqMI\nmCgnbIVOf6ZK3VaaxEnYEuUYx/ADHYuP9/eaH4eP1UPrvhwhKlC4IvA1u9Qw\nADPDLOiIdgt64njqLDOfiO7LGAiDfhJyyW3y7kBjPsAmuf+LZHQu/OagRvfm\n8sLjDRHYW5TKKSthNWnAFL2TgxQJIrRg0GwZZTT9Mugpkyp46H+CsM5SGwOP\n9r1HFhKROluA5PyXh8vtqQXgFxA4jcyZu26xbFNoQwbqUi8tjbvxDkFMytmS\nwIlkx+VCvuVkAt45xGDfG3fbSg29YKN9YG2bHrgh1gLjHCtueCYIYDSrmmlb\neu6F\r\n=EUHL\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.38.0":{"name":"mime-db","version":"1.38.0","devDependencies":{"bluebird":"3.5.3","co":"4.6.0","cogent":"1.0.1","csv-parse":"3.2.0","eslint":"5.13.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","gnode":"0.1.2","mocha":"5.2.0","nyc":"13.2.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==","shasum":"1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz","fileCount":6,"unpackedSize":187036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWQEBCRA9TVsSAnZWagAAXSMP/jBFEA8x96QJ4p1cuvDi\nSObsmuQxGC2HcOHu8P2FuyCjCG4cWgjQT2ANKdGG8nOAvpZbU9D23pw6zj4y\nx2zrUi5rSU924LCXhfXx/YlOevYlSbV4E/eU0ZsvuCDbR3KuRsOi+8U/gFIO\nKgnJIygONbg+czoK5CKofBn4yI/0z9AfHPl1ZxiMLPQHpziAMaW2N221mHia\nIw1WJ3WttXvjoemrduN0fwfuB11plAgo9p1W8H1vSLmGFN8M6pbvMRLd2H5N\nGUy1F3sucis6+48Bcbcr9W7W/OeMh9UfbGfvzptV1MYjqNkXb/vYJzGyMBeR\nGwOkjMJW/JE7WpwMzRpzUDeBazBnqw1boRHhZlFTRaIfsz0USnetkuKgnBTp\n+z8/sepMrlIIHtWv5E4swSEJ3tR0RSdFLn3MYQUrqARKg9xLhTf2Dt28ES2m\nNy5USUFglIWbeh0p6CrbTHrUH06jsO43kIJo5j+YbfrV/q+hgs01OXQxGsS3\nI2Aqz9ZIrGZHd/qHCXFjyLO2SW6Qhk4/+JscF3vSK/axmo1rbD3vmN2BwjNi\nodiMNaGJwXyh+OYJpPZoBh+VARcOoD6w+lWrbmX1FdAxpW0s48bmB6OK/SVe\nCvix+hsokZTN6/saFxZ4xcEkUVHLxlapRWIbfaxP/6Zxm3etlSiQY0XyGrA2\nkzzo\r\n=Obtw\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.39.0":{"name":"mime-db","version":"1.39.0","devDependencies":{"bluebird":"3.5.4","co":"4.6.0","cogent":"1.0.1","csv-parse":"3.2.0","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","gnode":"0.1.2","mocha":"6.0.2","nyc":"13.3.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==","shasum":"f95a20275742f7d2ad0429acfe40f4233543780e","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz","fileCount":6,"unpackedSize":187666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcprirCRA9TVsSAnZWagAAiV4QAJo09LTUiZBT9ela3OSr\nk5RB9/Z3QQnbOdFuoqQe8EtgP0jUli6/JY6QEc4HD38IuItqe5HuCBH5m0nn\n847UJF4bAHGHcIpVrUClsu3nTh8OPATmXoYqUxKianVE7aJ8YCBPjPQN6JHJ\nIFT/XI3eshE0qrCJmWlhNG54cHr8LDVHVnuG8fG/l08lXKq9cljj93G5Tq32\nscrNgUqcRfE9Csq+Er678c+N+V+FXgr5X1AOEqcytLz/zmSP2cH12eL+6ndJ\nzx5sM5FG9Bjrdib6RyixvuKBX41TsTGkVTWkMw3hADfuckT1j00WOsAqM9yh\np8AWE9uxZl1pJ438m7W3HMRK+aVVcwbjj1rSIKIBj69/P2vIe5+PSS7qaOkD\nLpW5eYFEiVLrxFMOPccpUbbKaB+hkF/5eqxo0eFib+g+xLkYQei3jf6n+iVg\nZQITvj4UXv1/kPxPfmHrK8HRHN7irak5sRFqdgyCqM4uOrbW5451TJF6sIM3\nfpYK910N7tU6wVOpOZv65wc0s/Z4n2p+evXjWyaY0DzOmbyA6Y6u6daWzsfD\nUv0j/P/xFfAoYuNXJo6vXAIQjlMCbpp1uuVrKu8xSLtQolY8OtQX3/I5Iuuy\nRdjEhacp2dCJKbWmc9WGUjG450OsD22CIe9yHxeswugo7oNBOLtPaDbARS66\nz2xU\r\n=B2vL\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.40.0":{"name":"mime-db","version":"1.40.0","devDependencies":{"bluebird":"3.5.4","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.3.4","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","gnode":"0.1.2","mocha":"6.1.4","nyc":"14.0.0","raw-body":"2.3.3","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==","shasum":"a65057e998db090f732a68f6c276d387d4126c32","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz","fileCount":6,"unpackedSize":188118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcu85CCRA9TVsSAnZWagAAkIgP/0HkS+apHdnFdPS9Ot0O\nZlWuptzHDU6koytz+3esAgaFYYOWQa6xN4OQbQs61B2XoKNZWxKQdkMD/+zf\nLQvx9wWDic7Xaj1MpijO5Ur0OEzJEh9ZW3S3eWHc5gDKPTcyofY+l3mBGo6R\n2/scHJr3l3gBK3BJyQZYhxL7EEEt5RGeQkcHAfGvfKH6iw4UzRWSHlIJxpJq\ngdTg2cmJgtGy0ThBnuLDk/QG3DG2lZL0NnI3Qtwt5PhLqlQ1mEeMx+fBHGEc\nyHH9fWaJUh/cm/a0kzvoGpu259QMOiLwuZfSkBV3v7udap69Q1MdqnViU+HL\nXaDfT28J/kSsqrddkwIisNw2Zxi/3bGcB3LcZHuoWhkaYMf2rzweX/rMApI7\nOijY5ze0i7PhCbsGoy7ichT8PKbgyDdc415t4M8CubPkfG6RA65dpR+NDjVn\n88h9g0S98pEVa/yMEZOIXRPPE4MHcWJ1QRlwjl4mxyH461AakWMTeNbAKk6Y\n4ZSDzTVPeVsz/1uaSHryagS/istatuoRit3PBJWsMI3F8gEA+aEHYDFimBCH\n8gpn4j5xfkdiwtNGuvJO22PxBqCHrDCppoxJyUEzFHlbWFiLvtwWy7h+FtYs\nNAKtGQLkQjET+DvyC15QSwJainaZ1ZzDVNlY7CprPoSihm3eO8G1rBI9DVbC\nSKXu\r\n=T/db\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.41.0":{"name":"mime-db","version":"1.41.0","devDependencies":{"bluebird":"3.5.5","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.4.5","eslint":"6.2.2","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.18.2","eslint-plugin-node":"9.2.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","gnode":"0.1.2","mocha":"6.2.0","nyc":"14.1.1","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw==","shasum":"9110408e1f6aa1b34aef51f2c9df3caddf46b6a0","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.41.0.tgz","fileCount":6,"unpackedSize":190465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaUD6CRA9TVsSAnZWagAAmB0P/A46VreYFYe0+F7nrF+r\n0z6ci/kbfLdJavLdG11rt0aJo3H1PDMyHNRePpOZ1wfPFmn/AKc5ZMCyl+Uw\naIPB0srxsKaxbEzci0JKVi7Wvnd+Y5IYLzxvSzggWq4FbBUW0hXzkb7Leh5n\nk7PUm95gnd7a9z3hVoeyz1mHybAlrQinvHSTg2s8NrYTWiuD09+AL/C6gu48\naptFVLomkY8tOP6H7LUoMc544vNN0/9PNnu+NXl5M/2YAf3qCLc0Ph23HaJl\nZCzaKKhYwxPOO29k0IQegwlkuymhrhyJIFaFA4i7zysuj6ucbO3i6aiEFdWu\nFDMxrl/hUOQ2bqd5wWDfiTS9prEaIkWoTHWQyVgoaYaGzoy+PXykiZ+RAYeA\nUJAWJhz/6ROpFe7GjWLAUP/a/np8UJC8x2gvMOwnU8PxWRYuI5ejAyChlYX0\nxvP8phbVV+vW5wcttejsg++uxJqxDDVGOUXzWKJMNYi5hJCHI2GwXt1IU2mk\nJTYQ1a73L2dqF//IGcSiXryHYDQa9pnOv2Eoey68YWvCQEGU2ceGkWjfHS9a\nUW+ktWm8fiFxImqoI5RckiwLjvX8BlSIa6Ofa3r4zcCabhgQam6MVmnve7oc\nBrq2Ne9ecCjDCVHlvN7vLqydqgQvXEttz0WrJKmn0sw/vjHeOqZsuntnq+g/\noeiJ\r\n=QJJZ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.42.0":{"name":"mime-db","version":"1.42.0","devDependencies":{"bluebird":"3.5.5","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.4.6","eslint":"6.4.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.18.2","eslint-plugin-node":"10.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","gnode":"0.1.2","mocha":"6.2.0","nyc":"14.1.1","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==","shasum":"3e252907b4c7adb906597b4b65636272cf9e7bac","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz","fileCount":6,"unpackedSize":191359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjDEMCRA9TVsSAnZWagAAO8sQAJDZ9nE5qeU6iBfZSjAg\niuf/pScGh+pnoLUIU0h+4eT0TmPDA/isO1ZFmB7Gh9yd5p+zOTJzXFhCRWgl\nR7q6+E4Bw7AXkkyZVWQS50kIJWcWFNGsahQMWseg9t7i27O3MEuVScUcHKcl\ntsz3xIYhbc+xtpjLOGIYhHB+1QUSS3pUsw8uNGHRuhtjeBbrM86rwbbR0Nf8\nmPrBa27ouELVuKeKhjLVvRU63uut4f4jJnPoEi7WWhQkRVvsCv4hZa/sHRsa\nF5qqsipqzln3ZsL1LTxf6wb2O3eL9CYGFVLWk2mD8Zswuoy+LKF2lMsgw38b\ngWbt1U9E9xm4LjdTQP7Ic3XnOF8V/0L14galBmgOiS/VqWOH6d0vq1b5d0kn\nu5lythVxfmZsLce6oDZsf9sROKcaX4hXEp8p24wThdnSg6edX3djV4ULUiWD\nll6z6znZKbTUIs2564mqtJ6Ag/Dxqixz1gq+H3EhOeJcw1RbrBsydau8ZyQ5\nIEUe68vShyOWxgrc5ytedgEFEAG/jHkCZ6EkHraRhRE8MOyO7TCrXpWU5p6d\nE594XDx+L9+sGjCAOjm0lCG5A+72fsz2PAabu9fV2bXyVK4oDbHxXpIYVLHv\nV/kFUqETaeHyAAQCJGIIcvHrVfLZUwsTWjfa055ZOQggmsIcjNwmdjCpL8j0\nFqB0\r\n=CvIR\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.43.0":{"name":"mime-db","version":"1.43.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.8.3","eslint":"6.8.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.19.1","eslint-plugin-node":"11.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","gnode":"0.1.2","mocha":"7.0.0","nyc":"15.0.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==","shasum":"0a12e0502650e473d735535050e7c8f4eb4fae58","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz","fileCount":6,"unpackedSize":193844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEqh2CRA9TVsSAnZWagAAlP4P/icsl8MtJ13N7Wcf/kdG\nfKk/9TcVOso14t3HgqQHiNAHa5GjNzr8Et5Cl0Uqpy2d/eNiw5WWjn8ZuhP8\nEFoy3NBGOb0hfKhi/LzqjJhiBiKbszKSRBBboPauranRazn+sJdPrJA2OP6x\ny+iseFgXEo4k8XH4A11dMzMS4kUw6YdWUt8GCFv6zkML4ku/zszg0rFzbbf4\nGMvh+7n/UpSg+fVNTPwj2vOJJpP70TS+gat4VG2nbVyP0thHXoM7/xmjrmuB\nCpZ83ZXCI+hZnDIUk2qf0kc04zwoqHKeloIcBXNiaYEtyu5joTwbGbu1q6z8\nhmjWZ7xUMpzyVP081RHUjRXvIJHvIvv1Gzpa33cfFiDkXewUqwaa6sO/Q6TK\n5YKmoNZo12OyRZfche8Ni4Y1eQBd58mx5QvYGxlYhtAjQ+QczTlyTjdSMh/k\nYbrbH81oXlp/uyxLKv4ywye54R/YJiFsRNgiiDOarXQtRdSRI8mGt46XCs98\nCXFDkGmoDY+HXshy2vboRTWXjORDdcaGN8olI96lf+nOJsLc2YQ89ZK3zaAF\nBmfLA+hE3WO0UcOlTjKZnHZeP7e0sosQKVlPO4XjLJy23yOiWZpvTurjk/SE\nQXNdDa1LU7xa/9k1xuKTLFoQvkyFcdtI2p0KiUw2okA/vzWu3sF4wkjBWwk2\nO84c\r\n=Zap5\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.44.0":{"name":"mime-db","version":"1.44.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.8.9","eslint":"6.8.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.20.2","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","gnode":"0.1.2","mocha":"7.1.1","nyc":"15.0.1","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==","shasum":"fa11c5eb0aca1334b4233cb4d52f10c5a6272f92","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz","fileCount":6,"unpackedSize":196566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoOd9CRA9TVsSAnZWagAAi1UP+wT1oocXAMiyO/9Vfm8L\nGoCBNBY4pOg5WMITVUQ+rkz5JBEQkjue0Y534t9pQhfPrFMidLOE/j1qVAbI\nOBtEjo3gW/OGaCVQpbt1ZhlHlPl/ybxiuGT1S4TdebJPGOzrsbYZlR2ki30B\nGPSKeQ7Ept9nELXXOlOp1HfFKayq+buEbVXMsPgr0l7uYZc4VlyuD38RLbn9\nSoOzu7i/ecXmzh2tq7gL8ZL92vHl0gikbpwKJmRlP/QH29elLxTPWaDUxkGO\n1/pbnuHLC43IgjTDcWebAG5T0i8U/OwihDnZQRdcyRgcCm9VdZdzj6yzkOtJ\nUq3aLoqjNynaEgiJuuq/aMkfVh3gLf0K/iQhGMx1sBJ1AODo5YvxtPS+aHhE\nmm1m44im2QXoYNAj3ZtE10RTUoKiGzvuG1VSBkEmdqMVi1sO3HkhU5a2vT04\nzYUNpKen3e8+faMWYvssERsw6rszhqNngDDb+qgXDRRGhgXJDFlu1kaP8p2F\n8vHfHWZW10PP2pNJgILfodh9dzn9rjMdflQ+iLQu1DReGn5ympj/onk/UI4R\nwRU6UlAETbgVwRA8xAZ5eHsvGzujmqsuKo+vSRVdBHsquwVW1zzRuw9LYMDV\nuBdl63DxqOcebHcEbclLu6FughDEa6fizcxes0+07BlVvXq79zclvwOIPEcd\nBe2P\r\n=hgzf\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.45.0":{"name":"mime-db","version":"1.45.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.12.0","eslint":"7.9.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.0","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","gnode":"0.1.2","mocha":"8.1.3","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==","shasum":"cceeda21ccd7c3a745eba2decd55d4b73e7879ea","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz","fileCount":6,"unpackedSize":198292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfasVtCRA9TVsSAnZWagAAdVcQAKHttnfyGmHho2qwCF5I\n/sqyynFtaB/7bq7cMaIvDM8ft8UnXY56c+HzMFsI6VRW4TeecNzwB25FGUuK\nYQLY8YOM5f/GVkOioFvzFr/XGCMQxFZ1z0R1N2TPv3TNfuNZiXJjRxkA4iFq\nmZyaf07qjdBxAHR/q3SUbcNgEbfi81khj5AJrBEJ7ReVdzrCWzWJ7lmG/XI3\nys25XGk4+tpVW1kp6cjZvcFk3qxPsR4yeDsSbusyw6MoS8dmdUEXVzjCRK55\nU4/vV44coZ4/T+50Chnj8w+754WQhh9lx77OZ3T6DxZhJfKc1XgKi2w+koDL\nKvshref9pPcn8DiTJxOmYPo7AHHpOcqTWXVzAiP3MrOELfXj8twf5N8rT6fA\nrMjY3q9lw4U91XXZZtqt8H5UICzA34hTdGD1wUPMJVlw9Yv8sZpWjFR652wz\nzaLQ0GEDYqn5gxm0O6EtbW6gEhI0pXkmih6O/WqFTq0b7tVEX6tfoLhUz6lC\nLvk0o+ags5PV2vfoZYPD8vpzG0li8RI/mT469fZv3iRHMLOq3mtdkzqaYy8D\n9KF3fhz8upGAFvifjTyhEeTfbZ0GyTQFbdHNUjMpfD+bAREr+VoOjV3SEA0X\nLwa5S10kaeN8zhtHNtvBekMU32Uc/nPs0ny31ixIb30RhIxLuH7rLy28qoEK\n49UF\r\n=Y2o0\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.46.0":{"name":"mime-db","version":"1.46.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.15.1","eslint":"7.20.0","eslint-config-standard":"15.0.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.3.1","eslint-plugin-standard":"4.1.0","gnode":"0.1.2","mocha":"8.3.0","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==","shasum":"6267748a7f799594de3cbc8cde91def349661cee","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz","fileCount":6,"unpackedSize":199935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ2WcCRA9TVsSAnZWagAAnKEP/jdvdKSNGsShyfp4Fq/M\nks39gjDNeVsTWvCJFUk/f6LGnWPn1JStPkH6+KqWUugIs5OYmcKp/VLNEwkn\nzXefmOAOEyV21z0hZTbdfi9fUWhuaybUXBMaWZPZPTVhjEW9JaaFNBtrxHU9\n7TZFY3lDeis2NCW5GNsNWhapqyJbHyFj7M3+OgBzgk9g8J/TLukwNnwBtuD9\nxTgeLJp6CsDhmBKZwJmszo/+AXN2DvCPA21fe9kuZsekbZUcBgAURWXjnJPW\nqR97Dz5QPGlem9QbmmO2cSmczxkxg+Ur5QhEJmc4j7KztdR+f0Xb9oxq7w2S\n2/6XDYfux8FPOnywBU/zeqVHmaF4mqn93X4iB1bPyzGYnda3AHQHecvK2+hX\nFxfi7xmF3eOkX9gbGK0DJGPIXPFtC6qRRGRsIK1++d1pBEE2TXwBX/vfzMqy\nqpIBxMGV6qIPq1S2bg5pGu5W+kpz7G7JRHw8OrccEW5FNQ2f++6bEt0KdTH5\nTx8C8FDVRTrU9yIgWBf9GPXED5IZebU+SgBzSNW9oUBSb7bcS2OeG2jzJWOx\n+hlGKOk5H/WIl0/Gu3xjEvOzeZG4COcrycvexM6vEeaPbmj/epb5BrfFML/B\nPMft5UTEZ3Yq/DYIe4nvhA5dSEsAv3/DfeOWkTKaUC3/m8eaq0iPD6hy6sod\n3e8w\r\n=Y19I\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.47.0":{"name":"mime-db","version":"1.47.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.15.3","eslint":"7.23.0","eslint-config-standard":"15.0.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"2.0.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.3.1","eslint-plugin-standard":"4.1.0","gnode":"0.1.2","mocha":"8.3.2","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==","shasum":"8cb313e59965d3c05cfbf898915a267af46a335c","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz","fileCount":6,"unpackedSize":200253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZiGACRA9TVsSAnZWagAAJVgP/2F8cQonhwUJiFOcN7/z\n5RPJWINnitLk7g2+CUS5pIcB3Sn5UepX5xWB48fGgR9w+NmxGQUMHIE4/8B1\nzmmDJtM82UOaHKujAME46h64t0WX9oVJkqhlqcMo5QsqeWUl8U0FAJuBjZGq\nBjNGFv2mRAxoHYqy/Y6QngaqAORH521TuASge8tvKPlWLMeyTRYsnY9kF0v4\nZlofOAOuAtPwoFId4kXgXT3tnqfGJ+XalRke0KeqzP2/gLoOvdmXSCsMfOE2\n3sJxRxn1huKemc0S8aOPB+Bqd9EDd/IRMFJqCqdTNsWwf1U+NW3dAbaroq+F\nDCt0yYENGYt2uGUQNeRf2NcmaLnQ8/pKnknNkfGQUjeo2HhAvQRqBhKZduzv\n05yZvl+ie1p5CWUbdeYxhWgOESV1MqVQq/znUA45Wky65z68ZZPyLV4zwBjf\nVSQvhD+9XKXOKlLNAIlihZlL7Uteg5VUFzE0YACdfPcDBkNhy5psJcKRzli/\npMnnqVtfzCSFNOBAknOPMrVbCM9iU5g0UTwlkA7nZS1ZLwWiRDOp9T0HSK0G\nC2xmSntJ1JPcX1ekYyDEPoGrcyudvBcZ50XHl4+3rj4WhLEoQvkj7r6OZmkM\naYv4f2QFtRqZCb919GzJcrO5BOAAB2rZMpW5zcjQNNhNpLw0J+wGNZTAYjCZ\nhabv\r\n=Zg40\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.48.0":{"name":"mime-db","version":"1.48.0","devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.15.4","eslint":"7.27.0","eslint-config-standard":"15.0.1","eslint-plugin-import":"2.23.4","eslint-plugin-markdown":"2.2.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.1.0","eslint-plugin-standard":"4.1.0","gnode":"0.1.2","mocha":"8.4.0","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==","shasum":"e35b31045dd7eada3aaad537ed88a33afbef2d1d","tarball":"https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz","fileCount":6,"unpackedSize":201666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtF8GCRA9TVsSAnZWagAACHoP/3omXq2iVI0g2S6Z2h8c\n9xrlIjwn2ZK6t+quQL9YYNMcUuCL5GolMNbzjzEjjZIRjSBfZCVruW/wUrwD\nrfx1lluDfJA05HvWEmplUF8pEbcrn3YTLbXDmb/3FqiQ68qVua8pNM+EKNZC\nyOBqfrTKI1eJ0ufW7ad5j8jf5Nt5xBYdfXdP1zzmyy3YXXWMc0Bey7l8ium5\nthoCliqUYl8nyZ4ghMTqrFZ+gRPmC7afcl88K8mIvQxwyVUWyV/7QQdtQQy3\nBuq15MKHFXjMbN2q7F1KTHrniXhHu46vMH9K3HB2R8aae8gb9g0YaIsQJtdJ\n7VRQc/sxsZ3EMoe8lQ226EWWqMQ8MijsU6MHmZF1XYjKAMZYm18C9tHKqnsA\n00NBqe+XMawnNeNFZfO4gjRARDevKYhIBexv8D7X0Q1stR8wyVSI/v8z8KTe\nDPUF4HhYxQUogAoqj5dTBgb/zh0PN78tMePiEXxJgfQvKP1PN/qNSxRHLFoU\nt2D4VAP/olNoukHWlrTPMOJ7mREcddGEoqBzW+979D4LfqDqjiEVhr6s5X3/\nQHzHjD4/W59LEQjv25nnkWjg8N/1KFMkrKn5buJuLj0oPbLmee4l3gwjmh24\nDyma/nYYeJl86Lgb+h5sNmbAEbaCJXN1E+SjSz4ooZNHvk9HixOvcP17TI39\nxymk\r\n=mMeJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2021-05-31T03:59:04.674Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/2b/4f/443aafd09cf36e316fd0db1fa8382cb4e1b760e4e62a1f8a633f27ee442141de2136e974cc3373c90f426b175c98e76969fe13dd794dc47d982ea4d97d9a b/data_node_red/.npm/_cacache/content-v2/sha512/2b/4f/443aafd09cf36e316fd0db1fa8382cb4e1b760e4e62a1f8a633f27ee442141de2136e974cc3373c90f426b175c98e76969fe13dd794dc47d982ea4d97d9a new file mode 100644 index 0000000..ba53438 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/2b/4f/443aafd09cf36e316fd0db1fa8382cb4e1b760e4e62a1f8a633f27ee442141de2136e974cc3373c90f426b175c98e76969fe13dd794dc47d982ea4d97d9a @@ -0,0 +1 @@ +{"name":"engine.io","dist-tags":{"latest":"5.1.1","alpha":"4.0.0-alpha.1","old":"3.5.0"},"versions":{"0.1.0":{"name":"engine.io","version":"0.1.0","dependencies":{"debug":"0.6.0","engine.io-client":"0.1.0","websocket.io":"0.2.1"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"428b0367e1516acbf40c25ab4c0dfff295c851b4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.1.0.tgz"},"engines":{"node":"*"}},"0.1.1":{"name":"engine.io","version":"0.1.1","dependencies":{"debug":"0.6.0","engine.io-client":"0.1.1","ws":"~0.4.21"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"e8a6bad8d35387da4700d5128ea7f7a2cca98c2e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.1.1.tgz"},"engines":{"node":"*"}},"0.1.2":{"name":"engine.io","version":"0.1.2","dependencies":{"debug":"0.6.0","engine.io-client":"0.1.2","ws":"~0.4.21"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"31d39e02ac38d974bdf4b0b4544145a56568a6e9","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.1.2.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"engine.io","version":"0.2.0","dependencies":{"debug":"0.6.0","engine.io-client":"0.2.0","ws":"~0.4.21"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"9a754268b0b0ecf48c4996bec239404661d24db4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.2.0.tgz"},"engines":{"node":"*"}},"0.2.1":{"name":"engine.io","version":"0.2.1","dependencies":{"debug":"0.6.0","engine.io-client":"0.2.1","ws":"~0.4.21"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"254ffd27a41fd5310b2af0dd626e8a082f297fe3","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.2.1.tgz"},"engines":{"node":"*"}},"0.2.2":{"name":"engine.io","version":"0.2.2","dependencies":{"debug":"0.6.0","engine.io-client":"0.2.2","ws":"~0.4.21"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"ce849123eb8a7bf2ec735b1a89bb44827e21aacb","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.2.2.tgz"},"engines":{"node":"*"}},"0.3.0":{"name":"engine.io","version":"0.3.0","dependencies":{"debug":"0.6.0","engine.io-client":"0.3.0","ws":"~0.4.21","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"74312d7fb51f075c601aa5db14bf66936f7623fc","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.0.tgz"}},"0.3.1":{"name":"engine.io","version":"0.3.1","dependencies":{"debug":"0.6.0","engine.io-client":"0.3.1","ws":"~0.4.21","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"2762cef023fcc2e842dbff88aec6eb0cf3b2587b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.1.tgz"}},"0.3.2":{"name":"engine.io","version":"0.3.2","dependencies":{"debug":"0.6.0","engine.io-client":"0.3.2","ws":"~0.4.21","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"5a2909ae04864489872b3f3edca25a858bd6b598","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.2.tgz"}},"0.3.3":{"name":"engine.io","version":"0.3.3","dependencies":{"debug":"0.6.0","engine.io-client":"0.3.3","ws":"~0.4.21","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"b050f214e7103dfe91797e2448c880993c3e0a29","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.3.tgz"}},"0.3.4":{"name":"engine.io","version":"0.3.4","dependencies":{"debug":"0.6.0","ws":"~0.4.21","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","engine.io-client":"0.3.5","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"cd02e229e4d984ebc394ebbbf9d5761fa4c1c93e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.4.tgz"}},"0.3.5":{"name":"engine.io","version":"0.3.5","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-client":"0.3.5","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"fb3d6e9145909758d16905b579c66b464de83073","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.5.tgz"}},"0.3.7":{"name":"engine.io","version":"0.3.7","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-client":"0.3.7","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"06fac78df3952b72cfff1e6c25eb8559e3cf2940","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.7.tgz"}},"0.3.8":{"name":"engine.io","version":"0.3.8","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-client":"0.3.8","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"ca61b2b7ad7391f5f96cd84e817821e48e6028a4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.8.tgz"}},"0.3.9":{"name":"engine.io","version":"0.3.9","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-client":"0.3.9","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"a91070401006b44970a18dc194ab7969fa35be3d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.9.tgz"}},"0.3.10":{"name":"engine.io","version":"0.3.10","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-client":"0.3.10","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","ws":"*","s":"*"},"dist":{"shasum":"a726c559f5dd2a8a7437324e5a966279b3412cd3","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.3.10.tgz"}},"0.4.1":{"name":"engine.io","version":"0.4.1","dependencies":{"debug":"0.6.0","ws":"~0.4.21","engine.io-parser":"0.1.1","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.4.1","ws":"*","s":"*"},"dist":{"shasum":"518bc7befaee8046d5aeb4717816b22d1fc5123d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.4.1.tgz"}},"0.4.2":{"name":"engine.io","version":"0.4.2","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.1.1","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.4.2","s":"*"},"dist":{"shasum":"289592afdf7aebc71380fc57c488cbeecaf3ebea","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.4.2.tgz"}},"0.4.3":{"name":"engine.io","version":"0.4.3","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.1.1","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.4.3","s":"*"},"dist":{"shasum":"e48daed743f13702b5c8933a16847a15c7c58470","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.4.3.tgz"}},"0.5.0":{"name":"engine.io","version":"0.5.0","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.5.0","s":"*"},"dist":{"shasum":"7c16feb5a3eadc4b068d9a344b7be2cf7ceba15a","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.5.0.tgz"}},"0.6.0":{"name":"engine.io","version":"0.6.0","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"git://github.com/LearnBoost/engine.io-client#68780141ef","s":"*"},"dist":{"shasum":"2cc11c225a7cc5dc496186c37229cba25d22c11e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.6.0.tgz"}},"0.6.1":{"name":"engine.io","version":"0.6.1","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"git://github.com/LearnBoost/engine.io-client#0.6.1","s":"*"},"dist":{"shasum":"992108d3e6dc7a27540ac7959b073f9117088483","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.6.1.tgz"}},"0.6.2":{"name":"engine.io","version":"0.6.2","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"git://github.com/LearnBoost/engine.io-client#0.6.2","s":"*"},"dist":{"shasum":"fd8a3721e6f6be5a5d3f32a0f2b2d4870618a031","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.6.2.tgz"}},"0.6.3":{"name":"engine.io","version":"0.6.3","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.6.3","s":"*"},"dist":{"shasum":"5f4bdd60ebf1d0da2080d3d90340ce64ea40eb04","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.6.3.tgz"}},"0.7.0":{"name":"engine.io","version":"0.7.0","dependencies":{"debug":"0.6.0","ws":"0.4.27","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.0","s":"*"},"dist":{"shasum":"3da7dd1bda7ef666b31a92a25b3e5fae21c9087e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.0.tgz"}},"0.7.1":{"name":"engine.io","version":"0.7.1","dependencies":{"debug":"0.6.0","ws":"0.4.27","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.1","s":"*"},"dist":{"shasum":"91ef5d518545ec636b628bbeb7270af62ae4929b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.1.tgz"}},"0.7.2":{"name":"engine.io","version":"0.7.2","dependencies":{"debug":"0.6.0","ws":"0.4.27","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.2","s":"*"},"dist":{"shasum":"32d7249ccb86d977b84e7c9af20211a926afd8e5","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.2.tgz"}},"0.7.3":{"name":"engine.io","version":"0.7.3","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.3","s":"*"},"dist":{"shasum":"cb3083dadfbe5df292ba302df09360ca9fc1de0e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.3.tgz"}},"0.7.4":{"name":"engine.io","version":"0.7.4","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.4","s":"*"},"dist":{"shasum":"e200c7143a0afd4d77fdeffca1801cd60c0cc9b0","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.4.tgz"}},"0.7.5":{"name":"engine.io","version":"0.7.5","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.5","s":"*"},"dist":{"shasum":"29768619306577229b89a6a8fa107f14cc51299c","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.5.tgz"}},"0.7.6":{"name":"engine.io","version":"0.7.6","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.6","s":"*"},"dist":{"shasum":"29ff64fc1fac6ac2e099adc943491d07ba539c62","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.6.tgz"}},"0.7.7":{"name":"engine.io","version":"0.7.7","dependencies":{"debug":"0.6.0","ws":"0.4.25","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.7","s":"*"},"dist":{"shasum":"88056f91e1a5512bda208588b9815609db29d43f","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.7.tgz"}},"0.7.8":{"name":"engine.io","version":"0.7.8","dependencies":{"debug":"0.6.0","ws":"https://github.com/TooTallNate/ws/archive/0cb9fe7a21a7a7c200f68b57916d1d62b66082a1.tar.gz","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.8","s":"*"},"dist":{"shasum":"f72c9b87abe486dec307d2e06644d77e40be5bfa","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.8.tgz"}},"0.7.9":{"name":"engine.io","version":"0.7.9","dependencies":{"debug":"0.6.0","ws":"https://github.com/TooTallNate/ws/archive/0cb9fe7a21a7a7c200f68b57916d1d62b66082a1.tar.gz","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.9","s":"*"},"dist":{"shasum":"0c79fc2ce429bf6be04f953adf0c4efe58e8ddbd","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.9.tgz"}},"0.7.10":{"name":"engine.io","version":"0.7.10","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.10","s":"*"},"dist":{"shasum":"58fdc731f5916331283a0aa011e83e3086a2ccb0","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.10.tgz"}},"0.7.11":{"name":"engine.io","version":"0.7.11","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.11","s":"*"},"dist":{"shasum":"74d380637e1434955f7a467bb14dcecba7235f72","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.11.tgz"}},"0.7.12":{"name":"engine.io","version":"0.7.12","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.12","s":"*"},"dist":{"shasum":"da5dc89ede39bbcdf139ac14285ce589a4d068b6","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.12.tgz"}},"0.7.13":{"name":"engine.io","version":"0.7.13","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.13","s":"*"},"dist":{"shasum":"d4947795a8af292f5dc6dbbce1931aa5b971dee0","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.13.tgz"}},"0.7.14":{"name":"engine.io","version":"0.7.14","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.7.14","s":"*"},"dist":{"shasum":"e41de20ac6c43a0750c7366713721042e2f4d71c","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.7.14.tgz"}},"0.8.0":{"name":"engine.io","version":"0.8.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"*","expect.js":"*","superagent":"*","engine.io-client":"0.8.0","s":"*"},"dist":{"shasum":"5f10aa8bf24fffc352a7cfc7acce6fabe99eb103","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.8.0.tgz"}},"0.8.1":{"name":"engine.io","version":"0.8.1","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"0.8.1","s":"0.1.1"},"dist":{"shasum":"59316796b672a5cf5f759c1bdbd5823306e8bea4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.8.1.tgz"}},"0.8.2":{"name":"engine.io","version":"0.8.2","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"0.8.2","s":"0.1.1"},"dist":{"shasum":"eb47e0d4c5b7a66976d152677838805e8406c293","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.8.2.tgz"}},"0.9.0":{"name":"engine.io","version":"0.9.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"0.3.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"0.9.0","s":"0.1.1"},"dist":{"shasum":"87c3457258bd36817c4fb9abd1964e9bae5522af","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-0.9.0.tgz"}},"1.0.0":{"name":"engine.io","version":"1.0.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.0","s":"0.1.1"},"dist":{"shasum":"5f6eec9d54bbdcf938b35650918d6365923f7542","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.0.tgz"}},"1.0.1":{"name":"engine.io","version":"1.0.1","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.1","s":"0.1.1"},"dist":{"shasum":"86c41f2b649256f7f830f604b2dc9e80f6ee7301","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.1.tgz"}},"1.0.2":{"name":"engine.io","version":"1.0.2","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.2","s":"0.1.1"},"dist":{"shasum":"833aa237217145c66fe71ee0cf3d3d1af90ef4b8","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.2.tgz"}},"1.0.3":{"name":"engine.io","version":"1.0.3","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.3","s":"0.1.1"},"dist":{"shasum":"059af68327f86600ae9c21254175f77ddf980178","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.3.tgz"}},"1.0.4":{"name":"engine.io","version":"1.0.4","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.4","s":"0.1.1"},"dist":{"shasum":"df836b3be80ffff98860c38ac4fe05033fa0e82d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.4.tgz"}},"1.0.5":{"name":"engine.io","version":"1.0.5","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.2","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.0.5","s":"0.1.1"},"dist":{"shasum":"91df456d82d8ec3a65cd982a9743f84d7ed82f30","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.0.5.tgz"}},"1.1.0":{"name":"engine.io","version":"1.1.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.4","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.1.0","s":"0.1.1"},"dist":{"shasum":"8d9c70fd3ca28f2fe705afaf0b1118bb24b22524","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.1.0.tgz"}},"1.1.1":{"name":"engine.io","version":"1.1.1","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.5","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.1.1","s":"0.1.1"},"dist":{"shasum":"1f9b9f77fc49d98b93b7c9d94b1a595ec8cbd022","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.1.1.tgz"}},"1.2.0":{"name":"engine.io","version":"1.2.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.5","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.2.0","s":"0.1.1"},"dist":{"shasum":"b6566aa760fb750af0a4fb0e56d33edc22b6a2a7","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.2.0.tgz"}},"1.2.1":{"name":"engine.io","version":"1.2.1","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.5","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.2.1","s":"0.1.1"},"dist":{"shasum":"a0f2e1577d004ffa883ba6a9a394cdfa891578c9","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.2.1.tgz"}},"1.2.2":{"name":"engine.io","version":"1.2.2","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.6","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.2.2","s":"0.1.1"},"dist":{"shasum":"c30b3610799876c2d4c17be6bb8a967d763816c4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.2.2.tgz"}},"1.3.0":{"name":"engine.io","version":"1.3.0","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.6","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.3.0","s":"0.1.1"},"dist":{"shasum":"9d94efaba9d0968d783b3e2f9926c310ee0215b7","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.3.0.tgz"}},"1.3.1":{"name":"engine.io","version":"1.3.1","dependencies":{"debug":"0.6.0","ws":"0.4.31","engine.io-parser":"1.0.6","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.3.1","s":"0.1.1"},"dist":{"shasum":"2d968308fffae5d17f5209b6775246e90d8a705e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.3.1.tgz"}},"1.4.0":{"name":"engine.io","version":"1.4.0","dependencies":{"debug":"1.0.3","ws":"0.4.31","engine.io-parser":"1.1.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.4.0","s":"0.1.1"},"dist":{"shasum":"972c4f690f7efdc38b2a286760bb5f3e216ff168","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.4.0.tgz"}},"1.4.1":{"name":"engine.io","version":"1.4.1","dependencies":{"debug":"1.0.3","ws":"0.4.31","engine.io-parser":"1.1.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.4.1","s":"0.1.1"},"dist":{"shasum":"75c1fab7d9636459a839d09ac1a06727feeddeba","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.4.1.tgz"}},"1.4.2":{"name":"engine.io","version":"1.4.2","dependencies":{"debug":"1.0.3","ws":"0.4.31","engine.io-parser":"1.1.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.4.2","s":"0.1.1"},"dist":{"shasum":"0e69b0f7b57e1d9dfd6b57260abb204cb9de9d73","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.4.2.tgz"}},"1.4.3":{"name":"engine.io","version":"1.4.3","dependencies":{"debug":"1.0.3","ws":"0.5.0","engine.io-parser":"1.1.0","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.4.3","s":"0.1.1"},"dist":{"shasum":"0ac97dad713e8ca821c1f18ab037bf088555c3a6","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.4.3.tgz"}},"1.5.0":{"name":"engine.io","version":"1.5.0","dependencies":{"debug":"1.0.3","ws":"0.5.0","engine.io-parser":"1.2.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.5.0","s":"0.1.1"},"dist":{"shasum":"80110e495b7f9d20c66eeb395d856fb2e74ea0f8","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.5.0.tgz"}},"1.5.1":{"name":"engine.io","version":"1.5.1","dependencies":{"debug":"1.0.3","ws":"0.5.0","engine.io-parser":"1.2.1","base64id":"0.1.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.5.1","s":"0.1.1"},"dist":{"shasum":"8f7a4b2aadf974b71ffd185cffe1e2bdf384ddfb","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.5.1.tgz"}},"1.5.2":{"name":"engine.io","version":"1.5.2","dependencies":{"base64id":"0.1.0","debug":"1.0.3","engine.io-parser":"1.2.1","ws":"0.7.2"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.5.2","s":"0.1.1"},"dist":{"shasum":"6102af7d6cda660f9e35c963acab5944ea05db50","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.5.2.tgz"}},"1.5.3":{"name":"engine.io","version":"1.5.3","dependencies":{"base64id":"0.1.0","debug":"1.0.3","engine.io-parser":"1.2.1","ws":"0.8.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.5.3","s":"0.1.1"},"dist":{"shasum":"97f770f87be6b06d534156992bd914eb471c8710","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.5.3.tgz"}},"1.5.4":{"name":"engine.io","version":"1.5.4","dependencies":{"base64id":"0.1.0","debug":"1.0.3","engine.io-parser":"1.2.2","ws":"0.8.0"},"devDependencies":{"mocha":"1.12.0","expect.js":"0.2.0","superagent":"0.15.4","engine.io-client":"1.5.4","s":"0.1.1"},"dist":{"shasum":"c6141012911c350631c1b390f5324eb4202e29f2","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.5.4.tgz"}},"1.6.0":{"name":"engine.io","version":"1.6.0","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"0.8.0","engine.io-parser":"1.2.2","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.0","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"64d3eb24ee0b83fae84d0a3ec252e86a1eb9cd84","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.0.tgz"}},"1.6.1":{"name":"engine.io","version":"1.6.1","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"0.8.0","engine.io-parser":"1.2.2","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.1","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"ecd2c08d83cf252b0a7e3d9ae8f5352deda1d717","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.1.tgz"}},"1.6.2":{"name":"engine.io","version":"1.6.2","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"0.8.1","engine.io-parser":"1.2.2","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.2","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"8680563eea53f84d5f60c68d3dbec530d60c5aea","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.2.tgz"}},"1.6.3":{"name":"engine.io","version":"1.6.3","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"0.8.1","engine.io-parser":"1.2.2","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.3","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"5cdfb438e5375e1a1001fbd2d08fa81c449a4f56","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.3.tgz"}},"1.6.4":{"name":"engine.io","version":"1.6.4","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"0.8.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.4","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"b6dcf6d8ac7f3aeb4042011610325545458400be","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.4.tgz"}},"1.6.5":{"name":"engine.io","version":"1.6.5","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.5","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"b276381a89c88a580127bdfb51ccfb8c086f51bb","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.5.tgz"}},"1.6.6":{"name":"engine.io","version":"1.6.6","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.6","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"83ff6cdb2bf84b933a929ea001398ede1d535fb2","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.6.tgz"}},"1.6.7":{"name":"engine.io","version":"1.6.7","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.7","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"d49db58ffa41cb7a6ab24732f14dacfb39c4d27c","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.7.tgz"}},"1.6.8":{"name":"engine.io","version":"1.6.8","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.8","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"de05a06b757e7517695e088c7b051c47819f511b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.8.tgz"}},"1.6.9":{"name":"engine.io","version":"1.6.9","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.9","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"1fe2fe827adb5d6f296e1002403edfa046bb6975","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.9.tgz"}},"1.6.10":{"name":"engine.io","version":"1.6.10","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.0.1","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.10","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz"}},"1.6.11":{"name":"engine.io","version":"1.6.11","dependencies":{"base64id":"0.1.0","debug":"2.2.0","ws":"1.1.0","engine.io-parser":"1.2.4","accepts":"1.1.4"},"devDependencies":{"engine.io-client":"1.6.11","expect.js":"0.2.0","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"2533a97a65876c40ffcf95397b7ef9b495c423fe","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.6.11.tgz"}},"1.7.0":{"name":"engine.io","version":"1.7.0","dependencies":{"accepts":"1.3.3","base64id":"0.1.0","debug":"2.2.0","engine.io-parser":"1.3.0","ws":"1.1.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","engine.io-client":"1.6.11","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"a417857af4995d9bbdf8a0e03a87e473ebe64fbe","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.7.0.tgz"}},"1.7.1":{"name":"engine.io","version":"1.7.1","dependencies":{"accepts":"1.3.3","base64id":"0.1.0","debug":"2.2.0","engine.io-parser":"1.3.1","ws":"1.1.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","engine.io-client":"1.7.1","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"8599092883c5e1b26f7b08d23b587086df991066","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.7.1.tgz"}},"1.7.2":{"name":"engine.io","version":"1.7.2","dependencies":{"accepts":"1.3.3","base64id":"0.1.0","debug":"2.2.0","engine.io-parser":"1.3.1","ws":"1.1.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","engine.io-client":"1.7.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"877c14fa0486f8b664d46a8101bf74feef2e4e46","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.7.2.tgz"}},"1.8.0":{"name":"engine.io","version":"1.8.0","dependencies":{"accepts":"1.3.3","base64id":"0.1.0","debug":"2.3.3","engine.io-parser":"1.3.1","ws":"1.1.1","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz"}},"1.8.1":{"name":"engine.io","version":"1.8.1","dependencies":{"accepts":"1.3.3","base64id":"0.1.0","debug":"2.3.3","engine.io-parser":"1.3.1","ws":"1.1.1","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"20066ea903304f13ee37f10faaff6b4784f64373","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.1.tgz"}},"1.8.2":{"name":"engine.io","version":"1.8.2","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"1.3.2","ws":"1.1.1","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.2","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"6b59be730b348c0125b0a4589de1c355abcf7a7e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.2.tgz"}},"2.0.0":{"name":"engine.io","version":"2.0.0","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.0","ws":"1.1.1","cookie":"0.3.1","uws":"0.12.0"},"optionalDependencies":{"uws":"0.12.0"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"2.0.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"f162d84cb28a6dda8cadb8106a53169dc50178ce","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-2.0.0.tgz"}},"2.0.1":{"name":"engine.io","version":"2.0.1","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.0","ws":"1.1.1","cookie":"0.3.1","uws":"0.12.0"},"optionalDependencies":{"uws":"0.12.0"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"2.0.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"93c0a44c6ae2e10c0ba529c72bf1aec33ee26250","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-2.0.1.tgz"}},"2.0.2":{"name":"engine.io","version":"2.0.2","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.0","ws":"1.1.2","cookie":"0.3.1","uws":"0.12.0"},"optionalDependencies":{"uws":"0.12.0"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"2.0.2","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"a00e1494853146b4e20053d0715555ad82356028","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-2.0.2.tgz"}},"1.8.3":{"name":"engine.io","version":"1.8.3","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"1.3.2","ws":"1.1.2","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.4.0"},"dist":{"shasum":"8de7f97895d20d39b85f88eeee777b2bd42b13d4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz"}},"2.1.0":{"name":"engine.io","version":"2.1.0","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.1","ws":"1.1.2","cookie":"0.3.1","uws":"0.13.0"},"optionalDependencies":{"uws":"0.13.0"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"2.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"300a86a5c5fe4296f096b49d97f73a96c5c5444d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-2.1.0.tgz"}},"2.1.1":{"name":"engine.io","version":"2.1.1","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.2","ws":"1.1.2","cookie":"0.3.1","uws":"0.13.0"},"optionalDependencies":{"uws":"0.13.0"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"2.1.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"2f9d8bb7887ff1b2b07bac6d84150c576af45f4f","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-2.1.1.tgz"}},"3.0.0":{"name":"engine.io","version":"3.0.0","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"2.0.3","ws":"2.2.3","cookie":"0.3.1","uws":"0.14.1"},"optionalDependencies":{"uws":"0.14.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"^6.24.0","engine.io-client":"3.0.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"^0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-eslint":"1.1.1","gulp-mocha":"^4.3.0","gulp-nsp":"^2.4.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"fde0f460686f09e295bc55933663c1cf37759933","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.0.0.tgz"}},"3.1.0":{"name":"engine.io","version":"3.1.0","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"~2.6.4","engine.io-parser":"~2.1.0","ws":"~2.3.1","cookie":"0.3.1","uws":"~0.14.4"},"optionalDependencies":{"uws":"~0.14.4"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"^6.24.0","engine.io-client":"3.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"^0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-eslint":"1.1.1","gulp-mocha":"^4.3.0","gulp-nsp":"^2.4.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"5ca438e3ce9fdbc915c4a21c8dd9e1266706e57e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.0.tgz"}},"1.8.4":{"name":"engine.io","version":"1.8.4","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"1.3.2","ws":"1.1.4","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.4","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.14.1"},"dist":{"shasum":"77bce12b80e5d60429337fec3b0daf691ebc9003","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.4.tgz"}},"3.1.1":{"name":"engine.io","version":"3.1.1","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"~2.6.4","engine.io-parser":"~2.1.0","ws":"~2.3.1","cookie":"0.3.1","uws":"~0.14.4"},"optionalDependencies":{"uws":"~0.14.4"},"devDependencies":{"babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.0","engine.io-client":"^3.1.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"08051ffb951907a3267e72e0bcb3d0f377e4660b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.1.tgz"}},"3.1.2":{"name":"engine.io","version":"3.1.2","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"~2.6.4","engine.io-parser":"~2.1.0","ws":"~2.3.1","cookie":"0.3.1","uws":"~0.14.4"},"optionalDependencies":{"uws":"~0.14.4"},"devDependencies":{"babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.0","engine.io-client":"^3.1.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"00a3f6a4054bb1a07958074b1058764deedb7d8a","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.2.tgz"}},"3.1.3":{"name":"engine.io","version":"3.1.3","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"~2.6.9","engine.io-parser":"~2.1.0","ws":"~2.3.1","cookie":"0.3.1","uws":"~0.14.4"},"optionalDependencies":{"uws":"~0.14.4"},"devDependencies":{"babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.0","engine.io-client":"^3.1.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"7aecf71bf8a310f9fa21461999c4fcc035f8a877","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.3.tgz"}},"3.1.4":{"name":"engine.io","version":"3.1.4","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"~2.6.9","engine.io-parser":"~2.1.0","ws":"~3.3.1","cookie":"0.3.1","uws":"~0.14.4"},"optionalDependencies":{"uws":"~0.14.4"},"devDependencies":{"babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.0","engine.io-client":"3.1.4","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^3.2.0","s":"0.1.1","superagent":"0.15.4"},"dist":{"shasum":"3d0211b70a552ce841ffc7da8627b301a9a4162e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.4.tgz"}},"1.8.5":{"name":"engine.io","version":"1.8.5","dependencies":{"accepts":"1.3.3","base64id":"1.0.0","debug":"2.3.3","engine.io-parser":"1.3.2","ws":"~1.1.5","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"5.0.0","babel-preset-es2015":"6.3.13","engine.io-client":"1.8.5","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.2","expect.js":"0.2.0","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-eslint":"1.1.1","gulp-mocha":"2.2.0","gulp-nsp":"^2.4.1","mocha":"2.3.4","s":"0.1.1","superagent":"0.15.4","uws":"0.14.1"},"dist":{"integrity":"sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==","shasum":"4ebe5e75c6dc123dee4afdce6e5fdced21eb93f6","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz"}},"3.1.5":{"name":"engine.io","version":"3.1.5","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~3.3.1","cookie":"0.3.1","uws":"~9.14.0"},"optionalDependencies":{"uws":"~9.14.0"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.1.5","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==","shasum":"0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz","fileCount":12,"unpackedSize":68926}},"3.2.0":{"name":"engine.io","version":"3.2.0","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~3.3.1","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.2.0","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==","shasum":"54332506f42f2edc71690d2f2a42349359f3bf7d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz","fileCount":12,"unpackedSize":68639}},"3.2.1":{"name":"engine.io","version":"3.2.1","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~3.3.1","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.2.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==","shasum":"b60281c35484a70ee0351ea0ebff83ec8c9522a2","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz","fileCount":12,"unpackedSize":69129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2+7gCRA9TVsSAnZWagAAhlMP/RxsgFXqMXqKXX+ghqu0\nWDMAtHZmYZV61EWYgGDY2DqQgs0ik9c5gO1U3fDrETRAJO4DomhfXV0kgYBZ\neazwpKBggpaDQAAMen9oeiN+Se/A6fKu35X3QswelH+l2T6jHWVfi9G1uiQ9\n71Mt4wSdIlOPlTcrgR0lGX3A2VhHZU13nF0yICoPQbQZW7SbQbvaMKqs0XF/\n7PA9/jaqtW6e+aKYklxQ4nV1/S5z1Fd2GN6og8XqrEkjVWiCp3za3/7cvcqR\nPSFvQjJDFSDWrssHK5B2FtXk2CrAulgH48Tpp5XTe1q8moNfkbWr+3+Q7tA7\npk+Pw4vNUepuziNsjK6yyjgyTVjyIkGy26w/HUrdcqXI6cCcPkcgBbGq4bq3\n8X/wRj7/QspU8EJ+pUXZIEmnUZEXZaZ7ZGdYBo58/1bqoiKTbzI9CXU0UwFj\nxka0pNlGJmP6/XM/rhvkbsmjKHg/JSKbTFSBYhfCwK1ackfOJ8vTlgusBJ2u\nm9yBdRDOmNQUTyTyU5vaCE1SSGtjhz3ToxoZphLzmqZUU3jMa6WG1Ndr2uAd\nur+fvlCbjIJ0U0KbC3Z2YusDENe/9lEEo74S8ZMPaDg4m/AuZcFEUNXM1Lyp\nMeb8lH4l/nfXm2ZAWGu9WBDsynHfpvJNFL4/wcdyL68hSmgo59/sbbH4JduQ\nwNID\r\n=4buc\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.0":{"name":"engine.io","version":"3.3.0","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~6.1.0","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.3.0","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-iy9r3LwSgpGwZry7ZijxSrlDmAW9PP/PnD68plN7SHq76EZPVfHBfwNGLJSt5WCz443Cafui/4cY+IZ/XuL93Q==","shasum":"9770b7b2f7afcdc61e940accbac6288424f46006","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.3.0.tgz","fileCount":12,"unpackedSize":69465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb43QZCRA9TVsSAnZWagAAn6UP/iqRSKN7YT8VTaHy7DWE\nX5dsYat+Xs2s2MjNEVX6MahTgt1wS5r/76T1qGBAtksgKefs3p1nC1Lmkhgl\nB4Fb7SFCGvOuLiQESv6hH+4CHVsJAH2f461EEcracOJrDKraQpssTo/lfJAR\nuLxQWguXrIzRoz5grZLhcmHc0YKCjUEzI4qqwq07tqPqsISRjAo3DLXFKhRz\n8dVvQ+53SYcqOSCcvbwctLOSPBlKPy2x6xVrbJYt6GynCTPBMpeTHT2sMbeY\npVol4lN6xICG31wNPmb/sAs0YQBDURIODtuHa0vrfsY/sISTESuTLQUckRwq\nHVqXa3fTEpu+ZZIrtEKCrlrJjy1Ery29WGw6E0lq64H7xkuRkFwVmRTP7yKs\n8IuZBrMhwJiv1LUufk0pKZ1d1Cx9qEJEr5mOluct5gpBvc8OjEX2wR7rHvLx\n9up2Uhu5xds/5rgEF9GheljDhojdwr6ZXpt9JnBG06gy1BrXeHaH4/0P3zOz\n8eczlgcpsLNBMisPwu9/UgLB10z5BTh6YQ3ggmVpmm/lsmAXV0BJmiB/ae5o\npbaOhF91Qu5I9pAa5DkzfmRvGHV1OwChDeBbGg2GvnNQKr9mIWUx1HJGvLrQ\n47F0QM+EJ2Ylo0WJcAZmR8GoV+8vHCdThQ1rD2h0WEMvNVxLZJxKq1HrOBJp\nupq0\r\n=MzFG\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.1":{"name":"engine.io","version":"3.3.1","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~6.1.0","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.3.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-p0njqQo5QWVxJauKcnp5IO+LBeE5JD1tAf+UxPU8ASEUHSpsSSfYR+kVb8XGGH8AEDUa1Dk5jCvPQShNBL5BdQ==","shasum":"e076d9d2d6c075dda4623253b80fa045c81dd3a4","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.3.1.tgz","fileCount":12,"unpackedSize":69432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8yshCRA9TVsSAnZWagAAwLwP/0GMe/ZALIdS8eLywQ91\n/IsDoLRi4XZZvKtAaK1jaP5ZaKMFuEF3FbnErW9kugjyXwfGlXrOmB06K6AE\nMCv9JND/i5o28WtRg9+xLjLuGyCbYHvSSLcXzwjHWJmAl/HfCgIbKSc7bjhJ\nap18eMKTwSHj3I8YrJcTb+Vt4y67y+fmyRhKL6JJ/2V4ekgOjdFcStziYYff\nmfoHjBL741ihb9lijt8l2A2GMEmTxCUHY3NAH6bLBfsmJWD1+dwu+ByS36iE\nSjbnIP0O3n0LV1TyA1fkACm/7Vfz4rzHGAKC2umpky66puNIxw8I7c7k2KM7\n5m8cCeLmPzJnDSaofRbLey2pAz/Gz2rmvtaCBFBSue+1foqhSV/Lr09ZwLcd\n+EcAaCdN/jckZk7YVWDQ9TaOUYEWpRaz3dVzJ/Dxi+Lnnaw1yqZILBwl2tO4\nKBsqs6iBTP1vb1kWpzHljPKFEVGx97tsWnBvF+F7vYqUzYp//mplGKPkXcbC\nXjcRmCMHSJVZKGhAlh2VE3FFgohzvBXSx7q5XXqo6sf9Rj/5/1c7v+mL6FSR\njzVifv24dGxRfx0QfXTQlv17iRsKE8d7X6ZWOj8eGWogwjHg3O22SZnaRfdj\nHC0FR/6rwBdfikprpmD2ZJV1hGXJT+mnasWHNcCQDuxFMlHNxR9bGgKF4inp\nQE7n\r\n=9hIL\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.2":{"name":"engine.io","version":"3.3.2","dependencies":{"accepts":"~1.3.4","base64id":"1.0.0","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~6.1.0","cookie":"0.3.1"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.3.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==","shasum":"18cbc8b6f36e9461c5c0f81df2b830de16058a59","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz","fileCount":12,"unpackedSize":69096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcAF91CRA9TVsSAnZWagAAR10P/RfKaWD7KUUBEz5uzRme\nAILriyfpGA8lT3bRPXUVwn4997pVtgOUNa7gGUwOEh1MMGKJs+AxGm+6voYF\n/FM7vri50GszfD6vKUVrsVp640r7+qqMCXs7qAQRnPGGAgwPo8iXuE5mfx6K\n57uiwxtsvMRlX5trtOgWcsH8hGPSRaV5k5Ib9dhAJLpfj3j0NTCnROHqiCa+\nyXmlngs4gFLWfGKG2w3Xc0dqkoAupGt/E8XAaJ+el3VHDTdPd7zt9NqOZ/mc\njpo2EwF0X83xQ38EW3/3em4YtolRZKID19MWWkrzZriEmG4YVtCWJPqS+Gl+\nxn5p3ONFXuVEj2GGoAY2pBITaf2FnfB1g/uNwcedQpJsCXs7cjjnDxA353mi\nn/PqvQWuyS5BgTzmibtY9jscaTePuqW6jijBRj4trKBWIGvd9V3EFrRKfkzn\nXZST3my1zcBKR0CLS2jobJH/ud+YhOwkGi07r704tc5SA/ZbKUjvk81PSKG0\nalyAs7nDuRucWs4QO14IGobh2YDN/sbdtPT7AQl9AksAKyn/jhdR/qytqOYe\nXLyajT1Es4wIMr0Wcwa+Zm0r/G3i57tBWxTpq94IZM2IBvblzsntiKysua/D\nv2EgifDGeD/ukI/aHhXh8wNhi+AlUqMExon40llptQ1qt8uI4pQ26QjUnqeC\nhz2l\r\n=m171\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.0":{"name":"engine.io","version":"3.4.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"0.3.1","debug":"~4.1.0","engine.io-parser":"~2.2.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.4.0","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==","shasum":"3a962cc4535928c252759a00f98519cb46c53ff3","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz","fileCount":12,"unpackedSize":69615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde4ReCRA9TVsSAnZWagAAhRoP/0BVKB9B7bzOBQxdaMRi\nlpkH/2SjnwzrrAni5YGThUZzAdb1QB20WqvyAwibi5PQfHLR9kDYynPf5vgV\nMqqEQyTfD9aIhL7B1/DGa6ai1NqOB/JbFlrpneHPqZUwD1LteeLdUZBMlSqH\nWDOxKIWdqBudtLGLoO3VilRpv4k1b3lm56LSIbcQmStxb76q8Hfi5AIVOeic\nIZhSYqQJrSENYGK4euZ92VvXDqP2DxB/5vsCFjIKRXtVv0rOhr3PoZNstvaM\nSMMDpvoZOaRC+Z827JiW+9ve2U65/OW3GYdja2bR9pQ29qxRRrkJgoiPYfFn\nKDd4OZrAVRx+aYE96cBKrSNuxrb6YEmxt4XZmdtWgl4YoxF9UqJo8drzhSaF\n9DDRPaaP5oI7ixjFKqPS+/QBGRdGN5ikDP0PvYJKOBbP1YT4SUBYoa4V2P1W\n1MMMRNq9UTo/3b4ti2iVSG2qmOKwenuWE0EP1uONi52+qFGu13U1VNhL07DH\nO+WufXyuvEqbkUmC9XT9OEHxHKMzEMlyugjgy/wSALpYooGmcFLfkWP11wdN\npyJbOc1Rlpj0uPw1IwlhfI5FwPDd+3Dw2RSsGGUw/NNp10zjFAcJ45anIkqc\nwpOb1wYrQ1EnlB5bLU7zwX5jG24WIz6iCdyUQU/0MjbpV7KJNG/XSG009XoM\nQMMb\r\n=GH8j\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0-alpha.0":{"name":"engine.io","version":"4.0.0-alpha.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"0.3.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0-alpha.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","engine.io-client":"git+https://github.com/socketio/engine.io-client.git#v4","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1","uws":"github:mmdevries/uws#2.4.1"},"dist":{"integrity":"sha512-IGu3QEuu97Wr+aVkGfd76jJa7JiSoY0peECvYGjHz6fyofhnKFrJOEMjoPsqdkKDSk6/n8oXOcxlsanPlWC76w==","shasum":"de2820cc825a218c9ae50fb277d2374abe2fd972","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.0-alpha.0.tgz","fileCount":12,"unpackedSize":70713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ6BiCRA9TVsSAnZWagAAMp8P/3mQvAjpmSAsAQe4k3pV\n9YmGXMRAlzE/o0izUofEtn1hZ3iZRTHNuEBRGRxspgMa9RkcMvw3I/sOUjPA\nulpT0wE2pq/8/n9fVK22EQEP+hb48kGA8ZZH7P3j0WyzGe5jViEf6imb7RT5\nT0JU2RUswLjU1F1iS4wxsHAgnZfXKi4eQr+3BWKPhriExqk6TpTnoI3t1E/d\n/uJ54/aPodA6a3P5dVFN3JH630mb0Ew2XckXiUDKlnr0HXd5KYf1NslEf4NP\nObbq7ycrBk7y+DvGmf4LOqyV6Qx/88Y99T72H5FAXqO0J0+udQnmsPhb2kc7\n91kko58Br8RfRxF5Iscs0TknO0UNGCulyCUrqQJZLtQmY3m1Ysbifv2AZMF2\nxI4LV6UzUMOox7ZvZuRy/l3FVeEXiHitWrpQiSWzM2ArxTkgRkwp8IDYb46M\nIAyTIPzdR5hiOG3GrRCZIUXzEEz6W/sIH+9+DPvTArVRLvS3Kx8TkDIIYgoj\n9MHPVS3SX/6zaL9+O5jjeAbQt8ImYoDJE9YtLkQoEpYlqHz393SevvmFjn0v\n4xgLIUJgUR5UogjwwRJuO4H7BpRya3LK2wfN6pIOtVhdHa2r4MPUcWsRZ+H+\nl1CoDU5fejQLuMURiaNTS2kw1E9hiqhaxloxoBBPkNQS4dbae7R/xdPdQYX0\ncwXI\r\n=bOXg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.0-alpha.1":{"name":"engine.io","version":"4.0.0-alpha.1","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"0.3.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0-alpha.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","engine.io-client":"~4.0.0-alpha.1","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1","uws":"github:mmdevries/uws#2.4.1"},"dist":{"integrity":"sha512-pqSSzx6Y2l1UPDpmNcHgBEDTWYAOuRupOUPk2yM4OUoEohc0KOY9ZKWOIFdI0e9hlh/7hSyC1StHxaZhbsmMFw==","shasum":"3df6f59ee4587b01fbf3ef5396fdfffe058a7fdc","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.0-alpha.1.tgz","fileCount":12,"unpackedSize":71182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ6sZCRA9TVsSAnZWagAA0uoP/1Xwzi52jmfzSsNqjoZC\nMTa/qx5lkDQuYvv1K7j8Ix7GAVIgCRs94PVOiXCrueOKsHS156owzZ1MDK+t\n3BqMIdK3vU/J9CPLlZAwxCrD0q4NcNUEwuF4jOPh4kQsiFKUTF7vw3lg7VkF\nWdCtFD5AjTynQrbBKKsAGtQSn8Zkj2ZGP8jcJAh3FLfkvnXOJ9v/Sr3be+ll\nYM9N+ryj4jr9n6Cm+qr75vsEPBFghSFo86Z8xmBcHKFYXb7eXKIW1aCCXXaj\n0NZwQCsvR4Z416YzljAeHjv1U79mBKKEZEkeQ6x39W2vTQWvcu/a8wii3UnB\n1x3EqWhPv+1c80SKSzFJw6N1OkkGd6gch5XgrIUvIVCJclEzkNbIl6b8yPJ2\nrB6haU3OolYWe8Un8fCdg9/1gxMo789flqB5dSoJpXE9KQWGwkhIpeUIjj4m\niWef1bvvDnzVbDIx+W9U184y+BxN5gAF9M7wyZLGROl+ghpj9hDQYhP0ILk+\nT0JejPZzBeegqlBHursXZvjv/bMu6JKAwueUT63r2qakiPbrAyiloAWczRxH\ncjB+ZtmuDwUoddBXE0sqDplydzanuHbEs0OXEHWkJlYAuT1/hXzfnBXqrEYn\nX4jYt0BzWFcopUqN72UlZ6Uy4GL+Q/itm6oiXxrJceueGxmHPNh7X87tsae/\nUeIF\r\n=T7cn\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"3.4.1":{"name":"engine.io","version":"3.4.1","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"0.3.1","debug":"~4.1.0","engine.io-parser":"~2.2.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.4.1","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw==","shasum":"a61cbc13fa0cb27d9453fd079a29ee980564b069","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.4.1.tgz","fileCount":13,"unpackedSize":70157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemW7JCRA9TVsSAnZWagAArQEP/j0lvlzeLNPkHqYDCvIf\nqqVvVW+5/DwiXIIGCyH/6rqIm5rT4DTgzzSdsM2Qb0cWrAokpM2U4c2VI4uF\nxQAVo+GdlNZx7qIXOSCfwt2FlMMG/SKgzAr446uQ/MRHg8huHA+z5vyFw/ib\nk/0/R1r3/4oIPNZ26G78bed4Ncwk+rmFdMMFCWQWeudEQIAv8UHd94pTUg2u\ndH4wRqNP7ggOS6gVkmwUfK8ID0MuSEFd8NuMvUY2Jxb7u2ioe8VKiz60F6BN\n8wMpfzuIm/GHrZSa7jzJppTPXC5rgLUwnLva+Oi14RSvgj4w6XGIqZS0zGhF\noNDfQqRm+vhjagCSjcm8km42l9GoJnacLy2RxciZ3KaaohmCwxAMf9C2gOf2\nOH0cr9GP3vXXvFOmXrmyLsqFZEzBwm0uUZAuodderVCXj036cmPvCj+kqRfP\n5iD1OF1NzC+xM5VAcjfmrSVi0gK230gfyaiAcsAYbvSdQAkYeXwyACnk66p4\nhImuENGMP5JRyhUP+bT59oi5/NxSl/hUYmjqpPfS/W6QGrJ7NGOSjZF0Uqew\nSve6Oz5C64uDMSU8rTjferZnctRKv/0OYe3SMxubhOjDD9TufR5E3apY1VyK\n7SBB3z4N/EX6cZbVrAEmWXOkZaydfyzIeH6hlE0r0CxbBcdxUQ7XBWo1KVqH\n/Ng6\r\n=RvRN\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"3.4.2":{"name":"engine.io","version":"3.4.2","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"0.3.1","debug":"~4.1.0","engine.io-parser":"~2.2.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.4.2","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==","shasum":"8fc84ee00388e3e228645e0a7d3dfaeed5bd122c","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz","fileCount":13,"unpackedSize":70333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2QFXCRA9TVsSAnZWagAAWfoP/jlUlWPri3mvQJwOy+m0\np3xwBAMGCznFKfyNbpgz1ZfG+TPatWh9MQ9qKoSrq3V526X8z5wqce7HKdpW\npT/IreQY6So7WbuR/DlmllCv+cJRL7g7UY32s01Uq7G26ETBL5wy4nJjJAzT\nVBAdjHvla0WRPu7hjJGNQjDGGI4hJFfsmJWidC4fgadx8QAiIF5waWy0ofDD\npZYVa1NXbQTgdpSbH8Osbtx+BZ9NxtCBMJP6M81A7qBztrNPutGyNNlrazOy\nLDTOS+nhvl+DD2BlNMwFbwrunOHx9BPFKfrhlSCnP/z2fw/hI71BdLAK/+nT\n7vZOtCBlVI6hExUrBFOwSbZxBHdbuPB9anWldPrLZgoR6EN9r8Jrqc/2xSrb\nSRyaZXQL4AGUpwEK3Z0ErieDxIe633S3As2IhWSwnPUM7Js1DIFXQxzsBv2h\ncULxQzyvfqKM2fr9Mlod54YkSThLC9Am0WL2MXnHvF9g5mPuvi1KPc7a+Jxc\nzHC2Jm2E7NMotFmHvfiWP1xCCRlWK4NtPw57vNRo9XvRpo+5d7LHBQiCS23j\nOIoPEPev86pu3AZruf3+2JZGksZ6R0V7DtivVWzAeQki12ihAByPBqLNGhFN\nolFNh2my/yAQb5f92mvWHjCjPLjVIcWhcg3LeWR48s9Wiv4CUgqZMA64bFFb\n6pNi\r\n=UE6+\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.0":{"name":"engine.io","version":"4.0.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","engine.io-client":"4.0.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1","uws":"github:mmdevries/uws#2.4.1"},"dist":{"integrity":"sha512-WyTa1NJR8rRmPXGXNSSgA+XhzfYLVcRBjRoFx7gI3cARnEsyuMpg0PS/PMDnPMMQtkjmVZsi2/ETrpq4mhoYSw==","shasum":"c2df7178a27d4c47a076e59dc0f1233d82943468","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.0.tgz","fileCount":12,"unpackedSize":73648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWq9pCRA9TVsSAnZWagAAlvsP/1TJLaTcGG8DQgV6A2Sf\nKbfuG9KEmAPClfBrReL3HiYAfKM9uqVQIMu1KizOD2EHXKepngmYJPgHPhuC\nRtn6NEWLRfqkcSK0GcBE/TG15ePed8tRf87V1YCqyxn1H3EmE4M570Tc3yAz\n7dyromnJwa5yL5sdvJqBHqBQw3TJluEdOAHGP0YDgnSe9I+/hSbDvJPyzMQS\nmSvXMg1VcvMhDdyp8WRKLU1s8qsDmlcttooBGNqVPEcRhlP2v2I1Fr6zWAv9\nAI7JwASBl6UWvMAAbAMgoH/rlTLwNGIajfSKZI1gFJUJDvVC5vnJjHXsU1e0\nbNloVkNrB+9UvAg6ZEOCWWE4xuI+JtosWYDnVn9jx6++6z0stUyyL2yAgPpZ\nbjZ/AUECpFj/Eb6qKecPNyGYxNSxfwkImbtqKMQI+pEUxbwA1+8N7hSZ7JMw\nggwazK7S3mZIsB9j00YO/H7n1OjoKKXr4NkBOyB7P+Qnt2YsqHTlN2bd9tm4\nsyY5USmQtFhdG7owRogLBTFi5PsT2qr6iCIqqipNGDo8CGNmXw2O/Fzguiu9\nBckxCmXWWYpzXNP7JEUl5vK4eclsFo7C4CIiYeW+xMaXgx85YXhqNWkzTe33\ne3PJeAZaTLRoVV0zyud8FufSbaopIWfyqdmi2DqZ3vXd/UAKjvlTlpcQFz5g\ncYGw\r\n=Oo2+\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1":{"name":"engine.io","version":"4.0.1","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-6EaSBxasBUwxRdf6B68SEYpD3tcrG80J4YTzHl/D+9Q+vM0AMHZabfYcc2WdnvEaQxZjX/UZsa+UdGoM0qQQkQ==","shasum":"3004d1dabedd823679b7a297e77a00e0e528029d","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.1.tgz","fileCount":12,"unpackedSize":73304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkLcbCRA9TVsSAnZWagAAeZYP/2ArS4J4SSzmmnMdc/Vt\nQaFwVEWk2JYs9s7U+2HOsv2G25FMKfYeWNqohOHO3V0hzYMb+ZFv8ha35QoW\nFUkIdFMQW79XUOBc0yvRsfpjUm+ULPALTr08j29g7xPMYD9cm02ax5kGFgTY\naKPm9Q/890eWJlalPWThEmg3glatWdGada/99RWzX1OOLMtvfDEm40tbneog\nBoetPFY4LOcq/pfiP0L5ZrAIwFqmApTt2O0Vq+E5Cj+j0RY06jXIu3v9/qvD\nV9XrtzF7vpqFk9AMS+MtkA9MFLAxcYUFDdBysh5NGrVuOhFaNoc1cJGUe3q6\n5M42vDhdiY6Prj48jfhe0UTzVgMgCi+dnBXDoajyAQa8h80ZeU6dxSrubbFl\nFz7g+DExwDjMyVXcC136zJiPe7Pd2I15kEuyQGQX81D9hWUuf8FltljdxqfI\nZTTNz7rODbC6/IwFsTksJALMD6sOPpMpxmj/FvkYiJyJ6M3PQ2d7cZLjbrKZ\npnlZc03vpC5lSwv1Ccl9YsTFC6T+qVOJ32gemLr7tPkLN10p+rEV5F2yCHTi\nB+cVwlgcjcRlEPIXQzMNKWTnrcsBBYmB6POR0KUuicSLWWDbrsGlPVDqraCm\neMxFtP0NBUK1uqzVDLESZxFD61VIgytzTOli2B4nVXDpVWidqM9rCPt1r4ZT\neyBL\r\n=qAiy\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.2":{"name":"engine.io","version":"4.0.2","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.1","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-sumdttqWLNjbuSMOSgDdL2xiEld9s5QZDk9VLyr4e28o+lzNNADhU3qpQDAY7cm2VZH0Otw/U0fL8mEjZ6kBMg==","shasum":"82d5788cb50c408102f59f3598f2e62f53191e95","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.2.tgz","fileCount":12,"unpackedSize":73616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqQYjCRA9TVsSAnZWagAAousP/0ThiQ3FpxbY1ZPLedL3\n/CLzVs+ZpwSuYKZOCYXhmFr2hrla+aviMrVJVzsIBr/3mrL3Nyh87aslM9Ko\n6hn7Cd6nhcW7ithfjfhPYZSkIcXj0gd0pPqvX6+H7Wxn51ubLhQ3OsjeGCnE\ntdAE3a1eSjjEwV35IPv3kKoQ8T+rDqO1M9T3e0pC2SUxvblymzRIAh9XwUmC\ntQEh2WWSefOXiBiNpvWIo0eSBWFF7Jult+TRmQU14v8jk2lOTr1rpk/GQETG\nY/8hPmw6l4H+u4qCKFjfcb+3NyF1ShizvvXw2JlWxCilLjf1X15BacfUiQCp\nGa7JyMld72D9EHOslEvj9iSJNHnNMzV8MMQQhxdXrNkPtcoGQwMZyD8a6gJK\nIfki3aQYOhHbzZFfTAULxX+1C5qTa1sICW792VFokmDn5lHw7FaKxNPUCelK\n6ZO2sshD8naMMPh9Jeli04gOBvE8rk69pRW0q791zE6/F1hj3grgrrlF6JyW\nVhWwjfnz9E89II0kqEwbBybywwH7xw0mPkaG7JK4Ssq/pgtTEXfwPJiUEnqR\nPELpoM+uV8ZsGlCmGZWoKOi7b17kz5z8yTi4rAdOLtJjGYpzIhe3bk37+cFb\n2pbkZfhBTJykMtvQ1Nfh8+ZG6ypT6RjegXKHxUZ4USBCqF6Kafm8AtKtmwGR\n0tME\r\n=5I9j\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.3":{"name":"engine.io","version":"4.0.3","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.3","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-EPA9Bbn0ZHumQvW6ibggmzUQGayR0E9gLIA4RJeoXEbZ9lJYoU8HU+dM1rtCdfyDPdbocUEFaZk4Muem33oiNA==","shasum":"1e67992765eab56e840ee10e98e17efa5670bcfe","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.3.tgz","fileCount":12,"unpackedSize":73766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfs5LJCRA9TVsSAnZWagAA3yYP/jG8jbBEinHXckNi1EW2\n8V1GWK1TtBIbBES8WBsANxDt5f0qoaKlMA8GrAUOOUOxDYmA7TSphmfGIZpa\n22/BW/tAifoi9sLuBlIJvVguI7UpOWe+CC/JggyBIR9FZkGdGzpwo3YQbfxL\n+21PikiBDy/v9wt5IuNui9T+FVc7zfGFpfJRa+iSy7Fm6ls+xRnhKVSPtyNf\nbSUdTp3UYgkUKzUDbkIs7JSw2YSQmZKELYJ97BwYwmp8lAsi69IgkUV5maKG\np2UFWLXht0/O64Q1A7S/MiA0/BG3drmw81s5BMY93B56Brh946aLq2lvM1KK\nFjwtCQ/Op6Yp96BX5esB2exjWthf6KeBNQ0AZAu9YETPvTVh0F6kvT02YSjm\nRJRDVNfmFCLbvOHmcrORSTUfEM8LkkRKPVxdYv5iuD1OtPaw6D2YmQXMHikH\nyJQAyEJNC6ark4iAdXcTD6EqOPLRB4amhxmbvvsaxOs+OKWtbNLhZ9SWHK28\n/FiB+IQ5xz4Wq2MJ4tfFxY3/OmD7mt8NVlbnAsEklinHizrer8sefJ2SMRbV\nrWGe7T/IGo3kTWXbYbqb4JDudKg5Xo0h/qTKJCXuyR0zNsi2GDPm/TaD4Vpi\nhdv4XWo3FbyVZJ3Vq3ytHiEzICGDxC1il1fr8lycTkipr4OuvZKr37X6rSS8\n2J+V\r\n=wdQI\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.4":{"name":"engine.io","version":"4.0.4","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.4","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-4ggUX5pICZU17OTZNFv5+uFE/ZyoK+TIXv2SvxWWX8lwStllQ6Lvvs4lDBqvKpV9EYXNcvlNOcjKChd/mo+8Tw==","shasum":"8e4af130824e8d3a4db1dbf4f718b384a0de926a","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.4.tgz","fileCount":12,"unpackedSize":73916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftEZmCRA9TVsSAnZWagAAKTIP/jjp//W+k7XDQwfjdL1p\n1F5O8RwC9uIXj6XdnY7idePynUzIzahbuaj2vcMWkGOtefziF7OyUb5U/Owx\nsGJjiZPedDWjr1cR0kWvumyYFc4g5Fnq/JyGceb00SDVvvFArytlsCnhq7mD\nqf4WOffONc9GHMb9isS4LQm28Exl+qx43Oldc8r4ZuI1hr69J5u8F9J22uUa\nTm2yLqLr1aLbWVSyoxrHKH1VhbFF3l/v1phuA9TfBL+G7bz1Pa0m0NIc8BQe\noC9Y33Ai5GPT71q0gsNuPrvDEM0K/rPJfMptwFCFfOnm0rWUwhcyW0wCF3n4\nzgJIF25q2W9tMEYzpIc6P+aXFEkk2DLINQRjkZzAdnuzk2+lxA9HrWhbRyHU\nT2tvDZlLDnfVPUvpwE/NPfjymxC8CJBUhVtre9ncKKDzIoZk9XDjaFblxeML\noRuFFqOwwhsb1/oxo6uwiQONiMFSIQ8JR1+n9zrz79fZtJjbmBigT9piW6Eh\nMeVqtZ2pfii74zKBsM942p8b1T4yyeV2U5FYzwosvp1R55kTGcRKeseYg+Jy\nZQbpu3+zN9RLX0KTFlyvUxT+FKRzJO9C362p7QcW5UaUNS4T1LCbscSfiYky\nNkF3sLkX/wq1hoxweaM0lpH0Z0bOCHK4Ox73YFUXY+iDRWU4ntZCF/c7SdVo\ne75W\r\n=aGbU\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.5":{"name":"engine.io","version":"4.0.5","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.1.0","engine.io-parser":"~4.0.0","ws":"^7.1.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.5","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-Ri+whTNr2PKklxQkfbGjwEo+kCBUM4Qxk4wtLqLrhH+b1up2NFL9g9pjYWiCV/oazwB0rArnvF/ZmZN2ab5Hpg==","shasum":"3ff6d5c72560ad93423c1ce1e807733206622a1c","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.5.tgz","fileCount":12,"unpackedSize":74074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzgOHCRA9TVsSAnZWagAACaEQAJc2q7XS1LNsJktTRXVO\nF7VyYTfkMhM5cRb1RPgU/7qqR55silA22WGDY43Qcp/rcnpwFGoxAgVvWjge\nedW5ILg8ZrtLzx/yikVgmwVP1zGLCinyS2eOgx3RWamn5rTDdNq6LgbnhSh4\nNF7cRmqr5qYOZVdq3fFBvvr2N+XIlMraqEBsJ4xeHLt1fNtpRpLgJezaxkLF\n9cirnY/8TLEcXMHGUYXhZFKamCjSooN5Elu2En1c2DerCAEPxUqYSnocVR8c\n8oWXgEF65n2+GTPdExjXm+TdbLEwhObCSJJ3AtQwHE+/nAWpe7Xdn1iN0Gpw\nkGf/KiAhNUEfpploFWAfbPznCjIRsKOURxXWJsiXrWwwLP6wieSIvLfrLLsX\nt1geelabUuVxKkyHy3vj9Xr5davx6/wdJrmMzcJYZSXuhtoC6cK6Fv0zDk3/\nsr+i7DRnmXKtsR2Ivwu6x8s9CoTTPiI61SzuwQeA2TItjElUpPbgr/bTcG78\nsj1rcfR9OLs96w76Dm22ZWw67fCdUda8vCB91GXtVAZPDUmo5QBKBZVwY/uc\ncXG+PQWc36lM/B5vC08t6lZ/Y+ccjJkCIGgGNn7qBi77X848HivLqSIqgEG8\nDnEmif2jF4x4CeYEBL5/imUxTop97lgk5A7NUMmJ3ADZCEKVMCwcEev6Ehtb\nBuC/\r\n=0cwt\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.5.0":{"name":"engine.io","version":"3.5.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","debug":"~4.1.0","engine.io-parser":"~2.2.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.5.0","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"dist":{"integrity":"sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==","shasum":"9d6b985c8a39b1fe87cd91eb014de0552259821b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz","fileCount":13,"unpackedSize":70951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7D+5CRA9TVsSAnZWagAAa5wP/0gg9Iq3+/XWBwBwhfWj\nzJ02r4FBoBaaGTdkBKJ2OS1hAqc8gBT79uPQ/WN0RVwwoShMRNxOD9MW6KMj\nUwlCqB2wliY8p69ttusc5CxysmNq0zTASssslCNry9fB2iwmV937JKltHdSZ\nMbgII/HB704UzOmaIzRYk2RCVeYPiy5O6GpKlpqQj0TnhJr8UokEpdjFuT7c\njDKrusyGKl+UrLCEJpUcWK/YPzdJ/SZqqNP0g6CRoAxf4qt3w+JdydK0jMhp\nqb9pTseBxczW0JmgNbHNRilHr6qCNfKRLABkf/tkI8fpta0mMB/yeYopNe+d\n+mgHMaFsuvvX/g/zQfl6/nv6EH/CIV2JpUbiWL6/zrsR7KQlSwj/Oyb0Yxrz\nJSvYNNNXychOP5+rB45HVmInLfUDUkGR7zd8L01wsB4ffEpCU6za+exNRl2S\ny4bTJ9QRhsEUCTcCDRTD451sNs0ts0XiFlapq3/HT2KXVidWTs4wLafbNbPi\n7fTHLOZSQ6XU3vTluooZH9a53Vy10CQmTnVttlbaBXTQ/7rqe/xw8JhyCREr\nOYiyV1TlT71iSDKgWXw3z2VDnHNzmhS20sbFiJY8ZZCTuxrk2l/iHvVQP4ev\nER62VharPuXkv9L6vcuHV/KTcUx7FPTjTqrm87TZoefZs1sxP1dnCwcRuNPZ\nOaBZ\r\n=i8F1\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.6":{"name":"engine.io","version":"4.0.6","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.0.6","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-rf7HAVZpcRrcKEKddgIzYUnwg0g5HE1RvJaTLwkcfJmce4g+po8aMuE6vxzp6JwlK8FEq/vi0KWN6tA585DjaA==","shasum":"7268635d64e2154ab5e7f9ef967ad1744a4c41a9","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.0.6.tgz","fileCount":12,"unpackedSize":74889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf85aECRA9TVsSAnZWagAAgmsP/2mYBvX9+0WcJssiQwHC\nR0w4ZDrSpi1XukeDqSn0qYqxRusn3/tlNVjSKvKbYKg/Ey4koD31yF910NHX\n6cGwrXRmHGDlzQKAXZRHgZTCV5WyfPnLYidqe9bBy8+oD3lBlvQactSApM2Q\n5xwvqDF7IGUOua6yaacKgdy2pprNlTmNyqDRSA0+Qd2iav217xh8yf4D7NXS\nHrLcYQXtVGt9/vn9cwR9gwkAbKuAgaO3t2jhLonyIrR5mCF7UmXOzt3MCamH\nnmcIsHiCu/3FQSuJjij3i5DHQcYDyAaVnHPGjvZiGI2+dd9VoY4o4euDArZM\n9ey9epdN+eebKVQ5if7JEgYM1+kTzE34pa6oVt5pEN903Q6Om62B+4kbPLe0\nhHIYMeFxDy35a6Sf1zUaeNCJK/icOEgPqpBjsP0Xy5h9uVsKEERyg9qEQZPl\nLfm+PP4LPDS1cakDV6nbatHNwfAudd7Qa53botkDhMSAqRH1TWc3EuxQJ4qI\nNTsxA2K2Kix+Mk6CxUD+NI1Lc2o6VY1q7OASby1lrS8V8MPDsygJvbnsCYQi\nPNP8L2bH9WAUdYvUJ4yMASYKVnUaZX8iJ+VPP2tsdKX2ol7OSXuEnYzvwJW/\nkXFe0oeJ0B5OLLcjsMB0ukl6tIw0T8jHAY+GO0VRw5g/veq95JTx1Fe5bUqh\nkgYq\r\n=/yFi\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.0":{"name":"engine.io","version":"4.1.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.1.0","engine.io-client-v3":"npm:engine.io-client@3.5.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-vW7EAtn0HDQ4MtT5QbmCHF17TaYLONv2/JwdYsq9USPRZVM4zG7WB3k0Nc321z8EuSOlhGokrYlYx4176QhD0A==","shasum":"d8ac90a09ed9fc703abf87023f1e1815e33f044e","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.1.0.tgz","fileCount":14,"unpackedSize":93392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/5TZCRA9TVsSAnZWagAAH9AP/RYRu4LO3vc20XEf3qBv\n7ZhwWIJHmVw4r4xkwsPjKFgeRVu5V45zpZhJotqiccUssPHLQt9WboXv9TkK\nT/fRqZUVa5tRcz3LsPLI+w30fOBcde6bQfS28dsFEM/N/OkAi42bs/KruMqC\nTZjkrnTRPfqIFrk2DzFlb0ytxm/OlaGbsrahi4JcAZWlOrv8CFz1Ujmh4ZxZ\nnLkqPTXzPrDQE8SEebd0aJ8r+oOq9Cnq0jHUUkHi83bQ0nFkYxKGkf/rXwPs\nYlGnBGEK+muy1VTZEK4cta+defpABoAEf+MNPL6HnHQ7/9ek1T1ab94x2enT\ngTnWnt2YC2vFfCUqUrZ0aSMpT0wIYAS5XpfC3tTsRlhyKMcDW3YKpxVWKqT/\nc+cUnYqwL3BSlPFO9IwlYw1T8i/R1Rbjkl8JU3XODhGlFNbnEsLPWDLpk9Z2\n8WFfcP9fZZXugcIrvwpxFMGfNPgrKRqzdI9QpZeoztAzoySmCKV993CZlzGO\nGoPudCL6UMMKx/ri3JURoq0uYpBFjVAd3urPNVUoF2AhKwJb5nrgN++64aZp\naRIC5S/Mb/DMCntaFYWSWWzzXnz6OIDbZA9v2B7t8+sut+oFFjTeceDMW1AI\nZKytKkiLMD2DNYea2yq71PEWZO6BtUTmT5/IGsAz3RDIe5MQy/leFjOFnlNc\nVE1F\r\n=2SRU\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.1":{"name":"engine.io","version":"4.1.1","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"4.1.1","engine.io-client-v3":"npm:engine.io-client@3.5.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==","shasum":"9a8f8a5ac5a5ea316183c489bf7f5b6cf91ace5b","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz","fileCount":14,"unpackedSize":93816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGSC5CRA9TVsSAnZWagAA1E4QAKD5tuBZxOFbFOVwi+ri\nIObWn2bUHTnC44QdRid23PzqXhCADObBkDpr3UFifcLwTYF9dkehlEg8WPrW\nfw2m0uihU7I190kLR5W2HYuf40627h4HUIlVRHhij8oPqXfumWeMaCqAfnmT\np+6JHGNw4E5OTs7RgwlzECQHDWGrlTg3gqfOUd7cUHGIpukOM0MD/aLQqeAR\nhD4hMfZiDtWZ5oXjCu2fvkdWmigBKOxlzKJhxH8HwWMVnGgwwy/hX2UtSXxv\nOT3XYqfQTBsRGPGsXqUYxozkzUf33LGlfyl2RlC+LPhkpvV9XmCpTw18Fi40\n+Znaj2B8dB2FSiyOaG+Vajv4rKHPFvpHR5d0x7Jt/d4kcsb8sm9cUHPGrg51\n8fCEeEvv0rxq7s9VK8QbUruuqsIE7H+Ykwx+avP6IWc+7uW+y+sqq8/uO3at\nVRmIRpyIIq7ewToEjfyNALdHLMrh3GlnM4GiT0+UcLwAMQ7dVd5IV+jR+PY8\nOe3fWIkTp5lltTTTnDkiCIRRX23EBsichZcSK1BhX4/NNwqMjKnyA9gmBNff\nvjqkPxcC4HCb/4Az2XKZXk/Hn28BITNgQ1C7vYG02sWInYB56kp9AUDqOl+q\nKVYeHAOI1HGCKZTLYVuosEkgpFnqt9LPXu+nUTfF/wrYGbeIeCBlPFqKY8rD\nXuZ2\r\n=aL2C\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"5.0.0":{"name":"engine.io","version":"5.0.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"5.0.0","engine.io-client-v3":"npm:engine.io-client@3.5.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==","shasum":"470dc94a8a4907fa4d2cd1fa6611426afcee61bf","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-5.0.0.tgz","fileCount":14,"unpackedSize":94600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSI+TCRA9TVsSAnZWagAAF5sP/1VMXLtrL/itq1PbcX2w\nce9xVMH0+29XhYX8rq7g7z9CCIs51W50dSlWAGUjOqF75hMTeAbZTTENBUAS\nwGN9I/gEHyaU1UTFTA0mmw0iE6zhHspLv93TLbUnymS/81Op0WOG4duzxrIm\nfDpFid3SlFWZT9wCJIBpdb/ui3X6zRGnkVEIkVEoP8Wvbu4oZP2m8SGYjXtH\nQktD0apKaKVutNX69YSpjWFTBL7pc9By7VI+Wm0sj0psKAV0OwtFzMEpzu/L\nhHJFoL1LoKaoHiBFRymibyzboWVNKZPlr37B6K/AbFjNfcoAs90ja6GBGZRV\nyrDrNbKQRFIJT09i5aI5WBAobMlloicKVUOb8ca34rnSYvsoAfzyDp+GxYzz\nwTpV1zmqWjjnx0gVOQXKVK/zIyKIBtvuLpaHdfVp6bBO7QOdmcqbTVSPEkov\njtTVQSKpIB6fc5ZZVdXyhbDL+JSCLJqg0je/NFAYB5sw49vYqAGgFf9BKFPr\nvpEtnZk1QdlsN+W+XuBfWrg88onCOdBuOtZaXGKesOkgumyYdJonH5rp/c/c\novzCi8K2P0STUAEbKq0qFNkddCVdaNS82nW5+v/Kau615RztKSRB5QFgTl6m\nMQSJ5PfM11WtZ3pDIiAl9/xa5lVcit/UKpvAhuH/O2jUMwzts7Sc4OTznjtX\nSDgp\r\n=su4e\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"5.1.0":{"name":"engine.io","version":"5.1.0","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"5.1.0","engine.io-client-v3":"npm:engine.io-client@3.5.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-A2i4kVvOA3qezQLlMz+FayGFdqOo0LP3fYrb0VqXMDXKoXcbgM0KxcEYnsdVzOMJQErIAb1GIStRj7UWFoiqlQ==","shasum":"d1d1520d6e99fe61618a4e65a97f57b1d232d711","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-5.1.0.tgz","fileCount":14,"unpackedSize":98639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkQaNCRA9TVsSAnZWagAAprgP/R9LD+xguqcN1mAci0LZ\nI9Bt54MDEhCuAIDVK8RBpvnsw7Dl09w8zU76X/Fcvxz0LgVmuIXI6W8sZ7Lb\nssccxW2i5HfoQu+meUj6CePJ+BvmqvLXlt0tlIYXrtlt7xLG0BHhqO4Dj2Ih\njzeiYLpXpr23jT9ndhZlyduWykKI/8epJPa6Fxi5X2qsHjDuQnMymmGWgQlq\nONI31gdsMENabuHB00b8Z09QdyTgCX7WqwxXl0SUmugItlrQYxTGgHd2JZ2t\nM9LzL2DQBiMllT4eyh+TO4oswTP9ynaoIMZ95/Ym11lX2auVdZ/2fMZ8gC0F\n+8YP69l7wEyVLs6g8JPbRe/kk10IqYbFI6k39A5d+p/sDtrYUGv+HN0+RzZp\nYkNzoOMfM+QDi4ZikCIJFCamMGnU1/mOpR1ZOZvq5t6x1TdogaN8BNNnME7y\n2/guConyxdWqgqEHWjvzBeQ/xP8E8lmQha/NrVCW39ShkaN5EZCQHgp+8o/j\ndIFENI29SJNgUAV2QHq+Tfk/KrZnxQCS901hF5Jqya+jDLyEeaNvaQNNO+v0\nX7Y6kMZeLasDXMf5Qlo828fbZqm2KAex8pV4GZ7F9jPfqhV44mIhGmml3tUf\nEiu9LjKDKjU8h5g2KKVNAW+Zx2SadyA38wPIn5XGRiLhp8ms9WpBNwnxmTDZ\nImBI\r\n=fRU7\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"5.1.1":{"name":"engine.io","version":"5.1.1","dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","cors":"~2.8.5","debug":"~4.3.1","engine.io-parser":"~4.0.0","ws":"~7.4.2"},"devDependencies":{"babel-eslint":"^8.0.2","eiows":"^3.3.0","engine.io-client":"5.1.1","engine.io-client-v3":"npm:engine.io-client@3.5.0","eslint":"^4.19.1","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","mocha":"^4.0.1","prettier":"^1.19.1","s":"0.1.1","superagent":"^3.8.1"},"dist":{"integrity":"sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==","shasum":"a1f97e51ddf10cbd4db8b5ff4b165aad3760cdd3","tarball":"https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz","fileCount":14,"unpackedSize":99166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoZ1lCRA9TVsSAnZWagAAOZwP/AtEl6H2/MSgWdBJ7fuS\nDQmbPYvnQ7Yw8RbS2v6lZ7NlH9R48J7a2ZFPd6o2w65TKiqMv7I+zMuVjHh5\nwHNdSkinivWS0kygFvZV0O34t5I6ffHwivl+QdUUcDnH3XjsyPfDgcDS8ufp\nUmwlF34p23SJv7uWUiLnDWlGc9YYBsUel6GTifrm4aTSBy75OJ2jZtUkvhhZ\n0cGETy1ZfL7THNOa+VB1CYgaDE/DH9od69eDwA/UmnR9ivzLKqVI8H5STomu\nU8S2zFWXaSUP978Wgb6T9o7BBncRbeNmXgW8eU9+qkCGvHIsq8HQSCyZKpIh\nV5vaCDk89LO3UUG6oj3RkbcgvpaqBO1bxNx9Z7BeYFjaD3BM7+Fq+IMJubdD\nlqDk6gcbOqBOxV4qQni8x8A1HTyCuumUHMI8jIraDEUDT0CvzOOAd/dzal3N\ngGQ/CX9XoaJLYkumobZ01WVF+iR2o7T5SLWRp0tlzqki/iU9LzCI0Z3bEoRL\nyDc5apHHIv29bo/GbT1vnuqP2attU7p81uT8mKjDMmS8hB3xnF/L9T/kfHjc\nrdzcg/VfzBrBijB43RcTHnWusvUn2e8PoC9Wc6ZQD7mDUiab8evVcGrmTYMi\nFPZcd++lyRp8mB6z++0g1+zq8SdUBl53Ht250uKvTVnV3z8Oqe7uzWcPu2pO\nLYjL\r\n=+xkm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}}},"modified":"2021-05-16T22:32:07.490Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/31/59/3a9f2bb152f8c158d506dc2f6535b34fb80120d834e4d6c582d8d7224ac9f25033e8c2022855728e1f25ccb492ac21a67b37445a2db71bd7a5156a72d3b2 b/data_node_red/.npm/_cacache/content-v2/sha512/31/59/3a9f2bb152f8c158d506dc2f6535b34fb80120d834e4d6c582d8d7224ac9f25033e8c2022855728e1f25ccb492ac21a67b37445a2db71bd7a5156a72d3b2 new file mode 100644 index 0000000..e56e5e4 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/31/59/3a9f2bb152f8c158d506dc2f6535b34fb80120d834e4d6c582d8d7224ac9f25033e8c2022855728e1f25ccb492ac21a67b37445a2db71bd7a5156a72d3b2 @@ -0,0 +1 @@ +{"name":"compression","dist-tags":{"latest":"1.7.4"},"versions":{"1.0.0":{"name":"compression","version":"1.0.0","dependencies":{"bytes":"0.2.1","negotiator":"0.3.0","compressible":"1.0.0"},"devDependencies":{"supertest":"*","connect":"*","mocha":"*","should":"*"},"dist":{"shasum":"8aeb85d48db5145d38bc8b181b6352d8eab26020","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.0.tgz"}},"1.0.1":{"name":"compression","version":"1.0.1","dependencies":{"bytes":"0.2.1","negotiator":"0.4.2","compressible":"1.0.0"},"devDependencies":{"supertest":"*","connect":"*","mocha":"*","should":"*"},"dist":{"shasum":"e42b3e31040778ff66b4f4cb6a43bdbc6cd7d88b","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.1.tgz"}},"1.0.2":{"name":"compression","version":"1.0.2","dependencies":{"bytes":"0.3.0","negotiator":"0.4.3","compressible":"1.0.1"},"devDependencies":{"supertest":"*","connect":"*","mocha":"*","should":"*"},"dist":{"shasum":"90ea20033ee689473678b2ee32226183d7030893","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.2.tgz"},"engines":{"node":">= 0.8"}},"1.0.3":{"name":"compression","version":"1.0.3","dependencies":{"accepts":"1.0.2","bytes":"1.0.0","compressible":"1.0.1","on-headers":"0.0.0"},"devDependencies":{"connect":"2","istanbul":"0.2.10","mocha":"~1.20.0","supertest":"~0.13.0","should":"~4.0.0"},"dist":{"shasum":"4370058053d29402f2ff6312296d9e74463e9901","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.4":{"name":"compression","version":"1.0.4","dependencies":{"accepts":"1.0.2","bytes":"1.0.0","compressible":"1.0.1","on-headers":"0.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","supertest":"~0.13.0","should":"~4.0.0"},"dist":{"shasum":"b9fbfbc11ce6436eb71b9c944006f31b134cfef8","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.5":{"name":"compression","version":"1.0.5","dependencies":{"accepts":"1.0.2","bytes":"1.0.0","compressible":"1.0.1","on-headers":"0.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","supertest":"~0.13.0","should":"~4.0.0"},"dist":{"shasum":"fbf10806b74d96300a18917795e3d6c040532bbc","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.5.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.6":{"name":"compression","version":"1.0.6","dependencies":{"accepts":"1.0.2","bytes":"1.0.0","compressible":"1.0.1","on-headers":"0.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","supertest":"~0.13.0","should":"~4.0.0"},"dist":{"shasum":"efbc5c5870980e9d7e5a9d6e6d7437cccf6a9a8a","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.6.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.7":{"name":"compression","version":"1.0.7","dependencies":{"accepts":"1.0.3","bytes":"1.0.0","compressible":"1.1.0","on-headers":"0.0.0","vary":"0.1.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"fc4bff261df4e37a130006f2db2a99a34896f55a","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.7.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.8":{"name":"compression","version":"1.0.8","dependencies":{"accepts":"~1.0.5","bytes":"1.0.0","compressible":"1.1.0","on-headers":"0.0.0","vary":"0.1.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"803ecc67183e71e42b1efcc6a29f6144fdd9afad","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.8.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.9":{"name":"compression","version":"1.0.9","dependencies":{"accepts":"~1.0.7","bytes":"1.0.0","compressible":"1.1.0","debug":"1.0.4","on-headers":"0.0.0","vary":"0.1.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"edbe08829cc2b49d601773c814a3851c135d0931","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.9.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.10":{"name":"compression","version":"1.0.10","dependencies":{"accepts":"~1.0.7","bytes":"1.0.0","compressible":"~1.1.1","debug":"1.0.4","on-headers":"0.0.0","vary":"0.1.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.3","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"4e5ba4b317dbca8bab486e5ba60b09fcb6e22e44","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.10.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.11":{"name":"compression","version":"1.0.11","dependencies":{"accepts":"~1.0.7","bytes":"1.0.0","compressible":"~1.1.1","debug":"1.0.4","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.3","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"69700cf1ee8963454356ac192a6e5e91e232bffb","tarball":"https://registry.npmjs.org/compression/-/compression-1.0.11.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.0":{"name":"compression","version":"1.1.0","dependencies":{"accepts":"~1.1.0","bytes":"1.0.0","compressible":"~2.0.0","debug":"~2.0.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.3","supertest":"~0.13.0","should":"~4.0.1"},"dist":{"shasum":"58243eded272fc531d7c744d8e8daa7cc0b99215","tarball":"https://registry.npmjs.org/compression/-/compression-1.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.1":{"name":"compression","version":"1.1.1","dependencies":{"accepts":"~1.1.1","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.0.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.3","supertest":"~0.14.0","should":"~4.0.1"},"dist":{"shasum":"5dd7d78ab9c9bafb0d33eb92831b18bf6f9ad75f","tarball":"https://registry.npmjs.org/compression/-/compression-1.1.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.2":{"name":"compression","version":"1.1.2","dependencies":{"accepts":"~1.1.2","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.0.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.5","supertest":"~0.14.0","should":"~4.0.1"},"dist":{"shasum":"f93fb7fcdb3573ec4c7d5398984caae230e2a8d7","tarball":"https://registry.npmjs.org/compression/-/compression-1.1.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.0":{"name":"compression","version":"1.2.0","dependencies":{"accepts":"~1.1.2","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.1.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.5","supertest":"~0.14.0","should":"~4.0.1"},"dist":{"shasum":"c6951ca9ad90588ada7617da693c6bbbe8736866","tarball":"https://registry.npmjs.org/compression/-/compression-1.2.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.1":{"name":"compression","version":"1.2.1","dependencies":{"accepts":"~1.1.3","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.1.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.1","supertest":"~0.15.0"},"dist":{"shasum":"12ebaac04d308ca6103618a9716ce5634b939e9c","tarball":"https://registry.npmjs.org/compression/-/compression-1.2.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.2":{"name":"compression","version":"1.2.2","dependencies":{"accepts":"~1.1.4","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.1.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.4","mocha":"~2.0.1","supertest":"~0.15.0"},"dist":{"shasum":"637604c25ed659c0d5c9fac1038fc2f2d5494dbf","tarball":"https://registry.npmjs.org/compression/-/compression-1.2.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.0":{"name":"compression","version":"1.3.0","dependencies":{"accepts":"~1.2.2","bytes":"1.0.0","compressible":"~2.0.1","debug":"~2.1.1","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"03289a1d45e1dbbf8bd509dba50d036657b7bac8","tarball":"https://registry.npmjs.org/compression/-/compression-1.3.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.1":{"name":"compression","version":"1.3.1","dependencies":{"accepts":"~1.2.3","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.1.1","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"30986b2f519ba90e57759896301de4955ce00945","tarball":"https://registry.npmjs.org/compression/-/compression-1.3.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.0":{"name":"compression","version":"1.4.0","dependencies":{"accepts":"~1.2.3","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.1.1","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"e78287443ef7b4fa0c6a437bc8e5ad31919040bb","tarball":"https://registry.npmjs.org/compression/-/compression-1.4.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.1":{"name":"compression","version":"1.4.1","dependencies":{"accepts":"~1.2.4","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.1.1","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"c6f707ac2659e13c7f3e8834321b02cd09338d78","tarball":"https://registry.npmjs.org/compression/-/compression-1.4.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.2":{"name":"compression","version":"1.4.2","dependencies":{"accepts":"~1.2.4","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.1.2","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.7","mocha":"2.2.1","supertest":"~0.15.0"},"dist":{"shasum":"59213b7f4b55f12d6852030946facd1d01e578d7","tarball":"https://registry.npmjs.org/compression/-/compression-1.4.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.3":{"name":"compression","version":"1.4.3","dependencies":{"accepts":"~1.2.5","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.1.3","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.7","mocha":"2.2.1","supertest":"~0.15.0"},"dist":{"shasum":"7161bc0441df629273e5c31dd631b8e41e886b4d","tarball":"https://registry.npmjs.org/compression/-/compression-1.4.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.4":{"name":"compression","version":"1.4.4","dependencies":{"accepts":"~1.2.7","bytes":"1.0.0","compressible":"~2.0.2","debug":"~2.2.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.4","supertest":"~0.15.0"},"dist":{"shasum":"2f9994ca476e4d9ba5fdc67ac929942837d0b6a4","tarball":"https://registry.npmjs.org/compression/-/compression-1.4.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.0":{"name":"compression","version":"1.5.0","dependencies":{"accepts":"~1.2.9","bytes":"2.1.0","compressible":"~2.0.3","debug":"~2.2.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.15","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"ccc1a54788da1b3ad7729c49f6a00b3ac9adf47f","tarball":"https://registry.npmjs.org/compression/-/compression-1.5.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.1":{"name":"compression","version":"1.5.1","dependencies":{"accepts":"~1.2.10","bytes":"2.1.0","compressible":"~2.0.4","debug":"~2.2.0","on-headers":"~1.0.0","vary":"~1.0.0"},"devDependencies":{"istanbul":"0.3.17","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"ed8d42fc86cbe09b1d775b0c0c1b48dbec8239ba","tarball":"https://registry.npmjs.org/compression/-/compression-1.5.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.2":{"name":"compression","version":"1.5.2","dependencies":{"accepts":"~1.2.12","bytes":"2.1.0","compressible":"~2.0.5","debug":"~2.2.0","on-headers":"~1.0.0","vary":"~1.0.1"},"devDependencies":{"istanbul":"0.3.17","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"b03b8d86e6f8ad29683cba8df91ddc6ffc77b395","tarball":"https://registry.npmjs.org/compression/-/compression-1.5.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.0":{"name":"compression","version":"1.6.0","dependencies":{"accepts":"~1.3.0","bytes":"2.1.0","compressible":"~2.0.6","debug":"~2.2.0","on-headers":"~1.0.1","vary":"~1.1.0"},"devDependencies":{"istanbul":"0.3.21","mocha":"2.3.3","supertest":"1.1.0"},"dist":{"shasum":"886465ffa4a19f9b73b41682db77d28179b30920","tarball":"https://registry.npmjs.org/compression/-/compression-1.6.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.1":{"name":"compression","version":"1.6.1","dependencies":{"accepts":"~1.3.1","bytes":"2.2.0","compressible":"~2.0.7","debug":"~2.2.0","on-headers":"~1.0.1","vary":"~1.1.0"},"devDependencies":{"istanbul":"0.4.2","mocha":"2.3.4","supertest":"1.1.0"},"dist":{"shasum":"1bf4f96fd72019a3fd11513b4fc4dcd3bd16db55","tarball":"https://registry.npmjs.org/compression/-/compression-1.6.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.2":{"name":"compression","version":"1.6.2","dependencies":{"accepts":"~1.3.3","bytes":"2.3.0","compressible":"~2.0.8","debug":"~2.2.0","on-headers":"~1.0.1","vary":"~1.1.0"},"devDependencies":{"eslint":"2.9.0","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.4.5","supertest":"1.1.0"},"dist":{"shasum":"cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3","tarball":"https://registry.npmjs.org/compression/-/compression-1.6.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.0":{"name":"compression","version":"1.7.0","dependencies":{"accepts":"~1.3.3","bytes":"2.5.0","compressible":"~2.0.10","debug":"2.6.8","on-headers":"~1.0.1","safe-buffer":"5.1.1","vary":"~1.1.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.0","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.4.5","supertest":"1.1.0"},"dist":{"shasum":"030c9f198f1643a057d776a738e922da4373012d","tarball":"https://registry.npmjs.org/compression/-/compression-1.7.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.1":{"name":"compression","version":"1.7.1","dependencies":{"accepts":"~1.3.4","bytes":"3.0.0","compressible":"~2.0.11","debug":"2.6.9","on-headers":"~1.0.1","safe-buffer":"5.1.1","vary":"~1.1.2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"eff2603efc2e22cf86f35d2eb93589f9875373db","tarball":"https://registry.npmjs.org/compression/-/compression-1.7.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.2":{"name":"compression","version":"1.7.2","dependencies":{"accepts":"~1.3.4","bytes":"3.0.0","compressible":"~2.0.13","debug":"2.6.9","on-headers":"~1.0.1","safe-buffer":"5.1.1","vary":"~1.1.2"},"devDependencies":{"eslint":"4.18.0","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.8.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.0","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"aaffbcd6aaf854b44ebb280353d5ad1651f59a69","tarball":"https://registry.npmjs.org/compression/-/compression-1.7.2.tgz","fileCount":5,"unpackedSize":22623},"engines":{"node":">= 0.8.0"}},"1.7.3":{"name":"compression","version":"1.7.3","dependencies":{"accepts":"~1.3.5","bytes":"3.0.0","compressible":"~2.0.14","debug":"2.6.9","on-headers":"~1.0.1","safe-buffer":"5.1.2","vary":"~1.1.2"},"devDependencies":{"after":"0.8.2","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"integrity":"sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==","shasum":"27e0e176aaf260f7f2c2813c3e440adb9f1993db","tarball":"https://registry.npmjs.org/compression/-/compression-1.7.3.tgz","fileCount":5,"unpackedSize":22876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbS76XCRA9TVsSAnZWagAADrMP/Rhf/BBJXT0AaaJ/qePc\nRwq3Rj7dE9Fjlc1c0Ib4S1Kl5ug0b9l18L0TtRuFXYzKpul2uxzHTQtv9wyY\nyveW4+zk/bM+BN0ZpHbND2pWQLwSCwQ0jnm6PMO8jsDCQRiafDOQqh8wwr0k\n2K9prCysA+369kWCOiCuF9Ra1F+rZjlGuXbjOmorsZIDu1ZT+opv8VNTvm3D\nsWU7/xWFoKdJVH27m+PKsAZAcYNJEirYY84JUFDONFZq84ItOONQaKX6Rm8/\n5nAalJh3wuor0Mv3u55U8iHrtf7izi0j78c6MuequWEPAwtR1R2/jeherA4L\nMGkfzHK/JaR5SNtQ+ryjHSuSDVKO+obJKs/x74cdh8aFI++Gl1MkQSgDWt6l\n9DYF51HvOo8QKDWQf1A7lyYfrdp/lHK1BKZ1YdyvnsbQ9bszAfkgKwWkbZ9K\nUziNChH65rP4tkPUAJ5qgQlFY2yFcXuzxZwwkufff47wkYAza0eWQ+gGRoWl\nl6dQ96CC4n4v/7xut2mJW2evGk/RYfnfJLw73x/fqwXF1JnKbtP6u6OSn6CS\nPZJJAFF8gY3boaZPm8m+iVUKEl0Cxy+ZgXFb7S9Qn/CX544V1ZA6BlIyTAq0\nlieaRKSBCDjXigw2F69/nRyZeOkE0Ms7Lb0Abz7Qaut0y6+32J4xkUi5GNku\nyu8/\r\n=lzg0\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}},"1.7.4":{"name":"compression","version":"1.7.4","dependencies":{"accepts":"~1.3.5","bytes":"3.0.0","compressible":"~2.0.16","debug":"2.6.9","on-headers":"~1.0.2","safe-buffer":"5.1.2","vary":"~1.1.2"},"devDependencies":{"after":"0.8.2","eslint":"5.15.1","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.0.2","supertest":"4.0.0"},"dist":{"integrity":"sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","shasum":"95523eff170ca57c29a0ca41e6fe131f41e5bb8f","tarball":"https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","fileCount":5,"unpackedSize":23306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcj66MCRA9TVsSAnZWagAA5VcP/R4JRuhO78tvsnnBepBz\nzSdSm0onNd0iQp8ajRSpcrd3D1r0eYcQDe8qYraO9tTdzISngweiOZnrp3v/\nitiqTfINI0cFgffUe0LD6ZHP4hnerj04z6NQ3k1Ayr0yEywjLErjznuy+f4U\nznor4SRG8fb5fjel4VJXSVSpq5A7pisGJbb7tw5Bh8n/GQUm3i9bGBL7QRb3\nf++/H1YxTjQoMxMupbvZ6bDvBVVFKl6OLebi4lfVRSoLxKd0+F2KeZ0D1VzH\niZIPgjo5ojAzgmBlDD62dHcg7vwNSFT1UV8U0A6yDSx90hqDUqBK8f2oOL+C\n7mObbeSLqsgspXmM/evEIpkIcF0VeSDf44ClH2u5lAkNb07kf5CevOnRWs/o\nTneqN8c6hMEIriNY7xun9tX6837VRXn9/F98NdcSTiT3lidEMC4y5tXWikSE\n6FAXlJmutIiRNi8LOR50UqPGiWeFNCSVIgPGKBk1jHN78WbkXgvfSFvrRoB8\nj2eY/cK+9RmeXJrzG1oUdEDGHqTpHC0TkKmL0aZyOUEftby8bgEMP9wWa1z+\nGJTueAVQzeu3BCQEkMDiQoxVRoM1E9n8oZDm6CE1sTTmPtCk3rMQMmovpJWs\nrL10koK/Asp7oB3JctY5De2icreXAi08Mytf9pHh+Wibo0XIpxh23Y/BD6TR\nwaMv\r\n=n7iJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}}},"modified":"2019-09-21T18:45:07.031Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/33/ac/619ca407bae65de016bdbe5b422d3f686be62f4ec3fc8fd35c1222c495f220f0a7983f285639eb3ac78b7e2d3002f1e9d06c4ffdf7901d4de9b6b8dc8a29 b/data_node_red/.npm/_cacache/content-v2/sha512/33/ac/619ca407bae65de016bdbe5b422d3f686be62f4ec3fc8fd35c1222c495f220f0a7983f285639eb3ac78b7e2d3002f1e9d06c4ffdf7901d4de9b6b8dc8a29 new file mode 100644 index 0000000..7ae6f64 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/33/ac/619ca407bae65de016bdbe5b422d3f686be62f4ec3fc8fd35c1222c495f220f0a7983f285639eb3ac78b7e2d3002f1e9d06c4ffdf7901d4de9b6b8dc8a29 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/33/bd/c5017a48aa350b8d1dbafec5dd8368d8545a57cb3198edaafeefd638f62e7248347018ab3dcafbcb15db997b83c0c2572d6b2e372c3911cd43482dd2b77c b/data_node_red/.npm/_cacache/content-v2/sha512/33/bd/c5017a48aa350b8d1dbafec5dd8368d8545a57cb3198edaafeefd638f62e7248347018ab3dcafbcb15db997b83c0c2572d6b2e372c3911cd43482dd2b77c new file mode 100644 index 0000000..b6a6bfe --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/33/bd/c5017a48aa350b8d1dbafec5dd8368d8545a57cb3198edaafeefd638f62e7248347018ab3dcafbcb15db997b83c0c2572d6b2e372c3911cd43482dd2b77c @@ -0,0 +1 @@ +{"name":"mysql","dist-tags":{"latest":"2.18.1","2.0.0-alpha":"2.0.0-alpha","2.0.0-alpha2":"2.0.0-alpha2","alpha3":"2.0.0-alpha3"},"versions":{"0.1.0":{"name":"mysql","version":"0.1.0","directories":{"lib":"./lib/mysql"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.1.0.tgz","shasum":"926d15cf1b856a38146d1a1ab323d9864fb8a5e2"},"engines":{"node":"*"}},"0.2.0":{"name":"mysql","version":"0.2.0","dependencies":{"gently":">=0.8.0"},"directories":{"lib":"./lib/mysql"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.2.0.tgz","shasum":"fbe368def784cdb16b4188357a5278b5c3893d58"},"engines":{"node":"*"}},"0.3.0":{"name":"mysql","version":"0.3.0","dependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.3.0.tgz","shasum":"20d26f67814f4872dd43d3b37b39a0b782646627"},"engines":{"node":"*"}},"0.4.0":{"name":"mysql","version":"0.4.0","dependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.4.0.tgz","shasum":"fd9ed4ce96657fd78b4c568bbfad3dc1a663c242"},"engines":{"node":"*"}},"0.5.0":{"name":"mysql","version":"0.5.0","dependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.5.0.tgz","shasum":"b643b021605bbabaf369e8a98d0aef222d4db343"},"engines":{"node":"*"}},"0.6.0":{"name":"mysql","version":"0.6.0","dependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.6.0.tgz","shasum":"b1d812c79a4c1d9e2599b30cf5d42565e870a459"},"engines":{"node":"*"}},"0.7.0":{"name":"mysql","version":"0.7.0","dependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.7.0.tgz","shasum":"a57f38b7f1318d3bf28e66d3284ec8d5b024fb72"},"engines":{"node":"*"}},"0.8.0":{"name":"mysql","version":"0.8.0","devDependencies":{"gently":">=0.8.0"},"dist":{"tarball":"https://registry.npmjs.org/mysql/-/mysql-0.8.0.tgz","shasum":"99bc7dc1c22c76b8ea3adc20be0b609baa345692"},"engines":{"node":"*"}},"0.9.0":{"name":"mysql","version":"0.9.0","devDependencies":{"gently":">=0.8.0"},"dist":{"shasum":"bda6399589d4d09d607fc66edbe8caae6b74f11b","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.0.tgz"},"engines":{"node":"*"}},"0.9.1":{"name":"mysql","version":"0.9.1","devDependencies":{"gently":">=0.8.0"},"dist":{"shasum":"4f240429f60343c9e6cb6717feab072f64ca45d2","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.1.tgz"},"engines":{"node":"*"}},"0.9.2":{"name":"mysql","version":"0.9.2","dependencies":{"hashish":"0.0.4"},"devDependencies":{"gently":"0.8.0","far":"0.0.6"},"dist":{"shasum":"dee0266ec287fdca7871a91240aa77be23bdc1b7","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.2.tgz"},"engines":{"node":"*"}},"0.9.3":{"name":"mysql","version":"0.9.3","dependencies":{"hashish":"0.0.4"},"devDependencies":{"gently":"0.8.0","far":"0.0.6","fast-or-slow":"0.0.5"},"dist":{"shasum":"b1f81b6d6644e979f5460f2bb9f5cf25eeeb4d22","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.3.tgz"},"engines":{"node":"*"}},"0.9.4":{"name":"mysql","version":"0.9.4","dependencies":{"hashish":"0.0.4"},"devDependencies":{"gently":"0.8.0","far":"0.0.6","fast-or-slow":"0.0.5"},"dist":{"shasum":"f62b72f0af537fc511b694d256fdcdb86b2e9951","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.4.tgz"},"engines":{"node":"*"}},"0.9.5":{"name":"mysql","version":"0.9.5","dependencies":{"hashish":"0.0.4"},"devDependencies":{"gently":"0.8.0","urun":"0.0.4","utest":"0.0.3"},"dist":{"shasum":"cc95e1c31d0653974d3fb3e9266ed466cd0f96b5","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.5.tgz"},"engines":{"node":"*"}},"0.9.6":{"name":"mysql","version":"0.9.6","dependencies":{"hashish":"0.0.4"},"devDependencies":{"gently":"0.8.0","urun":"0.0.4","utest":"0.0.3"},"dist":{"shasum":"95a3a9f41f94353c6460664b5867997e88b625bc","tarball":"https://registry.npmjs.org/mysql/-/mysql-0.9.6.tgz"},"engines":{"node":"*"}},"2.0.0-alpha":{"name":"mysql","version":"2.0.0-alpha","dependencies":{"require-all":"0.0.3"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"b428311d7b775edeec63a344818c83f71da12f71","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha.tgz"},"engines":{"node":"*"}},"2.0.0-alpha2":{"name":"mysql","version":"2.0.0-alpha2","dependencies":{"require-all":"0.0.3"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"9cb2a0fc9878cec1d1dba1790df010458e78a06c","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha2.tgz"},"engines":{"node":"*"}},"2.0.0-alpha3":{"name":"mysql","version":"2.0.0-alpha3","dependencies":{"require-all":"0.0.3"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"ce00257591b87d9c4c67b04454c6b71b54a0b9e4","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha3.tgz"},"engines":{"node":"*"}},"2.0.0-alpha4":{"name":"mysql","version":"2.0.0-alpha4","dependencies":{"require-all":"0.0.3"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"cd7317074008c05b674c9e95c6cfe044e66e759e","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha4.tgz"},"engines":{"node":"*"}},"2.0.0-alpha5":{"name":"mysql","version":"2.0.0-alpha5","dependencies":{"require-all":"0.0.3"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"89dab1d93691374412701bfc65e0e5d2b7f44670","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha5.tgz"},"engines":{"node":"*"}},"2.0.0-alpha6":{"name":"mysql","version":"2.0.0-alpha6","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"fff697b1b072418021429d389e2f8d4e9cdc8840","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha6.tgz"},"engines":{"node":"*"}},"2.0.0-alpha7":{"name":"mysql","version":"2.0.0-alpha7","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"6d3a672c52368f1ca063e329e637262bad4e329e","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha7.tgz"},"engines":{"node":"*"}},"2.0.0-alpha8":{"name":"mysql","version":"2.0.0-alpha8","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"9a8854576e8460b51b453d612cbe2f20a173302f","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha8.tgz"},"engines":{"node":"*"}},"2.0.0-alpha9":{"name":"mysql","version":"2.0.0-alpha9","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"bbe028c6da8dd19b02501a124ce9aa96d8474d89","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-alpha9.tgz"},"engines":{"node":"*"}},"2.0.0-rc1":{"name":"mysql","version":"2.0.0-rc1","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"84de3a6e91fc1ce1d59441d3210c03a84169181c","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-rc1.tgz"},"engines":{"node":"*"}},"2.0.0-rc2":{"name":"mysql","version":"2.0.0-rc2","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"82e767d8e073569115e193d6794bb5dc147afc45","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0-rc2.tgz"},"engines":{"node":"*"}},"2.0.0":{"name":"mysql","version":"2.0.0","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1","readable-stream":"~1.1.9"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"e8b993770fc93580188d20a711032b9596d39354","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.0.tgz"},"engines":{"node":"*"}},"2.0.1":{"name":"mysql","version":"2.0.1","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1","readable-stream":"~1.1.9"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"8d849488ee176d34e31d6200d66c47f6dea4dd16","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.0.1.tgz"},"engines":{"node":"*"}},"2.1.0":{"name":"mysql","version":"2.1.0","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1","readable-stream":"~1.1.9"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"8fef3fe6a8f00b05629c9b84c4a4b07ba0003f6e","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.1.0.tgz"},"engines":{"node":"*"}},"2.1.1":{"name":"mysql","version":"2.1.1","dependencies":{"require-all":"0.0.3","bignumber.js":"1.0.1","readable-stream":"~1.1.9"},"devDependencies":{"utest":"0.0.6","urun":"0.0.6","underscore":"1.3.1"},"dist":{"shasum":"3ec79b945dee2830fc995515e551a54dceac8383","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.1.1.tgz"},"engines":{"node":"*"}},"2.2.0":{"name":"mysql","version":"2.2.0","dependencies":{"bignumber.js":"1.3.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"underscore":"1.6.0","urun":"0.0.7","utest":"0.0.8"},"dist":{"shasum":"7799cd02d74f9326434d7351791c946981485b98","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.2.0.tgz"},"engines":{"node":">= 0.8"}},"2.3.0":{"name":"mysql","version":"2.3.0","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"cbe042f254325aa469b3add8a717015c56a3b612","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.3.0.tgz"},"engines":{"node":">= 0.8"}},"2.3.1":{"name":"mysql","version":"2.3.1","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"b13b44b0009ae62a17e59d712aa1a5dd24dc42c5","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.3.1.tgz"},"engines":{"node":">= 0.8"}},"2.3.2":{"name":"mysql","version":"2.3.2","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"dbfabbc355d5690fd31c53a786c38acbbfda5046","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.3.2.tgz"},"engines":{"node":">= 0.8"}},"2.4.0":{"name":"mysql","version":"2.4.0","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"6fb09e2d76c9ce4d1cebb3e56489ec6f95b0770a","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.4.0.tgz"},"engines":{"node":">= 0.8"}},"2.4.1":{"name":"mysql","version":"2.4.1","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.0","rimraf":"2.2.8","mkdirp":"0.5.0","underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"b7afda4235a56fe381e9cc01f028de121754a9fb","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.4.1.tgz"},"engines":{"node":">= 0.8"}},"2.4.2":{"name":"mysql","version":"2.4.2","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.0","rimraf":"2.2.8","mkdirp":"0.5.0","underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"53abd400a347c293601750ddeb696422c1b8088a","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.4.2.tgz"},"engines":{"node":">= 0.8"}},"2.4.3":{"name":"mysql","version":"2.4.3","dependencies":{"bignumber.js":"1.4.0","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.0","rimraf":"2.2.8","mkdirp":"0.5.0","underscore":"1.6.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"2c28a44c28367c3820a3ac04d3b77567b4adeae7","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.4.3.tgz"},"engines":{"node":">= 0.8"}},"2.5.0":{"name":"mysql","version":"2.5.0","dependencies":{"bignumber.js":"1.4.1","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.2","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"48557327576f2308729bb3d4a16dd1d3f76ee1d4","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.0.tgz"},"engines":{"node":">= 0.6"}},"2.5.1":{"name":"mysql","version":"2.5.1","dependencies":{"bignumber.js":"1.4.1","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.2","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"023c92d8505a0cf8caa9d25ea36b3aab750bbcca","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.1.tgz"},"engines":{"node":">= 0.6"}},"2.5.2":{"name":"mysql","version":"2.5.2","dependencies":{"bignumber.js":"1.4.1","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.2","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"8e7f12a940e8e958c417f9e80bf20ef8c36afd5a","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.2.tgz"},"engines":{"node":">= 0.6"}},"2.5.3":{"name":"mysql","version":"2.5.3","dependencies":{"bignumber.js":"1.4.1","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.2","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"82dd5c9e9831e7ffe2466d347c8c1dfcfcece23b","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.3.tgz"},"engines":{"node":">= 0.6"}},"2.5.4":{"name":"mysql","version":"2.5.4","dependencies":{"bignumber.js":"1.4.1","readable-stream":"~1.1.13","require-all":"0.0.8"},"devDependencies":{"istanbul":"0.3.5","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"9f5675fdba3f18a08275d01107b68b56038c6c99","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.4.tgz"},"engines":{"node":">= 0.6"}},"2.5.5":{"name":"mysql","version":"2.5.5","dependencies":{"bignumber.js":"2.0.0","readable-stream":"~1.1.13","require-all":"~1.0.0"},"devDependencies":{"istanbul":"0.3.5","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"02a1c4d0617fb771d85c15fcf24d108f5a62f648","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.5.5.tgz"},"engines":{"node":">= 0.6"}},"2.6.0":{"name":"mysql","version":"2.6.0","dependencies":{"bignumber.js":"2.0.0","readable-stream":"~1.1.13","require-all":"~1.0.0"},"devDependencies":{"istanbul":"0.3.8","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"0a63638f7fb3dc5cfdc8d2e3a901a3a20a3ae438","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.6.0.tgz"},"engines":{"node":">= 0.6"}},"2.6.1":{"name":"mysql","version":"2.6.1","dependencies":{"bignumber.js":"2.0.5","readable-stream":"~1.1.13","require-all":"~1.0.0"},"devDependencies":{"istanbul":"0.3.9","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"71bf1fb20550cf2940b831664df33f3637b5504d","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.6.1.tgz"},"engines":{"node":">= 0.6"}},"2.6.2":{"name":"mysql","version":"2.6.2","dependencies":{"bignumber.js":"2.0.7","readable-stream":"~1.1.13","require-all":"~1.0.0"},"devDependencies":{"istanbul":"0.3.9","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"93719dd324f57d41c44fb6d7f860cf8e638593b0","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.6.2.tgz"},"engines":{"node":">= 0.6"}},"2.7.0":{"name":"mysql","version":"2.7.0","dependencies":{"bignumber.js":"2.0.7","readable-stream":"~1.1.13","require-all":"~1.0.0"},"devDependencies":{"istanbul":"0.3.9","rimraf":"2.2.8","mkdirp":"0.5.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"02f99c0ecada01c1dca100d96a6202f40c88261d","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.7.0.tgz"},"engines":{"node":">= 0.6"}},"2.8.0":{"name":"mysql","version":"2.8.0","dependencies":{"bignumber.js":"2.0.7","readable-stream":"~1.1.13"},"devDependencies":{"istanbul":"0.3.9","rimraf":"2.2.8","require-all":"~1.1.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"d19d299b2b1d038fc4d785cbe1f342bf51e4f2a1","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.8.0.tgz"},"engines":{"node":">= 0.6"}},"2.9.0":{"name":"mysql","version":"2.9.0","dependencies":{"bignumber.js":"2.0.7","readable-stream":"~1.1.13"},"devDependencies":{"istanbul":"0.3.9","rimraf":"2.2.8","require-all":"~1.1.0","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"8b2218a9ddaf92518caefad78d152df1b6b64213","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.9.0.tgz"},"engines":{"node":">= 0.6"}},"2.10.0":{"name":"mysql","version":"2.10.0","dependencies":{"bignumber.js":"2.1.2","readable-stream":"~1.1.13"},"devDependencies":{"eslint":"1.10.1","istanbul":"0.4.1","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"c5e36face47d592bc51f13345ec6141a7ca7726f","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.10.0.tgz"},"engines":{"node":">= 0.6"}},"2.10.1":{"name":"mysql","version":"2.10.1","dependencies":{"bignumber.js":"2.1.2","readable-stream":"~1.1.13"},"devDependencies":{"eslint":"1.10.1","istanbul":"0.4.1","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"57d02485a33ffa581b0c50c101fbc63e9f9af1fa","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.10.1.tgz"},"engines":{"node":">= 0.6"}},"2.10.2":{"name":"mysql","version":"2.10.2","dependencies":{"bignumber.js":"2.1.4","readable-stream":"~1.1.13"},"devDependencies":{"eslint":"1.10.1","istanbul":"0.4.2","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"9ee5e46f056b2ba3a7840a10eae3426f59384292","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.10.2.tgz"},"engines":{"node":">= 0.6"}},"2.11.0":{"name":"mysql","version":"2.11.0","dependencies":{"bignumber.js":"2.3.0","readable-stream":"1.1.14","sqlstring":"2.0.1"},"devDependencies":{"after":"0.8.1","eslint":"2.11.1","istanbul":"0.4.3","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"71a520e6243a6190f79461ea92d3e12e85bd80e6","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.11.0.tgz"},"engines":{"node":">= 0.6"}},"2.11.1":{"name":"mysql","version":"2.11.1","dependencies":{"bignumber.js":"2.3.0","readable-stream":"1.1.14","sqlstring":"2.0.1"},"devDependencies":{"after":"0.8.1","eslint":"2.11.1","istanbul":"0.4.3","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"7bdbfda477141fd15eeec2b710320c0d20ce7d08","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.11.1.tgz"},"engines":{"node":">= 0.6"}},"2.12.0":{"name":"mysql","version":"2.12.0","dependencies":{"bignumber.js":"2.4.0","readable-stream":"1.1.14","sqlstring":"2.2.0"},"devDependencies":{"after":"0.8.2","eslint":"3.9.1","istanbul":"0.4.5","require-all":"2.0.0","rimraf":"2.2.8","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"18f7af74555f3f55b7c33d67fc2ca48ccd490e4d","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.12.0.tgz"},"engines":{"node":">= 0.6"}},"2.13.0":{"name":"mysql","version":"2.13.0","dependencies":{"bignumber.js":"3.1.2","readable-stream":"1.1.14","sqlstring":"2.2.0"},"devDependencies":{"after":"0.8.2","eslint":"3.13.1","istanbul":"0.4.5","require-all":"2.1.0","rimraf":"2.2.8","seedrandom":"2.4.2","timezone-mock":"0.0.0","mkdirp":"0.5.1","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"998f1f8ca46e2e3dd7149ce982413653986aae47","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.13.0.tgz"},"engines":{"node":">= 0.6"}},"2.14.0":{"name":"mysql","version":"2.14.0","dependencies":{"bignumber.js":"4.0.2","readable-stream":"2.3.3","safe-buffer":"5.1.1","sqlstring":"2.2.0"},"devDependencies":{"after":"0.8.2","eslint":"4.2.0","nyc":"10.3.2","seedrandom":"2.4.3","timezone-mock":"0.0.5","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"325cc1156e8246e572118774bbf406eaa9189ffd","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.14.0.tgz"},"engines":{"node":">= 0.6"}},"2.14.1":{"name":"mysql","version":"2.14.1","dependencies":{"bignumber.js":"4.0.2","readable-stream":"2.3.3","safe-buffer":"5.1.1","sqlstring":"2.2.0"},"devDependencies":{"after":"0.8.2","eslint":"4.3.0","nyc":"10.3.2","seedrandom":"2.4.3","timezone-mock":"0.0.5","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-ZPXqQeYH7L1QPDyC77Rcp32cNCQnNjz8Y4BbF17tOjm5yhSfjFa3xS4PvuxWJtEEmwVc4ccI7sSntj4eyYRq0A==","shasum":"e9324015e810a50abda94855cab41edfad56284a","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.14.1.tgz"},"engines":{"node":">= 0.6"}},"2.15.0":{"name":"mysql","version":"2.15.0","dependencies":{"bignumber.js":"4.0.4","readable-stream":"2.3.3","safe-buffer":"5.1.1","sqlstring":"2.3.0"},"devDependencies":{"after":"0.8.2","eslint":"4.8.0","nyc":"10.3.2","seedrandom":"2.4.3","timezone-mock":"0.0.5","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-C7tjzWtbN5nzkLIV+E8Crnl9bFyc7d3XJcBAvHKEVkjrYjogz3llo22q6s/hw+UcsE4/844pDob9ac+3dVjQSA==","shasum":"ea16841156343e8f2e47fc8985ec41cdd9573b5c","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.15.0.tgz"},"engines":{"node":">= 0.6"}},"2.16.0":{"name":"mysql","version":"2.16.0","dependencies":{"bignumber.js":"4.1.0","readable-stream":"2.3.6","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"devDependencies":{"after":"0.8.2","eslint":"4.19.1","nyc":"10.3.2","seedrandom":"2.4.3","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-dPbN2LHonQp7D5ja5DJXNbCLe/HRdu+f3v61aguzNRQIrmZLOeRoymBYyeThrR6ug+FqzDL95Gc9maqZUJS+Gw==","shasum":"b23b22ab5de44fc2d5d32bd4f5af6653fc45e2ba","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.16.0.tgz","fileCount":60,"unpackedSize":428222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTss2CRA9TVsSAnZWagAAEPYQAJDy7TmIPBatRNcx7dl1\nalHuAbLL5R86v3L5dJ0Y4Lq8oNSh1LKXa0q26osrkFRUpRBqt9wSIEvZR3os\nUzSJFaYGMdJYSDOwd8Hv/Z8KOrzjaguTgl2cZ8/8rW9IBUVaJ6xtNklgpgYz\n6sI6iUrCU/+68XtkHJ7CUh4XPMKPMyKmZoWBpAVN9kp7Yzsovo4HCxm6FCVP\nQ/A+FIXwRlhxQ6CnYxGRQrECgTH2D6kpNem//LiTTa2Egzua3mxwLZcwKxfw\nr4oH27o6KNmCjCfpkcBi0g71XphlKsrOgTsYMT8GRPN55Gpq0JD+Mn22GipM\nEeX1zC4Q15fvLeAKQpZW8yQrTHCqTUeVZ1HTqOSVV/b14ZD2gQ3AAH2Orrv2\nKpVNpAoGBuqXm6FgdD90dIdLYBNJlwOO0TpLQGWEWcavK9JsG9HNaaZzyaEP\nkTdF7QAm7x7a7vrOcF1rZZHrtrG1tszGVbnGmr5HJl9uk5lUu052DdehhJzr\neB2egsnMzpSjuqNFs1vbImy27FvvcYpnAFk7qiEr7gHDLPMFUHs73GDRhhYs\nvrpmyr74OTjybtzfcd3Yzlp35+mgSmGZ8ZfHjniwdE6q3O03N8hBhCcqWQhj\ngnJKWoSrz8tKmhXddgfC/4yQeMeN6RM8XcwCDAnI93zVOKCSnphViBTFSua9\nVFZC\r\n=oi2l\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.17.0":{"name":"mysql","version":"2.17.0","dependencies":{"bignumber.js":"6.0.0","readable-stream":"2.3.6","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"devDependencies":{"after":"0.8.2","eslint":"5.15.1","seedrandom":"3.0.1","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-BtsxHlxm5r0zJsM04NIq+vvn5YKMkq1AL9OMEu4kzeuOszYU6GC8ppQ8Yi7g7q3rHYgVS8otkMI7zToTPYvaKA==","shasum":"f1e053eb6ec5ac5d521e63594c4405aaac43af96","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.17.0.tgz","fileCount":60,"unpackedSize":431383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJct91yCRA9TVsSAnZWagAAZQcP+wUCO9fjNXziD58JYbmr\nE4LHeZBmgjGJuhTtHn/dj26EZ9fZERLtEKxLS4dgZIs3WNQLMUYDDSw9kFSx\nJ/SCxq+0yw3t8kadMFD8EmzQ3f7dddw3qqTHM44TMZFURjlMVD2bxJ0SNhDO\nqyvpPBJnpMM23cfTzTbmcZt0pd2nIRXW4TCc4jAh0/IixADiF+/HnT6296ji\nYSXsv1N6/suPf11JErA2zouH/pPrGDzyjnpvlCtQ49OXjS/XUm5c6oNqnScB\nPZyuAmzZ3qqSOeBL7b9t/i7rOVaaTfDUcSCC+9WkNK8J1AOwKQIgeL65+v+v\neX0wnwvrfMPAS7MFqTW4KXcCNyj0RLHhf/nIvPf07uDZ1GMJkCbGCpbiyQIZ\nx5+USQrTEMaQUAl1NMijBisOtfIfr/qpRlv5MsTkSPK1jyNG+Z0BxhY0gJGM\ng68T8oNLjFBFl0tG+JN7w4V/cHp8y0Ul+bJwVDyH3QrCW1QFGjQ9f1tYvuLm\ni8ZmOY8Po86mFTkwgzkKBNHGlTw0joV4T5ZfH7V83nYIxUkGqgwT+cbQWCad\nFzWKU2sOQG+UopCO7ywMwh5gXXBdQ2FtWcjVCuStXk8YuzsiRn2u14gI5re1\n/PwmffGoA6HFGSraESMENgE4zxRjssQ1EPBb9OZqg+6iU0DhnRsqZRQCG+mD\nv98m\r\n=fCBb\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.17.1":{"name":"mysql","version":"2.17.1","dependencies":{"bignumber.js":"7.2.1","readable-stream":"2.3.6","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"devDependencies":{"after":"0.8.2","eslint":"5.15.1","seedrandom":"3.0.1","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA==","shasum":"62bba4a039a9b2f73638cd1652ce50fc6f682899","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz","fileCount":60,"unpackedSize":431597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuOJKCRA9TVsSAnZWagAAL0sP/1YTR1G8lZxaMAFppGQG\nao8xI+h9+wQmuv/PRuG0WjE1ehzuo+Ajuwg/wHvBddBm+CoAd0eq6OjOatPh\nJKzIi7USdGC6/XJiL3QEHhY32kztCokraCG0le0FfbvuRzZSN+yudVI2Db/h\nnjFhMTxM/oyU0HY9M1zQHgR1H+tHACavYEvIUReMUTOH9DSdIW2Syu7yt44R\npW9Y+Fj/SmfqeZkPHVbR2uRSoTFNaYqW+mrjnHjkC5rKleq4lBoetRjGX6H5\nxdYj3CIPXZAbFv2dr//XjkIwBaa4EkeDBPUQy4SOVqeCEkjARGpZAiO8SOfR\nc+KnYk8unKhRXG2CW2n0i6ScilOQmFSj31hLq3/ngCn3YLWyGgInfdy7wdSf\nXQnZQdYbrRi6tKgUTRhg/L6zSih2KZQpRXx6uz/YXZr4Te0//jCHTpNiiCSE\nSShboA09ksBW6Njy2VUCz2HpDRdaa2+82EQrJ2vJ1JQYkXejAWZreq09bRoS\nKuKpumHXU/kzynBkik+x5yv7jKOt6OHQhyts546hyza2j7VRXvxUNQ8Zp2LC\nAbWJtrvwUWVwDTGCN3wU06RjJH+8p1bNA3hb2s0nag9xQa3mf0vFh81/lIz3\nNsX/O/Qow/UyLp6OtAMjK/wl4YFTEz9rb+hoaiMu+aXcOdcx93chjIepzOt0\n9r4x\r\n=68/l\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.18.0":{"name":"mysql","version":"2.18.0","dependencies":{"bignumber.js":"9.0.0","readable-stream":"2.3.7","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","seedrandom":"3.0.5","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-juoIQE2FAoa0qRX5gReXvxDJph6Pqdx4X7aJ2HBe9GRNPIYQIiOgfrFNd3AQ8FtyeKEx3eNNnrtcVIAchc/NOw==","shasum":"32b8163d92422c3345f62d5fa696172187975b17","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.18.0.tgz","fileCount":61,"unpackedSize":441899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJ07+CRA9TVsSAnZWagAAxlsP/36QTdXxBVqsmvoGTaUz\nhk0cmuNbo3bPvHS1j7AWl13BhEmmxQHqEw9QdaCVyg90ZYRHK3vzqp/L9O7u\nIL6jPXkyfF1UDI6sdW4kYn26lq/97klutWfE2TFhaVoLcsyWD6rfIMjkNMYJ\nba6apM5Y5tFlBkNteTdSnKwW81OVXUX7+b7euBCEQPkbWjsbrxkJUgHeBic/\nCRA4GaFGEVDuhf8LBUeQdkg62R6lILlXh66tLcAWH5qinwpeV3lujQD2U5JJ\nPIsCqMM+OGH1RRVsQSTSPktKSdANO/nM8NMI9Z45u7agaE/IEeHJo4UGP98O\nYiviLbyxSSh80pVYtVuiQ74fKkdp759faeHEI318VLYYEvoDe8tRNrCQ5ehL\nQ/9q5ZK3O/W/+RaKlzk0++czSWkiRP0y9cKAb9fW2wq7iaCrqJrLy9J5emQF\nAoyXGs7NPmUtPF6zUvGkOFhUbVHzCmZPfI/qlyvLZ3Qbv9/xVRrVkdqyiBFy\nh1y7RYpCVHKnYpU3nZ0sHPBXaR02Y0kZFNY5aRpsAJ+CwzSQKMlvcM4166Dx\nQ8N6ylL//kzXQ88i9XeBAj8uzxUDFt8mpvvqR0Vd1DlL6x/eAEX4cRZetD0T\n1Og1R2cNMAj5dEeYckDA9LOD0bdazoynJI4SNc5oSXxTYnSiVOIZWVW0tzCA\nJidk\r\n=n9Mk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.18.1":{"name":"mysql","version":"2.18.1","dependencies":{"bignumber.js":"9.0.0","readable-stream":"2.3.7","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","seedrandom":"3.0.5","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==","shasum":"2254143855c5a8c73825e4522baf2ea021766717","tarball":"https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz","fileCount":61,"unpackedSize":481504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKeFPCRA9TVsSAnZWagAASCUP/jK6PxvBy7AQbSbuTr03\nmBPRKJZ0Dvvk+stQvdDlYnLRkvqzceffwEhJn6RgwGCzLLqLF3sSHtemDWgA\nLM5bzzhT/vHbckexiA8IfEEat98z7xVc6vg+yyocTemL/bnQMpY24eVb+QDC\ngBxia5Cw8Va6eduSlYSUpF2imqUraUERjzuUxa6auVhly79moa9Gu2RgpPql\n7xNy84uaQ1dzQBCDATxRf7bqxcoWjHfUB/nU0REl7g3WHdSvY4TQPmr8zPAY\n0N//naIYz11hogu77g0to/rbqeQeYXID7MZ+IopfDo74o7bHofS7+Jd6/gJH\nuTHen+DRq7kp9QLczovy2wQvrNUD7thmjldQxNcnjTXvadTjTcvoVn85TzSF\nBmp2DGcFALvq7oal5ZG7IBQfXS/AGRdsPFBT0wvVvWqnY9rWRQjOGmqMcsTf\ngRDQdheAmIRuxbTrfz4oC4Pr7JXWO1eMVuyWC07Pn+8+UuDZdH7bMThwJvNO\n9OSMXU8NjKSqfznILvurO+3/Yd6c0ysGaxlX86kf37ePAVShRAXl8Pn+mrTS\numrstaeMbOIBWlGbKzQKTX5/JeYJ8igt6bZKiVseqWJ0i4vcgx8wdjkxpmzT\nFgihl+ZvCHvpBz8k6BMGhJDiGvGomzLLQUMu6+P0v5Cz875RCvKQN/Azo5lM\nL7CW\r\n=cOdX\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2020-01-23T18:09:21.740Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/33/e4/0690342961f2c325f441617f19d1c4c1d9f2879e636825d3f87c702aa818eb7303fb0598ab3d7fe7183cb180e48811673684fcbc7fb641557355fc598c32 b/data_node_red/.npm/_cacache/content-v2/sha512/33/e4/0690342961f2c325f441617f19d1c4c1d9f2879e636825d3f87c702aa818eb7303fb0598ab3d7fe7183cb180e48811673684fcbc7fb641557355fc598c32 new file mode 100644 index 0000000..27531bd --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/33/e4/0690342961f2c325f441617f19d1c4c1d9f2879e636825d3f87c702aa818eb7303fb0598ab3d7fe7183cb180e48811673684fcbc7fb641557355fc598c32 @@ -0,0 +1 @@ +{"name":"range-parser","dist-tags":{"latest":"1.2.1"},"versions":{"0.0.1":{"name":"range-parser","version":"0.0.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"dec6a8b9792caaef485e733b75b5b73fc7095770","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-0.0.1.tgz"},"engines":{"node":"*"}},"0.0.2":{"name":"range-parser","version":"0.0.2","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"034fafbd8b266f64d8effe8fa638392b2290b288","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-0.0.2.tgz"},"engines":{"node":"*"}},"0.0.3":{"name":"range-parser","version":"0.0.3","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"6e6488fb73843bd4bd626797f76b870da9765ae9","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-0.0.3.tgz"},"engines":{"node":"*"}},"0.0.4":{"name":"range-parser","version":"0.0.4","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"c0427ffef51c10acba0782a46c9602e744ff620b","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz"},"engines":{"node":"*"}},"1.0.0":{"name":"range-parser","version":"1.0.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"a4b264cfe0be5ce36abe3765ac9c2a248746dbc0","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz"}},"1.0.1":{"name":"range-parser","version":"1.0.1","devDependencies":{"istanbul":"0","mocha":"1","should":"2"},"dist":{"shasum":"f9da15b7451fe1b261959b63342dd92921d34da2","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.0.1.tgz"}},"1.0.2":{"name":"range-parser","version":"1.0.2","devDependencies":{"istanbul":"0","mocha":"1","should":"2"},"dist":{"shasum":"06a12a42e5131ba8e457cd892044867f2344e549","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz"},"engines":{"node":">= 0.6"}},"1.0.3":{"name":"range-parser","version":"1.0.3","devDependencies":{"istanbul":"0.4.0","mocha":"1.21.5"},"dist":{"shasum":"6872823535c692e2c2a0103826afd82c2e0ff175","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz"},"engines":{"node":">= 0.6"}},"1.1.0":{"name":"range-parser","version":"1.1.0","devDependencies":{"eslint":"2.9.0","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"425c2c5bf8b159d89513fe55f26c29d07b88512b","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.1.0.tgz"},"engines":{"node":">= 0.6"}},"1.2.0":{"name":"range-parser","version":"1.2.0","devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"f49be6b487894ddc40dcc94a322f611092e00d5e","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"},"engines":{"node":">= 0.6"}},"1.2.1":{"name":"range-parser","version":"1.2.1","devDependencies":{"deep-equal":"1.0.1","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.1.1"},"dist":{"integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==","shasum":"3cf37023d199e1c24d1a55b84800c2f3e6468031","tarball":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","fileCount":5,"unpackedSize":8457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1hb6CRA9TVsSAnZWagAA6MIP/2aFx73ToT5iGRN0mgZw\nLy7BEmRQkblBxo81k9Cvjt8jucfv/PtDUllITbke596JI/jHnb5oU5XV5Fzd\nK1WklG8rJC9z1y9iEaEe4pRcnvkPvkHtFMmPcYS9dm5XQyYw9fYcApRl/6zH\neuV/1CtwzQnCCErvfmolfSQ13v1d4LyWwrMRcG79uOGYBm8XSuTb3fKrEbBj\n3Gms6SQA2mC5ntKrf6VQRXzWvGIvWp2Q3RGFkgI1fnEPFfq7DbNqvHiD+KV4\nXV2wOD6B8pBlpbpSdNMHfUBSVSMHqFv9rOJqJumBAEZeUcwQzO06/2kUw5/f\nWCaFTHYTMCvSNX9qg71EoRZuuvNS0E53quFagdmTxq2vf04vz01PgRc5G64m\nTlz07gVHos3CQ9fU4NP0Aim1rtgOLJj15IF+z/kSSQoQZ6DhW5aTs8zCa3AS\nk4xWFafBuzyG1ApCSJrRCsqzY+oRqHPyTSZx5fBv75qZIEKe4moBpJ6EkaqZ\nRc6EqCpJjwOZVOssoPN3RiP+f/g43ytkVmUoYSXTs2bpkwNQUJShg2ItsT55\nkxkfZx8YbNxkFKp8S/uwUGQjbmXXspWozrkKNHikpzWMgDmuj9k2fx3LPo0c\nDSEq295fDQlKdxcfuGpOkH1PSzMHuIef26IGNDjMlOyBSY2FrQJaxpYtpQYq\nw1FC\r\n=GGKV\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2019-05-11T00:27:40.264Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/34/b3/ed6e4f70581b4a2d2970daef6ac62d6e20a5b1db000632327f42e0e1b9fb9f4211b6e287ff10ff22a0db95c5f78e20610730cd6d227011262acd9f50d77c b/data_node_red/.npm/_cacache/content-v2/sha512/34/b3/ed6e4f70581b4a2d2970daef6ac62d6e20a5b1db000632327f42e0e1b9fb9f4211b6e287ff10ff22a0db95c5f78e20610730cd6d227011262acd9f50d77c new file mode 100644 index 0000000..c6f3783 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/34/b3/ed6e4f70581b4a2d2970daef6ac62d6e20a5b1db000632327f42e0e1b9fb9f4211b6e287ff10ff22a0db95c5f78e20610730cd6d227011262acd9f50d77c @@ -0,0 +1 @@ +{"name":"mime","dist-tags":{"latest":"2.5.2"},"versions":{"1.0.0":{"name":"mime","version":"1.0.0","dist":{"tarball":"https://registry.npmjs.org/mime/-/mime-1.0.0.tgz","shasum":"0650d4779569617b3ee8bec7b8b7522e74af05be"},"engines":{"node":"*"}},"1.1.0":{"name":"mime","version":"1.1.0","dist":{"tarball":"https://registry.npmjs.org/mime/-/mime-1.1.0.tgz","shasum":"a067f5be8a6c9eeb83f3733c8c22dd142a603add"},"engines":{"node":"*"}},"1.2.1":{"name":"mime","version":"1.2.1","dist":{"shasum":"9876d4db9491091d154288a32893564839b8e04e","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.1.tgz"},"engines":{"node":"*"}},"1.2.2":{"name":"mime","version":"1.2.2","dist":{"shasum":"b9d6355bf53e8d7d56693130e451daff340148cf","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.2.tgz"},"engines":{"node":"*"}},"1.2.3":{"name":"mime","version":"1.2.3","dist":{"shasum":"7717bad7444f42d0c7d98cdc2a7b20068f837b68","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.3.tgz"},"engines":{"node":"*"}},"1.2.4":{"name":"mime","version":"1.2.4","devDependencies":{"async_testing":""},"dist":{"shasum":"11b5fdaf29c2509255176b80ad520294f5de92b7","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.4.tgz"},"engines":{"node":"*"}},"1.2.5":{"name":"mime","version":"1.2.5","dist":{"shasum":"9eed073022a8bf5e16c8566c6867b8832bfbfa13","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.5.tgz"},"engines":{"node":"*"}},"1.2.6":{"name":"mime","version":"1.2.6","dist":{"shasum":"b1f86c768c025fa87b48075f1709f28aeaf20365","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.6.tgz"},"engines":{"node":"*"}},"1.2.7":{"name":"mime","version":"1.2.7","dist":{"shasum":"c7a13f33a7073d9900f288436b06b3a16200865b","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.7.tgz"}},"1.2.8":{"name":"mime","version":"1.2.8","dist":{"shasum":"59178be248b0e06df58f6e04db3c8ee30084e110","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.8.tgz"}},"1.2.9":{"name":"mime","version":"1.2.9","dist":{"shasum":"009cd40867bd35de521b3b966f04e2f8d4d13d09","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.9.tgz"}},"1.2.10":{"name":"mime","version":"1.2.10","dist":{"shasum":"066380acbc3d78d4f4a51004d8988425dc68b9b1","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.10.tgz"}},"1.2.11":{"name":"mime","version":"1.2.11","dist":{"shasum":"58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10","tarball":"https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"}},"1.3.0":{"name":"mime","version":"1.3.0","dependencies":{"mime-db":"^1.2.0"},"dist":{"shasum":"447c1ac7a6e4df33e3eebf13419bd736f99067f0","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.0.tgz"},"hasInstallScript":true},"1.3.2":{"name":"mime","version":"1.3.2","dependencies":{"mime-db":"^1.2.0"},"bin":{"mime":"cli.js"},"dist":{"shasum":"10d5293d23d8d4086cd2666a936477a49764c3bf","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.2.tgz"},"hasInstallScript":true},"1.3.3":{"name":"mime","version":"1.3.3","devDependencies":{"mime-db":"^1.2.0"},"bin":{"mime":"cli.js"},"dist":{"shasum":"6b681b6c0c0f6b41aec7eb5ced09f43fc81d6caf","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.3.tgz"}},"1.3.4":{"name":"mime","version":"1.3.4","devDependencies":{"mime-db":"^1.2.0"},"bin":{"mime":"cli.js"},"dist":{"shasum":"115f9e3b6b3daf2959983cb38f149a2d40eb5d53","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"}},"1.3.5":{"name":"mime","version":"1.3.5","devDependencies":{"mime-db":"^1.22.0"},"bin":{"mime":"cli.js"},"dist":{"shasum":"dc1ee70b80fee4999cb0775c9f94beefc9a779a3","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.5.tgz"},"deprecated":"Breaks custom overrides. Upgrade to v1.3.6"},"1.3.6":{"name":"mime","version":"1.3.6","devDependencies":{"mime-db":"^1.22.0"},"bin":{"mime":"cli.js"},"dist":{"shasum":"591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0","tarball":"https://registry.npmjs.org/mime/-/mime-1.3.6.tgz"}},"1.4.0":{"name":"mime","version":"1.4.0","devDependencies":{"mime-db":"1.30.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-n9ChLv77+QQEapYz8lV+rIZAW3HhAPW2CXnzb1GN5uMkuczshwvkW7XPsbzU0ZQN3sP47Er2KVkp2p3KyqZKSQ==","shasum":"69e9e0db51d44f2a3b56e48b7817d7d137f1a343","tarball":"https://registry.npmjs.org/mime/-/mime-1.4.0.tgz"}},"2.0.0":{"name":"mime","version":"2.0.0","devDependencies":{"chalk":"1.1.3","github-release-notes":"0.9.0","mime-db":"1.30.0","mime-types":"2.1.15","mocha":"3.5.3","runmd":"0.1.8"},"bin":{"mime":"cli.js"},"dist":{"shasum":"e58e03970e44e57ed1394893b07e6312f71925e3","tarball":"https://registry.npmjs.org/mime/-/mime-2.0.0.tgz"}},"2.0.1":{"name":"mime","version":"2.0.1","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","github-release-notes":"0.9.0","mime-db":"1.30.0","mime-types":"2.1.15","mocha":"3.5.3","runmd":"0.1.8"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-n2tQ4rs2+GMucMG2YHTwaONXZ/31ZS/vseUOzK5mTecwE91c33tapG51M0kB2R30hi7sY5nKvIkLCdCgUzx6FQ==","shasum":"73dd0bc6a678836cc8322db5d8e4c3e6f3c06471","tarball":"https://registry.npmjs.org/mime/-/mime-2.0.1.tgz"},"engines":{"node":">=6.0.0"}},"2.0.2":{"name":"mime","version":"2.0.2","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","github-release-notes":"0.9.0","mime-db":"1.30.0","mime-types":"2.1.15","mocha":"3.5.3","runmd":"0.1.8"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-Oy3+E5KrKoJ99krrYGn+u6jkCEdyFiZX2plVzbuuGLWo5X5K2Oej0KcbF1vHsrB7WFPMSaNqfHjJ6ksLT6kxSg==","shasum":"097fd2c88c652eae48b2702d7cbf54c08d8ef50a","tarball":"https://registry.npmjs.org/mime/-/mime-2.0.2.tgz"},"engines":{"node":">=6.0.0"}},"1.4.1":{"name":"mime","version":"1.4.1","devDependencies":{"mime-db":"1.30.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==","shasum":"121f9ebc49e3766f311a76e1fa1c8003c4b03aa6","tarball":"https://registry.npmjs.org/mime/-/mime-1.4.1.tgz"}},"2.0.3":{"name":"mime","version":"2.0.3","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","github-release-notes":"0.9.0","mime-db":"1.30.0","mime-types":"2.1.15","mocha":"3.5.3","runmd":"0.1.8"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-TrpAd/vX3xaLPDgVRm6JkZwLR0KHfukMdU2wTEbqMDdCnY6Yo3mE+mjs9YE6oMNw2QRfXVeBEYpmpO94BIqiug==","shasum":"4353337854747c48ea498330dc034f9f4bbbcc0b","tarball":"https://registry.npmjs.org/mime/-/mime-2.0.3.tgz"},"engines":{"node":">=6.0.0"}},"1.5.0":{"name":"mime","version":"1.5.0","devDependencies":{"github-release-notes":"0.13.1","mime-db":"1.31.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==","shasum":"59c20e03ae116089edeb7d3b34a6788c5b3cccea","tarball":"https://registry.npmjs.org/mime/-/mime-1.5.0.tgz"}},"1.6.0":{"name":"mime","version":"1.6.0","devDependencies":{"github-release-notes":"0.13.1","mime-db":"1.31.0","mime-score":"1.1.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==","shasum":"32cd9e5c64553bd58d19a568af452acff04981b1","tarball":"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"},"engines":{"node":">=4"}},"2.0.5":{"name":"mime","version":"2.0.5","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","github-release-notes":"0.9.0","mime-db":"1.30.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-345FGKrFL5gB4gCt9tdpMJvjYnx6G3z2qBLB7SIHbZui0h1L9GKd6fXqiqa0ShzrIFy1VSydJOCrtRSi907Ggw==","shasum":"6cce36408c28535b29088d9d263288e72c786775","tarball":"https://registry.npmjs.org/mime/-/mime-2.0.5.tgz"},"engines":{"node":">=6.0.0"}},"2.1.0":{"name":"mime","version":"2.1.0","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.32.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-jPEuocEVyg24I7hWcF6EL5qH0OQ3Ficy95tXA9eNBN6qXsIopYi/CJl3ldTUR+Sljt2rP2SkWpeTcAMon/pjKA==","shasum":"1022a5ada445aa30686e4059abaea83d0b4e8f9c","tarball":"https://registry.npmjs.org/mime/-/mime-2.1.0.tgz"},"engines":{"node":">=6.0.0"}},"2.2.0":{"name":"mime","version":"2.2.0","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.32.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==","shasum":"161e541965551d3b549fa1114391e3a3d55b923b","tarball":"https://registry.npmjs.org/mime/-/mime-2.2.0.tgz"},"engines":{"node":">=6.0.0"}},"2.2.1":{"name":"mime","version":"2.2.1","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.33.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-8QKdX8CfqnkIn19mnv3Zq78RugzDXZNrcewbZrjf8h0R6aN5Daizum/OoXxqVVhkFW3Ow4LFSn5iOi7qJJOMoA==","shasum":"3a5e605c59bba00fb731f6a1f84701638131671d","tarball":"https://registry.npmjs.org/mime/-/mime-2.2.1.tgz","fileCount":16,"unpackedSize":70404},"engines":{"node":">=6.0.0"}},"2.2.2":{"name":"mime","version":"2.2.2","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.33.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-A7PDg4s48MkqFEcYg2b069m3DXOEq7hx+9q9rIFrSSYfzsh35GX+LOVMQ8Au0ko7d8bSQCIAuzkjp0vCtwENlQ==","shasum":"6b4c109d88031d7b5c23635f5b923da336d79121","tarball":"https://registry.npmjs.org/mime/-/mime-2.2.2.tgz","fileCount":16,"unpackedSize":70633},"engines":{"node":">=6.0.0"}},"2.3.0":{"name":"mime","version":"2.3.0","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.33.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-9dE160rWamibtUmS5kbAuu8Fbk9FihwN7ZYuWXbd6hSFKEKCqRe0hJ8pnqvmNOt5ljmXHmnKTxinIkdM1mKuPw==","shasum":"e3e1ae7f594b15ef331b79083216b50333ed2ebd","tarball":"https://registry.npmjs.org/mime/-/mime-2.3.0.tgz","fileCount":18,"unpackedSize":71566},"engines":{"node":">=6.0.0"}},"2.3.1":{"name":"mime","version":"2.3.1","devDependencies":{"chalk":"1.1.3","eslint":"4.6.1","mime-db":"1.33.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"3.5.3","runmd":"1.0.1","standard-version":"4.2.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==","shasum":"b1621c54d63b97c47d3cfe7f7215f7d64517c369","tarball":"https://registry.npmjs.org/mime/-/mime-2.3.1.tgz","fileCount":18,"unpackedSize":71814},"engines":{"node":">=4.0.0"}},"2.4.0":{"name":"mime","version":"2.4.0","devDependencies":{"chalk":"1.1.3","eslint":"^5.9.0","mime-db":"^1.37.0","mime-score":"1.0.1","mime-types":"2.1.15","mocha":"5.2.0","runmd":"1.0.1","standard-version":"^4.4.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==","shasum":"e051fd881358585f3279df333fe694da0bcffdd6","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.0.tgz","fileCount":18,"unpackedSize":73137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/HUOCRA9TVsSAnZWagAAivMP/3yoL2JUahYb3gcIho77\no1CWe26C8rnZwNnYXzGv9WaaTJ/xfKr6enMW7+G6moemwgX+3h3roAp7eVFz\nGKpkhLNO07geRl0rETZafFaHyxVZd9BuKy+OR/Q/DkjNvza+xeDqJ2SB4wdt\n8WzNT7rH9Espnxvxf9KhA0YWoDUPSOqL/PbAZySuYcmxn4keNJQ+yp0PLDOE\n63shHVVsL7/Vy3qKKUMRAmfwuQCl8CpLL8wi2r/FfNbuvaAKC34d8Y33Aus2\naN2ehHBcUKFjrGor4VwU+G2MYPhGnZovc5w7QIMcBovRRoM8kQKXOyItvF/X\nuW5uzUY9wFRBnkj9tlGTEa4RvFBCp2PvkWpczQsorZZjYbKUC4C9ISSCUzN6\nELoGMxMkQsLIZdwVEFgYUxsN/9Xzjgdac7KEyFw+cQhGfNGrl9rathNWXUEF\nYQn8XMW4jghZ7ZfftVaPARo8mX/Eg1x8VAujrOoupOAPhCgp9sBbb0s00TqW\njdpF5PD3Ny5O6SPFweDwka2WsSV9/elxeDDg8cWTpj+p0SSFbT0d4b/kUWZq\nzgaAWqNSVoC6BpcGS5I7svxJ4dlQbL2BTyu6VXQdzKJ++CGsUn5X+7UBHAe4\nenT4ZUCHJP3mhSNE582PMO/HwNKUYraVHHHAmRfyGBGqnS/mg33WxZrtPgcs\n2zvm\r\n=7Hld\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.1":{"name":"mime","version":"2.4.1","devDependencies":{"benchmark":"^2.1.4","chalk":"2.4.2","eslint":"5.16.0","mime-db":"1.38.0","mime-score":"1.1.2","mime-types":"2.1.22","mocha":"6.0.2","runmd":"1.2.1","standard-version":"5.0.2"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-VRUfmQO0rCd3hKwBymAn3kxYzBHr3I/wdVMywgG3HhXOwrCQgN84ZagpdTm2tZ4TNtwsSmyJWYO88mb5XvzGqQ==","shasum":"19eb7357bebbda37df585b14038347721558c715","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.1.tgz","fileCount":19,"unpackedSize":74127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpQClCRA9TVsSAnZWagAAYVUP/3jqCEnfpQ5MM2Z1eM9X\nvrFQx51FLk41ONqqaw8W82zXdWdQUMmNPMFRrqccP2SLl6tcWPoYZABMTJBB\nQy40c6FE2gSyI5M+S3hUUP8p06UkD0g8uKUr4vCtVflCAQ9O4cdw/LK/Rh7x\n5MrV9NH38H3r4+G7xz5vthmVG3LM/mexaYXyD+7dn7aV4QolPgqslMNoYKjo\n25a/D5ZPvAuQOoVYF2yrHJs17mSiPVnIxA7WwkueF9EKttYOCPZRsEUUxcWC\neXCweZ0GF1a5JuFDpJrK3TctjBxbiFbUgJ5cR6NKTf9rmROTZ/iy2HIenahS\nPpRr/KnynSFosPB2NZnjpU5JXq4rW80dYOgjx36CQ2/8ndTsewL8h9GWUqA/\no/A5TjxG8rfIlva+7K/z0DDrBRke9woHEJl9wOHfuIHuu+2AdxuLd7XKOcEj\ny9ZpvaZnLejPgYxs3DgbOb9jugy0DGGzvkzVBySsc6q/moHNx2epBMcYw0ti\nK9bUFRoqFFbAa6y9DBn0vnONV2+FSCvdXqL528Ygk8HQ3JUEAIZHPP45J6H5\nW/o9dgebeOPRGFFfBgod7o53KbK+Jh3iQ6Gr2AsYYBkYa2cLqQ4jaaIplD3q\naPvaJK9razBBKTB5a9vvXbSNhc7hfp8L0NhiRH6E00olnKggjH3NoYQgm4+/\nOJjP\r\n=UFF/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.2":{"name":"mime","version":"2.4.2","devDependencies":{"benchmark":"^2.1.4","chalk":"2.4.2","eslint":"5.16.0","mime-db":"1.38.0","mime-score":"1.1.2","mime-types":"2.1.22","mocha":"6.0.2","runmd":"1.2.1","standard-version":"5.0.2"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==","shasum":"ce5229a5e99ffc313abac806b482c10e7ba6ac78","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.2.tgz","fileCount":19,"unpackedSize":74360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqkA1CRA9TVsSAnZWagAAggkP/RAyGuatr02wOmMFLwLz\nlC20G3opBTIEuh+hknPf/CcDnEWK+WF3Wc255bEr9z9ocInDa/dj9KpZj1LC\nCfdXWFjDsTHsRYeAUmS770Yc6+8e8GE8vc2UFM7jk6ZnwG9xagV+v8Xm9YAs\nRtd7BN7tXre/fngrG5kcaLHvcDC72+VQ7dkvIDJq0Im9mdI5VmFmP20A60Ng\nkC03fLT2bB53WNLsXGUoX2TEwVF7BW8i5IgLwuVjfCrO3B9n1DToqHht5u9u\n8/K99pwX73Ps/na/iPppvLRcwCFIiL8hcZ7yH95Lr05tFZPiadcJQ5zEyFcj\n2C+kFRpI5FkCVyS356+z2csvWY7XXhclWKxKWHC9/Uxq7qf5QvukQbagwdrh\nLtn9WyRPYf4vZ9BgdAhsAjLfEHOG5aek8hzI2mrJJ60kL/SuKLTVwC7AZkQ2\nwM3lFSp7dWxczqp1tP9E9bOYIj/s7FdeauWpoYSMfTQuDiLCGblR/b6ieB6g\nXVk/2FMtCvAhPlKsBUjP0kG1Y81TbUVgxu30cfjDQWPKZ6v2zLjg+NY8skPS\nMAlLuA3Eju89X7gQykBwlv9RNNXVv1y0D2LlnsIjttPfo3RX+/PmrD1GhN7P\nt9A4GKJ9WTUwK2njcLt8qHHehTTnHF/qM8/idGoez98Z2Z/yGuWRoD8FH4yK\n2Uzj\r\n=chBD\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.3":{"name":"mime","version":"2.4.3","devDependencies":{"benchmark":"^2.1.4","chalk":"2.4.2","eslint":"5.16.0","mime-db":"1.38.0","mime-score":"1.1.2","mime-types":"2.1.22","mocha":"6.0.2","runmd":"1.2.1","standard-version":"5.0.2"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==","shasum":"229687331e86f68924e6cb59e1cdd937f18275fe","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.3.tgz","fileCount":19,"unpackedSize":74508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3B0tCRA9TVsSAnZWagAA448QAKQAmUAlViGYaqHe5CyB\n1th8GxX+J9t6msjV0ffe1ZGti+RZWQ30rCRuLCkyg4GxQ0lBkWbzOPe/IA6B\ntq6lQ3UZAU8j/bjApETdsbktCiHFStB8/XPpnh4q3kG3o0BTyGZn2564PR//\nZH+rPhZNmpQe/6oqF3CAUa5ilXxOENGcFWxlwKLzCVULP50TiA+bgSxyMdT2\n/x6SBImaasjkW3XyOjQbjWbxu6JLmiutUGxSkUDXPeKyGbEOCHYwL6bSCbrr\nucdBEZpz9p7v/hdm8J2E1DbJZHhSH79wy1b0jeH1MFUckfLLPgRIxaa4jhZY\nRuL80s4UBPQZqcUEOYwnoiAedUT0u4Yq4d0n807jHKpmQ6Lcjwbr9xxF8Bd9\nlpt6c9V/ckV/2VWi1+44MLDJ/vd+Os4wDs9PWcSaYoD97k/5xjrdj/9Y808S\nzByUs330xcgLtElwgqcAySu3PC122RKQI6g+06JHZR+X2yqpSsQV1PeumBdY\nC4XcXUlxobxVC3rXE7fnXyr53I+Nqi4WdEFYLPwYEGpqG6T7MaQa5B2doqy8\naZ1PSS3klKF2qTpG4vAO9POqZysuxD1epqG+G1gQYuaVWZQeuOtgCcMiG4YR\n0T2N40r+8kAaLNgB9vUcUibm4bHIJwS1KCJ54Pz6ut3XxzfTBlGtZjfIe4nC\nie3z\r\n=kNJP\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.4":{"name":"mime","version":"2.4.4","devDependencies":{"benchmark":"*","chalk":"*","eslint":"*","mime-db":"1.40.0","mime-score":"*","mime-types":"2.1.24","mocha":"6.1.4","runmd":"*","standard-version":"6.0.1"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==","shasum":"bd7b91135fc6b01cde3e9bae33d659b63d8857e5","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.4.tgz","fileCount":19,"unpackedSize":74946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+q7iCRA9TVsSAnZWagAAIMMP/1ZtPOiAAL1b2hbekcva\nTgHAroKFU8SdPR3d8nXnDd56g4KbQ5rlWM1EgVlbVSAuuCYQU5R0MKqgaq9P\np27JNBEQTPHsmTAZeN9mZ1R2TTqAwped5RcjOFsrZDYvGPGSOiTKPtv6ZGzg\n/zVJwLNR3DaWNSsu3lnw2/K2kyucZ3xSPRnGgIpzbdJ/pheNbXS6lCA7mWMZ\nDFkhAOB3Z19J3ahFPd/+AdxswtknFOmKEefudXXbdezjYyf355LWz7Cta/OM\nc+B8DRq/TrBqcko2ixY1dJwAs9h8eRnO/QnJT/ysRwFC/YnnrNyq/S77WbfP\nlkW1QZfLFDOt6qsK3ll3VLLf/hxK4Sdsvc+aaFvK4f8rRK8WSppMgPaVLAtV\nilOUETPqj0wp/ycurCxwVJi+Hm8hQyfh05X1glFVUD8YYp9IZIWpOVOqqLdN\n7TL1UDx4oJ0/wpdjy3wSAKfavGk5JuL9TnXa3TbJoRJ8T1FkGhWvAmnRsO20\ncrNCIK1kwl2OBnYjMx54uEs7783DTntg3f/HWGg73tfmv9RLe5ngWYK81FrU\nV5AfTrtiAFyYspJug9uHfRkeoBX5eEhzfOzGyVgcyoMcVMCWY/+dtYMQeAeh\n9ImJrg9jQT7wFMPxeFEaCIYGhnsqjFl7N/8jJwNH6dKfsPxA9KuDf7PVhUG9\ne0MT\r\n=TmH0\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.5":{"name":"mime","version":"2.4.5","devDependencies":{"benchmark":"*","chalk":"*","eslint":"*","mime-db":"1.44.0","mime-score":"1.2.0","mime-types":"2.1.27","mocha":"7.1.2","runmd":"*","standard-version":"7.1.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==","shasum":"d8de2ecb92982dedbb6541c9b6841d7f218ea009","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.5.tgz","fileCount":10,"unpackedSize":57965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerKx5CRA9TVsSAnZWagAA4pUP/1WBKA/862DBDbaBOo/I\no6LAeulSAUufwBKXAY6G521veNZtHcKSuzd63y8l+2RCAou5qplQrZLYn/Pk\nXd9lLcHNKk3zamil9sgjJn7biQMmxnFriz/2fO/Q2ZDXNK17nqIfmbz7a9Xs\noZhXsdVfRYY+kD+MEdTO4VAJdxZ/TsZUO6HbBSoyCynG6QxnbxqKKjG9FAgv\nbMYacbihCVXcI2yCa3bo3QWRgJepD8hYPZG0YzW5NDowolOitSHSDIN2HnTJ\nAEmUJuNhktFIiv1BZNbEwqUIZly6JQhlEUweIyaQG0+zFkO7Ea8S4VP4ZnIL\nfpZBAYtuybtgzJaN6poT9AwEgLxFQv8jkbuULA+Ma33WrOINinersZtb+laM\npcjRhq0ItxoYLBkraWYUmAC1g4d3ia39hzO68fLvvw96VkDnJlTGkIubg5UH\nguuGTMFPEJCyCWcT2mXtTwwepWuygSMCAkLlDIisb/4bcxx+8CyagpGdobS0\n1J+GxCbXrocWprb0ZGYaFR3hk9Z2hbKu3JRN1XOgICd5psUbi7tvlonbpmPD\n7r50RZn48VTMyKdmMuonFSZ7QzZBUVecoc91dioLBHPE3yRJ8JPok0/8edk4\nwm2EE7lrO1JNxJq9VvGMaPlDE/LQus34NoBIAnyCodgx0ZcF4hmTJnWlPAaK\nVNqo\r\n=xHhY\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.6":{"name":"mime","version":"2.4.6","devDependencies":{"benchmark":"*","chalk":"*","eslint":"*","mime-db":"1.44.0","mime-score":"1.2.0","mime-types":"2.1.27","mocha":"7.1.2","runmd":"*","standard-version":"7.1.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==","shasum":"e5b407c90db442f2beb5b162373d07b69affa4d1","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.6.tgz","fileCount":10,"unpackedSize":57564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezpQLCRA9TVsSAnZWagAAw7QP/1YrEg60oynV6aaZqeGO\nm8DhTTe29D2i7rj4uKotubnKClrS49729E8aO86DBJP0UqNStnobuegOQL6F\nqdLLJgi5B1CCyuezV54uKA5evj6jBObPsfFfWnDDY4jmReRQfS2qPyOzPtdG\nKs8RdF+j9DknwBYjGm2dOGjX94tYZoiLY6ZSPS4mDZ2bAnMt9zKwYONMbvV2\nwzqR2Rawu5CyVOr2UnervidQvy74A0jIXKGBoyhzSJ+VXqevMLiJGWWnGoz+\nSBM25Vg6Rdu1hHnlmiaLoMEN8QF78lmgMcQunA/61nDkAkICGo8QUubp/j18\najUrKY4+y96VIuf15doCrrqQbNIMeCG8gCLZ2deI7A5c96at0xgIa2+67n5E\nz+G5jEvoHzPCYApDpCKg1RD2vIhJv6WywzhlHGXVEL7k/DgUcN/PLENqPykC\nGxgz5MxGU7hVkQYc+EQHnHRLWq8A9/YedNqOYpP5UCJoWfAT9M4ypRjjNa3n\ntgVVzv6cpzwBoBhh/2qV1NSvftnudyRZpj42s8RMQUCJgT/g5hwXZxQ43hg/\nIzrHaEkvXpr/MENUZIRXWUIPx6Iy4EONYox0VJ7P4/7zDO1AboNUGO0s8wD5\n+7mwLy1/ne+8ns7FisY0ArSxjz/egyln9n4MNzItCOwpRvy5F9x1JU7kqruF\n7uCG\r\n=i4GN\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.4.7":{"name":"mime","version":"2.4.7","devDependencies":{"benchmark":"*","chalk":"4.1.0","eslint":"7.15.0","mime-db":"1.45.0","mime-score":"1.2.0","mime-types":"2.1.27","mocha":"8.2.1","runmd":"*","standard-version":"9.0.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==","shasum":"962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74","tarball":"https://registry.npmjs.org/mime/-/mime-2.4.7.tgz","fileCount":10,"unpackedSize":58019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2XFbCRA9TVsSAnZWagAAGBIP/2wnqIr5EzLqIXw7b3Sn\nuBwB9awWa8A+4QA6oUp+KN03WQ0j38FXTyl9dJjE10w5TrQNDUeVZWAWZ5Xo\nOt9v8ZlpVYpvF/4oRhSByvOu0aNX5gBs0nSeWSIkGj0K8cMxcFrMQOO9FFlB\neuiTsLAty7l1lB/p/2CAxSJVUtdGdordPe2t5VMHzO9T/CDlMNOWcb1a5cuq\nXLPzHOTOjTmraZWvTg0OWjWEb3PQkR7D+DKgPbIyVuBjqbvelPilVHwZzR4b\n1zFBLyNBrteu19aBgNd6gOumIgTmGlTpFWfxl75hjhfh8Itt1BpkTQwJgwCW\n195bdYNl/D9xaedrbRpu98kaEAXCpwVOFaA4syMJa3TS3wB1FzlYSG1sovaa\nSddAw45zlT0KPz6+/MDK/q0qWS/Wb5S0uim2Griz9WLK8aWj6KoJgMi/YGZ6\nElPafMFYjWYtcpmyMds5Bpj65mfd1/m4ODhy2XZh/ye5gjwftBtlH9pyWwbd\n1ZONAKgR/k4mZ4BTLSXy4sF8lLRKlGsO/6EDsE1GghaiLs1CY9Khy5dDXUIR\n/zF0hQY+tVunBtYnIuU7iY5uY5kWrUO1eW2IX60+Iqf0BUPVIWDRS7AfM63x\n7OPbkleWlq+nORS9Z5q2NkuxC1C/I418nwGFjodOt02SwRc+HgUckd4UxvQq\nsGZm\r\n=46Lb\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.5.0":{"name":"mime","version":"2.5.0","devDependencies":{"benchmark":"*","chalk":"4.1.0","eslint":"7.15.0","mime-db":"1.45.0","mime-score":"1.2.0","mime-types":"2.1.27","mocha":"7.2.0","runmd":"*","standard-version":"9.0.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==","shasum":"2b4af934401779806ee98026bb42e8c1ae1876b1","tarball":"https://registry.npmjs.org/mime/-/mime-2.5.0.tgz","fileCount":10,"unpackedSize":59334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAjgjCRA9TVsSAnZWagAA+o8P/0+GZju4bxlcw7ovI3mp\nIAZ7a5EKqnEGeV4q2Crj9LTWTezX1rpytEZXJLMrUHHs2IGa7UYHE3fYE3zN\nxwMbE/pGh/WvTdknObSVF3PpcOlJM6Otp+tZ7V3IgzmDucy8QffPyJpMu+6y\nk348N4mBvTH/jA3ylRI4imEp0ZDisnPHfHp5wMMU64KTVKvcec0m7HjhuW1Z\nQ0zKGNWUPa5FUdFH9fIQ50B4Ph0maziVSjNdZO7FT68dvyb29rCV1jfSGXFb\n1qcuQfoUC7zKAQi7yBQvEC6OesYWhZaJrY902cdC80IyAxqDoXN1dcIiWunv\nCCYvDb5ViTrA/ATlLgeToYNWgQIOaYv13rwf2GBba3EblpbTcJVJXgYcIIvm\nTMfV5UmYCq/mUjNQlbs1R/U1YCIP/lLPYdICanis9Pv4Ihc0qowL9ujCPMLN\nHoj8jJSVfqR7UyBC56p4APFvAaSl62autYOp3b0aGmKo8hAZU5Qbw0QYDkTG\nOlvPHyY0tXXMPYQnTf5GS+tLx/+HwlE76+O9OmL5o114z/KZezKWBvm+o7KD\nvtZGfR8icY0iNw5OZoXKCGSlnrtXOrkzuBYj6Fwt0AIgI3u5uIntr83Py9HD\ntnibfsRG8zr7sEVhzAQ5uRlV/pZAELk2Uq4g+tZJy9dipksjmjYodKt1wcxN\nXmdt\r\n=k+zX\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}},"2.5.2":{"name":"mime","version":"2.5.2","devDependencies":{"benchmark":"*","chalk":"4.1.0","eslint":"7.20.0","mime-db":"1.46.0","mime-score":"1.2.0","mime-types":"2.1.28","mocha":"8.3.0","runmd":"*","standard-version":"9.1.0"},"bin":{"mime":"cli.js"},"dist":{"integrity":"sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==","shasum":"6e3dc6cc2b9510643830e5f19d5cb753da5eeabe","tarball":"https://registry.npmjs.org/mime/-/mime-2.5.2.tgz","fileCount":10,"unpackedSize":59664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLVliCRA9TVsSAnZWagAADsoP/3fqPwQLQl/bpVjg5cxP\nIbYPkY3c6h6wvNBPLPby/nooeQ+dqCUkj8+2mU1VnsEwVcBa7mY3QLt5Bmca\nyr4HHTZNVyHXEPEYP85adkT5SlC4l2uW6PcoSEqaZFf+oAVOWhHy+BFSz3oQ\nYyf0TObWLwZH5PGpkYtoff6FfHuF6HJRHf80UcnZUQUGQxMpeItre4HJMGeu\nwkq4UTBwCvFB/baJH+zPNH9vQcLqZeRu/z3+D5KdnMAPCm2AhU/VEhKVgvo1\nOWsu2Imu4C7Zj+p43mDf768FsMLS9bP3+fkxjvQNNFjEM8gOA2tswbV6sfeI\nV1fvj9xd8LZpHdna2p96MtQ8+84Hh3t/dxgWFutUb1UUnhihpvTU7uNgwhC+\nYutgkr0s7Cgw3NBiUyOOtsI50QsOppUQNiVuOPGRJrxndHFWyEtonBe3AQwu\nX4hLmYQeKppfxR1cWAWm+KrGv7O6+tP34bMDbUOg08hWUrzFoCKboFunthAU\nlUsZwJ9k3TnFyPJaziZNifgsvQD35OeeCTokSpXqvc4JWYikh0MRYWVAquXc\nYeryrs82NYgO2RXVYNwkiaJx2qAmBmijGzpQ3yIAa9mykv16HzTkuoXpEOTt\nL0vQ1j1cZtEZsFPOM0ZUmmHXDvnqy+isFm555PFOz11fC4tiRtQBXHZIbpSt\nb6Kb\r\n=cO7j\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=4.0.0"}}},"modified":"2021-02-17T17:59:02.281Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/36/5c/64933a624bdedb1ddf1ebee85be27656bbf8f8df55f8d7fbcefbcc28540d208e72c9e7645838e602c2c86cdd23e215a7b6b6914ec8d6aeda4d85896655b1 b/data_node_red/.npm/_cacache/content-v2/sha512/36/5c/64933a624bdedb1ddf1ebee85be27656bbf8f8df55f8d7fbcefbcc28540d208e72c9e7645838e602c2c86cdd23e215a7b6b6914ec8d6aeda4d85896655b1 new file mode 100644 index 0000000..d2d7f79 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/36/5c/64933a624bdedb1ddf1ebee85be27656bbf8f8df55f8d7fbcefbcc28540d208e72c9e7645838e602c2c86cdd23e215a7b6b6914ec8d6aeda4d85896655b1 @@ -0,0 +1 @@ +{"name":"component-emitter","dist-tags":{"latest":"1.3.0"},"versions":{"1.1.2":{"name":"component-emitter","version":"1.1.2","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"296594f2753daa63996d2af08d15a95116c9aec3","tarball":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz"}},"1.1.3":{"name":"component-emitter","version":"1.1.3","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"2bf887a4a9fc856eafcabcd82a43eb42a57eec6f","tarball":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.3.tgz"}},"1.2.0":{"name":"component-emitter","version":"1.2.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"ccd113a86388d06482d03de3fc7df98526ba8efe","tarball":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz"}},"1.2.1":{"name":"component-emitter","version":"1.2.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"137918d6d78283f7df7a6b7c5a63e140e69425e6","tarball":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"}},"1.3.0":{"name":"component-emitter","version":"1.3.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"integrity":"sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==","shasum":"16e4070fba8ae29b679f2215853ee181ab2eabc0","tarball":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz","fileCount":5,"unpackedSize":8001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctO4ICRA9TVsSAnZWagAAIwkP/2seJl5R6k04DzjI2I4D\ns/OxuiaQjcjhXseLkEuSdRNzJKdeGdL9nujc6/zYzbhWfIyUpes9FetRnsut\nGMpM2ClspSTxKGIxkHyvTFzYEM/nBHjwfxlDuiT2siCpCIoRvRV5440MyrBU\nNio6j/uAlAVSPUDzXYNUvzdsMl+2mAJUcgXmrFFvn2hI2tJbDJ8UuMdZ9++R\nk8vPm5Dm7XL7b3LmZZZ9Y5JndyZuISGeAPL2bbRYOm+0p9ozA4FGtpJysVIe\ntOTuiXZfvMSgXVYgGP0avYXbx40L6X+Kcwmm1W2P7Owz3T6r7oVmtnvk4Z8/\nZbWLeJ5Pbq61e+1udRLidmCtKz6X5oafK4bElnQ4Oa1zrjP/bwLlkmfaLPOc\n3dZiPnOZ8TwbLFmH7Fc2yL2Vx3mcYQ7p+e4wcWcxlAVJA74GXzg/7+a79GSq\nl5b62nbeU7dvU831b375PZaa5RpGs7Tbw4hsOV14kCLd2khmOLwF4u1xmMTZ\n8r45Qjb2ZO+3rGSWOM2SGdl6Biw4SGXeC1WalAY1PaY1Bd1MDjCqqqNeKGC8\nwrKD/koSSGKzcKi54OffLLi63Rwk7rLeu4/kF+RKw5EzI/eQcB/EK6gSfJOP\nm/ErUTK3436UgHhg6/XHyj1JVM6zrOJnaEHwyqVtd6xkXF/Nm0FhsvXOxyA4\n0xVL\r\n=o9Hs\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-04-15T20:48:14.119Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/37/51/f747ca7f302fd92266345e38a9f8711926045d7ffba637ae1beea7ae76ae699e043a9b51ee70a97ac42d8adb2a8dd1cb704c779b93a7491ac9bcdcb3e67b b/data_node_red/.npm/_cacache/content-v2/sha512/37/51/f747ca7f302fd92266345e38a9f8711926045d7ffba637ae1beea7ae76ae699e043a9b51ee70a97ac42d8adb2a8dd1cb704c779b93a7491ac9bcdcb3e67b new file mode 100644 index 0000000..d20320f --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/37/51/f747ca7f302fd92266345e38a9f8711926045d7ffba637ae1beea7ae76ae699e043a9b51ee70a97ac42d8adb2a8dd1cb704c779b93a7491ac9bcdcb3e67b @@ -0,0 +1 @@ +{"name":"send","dist-tags":{"latest":"0.17.1"},"versions":{"0.0.1":{"name":"send","version":"0.0.1","dependencies":{"debug":"*","mime":"1.2.6","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"0d04102e8ac681fb635dc7030e9c9b41de683e00","tarball":"https://registry.npmjs.org/send/-/send-0.0.1.tgz"}},"0.0.2":{"name":"send","version":"0.0.2","dependencies":{"debug":"*","mime":"1.2.6","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"8792a53497bb91b62973b588179eb4c5ed0ff7fd","tarball":"https://registry.npmjs.org/send/-/send-0.0.2.tgz"}},"0.0.3":{"name":"send","version":"0.0.3","dependencies":{"debug":"*","mime":"1.2.6","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"4d5f843edf9d65dac31c8a5d2672c179ecb67184","tarball":"https://registry.npmjs.org/send/-/send-0.0.3.tgz"}},"0.0.4":{"name":"send","version":"0.0.4","dependencies":{"debug":"*","mime":"1.2.6","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"2d4cf79b189fcd09610e1302510ac9b0e4dde800","tarball":"https://registry.npmjs.org/send/-/send-0.0.4.tgz"}},"0.1.0":{"name":"send","version":"0.1.0","dependencies":{"debug":"*","mime":"1.2.6","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"cfb08ebd3cec9b7fc1a37d9ff9e875a971cf4640","tarball":"https://registry.npmjs.org/send/-/send-0.1.0.tgz"}},"0.1.1":{"name":"send","version":"0.1.1","dependencies":{"debug":"*","mime":"~1.2.9","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"0bcfcbd03def6e2d8612e1abf8f4895b450c60c8","tarball":"https://registry.npmjs.org/send/-/send-0.1.1.tgz"}},"0.1.2":{"name":"send","version":"0.1.2","dependencies":{"debug":"*","mime":"~1.2.9","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"c2744e98111bf1bb62eb4996dfda8a9980752984","tarball":"https://registry.npmjs.org/send/-/send-0.1.2.tgz"}},"0.1.3":{"name":"send","version":"0.1.3","dependencies":{"debug":"*","mime":"~1.2.9","fresh":"0.1.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"a7875daa6802d31e2ce32fdad98d3664c51ecea3","tarball":"https://registry.npmjs.org/send/-/send-0.1.3.tgz"}},"0.1.4":{"name":"send","version":"0.1.4","dependencies":{"debug":"*","mime":"~1.2.9","fresh":"0.2.0","range-parser":"0.0.4"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"be70d8d1be01de61821af13780b50345a4f71abd","tarball":"https://registry.npmjs.org/send/-/send-0.1.4.tgz"}},"0.2.0":{"name":"send","version":"0.2.0","dependencies":{"debug":"*","mime":"~1.2.9","fresh":"~0.2.1","range-parser":"~1.0.0"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.0.1","connect":"2.x"},"dist":{"shasum":"067abf45cff8bffb29cbdb7439725b32388a2c58","tarball":"https://registry.npmjs.org/send/-/send-0.2.0.tgz"}},"0.3.0":{"name":"send","version":"0.3.0","dependencies":{"buffer-crc32":"0.2.1","debug":"0.8.0","fresh":"~0.2.1","mime":"1.2.11","range-parser":"~1.0.0"},"devDependencies":{"mocha":"*","should":"*","supertest":"0.10.0","connect":"2.x"},"dist":{"shasum":"9718324634806fc75bc4f8f5e51f57d9d66606e7","tarball":"https://registry.npmjs.org/send/-/send-0.3.0.tgz"}},"0.4.0":{"name":"send","version":"0.4.0","dependencies":{"debug":"0.8.1","finished":"1.1.4","fresh":"~0.2.1","mime":"1.2.11","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.19.0","should":"~3.3.2","supertest":"~0.13.0"},"dist":{"shasum":"e7ec677072e5651f18712dd493732fcf422cec39","tarball":"https://registry.npmjs.org/send/-/send-0.4.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.1":{"name":"send","version":"0.4.1","dependencies":{"debug":"0.8.1","finished":"1.1.4","fresh":"~0.2.1","mime":"1.2.11","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"6e9a5d41cb9c0fb3514226446fa319aed46d433d","tarball":"https://registry.npmjs.org/send/-/send-0.4.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.2":{"name":"send","version":"0.4.2","dependencies":{"debug":"1.0.1","finished":"1.2.1","fresh":"~0.2.1","mime":"1.2.11","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"7641b23126fc54975d2be37674b36d6bb617b26c","tarball":"https://registry.npmjs.org/send/-/send-0.4.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.3":{"name":"send","version":"0.4.3","dependencies":{"debug":"1.0.2","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"9627b23b7707fbf6373831cac5793330b594b640","tarball":"https://registry.npmjs.org/send/-/send-0.4.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.5.0":{"name":"send","version":"0.5.0","dependencies":{"debug":"1.0.2","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"fc0f7e2f92e29aebfd8a1b2deb4a394e7a531a68","tarball":"https://registry.npmjs.org/send/-/send-0.5.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.6.0":{"name":"send","version":"0.6.0","dependencies":{"debug":"1.0.3","depd":"0.3.0","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"a59da9265db7c35141e1079cf1f368ee0d59b3ab","tarball":"https://registry.npmjs.org/send/-/send-0.6.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.7.0":{"name":"send","version":"0.7.0","dependencies":{"debug":"1.0.4","depd":"0.4.2","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"f479a05c57d36bf564311dd1e3825b84b26ae336","tarball":"https://registry.npmjs.org/send/-/send-0.7.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.7.1":{"name":"send","version":"0.7.1","dependencies":{"debug":"1.0.4","depd":"0.4.3","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"fe02421cd5fb3bcc10287f72c18e94818e3f80fd","tarball":"https://registry.npmjs.org/send/-/send-0.7.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.7.2":{"name":"send","version":"0.7.2","dependencies":{"debug":"1.0.4","depd":"0.4.4","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"3b5f696f701d56fe115b860cc6b3f0cdbfbf7804","tarball":"https://registry.npmjs.org/send/-/send-0.7.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.7.3":{"name":"send","version":"0.7.3","dependencies":{"debug":"1.0.4","depd":"0.4.4","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"2caa2e2627d2f9c2d109d3f5c2942935480aa993","tarball":"https://registry.npmjs.org/send/-/send-0.7.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.7.4":{"name":"send","version":"0.7.4","dependencies":{"debug":"1.0.4","depd":"0.4.4","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"c80a084cb8eb940345f3ab4ce9e4ee25cb6647cb","tarball":"https://registry.npmjs.org/send/-/send-0.7.4.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.0":{"name":"send","version":"0.8.0","dependencies":{"debug":"1.0.4","depd":"0.4.4","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"cbe98d58c1bdaa666bb95acb68ed1df92e1ae6e1","tarball":"https://registry.npmjs.org/send/-/send-0.8.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.1":{"name":"send","version":"0.8.1","dependencies":{"debug":"1.0.4","depd":"0.4.4","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"86bbdcc3fb0ce6ebc2d15af977d94c0b300d02eb","tarball":"https://registry.npmjs.org/send/-/send-0.8.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.2":{"name":"send","version":"0.8.2","dependencies":{"debug":"1.0.4","depd":"0.4.4","dethroy":"1.0.2","escape-html":"1.0.1","finished":"1.2.2","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"f67efb2e3c89bf5bcd90ccda8683b17f1cbfd0ac","tarball":"https://registry.npmjs.org/send/-/send-0.8.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.3":{"name":"send","version":"0.8.3","dependencies":{"debug":"1.0.4","depd":"0.4.4","destroy":"1.0.3","escape-html":"1.0.1","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"593886004fcb968a1b5727814a32b388b3b99083","tarball":"https://registry.npmjs.org/send/-/send-0.8.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.4":{"name":"send","version":"0.8.4","dependencies":{"debug":"1.0.4","depd":"0.4.4","destroy":"1.0.3","escape-html":"1.0.1","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"259cd04e507df26a70eaa5b66cb20a26d8f18d65","tarball":"https://registry.npmjs.org/send/-/send-0.8.4.tgz"},"engines":{"node":">= 0.8.0"}},"0.8.5":{"name":"send","version":"0.8.5","dependencies":{"debug":"1.0.4","depd":"0.4.4","destroy":"1.0.3","escape-html":"1.0.1","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"37f708216e6f50c175e74c69fec53484e2fd82c7","tarball":"https://registry.npmjs.org/send/-/send-0.8.5.tgz"},"engines":{"node":">= 0.8.0"}},"0.9.0":{"name":"send","version":"0.9.0","dependencies":{"debug":"~2.0.0","depd":"0.4.4","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.3.0","fresh":"0.2.2","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"778341d52134c895a4ecaf44a4a30d762f8ee3eb","tarball":"https://registry.npmjs.org/send/-/send-0.9.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.9.1":{"name":"send","version":"0.9.1","dependencies":{"debug":"~2.0.0","depd":"0.4.4","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.3.0","fresh":"0.2.4","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"d93689f7c9ce36bd32f8ee572bb60bda032edc23","tarball":"https://registry.npmjs.org/send/-/send-0.9.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.9.2":{"name":"send","version":"0.9.2","dependencies":{"debug":"~2.0.0","depd":"0.4.5","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.3.1","fresh":"0.2.4","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.2"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"77d22a0f462604451917075c6f52e69c2b3b6e25","tarball":"https://registry.npmjs.org/send/-/send-0.9.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.9.3":{"name":"send","version":"0.9.3","dependencies":{"debug":"~2.0.0","depd":"0.4.5","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.4.0","fresh":"0.2.4","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.2"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"b43a7414cd089b7fbec9b755246f7c37b7b85cc0","tarball":"https://registry.npmjs.org/send/-/send-0.9.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.10.0":{"name":"send","version":"0.10.0","dependencies":{"debug":"~2.1.0","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.0","fresh":"0.2.4","mime":"1.2.11","ms":"0.6.2","on-finished":"2.1.0","range-parser":"~1.0.2"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.14.0"},"dist":{"shasum":"2f984b703934c628b72b72d70557b75ca906ea6c","tarball":"https://registry.npmjs.org/send/-/send-0.10.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.10.1":{"name":"send","version":"0.10.1","dependencies":{"debug":"~2.1.0","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.0","fresh":"0.2.4","mime":"1.2.11","ms":"0.6.2","on-finished":"~2.1.1","range-parser":"~1.0.2"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.0","should":"~4.1.0","supertest":"~0.14.0"},"dist":{"shasum":"7745c50ec72f115115980e8fb179aec01900e08a","tarball":"https://registry.npmjs.org/send/-/send-0.10.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.11.0":{"name":"send","version":"0.11.0","dependencies":{"debug":"~2.1.1","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.1","fresh":"0.2.4","mime":"1.2.11","ms":"0.7.0","on-finished":"~2.2.0","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"d66b83b44576061ebd49551943b3c5c1f61cb308","tarball":"https://registry.npmjs.org/send/-/send-0.11.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.11.1":{"name":"send","version":"0.11.1","dependencies":{"debug":"~2.1.1","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.1","fresh":"0.2.4","mime":"1.2.11","ms":"0.7.0","on-finished":"~2.2.0","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"1beabfd42f9e2709f99028af3078ac12b47092d5","tarball":"https://registry.npmjs.org/send/-/send-0.11.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.12.0":{"name":"send","version":"0.12.0","dependencies":{"debug":"~2.1.1","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.1","fresh":"0.2.4","mime":"1.3.4","ms":"0.7.0","on-finished":"~2.2.0","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"d8c124a27797c47206d8fd52d37cd27ef15a506e","tarball":"https://registry.npmjs.org/send/-/send-0.12.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.12.1":{"name":"send","version":"0.12.1","dependencies":{"debug":"~2.1.1","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.1","fresh":"0.2.4","mime":"1.3.4","ms":"0.7.0","on-finished":"~2.2.0","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"65e2e4330eae6b4d1082a921bfc8e9c9f1776b31","tarball":"https://registry.npmjs.org/send/-/send-0.12.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.12.2":{"name":"send","version":"0.12.2","dependencies":{"debug":"~2.1.3","depd":"~1.0.0","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.5.1","fresh":"0.2.4","mime":"1.3.4","ms":"0.7.0","on-finished":"~2.2.0","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.7","mocha":"~2.2.1","supertest":"~0.15.0"},"dist":{"shasum":"ba6785e47ab41aa0358b9da401ab22ff0f58eab6","tarball":"https://registry.npmjs.org/send/-/send-0.12.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.12.3":{"name":"send","version":"0.12.3","dependencies":{"debug":"~2.2.0","depd":"~1.0.1","destroy":"1.0.3","escape-html":"1.0.1","etag":"~1.6.0","fresh":"0.2.4","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.2.1","range-parser":"~1.0.2"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.9","mocha":"2.2.4","supertest":"~0.15.0"},"dist":{"shasum":"cd12dc58fde21e4f91902b39b2fda05a7a6d9bdc","tarball":"https://registry.npmjs.org/send/-/send-0.12.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.13.0":{"name":"send","version":"0.13.0","dependencies":{"debug":"~2.2.0","depd":"~1.0.1","destroy":"1.0.3","escape-html":"1.0.2","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.3.1","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.3.0","range-parser":"~1.0.2","statuses":"~1.2.1"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.9","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"518f921aeb0560aec7dcab2990b14cf6f3cce5de","tarball":"https://registry.npmjs.org/send/-/send-0.13.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.13.1":{"name":"send","version":"0.13.1","dependencies":{"debug":"~2.2.0","depd":"~1.1.0","destroy":"~1.0.4","escape-html":"~1.0.3","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.3.1","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.3.0","range-parser":"~1.0.3","statuses":"~1.2.1"},"devDependencies":{"after":"0.8.1","istanbul":"0.4.2","mocha":"2.3.4","supertest":"1.1.0"},"dist":{"shasum":"a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7","tarball":"https://registry.npmjs.org/send/-/send-0.13.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.13.2":{"name":"send","version":"0.13.2","dependencies":{"debug":"~2.2.0","depd":"~1.1.0","destroy":"~1.0.4","escape-html":"~1.0.3","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.3.1","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.3.0","range-parser":"~1.0.3","statuses":"~1.2.1"},"devDependencies":{"after":"0.8.1","istanbul":"0.4.2","mocha":"2.4.5","supertest":"1.1.0"},"dist":{"shasum":"765e7607c8055452bba6f0b052595350986036de","tarball":"https://registry.npmjs.org/send/-/send-0.13.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.14.0":{"name":"send","version":"0.14.0","dependencies":{"debug":"~2.2.0","depd":"~1.1.0","destroy":"~1.0.4","escape-html":"~1.0.3","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.5.0","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.0"},"devDependencies":{"after":"0.8.1","eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.1","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"6b192d05c0b87c48263738bba9d50d04b2328b77","tarball":"https://registry.npmjs.org/send/-/send-0.14.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.14.1":{"name":"send","version":"0.14.1","dependencies":{"debug":"~2.2.0","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.5.0","mime":"1.3.4","ms":"0.7.1","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.0"},"devDependencies":{"after":"0.8.1","eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.1","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"a954984325392f51532a7760760e459598c89f7a","tarball":"https://registry.npmjs.org/send/-/send-0.14.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.14.2":{"name":"send","version":"0.14.2","dependencies":{"debug":"~2.2.0","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.7.0","fresh":"0.3.0","http-errors":"~1.5.1","mime":"1.3.4","ms":"0.7.2","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.1","eslint-plugin-standard":"1.3.2","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"39b0438b3f510be5dc6f667a11f71689368cdeef","tarball":"https://registry.npmjs.org/send/-/send-0.14.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.0":{"name":"send","version":"0.15.0","dependencies":{"debug":"2.6.1","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.0","fresh":"0.5.0","http-errors":"~1.6.1","mime":"1.3.4","ms":"0.7.2","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.16.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"f0185d6466fa76424b866f3d533e2d19dd0aaa39","tarball":"https://registry.npmjs.org/send/-/send-0.15.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.1":{"name":"send","version":"0.15.1","dependencies":{"debug":"2.6.1","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.0","fresh":"0.5.0","http-errors":"~1.6.1","mime":"1.3.4","ms":"0.7.2","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.17.0","eslint-config-standard":"7.0.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"8a02354c26e6f5cca700065f5f0cdeba90ec7b5f","tarball":"https://registry.npmjs.org/send/-/send-0.15.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.2":{"name":"send","version":"0.15.2","dependencies":{"debug":"2.6.4","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.0","fresh":"0.5.0","http-errors":"~1.6.1","mime":"1.3.4","ms":"1.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"f91fab4403bcf87e716f70ceb5db2f578bdc17d6","tarball":"https://registry.npmjs.org/send/-/send-0.15.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.3":{"name":"send","version":"0.15.3","dependencies":{"debug":"2.6.7","depd":"~1.1.0","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.0","fresh":"0.5.0","http-errors":"~1.6.1","mime":"1.3.4","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"5013f9f99023df50d1bd9892c19e3defd1d53309","tarball":"https://registry.npmjs.org/send/-/send-0.15.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.4":{"name":"send","version":"0.15.4","dependencies":{"debug":"2.6.8","depd":"~1.1.1","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.0","fresh":"0.5.0","http-errors":"~1.6.2","mime":"1.3.4","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"985faa3e284b0273c793364a35c6737bd93905b9","tarball":"https://registry.npmjs.org/send/-/send-0.15.4.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.5":{"name":"send","version":"0.15.5","dependencies":{"debug":"2.6.8","depd":"~1.1.1","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.6.2","mime":"1.3.4","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"32ef6c8d820c9756597c3174b8c9dd51e3319be2","tarball":"https://registry.npmjs.org/send/-/send-0.15.5.tgz"},"engines":{"node":">= 0.8.0"}},"0.15.6":{"name":"send","version":"0.15.6","dependencies":{"debug":"2.6.9","depd":"~1.1.1","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.6.2","mime":"1.3.4","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"20f23a9c925b762ab82705fe2f9db252ace47e34","tarball":"https://registry.npmjs.org/send/-/send-0.15.6.tgz"},"engines":{"node":">= 0.8.0"}},"0.16.0":{"name":"send","version":"0.16.0","dependencies":{"debug":"2.6.9","depd":"~1.1.1","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.6.2","mime":"1.4.1","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"16338dbb9a2ede4ad57b48420ec3b82d8e80a57b","tarball":"https://registry.npmjs.org/send/-/send-0.16.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.16.1":{"name":"send","version":"0.16.1","dependencies":{"debug":"2.6.9","depd":"~1.1.1","destroy":"~1.0.4","encodeurl":"~1.0.1","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.6.2","mime":"1.4.1","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.3.1"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.0","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"integrity":"sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==","shasum":"a70e1ca21d1382c11d0d9f6231deb281080d7ab3","tarball":"https://registry.npmjs.org/send/-/send-0.16.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.16.2":{"name":"send","version":"0.16.2","dependencies":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.6.2","mime":"1.4.1","ms":"2.0.0","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.4.0"},"devDependencies":{"after":"0.8.2","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"integrity":"sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==","shasum":"6ecca1e0f8c156d141597559848df64730a6bbc1","tarball":"https://registry.npmjs.org/send/-/send-0.16.2.tgz","fileCount":5,"unpackedSize":46571},"engines":{"node":">= 0.8.0"}},"0.17.0":{"name":"send","version":"0.17.0","dependencies":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.7.2","mime":"1.6.0","ms":"2.1.1","on-finished":"~2.3.0","range-parser":"~1.2.0","statuses":"~1.5.0"},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","supertest":"4.0.2"},"dist":{"integrity":"sha512-NYR0jCuwnBaGA2X5bO3+QDZmmJ+PUCvFCRTED5nx9l/BK3Pr8mD8Ryvk9bw08JJUdXxt2u+tVIGoqJPrHWGqSA==","shasum":"6d190beaaf08c5cf7e325ded024f1a7cd934ed9a","tarball":"https://registry.npmjs.org/send/-/send-0.17.0.tgz","fileCount":5,"unpackedSize":48043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczLPjCRA9TVsSAnZWagAAzrIP/30L3J0n3A7tIHr+BqYX\nvEBFSet7QNTYYmdiunNkEVZaiJtrJTRspaipTRtBrJw7Bmjhe9Fi5pvan3gi\nd1lLBQMWSfVJoSLAwpDtBzmq73e2QNs8e3tH9cmYNBX79oFKNa2CNoftiZtD\n1QMphhjmUD7Ead/YCS/lroNY2TvJjkOscsk7DiVFbu4YKGldqVDz/qLeQPV9\nMxpQcWkS0yKla9N8y4mrLBmEjKwKNsDiyWP5BJIhDWNLWcI3yICNpY3Z3pcz\n9X7VPZNMnpuFSpqZ37C/a5cfTjki0roBd4vGgNC4B72N+4MNF11HQzeMjNL1\neolCWtS6WDijOtUBuiV8+BHM4iElyDQ2PkelCM/23AXLC4wLxYH+JiLVsHNP\nm/gfHK7Y/Brr44r5zyKk4BP+HOgaRefzEPv0jJ+lkdH9N/R22Cw1yMn1FVZ0\nbRDCFlQyKRCbPgKIzEREGcU/3Z+KMbc8JDKs6RfCxQx5WXEjFKgx1aLM0inR\nIeBv/v6T+8Xjm6XbXZFNK5VOuP2ujKEjjK9JRp6lD3aJOe51XUzq/jwARnXr\n5h9adHpY4i55gxmBGKln/muQ3ADZG+bZp372JVT5nAJK83/Y4P0InuUrgoyj\nuVBSj+Fl5Xh1JP31D2aTEm3OAFUAKh2r8rn7qiAjevnByBC0X89EJTYzFiS6\nrNoQ\r\n=F+qh\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}},"0.17.1":{"name":"send","version":"0.17.1","dependencies":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.7.2","mime":"1.6.0","ms":"2.1.1","on-finished":"~2.3.0","range-parser":"~1.2.1","statuses":"~1.5.0"},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","supertest":"4.0.2"},"dist":{"integrity":"sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","shasum":"c1d8b059f7900f7466dd4938bdc44e11ddb376c8","tarball":"https://registry.npmjs.org/send/-/send-0.17.1.tgz","fileCount":5,"unpackedSize":48173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1igoCRA9TVsSAnZWagAA4xIP/RwpQJfYKVcRmNymna4k\n8R7ZXHoC9MyoxLCBvNuzZ5uy/HCYYVgPR7ilzmDfDQInJZJOZUBiMXFBs413\ntyXBv5Y0kXVARuXPBcy/pH6cVCn5nFlOneEj+ntNo5mrFCJxysxCR9xfoG7o\nuKfVrPmKRVm7dLJBuJzPzjQZEL1b6GqV3+aMypBNdGwK8E53MgJodwdZQbvg\nixSOMJ1D0e9qY4afOZII9Ejpoxk3+bu5+UadK++vYtWFCh2REhd+dzpD8FTu\nAah/Ub1jt7WHb2rJNclhxh+DsiIwWukCIpJ1dsPSBTQ+MQjoAXNrJdVxnMcj\n7uwXW/7wRho0o5q59JfUH98zv0GeIYjfjLfhS8uHm43niDtvnTLKe3ZTJqVY\nMPQz71+VfaTE5rHKpyrHxEhj1MGKFwAGQbNtrhx2HVvtLMz+qNLAeCa6rUPR\n48U9yJ2HfEhlm+y08i43lEtdY+Sk5oNtG+Wk1PUUlPdbXW/Hma13ALXK57pP\n09Q8IZwbTGufeJnK2maVByHc+08GZ4FclVAd8h3pUeFxyK2MR9hbtlQx27sg\n4KXbizzUuPx4tO7qp9aa+oS8wS1qLn/BkrFJPKuzExvnnsrTttEc1S1LHbhg\nlVFT6U1oGpXQlLiBwbzotePJeFXcLZsxovN+NfCZT0csI83ivh5bREiUImkH\nIWSh\r\n=fsxk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}}},"modified":"2019-05-11T01:40:58.566Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/39/7f/17a8feffd5af5caa4c58c36c97b2cd797f6e8d2960690d741dd3fb8afca3ea7508716cf6bdf78867ce3704d95a90a43b257f9e7bdb770a3d43864a6318de b/data_node_red/.npm/_cacache/content-v2/sha512/39/7f/17a8feffd5af5caa4c58c36c97b2cd797f6e8d2960690d741dd3fb8afca3ea7508716cf6bdf78867ce3704d95a90a43b257f9e7bdb770a3d43864a6318de new file mode 100644 index 0000000..6b46420 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/39/7f/17a8feffd5af5caa4c58c36c97b2cd797f6e8d2960690d741dd3fb8afca3ea7508716cf6bdf78867ce3704d95a90a43b257f9e7bdb770a3d43864a6318de differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/3b/91/5781fe1ade5169e942be251abfa402abf32e3e42c0c29f3c9ceff92307dc29ace934081214236530f6fce39c200463f40c35e5a50af2f6cd930d527e4bb7 b/data_node_red/.npm/_cacache/content-v2/sha512/3b/91/5781fe1ade5169e942be251abfa402abf32e3e42c0c29f3c9ceff92307dc29ace934081214236530f6fce39c200463f40c35e5a50af2f6cd930d527e4bb7 new file mode 100644 index 0000000..8a038e1 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/3b/91/5781fe1ade5169e942be251abfa402abf32e3e42c0c29f3c9ceff92307dc29ace934081214236530f6fce39c200463f40c35e5a50af2f6cd930d527e4bb7 @@ -0,0 +1 @@ +{"name":"escape-html","dist-tags":{"latest":"1.0.3"},"versions":{"0.0.1":{"name":"escape-html","version":"0.0.1","dist":{"shasum":"160c25d8af49f4a7c140700697a92d1c218b901e","tarball":"https://registry.npmjs.org/escape-html/-/escape-html-0.0.1.tgz"}},"1.0.0":{"name":"escape-html","version":"1.0.0","dist":{"shasum":"fedcd79564444ddaf2bd85b22c9961b3a3a38bf5","tarball":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.0.tgz"}},"1.0.1":{"name":"escape-html","version":"1.0.1","dist":{"shasum":"181a286ead397a39a92857cfb1d43052e356bff0","tarball":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"}},"1.0.2":{"name":"escape-html","version":"1.0.2","dist":{"shasum":"d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c","tarball":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz"}},"1.0.3":{"name":"escape-html","version":"1.0.3","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4"},"dist":{"shasum":"0258eae4d3d0c0974de1c169188ef0051d1d1988","tarball":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"}}},"modified":"2018-03-07T07:20:00.737Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/3c/3a/4b168fbc4f08212b8212da0362f36df37194eec95c74fb496afd0d8b8c781cc218fbe8c9bb11c753f04ac69b49fa1582c73ff939d2f239d22803846955ef b/data_node_red/.npm/_cacache/content-v2/sha512/3c/3a/4b168fbc4f08212b8212da0362f36df37194eec95c74fb496afd0d8b8c781cc218fbe8c9bb11c753f04ac69b49fa1582c73ff939d2f239d22803846955ef new file mode 100644 index 0000000..e0e818a --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/3c/3a/4b168fbc4f08212b8212da0362f36df37194eec95c74fb496afd0d8b8c781cc218fbe8c9bb11c753f04ac69b49fa1582c73ff939d2f239d22803846955ef @@ -0,0 +1 @@ +{"name":"serve-static","dist-tags":{"latest":"1.14.1"},"versions":{"1.0.0":{"name":"serve-static","version":"1.0.0","dependencies":{"send":"0.1.4"},"devDependencies":{"connect":"^2.13.0","mocha":"^1.17.0","should":"^3.0.0","supertest":"~0.9.0"},"dist":{"shasum":"98efa31e6ae767b233bc44c77bd29140b2d31c6f","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.1":{"name":"serve-static","version":"1.0.1","dependencies":{"send":"0.1.4"},"devDependencies":{"connect":"^2.13.0","mocha":"^1.17.0","should":"^3.0.0","supertest":"~0.9.0"},"dist":{"shasum":"10dcbfd44b3e0291a131fc9ab4ab25a9f5a78a42","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.0.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.2":{"name":"serve-static","version":"1.0.2","dependencies":{"send":"0.2.0"},"devDependencies":{"connect":"^2.13.0","mocha":"^1.17.0","should":"^3.0.0","supertest":"~0.9.0"},"dist":{"shasum":"4129f6727b09fb031134fa6d185683e30bfbef54","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.0.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.3":{"name":"serve-static","version":"1.0.3","dependencies":{"send":"0.2.0"},"devDependencies":{"connect":"~2.14.1","mocha":"~1.17.1","should":"~3.1.3","supertest":"~0.9.0"},"dist":{"shasum":"3443a4002fb50d7fa0a777bb53103301e4d0c38a","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.0.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.4":{"name":"serve-static","version":"1.0.4","dependencies":{"parseurl":"1.0.1","send":"0.2.0"},"devDependencies":{"connect":"~2.14.1","mocha":"~1.18.2","should":"~3.3.0","supertest":"~0.10.0"},"dist":{"shasum":"426fedebe77bad21f373f1efcae09746639fba06","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.0.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.0":{"name":"serve-static","version":"1.1.0","dependencies":{"parseurl":"1.0.1","send":"0.3.0"},"devDependencies":{"connect":"~2.14.1","mocha":"~1.18.2","should":"~3.3.0","supertest":"~0.11.0"},"dist":{"shasum":"454dfa05bb3ddd4e701a8915b83a278aa91c5643","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.0":{"name":"serve-static","version":"1.2.0","dependencies":{"parseurl":"1.0.1","send":"0.4.0"},"devDependencies":{"connect":"~2.14.1","mocha":"~1.18.2","should":"~3.3.0","supertest":"~0.11.0"},"dist":{"shasum":"b711bde722cad70686c1add385c6020bcdb7d295","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.2.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.1":{"name":"serve-static","version":"1.2.1","dependencies":{"escape-html":"1.0.1","parseurl":"1.0.1","send":"0.4.1"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"a800a9de23dbd1ffb1258edb986128ee4a4ea03d","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.2.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.2":{"name":"serve-static","version":"1.2.2","dependencies":{"escape-html":"1.0.1","parseurl":"1.0.1","send":"0.4.2"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"6ffc6c23fad03bcd0710eceda844123bd71bc951","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.2.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.3":{"name":"serve-static","version":"1.2.3","dependencies":{"escape-html":"1.0.1","parseurl":"1.0.1","send":"0.4.3"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"93cecbc340f079ecb8589281d1dc31c26c0cd158","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.2.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.0":{"name":"serve-static","version":"1.3.0","dependencies":{"escape-html":"1.0.1","parseurl":"1.0.1","send":"0.5.0"},"devDependencies":{"istanbul":"0.2.13","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"0aba0b27c1b8264eee1a3f9c615886738d9727cb","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.3.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.1":{"name":"serve-static","version":"1.3.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.1.3","send":"0.5.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"95489d1bcf491d54350d5aeeb2cca53cd3b12d4f","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.3.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.2":{"name":"serve-static","version":"1.3.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.1.3","send":"0.6.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"d904a6cbf55f511c78138f6f45ee6e69d9d105ca","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.3.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.0":{"name":"serve-static","version":"1.4.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.7.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"03c6608035158e3bb999129d9793cddc7e0db772","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.4.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.1":{"name":"serve-static","version":"1.4.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.7.1"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"6814dc11c575db0394883af5ec2202ff989491b6","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.4.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.2":{"name":"serve-static","version":"1.4.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.7.2"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"0153b12368318402827aad902d0f124e79145092","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.4.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.3":{"name":"serve-static","version":"1.4.3","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.7.3"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"9f08c7dea1b15e2eb1382ae0e12b8a0de295de52","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.4.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.4.4":{"name":"serve-static","version":"1.4.4","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.7.4"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"9dc99f37a2c5e28cda2fe6045114620a62032f29","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.4.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.0":{"name":"serve-static","version":"1.5.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.2.0","send":"0.8.1"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"c0f19e3cb9bef0203258db282a3ddda9cb8e675c","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.5.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.1":{"name":"serve-static","version":"1.5.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.8.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"86185e202015641a1f962447f5695605cd8aa9c2","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.5.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.2":{"name":"serve-static","version":"1.5.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.8.2","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"565d369193a075edac7fa973550d88df154f7b66","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.5.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.3":{"name":"serve-static","version":"1.5.3","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.8.3","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"2e28efa5899686fd3ccdb97a80aa464002244581","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.5.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.5.4":{"name":"serve-static","version":"1.5.4","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.8.5","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"819fb37ae46bd02dd520b77fcf7fd8f5112f9782","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.0":{"name":"serve-static","version":"1.6.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.0","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"283f43b9051293691ab4979bf2e09b4482517677","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.1":{"name":"serve-static","version":"1.6.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"2f257563afbe931d28cee4aa3dfeddc975a87193","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.2":{"name":"serve-static","version":"1.6.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.2","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"c1390ff43941867250296b091391d25be7c87571","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.3":{"name":"serve-static","version":"1.6.3","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.3","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.13.0"},"dist":{"shasum":"b214235d4d4516db050ea9f7b429b46212e79132","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.4":{"name":"serve-static","version":"1.6.4","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.3","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.14.0"},"dist":{"shasum":"c512e4188d7a9366672db24e40d294f0c6212367","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.0":{"name":"serve-static","version":"1.7.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.10.0","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.5","should":"~4.0.0","supertest":"~0.14.0"},"dist":{"shasum":"af2ad4e619fa2d46dcd19dd59e3b034c92510e4d","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.7.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.1":{"name":"serve-static","version":"1.7.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.10.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.0","should":"~4.1.0","supertest":"~0.14.0"},"dist":{"shasum":"6ea54d5ba7ef563f00e5fad25d0e4f5307e9809b","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.7.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.7.2":{"name":"serve-static","version":"1.7.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.10.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"3164ce06d4e6c3459bdcc9d6018fb4fb35e84b39","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.7.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.8.0":{"name":"serve-static","version":"1.8.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.11.0","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"239e57bbfce030a8933d274e3fe7b55492ea267c","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.8.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.8.1":{"name":"serve-static","version":"1.8.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.11.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"08fabd39999f050fc311443f46d5888a77ecfc7c","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.8.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.6.5":{"name":"serve-static","version":"1.6.5","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.9.3","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.0","should":"~4.0.0","supertest":"~0.14.0"},"dist":{"shasum":"aca17e0deac4a87729f6078781b7d27f63aa3d9c","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.6.5.tgz"},"engines":{"node":">= 0.8.0"}},"1.9.0":{"name":"serve-static","version":"1.9.0","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.12.0","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"d304085813ee0a9b3e1c068c9062a56ad8424b44","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.9.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.9.1":{"name":"serve-static","version":"1.9.1","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.12.1","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.1.0","supertest":"~0.15.0"},"dist":{"shasum":"a611b2b8a2cfb5f89685f293cb365f3f5eb61451","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.9.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.9.2":{"name":"serve-static","version":"1.9.2","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.12.2","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.7","mocha":"~2.2.1","supertest":"~0.15.0"},"dist":{"shasum":"069fa32453557b218ec2e39140c82d8905d5672c","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.9.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.9.3":{"name":"serve-static","version":"1.9.3","dependencies":{"escape-html":"1.0.1","parseurl":"~1.3.0","send":"0.12.3","utils-merge":"1.0.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"5f8da07323ad385ff3dc541f1a7917b2e436eb57","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.9.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.10.0":{"name":"serve-static","version":"1.10.0","dependencies":{"escape-html":"1.0.2","parseurl":"~1.3.0","send":"0.13.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5","supertest":"1.0.1"},"dist":{"shasum":"be632faa685820e4a43ed3df1379135cc4f370d7","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.10.1":{"name":"serve-static","version":"1.10.1","dependencies":{"escape-html":"~1.0.3","parseurl":"~1.3.0","send":"0.13.1"},"devDependencies":{"istanbul":"0.4.2","mocha":"2.3.4","supertest":"1.1.0"},"dist":{"shasum":"7f80024368d7fcd7975d0c38844ec5d9b2c43ac4","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.10.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.10.2":{"name":"serve-static","version":"1.10.2","dependencies":{"escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.13.1"},"devDependencies":{"istanbul":"0.4.2","mocha":"2.3.4","supertest":"1.1.0"},"dist":{"shasum":"feb800d0e722124dd0b00333160c16e9caa8bcb3","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.10.3":{"name":"serve-static","version":"1.10.3","dependencies":{"escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.13.2"},"devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.1","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"ce5a6ecd3101fed5ec09827dac22a9c29bfb0535","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.11.0":{"name":"serve-static","version":"1.11.0","dependencies":{"escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.14.0"},"devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.2","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"dbe5fb4e4b63d4d11a824b5be3f368907e675bba","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.11.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.11.1":{"name":"serve-static","version":"1.11.1","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.14.1"},"devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.2","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"d6cce7693505f733c759de57befc1af76c0f0805","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.11.2":{"name":"serve-static","version":"1.11.2","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.14.2"},"devDependencies":{"eslint":"3.14.0","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"2cf9889bd4435a320cc36895c9aa57bd662e6ac7","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.0":{"name":"serve-static","version":"1.12.0","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.15.0"},"devDependencies":{"eslint":"3.16.1","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"150eb8aa262c2dd1924e960373145446c069dad6","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.1":{"name":"serve-static","version":"1.12.1","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.15.1"},"devDependencies":{"eslint":"3.17.0","eslint-config-standard":"7.0.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"7443a965e3ced647aceb5639fa06bf4d1bbe0039","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.2":{"name":"serve-static","version":"1.12.2","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.15.2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.2.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-node":"4.2.2","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"e546e2726081b81b4bcec8e90808ebcdd323afba","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.3":{"name":"serve-static","version":"1.12.3","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.15.3"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.2.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"4.2.2","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"9f4ba19e2f3030c547f8af99107838ec38d5b1e2","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.4":{"name":"serve-static","version":"1.12.4","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.1","send":"0.15.4"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.6.1","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.0","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"9b6aa98eeb7253c4eedc4c1f6fdbca609901a961","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.5":{"name":"serve-static","version":"1.12.5","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.2","send":"0.15.5"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"693a54118216f0310105c7180e5fdd6a50f654a5","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.5.tgz"},"engines":{"node":">= 0.8.0"}},"1.12.6":{"name":"serve-static","version":"1.12.6","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.2","send":"0.15.6"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"b973773f63449934da54e5beba5e31d9f4211577","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.12.6.tgz"},"engines":{"node":">= 0.8.0"}},"1.13.0":{"name":"serve-static","version":"1.13.0","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.2","send":"0.16.0"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"shasum":"810c91db800e94ba287eae6b4e06caab9fdc16f1","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.13.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.13.1":{"name":"serve-static","version":"1.13.1","dependencies":{"encodeurl":"~1.0.1","escape-html":"~1.0.3","parseurl":"~1.3.2","send":"0.16.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.0","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"integrity":"sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==","shasum":"4c57d53404a761d8f2e7c1e8a18a47dbf278a719","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.13.2":{"name":"serve-static","version":"1.13.2","dependencies":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.2","send":"0.16.2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"dist":{"integrity":"sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==","shasum":"095e8472fd5b46237db50ce486a43f4b86c6cec1","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz","fileCount":5,"unpackedSize":24364},"engines":{"node":">= 0.8.0"}},"1.14.0":{"name":"serve-static","version":"1.14.0","dependencies":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.3","send":"0.17.0"},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","safe-buffer":"5.1.2","supertest":"4.0.2"},"dist":{"integrity":"sha512-Kg15ayeXWLhAE5T9adD3xGcEHchIZsDUExIIfSTOzg6kgmIa86NP8NpuOAYKLbPEYU1OQ+KCQrtKh8AG3h7KAQ==","shasum":"fad67e9f36d8c670b93fffd0586afe634f6c88a5","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.0.tgz","fileCount":5,"unpackedSize":24749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0k4NCRA9TVsSAnZWagAA7mkQAI7fJzKb8h9eZnXTjYY8\nZTg81cXUpO2bJnIx7ZQkiyL4KQaO62FVuVF/T0l2fAuaqE9MqUWVFGuqyYN7\nu0ZO2vHCf3SZqqNxdBw+xMFD8mIHHyCsAy1se1TyI1yXpo9nbuh5a5aCL4Tm\n0Ly+NazfLOtu/YX7JUj2qwI0BscPJuWB6sUiOZC1pQshiGmOomAbrD/6s7nr\nDkFMFSs5B6/GpiYkh5gHh+JI2NXFxzxciUpHcq2Ef0G5sDbPt3I1p+tuL/EV\noI9lugHSRh6P5hyB9M60a+SeQAS4sRea77VigXNjotHUw7krTUgVA4+pJUdA\no4fEAJg0+rxUK6SEcI4vADXDqRU1CG7FQBgYle+wJdp3IwbEWd47sfZE1ZIW\nVXgK5HWU9+Di8TCTSasM8JSiwqsIJZTL3C3Q2R0Jilsw8JE8EIsgrx/gSlyM\nXnWa/JWRVpj/w64IGf+gH2nl36B9Y938bjaTKMEYxiHpWnu9Yl0yWixsD3kw\nOSyoLv1ZvGLml4u6g+EzCsRup8pZOtT2+TJFI0IHsVYbskdTAE7q5H6R0Ra0\nlwqgdqMdS83Bf80wc/B6XRH5ZJINxWglV6kUfiOMp3Y2dBt83aiePOqsaOKI\nQKHrB1EtbjNjez0YVrqGH0rVsCenXD6pu5YHkO1Hg3YsoTUEeMzyET0AQ6tJ\nHaMq\r\n=44Cy\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}},"1.14.1":{"name":"serve-static","version":"1.14.1","dependencies":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.3","send":"0.17.1"},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","safe-buffer":"5.1.2","supertest":"4.0.2"},"dist":{"integrity":"sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","shasum":"666e636dc4f010f7ef29970a88a674320898b2f9","tarball":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","fileCount":5,"unpackedSize":24894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1kQ5CRA9TVsSAnZWagAATzwP/j3OHYbfRHaSzvx+7R9w\nS65ncOxHfuv8DsFQRCJsWmkq1+px8WBIRCZiPePbZC4U/bH9ZnOSycKOWEn9\nc+YAWpOvR+JGFJjMI2KFn3kQgb//WFnD6Hg2d1wY9CeIGp5wfhyDpf7sl1oZ\n9MByAaTfHBxc46eoZ5w2drm7XlOseA5rk8r12NeN7q5JVVRJuPUS2k3Xu+sM\n4vv95+kKz9K4kNLxKfBxK28DNKk1zbtvfade6fMi24YfWVSJO+eiQZ2pCXXf\nx5I31i7gE6RMM2ijr/mwCsZn4zGMzWhnRgejTxEIQeEGm5skMP8MfeobUNon\nRb/XABMEAhWwYBssPwOccjlBPy+iK5KYxSihx28uIj++yreQIWqjdHaqeq7j\nZPdUitvLTfZ3PNCKwtjYqfbKQXZhGlMoT0fOIHYm7KXT2RRwi8XyZVR607xT\nBZVksFpf3K7uuoRWowRohNTpNRJZI90sUm08IBV3iL6XtJg4Rb/iGZCOUHnJ\nEcPKmQZxPKE/Af//RTqBQAOSfYSCoHrWzI7M07JEuGHsQSXB1eeXtZkVirqd\n9i9kSN/u1j7UMj6ml2OJTcH4mchvkPYTS+I+ailnzEPqyaXVZvYCOGTZ4OAl\ng5lKaWEDeYxdg2FwjWKRQCU39kaV7Ia47fTY0sDGfqXREPyJ3ZyhuMrBKHac\nMTiw\r\n=GE2J\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8.0"}}},"modified":"2019-05-11T03:40:43.146Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/40/4a/88a7e809fe4307794ba7edfe55bf76ed7911e9a471ff14c0505ff7ac163fdfb987e3c9429618ca37542bc83ff57c6c4f4a7231e6459ae1233d99f6836c0c b/data_node_red/.npm/_cacache/content-v2/sha512/40/4a/88a7e809fe4307794ba7edfe55bf76ed7911e9a471ff14c0505ff7ac163fdfb987e3c9429618ca37542bc83ff57c6c4f4a7231e6459ae1233d99f6836c0c new file mode 100644 index 0000000..ec5ca45 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/40/4a/88a7e809fe4307794ba7edfe55bf76ed7911e9a471ff14c0505ff7ac163fdfb987e3c9429618ca37542bc83ff57c6c4f4a7231e6459ae1233d99f6836c0c differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/41/30/b84108734d9ad9fccb7a92bd74394e909a8707072075c9eb57d7d9c39db9f08587d562e9640d9b20f40330a80db076de3d9f9b916a7e1bd07448a13b94b8 b/data_node_red/.npm/_cacache/content-v2/sha512/41/30/b84108734d9ad9fccb7a92bd74394e909a8707072075c9eb57d7d9c39db9f08587d562e9640d9b20f40330a80db076de3d9f9b916a7e1bd07448a13b94b8 new file mode 100644 index 0000000..65c0251 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/41/30/b84108734d9ad9fccb7a92bd74394e909a8707072075c9eb57d7d9c39db9f08587d562e9640d9b20f40330a80db076de3d9f9b916a7e1bd07448a13b94b8 @@ -0,0 +1 @@ +{"name":"statuses","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.1":{"name":"statuses","version":"1.0.1","dist":{"shasum":"e6e059e1bc769dfccd80fe7e9901a20a48b8ce9a","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.0.1.tgz"}},"1.0.2":{"name":"statuses","version":"1.0.2","dist":{"shasum":"6e8a73c2fb0886f5eecf78e0aa2a1b9ae92ab73b","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.0.2.tgz"}},"1.0.3":{"name":"statuses","version":"1.0.3","dist":{"shasum":"a7d9bfb30bce92281bdba717ceb9db10d8640afb","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.0.3.tgz"}},"1.0.4":{"name":"statuses","version":"1.0.4","dist":{"shasum":"a8b203f645cf475a66426f6be690205c85f3ebdd","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.0.4.tgz"}},"1.1.0":{"name":"statuses","version":"1.1.0","devDependencies":{"mocha":"1","istanbul":"0"},"dist":{"shasum":"937882caad053f8d808d845b333cfab9def03222","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.1.0.tgz"}},"1.1.1":{"name":"statuses","version":"1.1.1","devDependencies":{"mocha":"1","istanbul":"0"},"dist":{"shasum":"10d1811e1bd3182ea3f566bf6b4745cf8edee6cc","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.1.1.tgz"}},"1.2.0":{"name":"statuses","version":"1.2.0","devDependencies":{"csv-parse":"0.0.6","istanbul":"0","mocha":"1","request":"^2.44.0","stream-to-array":"^2.0.2"},"dist":{"shasum":"4445790d65bec29184f50d54810f67e290c1679e","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.2.0.tgz"}},"1.2.1":{"name":"statuses","version":"1.2.1","devDependencies":{"csv-parse":"0.0.6","istanbul":"0","mocha":"1","stream-to-array":"2"},"dist":{"shasum":"dded45cc18256d51ed40aec142489d5c61026d28","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"}},"1.3.0":{"name":"statuses","version":"1.3.0","devDependencies":{"csv-parse":"1.0.1","eslint":"2.10.2","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"1.21.5","stream-to-array":"2.2.0"},"dist":{"shasum":"8e55758cb20e7682c1f4fce8dcab30bf01d1e07a","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz"},"engines":{"node":">= 0.6"}},"1.3.1":{"name":"statuses","version":"1.3.1","devDependencies":{"csv-parse":"1.1.7","eslint":"3.10.0","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5","stream-to-array":"2.3.0"},"dist":{"shasum":"faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"},"engines":{"node":">= 0.6"}},"1.4.0":{"name":"statuses","version":"1.4.0","devDependencies":{"csv-parse":"1.2.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.0","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.3.2","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==","shasum":"bb73d446da2796106efcc1b601a253d6c46bd087","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.0":{"name":"statuses","version":"1.5.0","devDependencies":{"csv-parse":"1.2.4","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.9.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.7.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.3.2","stream-to-array":"2.3.0"},"dist":{"shasum":"161c7dac177659fd9811f43771fa99381478628c","tarball":"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","fileCount":6,"unpackedSize":11034},"engines":{"node":">= 0.6"}},"2.0.0":{"name":"statuses","version":"2.0.0","devDependencies":{"csv-parse":"4.8.8","eslint":"6.8.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.20.2","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.1.1","nyc":"15.0.1","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-w9jNUUQdpuVoYqXxnyOakhckBbOxRaoYqJscyIBYCS5ixyCnO7nQn7zBZvP9zf5QOPZcz2DLUpE3KsNPbJBOFA==","shasum":"aa7b107e018eb33e08e8aee2e7337e762dda1028","tarball":"https://registry.npmjs.org/statuses/-/statuses-2.0.0.tgz","fileCount":6,"unpackedSize":11666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenLN9CRA9TVsSAnZWagAATRcQAJUaqCVG9040tRrUxUdA\nIw3zgdZE2bFqllS/qFdwrho8dnxFhvVTZH9ufDQKFrnD52j7Zq/aF3j0UGEF\nW+1dSPzmleON/wagvwsi61GqsyNZWUOYYXsQtfJw6UtLrgcmAeNkXvcWyqvY\n9gWW8/27sMqpcECZLdXX9CaH9ZnBdJr8hIx/qUCAVKBhKLXTVN23/vrlguUM\nXPavbi0uuWy4qFYx1Pejs1BBgizSvD1/8oNf9IldtEX0vtIvE8JHBxCc1nFE\noQiTH+G8PUHUDvW14pxvMge+sXiLIYYfUipxBjzUVimv3QkeBUq9kLDjuwUO\nhegOeaxCqti73VlNHS+Xrgyqsr6nxcyDAiQcfVA4Kq8D3DEOUsBQK1BaDX3D\nuWNRi7mxDxP0I9IE6waj1kH8W4aaPY5q7rN4FDkeM5Cqd0BIQmlzOh1KrRsq\npgAAh+Jke6fDvegcPhNFXUsikAxbggbkBZtbana6lIcevuufOGQTmvktmcuw\nUHKixZEnuuhxR1OuGLU+PPGGugJcckRY56Xe37RriVXUZmWgPcBfb4mMKC2L\n52zMuRvy8j87j+uMN79TYdrZQw9DH+A428o22kKamIGBkGquXRIQu8sK1Is9\n6jOnhoilhjBZ7bgEa4snAlL1s2VeRpqdKWkwIVlGMYUWR73E0khTqgJ8Oblv\n9n90\r\n=DsWi\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}},"2.0.1":{"name":"statuses","version":"2.0.1","devDependencies":{"csv-parse":"4.14.2","eslint":"7.17.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.1.0","mocha":"8.2.1","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"dist":{"integrity":"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==","shasum":"55cb000ccf1d48728bd23c685a063998cf1a1b63","tarball":"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz","fileCount":6,"unpackedSize":12116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8WY8CRA9TVsSAnZWagAA5DAP/1u/ij728Le5810ddr92\nvmj83m+au1Dta0RO+rmFDQRCAXkh+gaDNLaLdDWnta9P/UkinjyygyHlyp3W\nog9H66bYGpC8X0BRSViqecioHol381r0zyPqYiMuqdjGXY3T1YTJlaP3pljk\nyquW47UJZVFKtcYziaIPR/19sv7rOORMESl9FWMgsfytqb/Q0i2Nv67/KIRI\nU8YhoQRSJmW8pIjV5xuu4DQUxSoOb8Cbf8I6EcW5e+eCkWVijls039QuJOHT\na6UwRPFnt2RS85NGWhS+sUPzjsKCmmCvFjljy0bM1BdpG1eCEMq7poZH+VDX\n9bwnr/Bpn6xaZLUFEImHLnLhbd8h+UX5YkzCqjGFLzy/kUbEIgGO+J2XRjao\nV8GmfWF+EMX0ndjL/KNXhOoFkYOiPdOmMJKCIhlmNa84u98eI0jE9ZLlyr0P\ncYgR6j54cbyLFlu/aYnRunORd5ym56b0c+2jk4WS/F8uuUJplgkj+ItCacwN\nfVywKbyRp82SdKWCM2/LLz9rJp3oZeQm/iyLrPF68dAi3rcUc0Zx5+QwLej2\nSofaV+5/ZYe8VY+81d7Aij83i5lGINmA2lF4V+NW3SQYMmKwusWoOmtSfb4F\noMgJ1+DVNwjdjhio5+CATfSA7/MuIvHLBp5TIhd2A/93od3IQobWc1B6ePGK\n7yaN\r\n=RV4K\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}}},"modified":"2021-01-03T06:37:51.416Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/42/50/87efe5cea062e10e5ea56befcac23e182a84cfce6fa3ac0248834f2c14f499cd335e72ac53f8b95ad90ee09d4c99aeef210e48b4c80b66e38f99910a680e b/data_node_red/.npm/_cacache/content-v2/sha512/42/50/87efe5cea062e10e5ea56befcac23e182a84cfce6fa3ac0248834f2c14f499cd335e72ac53f8b95ad90ee09d4c99aeef210e48b4c80b66e38f99910a680e new file mode 100644 index 0000000..e3ff6bc --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/42/50/87efe5cea062e10e5ea56befcac23e182a84cfce6fa3ac0248834f2c14f499cd335e72ac53f8b95ad90ee09d4c99aeef210e48b4c80b66e38f99910a680e @@ -0,0 +1 @@ +{"name":"parseurl","dist-tags":{"latest":"1.3.3"},"versions":{"1.0.0":{"name":"parseurl","version":"1.0.0","dist":{"shasum":"060280cfeecd8788fec6459ca0cc5df218477fe4","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.0.0.tgz"}},"1.0.1":{"name":"parseurl","version":"1.0.1","dist":{"shasum":"2e57dce6efdd37c3518701030944c22bf388b7b4","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz"}},"1.1.0":{"name":"parseurl","version":"1.1.0","dist":{"shasum":"b389c827d9426b4d8698ef45eaf14f1b63596371","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.1.0.tgz"}},"1.1.1":{"name":"parseurl","version":"1.1.1","dist":{"shasum":"3b8fdb423aeb18c997dcdf9ac9ecd7f037b3500a","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.1.1.tgz"}},"1.1.2":{"name":"parseurl","version":"1.1.2","dist":{"shasum":"d3294c91119d19885e586fcc871b90d2006eb006","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.1.2.tgz"}},"1.1.3":{"name":"parseurl","version":"1.1.3","dist":{"shasum":"1f005738ac71b417bc2d0845cbdfa2a8b63ea639","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.1.3.tgz"}},"1.2.0":{"name":"parseurl","version":"1.2.0","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","fast-url-parser":"~1.0.0","istanbul":"0.3.0","mocha":"~1.20.0"},"dist":{"shasum":"be7df2d698eb49ffb10ea62939693e152991c008","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.2.0.tgz"}},"1.3.0":{"name":"parseurl","version":"1.3.0","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","fast-url-parser":"~1.0.0","istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"b58046db4223e145afa76009e61bac87cc2281b3","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz"}},"1.3.1":{"name":"parseurl","version":"1.3.1","devDependencies":{"benchmark":"2.0.0","beautify-benchmark":"0.2.4","fast-url-parser":"1.1.3","istanbul":"0.4.2","mocha":"~1.21.5"},"dist":{"shasum":"c8ab8c9223ba34888aa64a297b28853bec18da56","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"},"engines":{"node":">= 0.8"}},"1.3.2":{"name":"parseurl","version":"1.3.2","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","fast-url-parser":"1.1.3","istanbul":"0.4.5","mocha":"2.5.3"},"dist":{"shasum":"fc289d4ed8993119460c156253262cdc8de65bf3","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz"},"engines":{"node":">= 0.8"}},"1.3.3":{"name":"parseurl","version":"1.3.3","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.1","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","fast-url-parser":"1.1.3","istanbul":"0.4.5","mocha":"6.1.3"},"dist":{"integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==","shasum":"9da19e7bee8d12dff0513ed5b76957793bc2e8d4","tarball":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","fileCount":5,"unpackedSize":10299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctVcbCRA9TVsSAnZWagAAUsoQAItlF92ss4WrI6lZGFUQ\n94+a7wb5I/oCJxcya6zpvv9F0TjfE2Gv/wdM5wTah83LqQ/FQbKiOKlarWAy\nUFC9i3oFqNCNf9Q4JoiUvFgFpA8K3VdjFL2FG5kXtxSPBEJ7DQ2LiFtp0316\nRJ7BFr6ICgWHl/IA8K0OvLmx4X8/nlbF0Gjuvzdv4dWFkkxWGDNaath51wRt\nKnp32YsQxzQPZJaDFpfOOfweIL4M1Xw3Mzm9T3C7IEdDIH1VeLis41IwVMx6\naCMDeTe9p29yl+uvf6JIBq7gYS1jSmfUgstTU34fu1bgaqavgs5wbv73ECEQ\nYWpS/27rVa/wjAfzIEyahL8Tgw7i3ZuwGaHVApOdackwGY3GZXLufRw5aZt+\n1e20FvF6iap14ONf6fDavmBgla6L5zQfsKPP1uynoPYiPAwLnDGyfK63WNQ4\nuE3CTFJwq8vKZ5byW2g8LrAE1+rDzy2FUWDkLc6sGTz0Nyk+ixM0i8qlA5/Q\nj8qzolmkHixA8UQkgMuCD1pbfDvrj8mrHicZkJLtc8z4mHvZKgAFClTfhcx9\n6LuUqhpkK1LD5kc4HImtYlwZ2NbLSc0QSthgCzxL429GWoxsPl6HnDfStZqR\n6UeYTkoLWR2K9tvhykwPHhCt/cTSpuWnlnDqovHap4ogM/HvLqcKkaomOdVa\nuzpW\r\n=CkLQ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}}},"modified":"2019-04-16T04:16:30.465Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/43/2c/987fb9e0cbf2385f981d3d3d7ac25634f257bcd29a4156f8a23736427e31a9a7f652dbb5cc47ad6c10d6dc20a43c351369e205b68ad8333fc884a9575d37 b/data_node_red/.npm/_cacache/content-v2/sha512/43/2c/987fb9e0cbf2385f981d3d3d7ac25634f257bcd29a4156f8a23736427e31a9a7f652dbb5cc47ad6c10d6dc20a43c351369e205b68ad8333fc884a9575d37 new file mode 100644 index 0000000..9b2bf32 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/43/2c/987fb9e0cbf2385f981d3d3d7ac25634f257bcd29a4156f8a23736427e31a9a7f652dbb5cc47ad6c10d6dc20a43c351369e205b68ad8333fc884a9575d37 @@ -0,0 +1 @@ +{"name":"cookie","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.0":{"name":"cookie","version":"0.0.0","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"a134b9c981df85c8a67b1620be5a36c0db1bdc63","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.0.tgz"},"engines":{"node":"*"}},"0.0.1":{"name":"cookie","version":"0.0.1","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"3162dd34ea833740e2e0d6e7129f2dcd55dcf7ed","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.1.tgz"},"engines":{"node":"*"}},"0.0.2":{"name":"cookie","version":"0.0.2","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"17aedf62bc6af53745fecb55c45c3f097c2e858b","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.2.tgz"},"engines":{"node":"*"}},"0.0.3":{"name":"cookie","version":"0.0.3","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"732b0e64cb77186954f5e36b0b6bcfd062a12e91","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.3.tgz"},"engines":{"node":"*"}},"0.0.4":{"name":"cookie","version":"0.0.4","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"5456bd47aee2666eac976ea80a6105940483fe98","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz"},"engines":{"node":"*"}},"0.0.5":{"name":"cookie","version":"0.0.5","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"f9acf9db57eb7568c9fcc596256b7bb22e307c81","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz"},"engines":{"node":"*"}},"0.0.6":{"name":"cookie","version":"0.0.6","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"7bc6bb50205dcb98cf13ad09d6c60bc523f6fcb7","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.0.6.tgz"},"engines":{"node":"*"}},"0.1.0":{"name":"cookie","version":"0.1.0","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"90eb469ddce905c866de687efc43131d8801f9d0","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz"},"engines":{"node":"*"}},"0.1.1":{"name":"cookie","version":"0.1.1","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"cbd4b537aa65f800b6c66ead2520ba8d6afbdf54","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.1.tgz"},"engines":{"node":"*"}},"0.1.2":{"name":"cookie","version":"0.1.2","devDependencies":{"mocha":"1.x.x"},"dist":{"shasum":"72fec3d24e48a3432073d90c12642005061004b1","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"},"engines":{"node":"*"}},"0.1.3":{"name":"cookie","version":"0.1.3","devDependencies":{"istanbul":"0.3.9","mocha":"1.x.x"},"dist":{"shasum":"e734a5c1417fce472d5aef82c381cabb64d1a435","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"cookie","version":"0.2.0","devDependencies":{"istanbul":"0.3.17","mocha":"1.21.5"},"dist":{"shasum":"9708beeaa361857de7d16516fea779572625caad","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.2.0.tgz"},"engines":{"node":">= 0.6"}},"0.1.4":{"name":"cookie","version":"0.1.4","devDependencies":{"istanbul":"0.3.20","mocha":"1.21.5"},"dist":{"shasum":"4955c0bd32fffa83b7433586185875876ea04e4b","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.4.tgz"},"engines":{"node":">= 0.6"}},"0.2.1":{"name":"cookie","version":"0.2.1","devDependencies":{"istanbul":"0.3.20","mocha":"1.21.5"},"dist":{"shasum":"e1bc7c07d1985c17ad7347502bac1a0eb072ac9a","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.2.1.tgz"},"engines":{"node":">= 0.6"}},"0.1.5":{"name":"cookie","version":"0.1.5","devDependencies":{"istanbul":"0.3.20","mocha":"1.21.5"},"dist":{"shasum":"6ab9948a4b1ae21952cd2588530a4722d4044d7c","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz"},"engines":{"node":">= 0.6"}},"0.2.2":{"name":"cookie","version":"0.2.2","devDependencies":{"istanbul":"0.3.20","mocha":"1.21.5"},"dist":{"shasum":"579ef8bc9b2d6f7e975a16bf4164d572e752e540","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.2.2.tgz"},"engines":{"node":">= 0.6"}},"0.2.3":{"name":"cookie","version":"0.2.3","devDependencies":{"istanbul":"0.3.22","mocha":"1.21.5"},"dist":{"shasum":"1a59536af68537a21178a01346f87cb059d2ae5c","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.2.3.tgz"},"engines":{"node":">= 0.6"}},"0.2.4":{"name":"cookie","version":"0.2.4","devDependencies":{"istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"a8c155aa7b9b2cf2c4d32ebc7b9a0aa288ccc6bd","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.2.4.tgz"},"engines":{"node":">= 0.6"}},"0.3.0":{"name":"cookie","version":"0.3.0","devDependencies":{"istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"a4bdd609d86748a5ce6c64d7ede6f4840ba434d8","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.3.0.tgz"},"engines":{"node":">= 0.6"}},"0.3.1":{"name":"cookie","version":"0.3.1","devDependencies":{"istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"},"engines":{"node":">= 0.6"}},"0.4.0":{"name":"cookie","version":"0.4.0","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"5.16.0","eslint-plugin-markdown":"1.0.0","istanbul":"0.4.5","mocha":"6.1.4"},"dist":{"integrity":"sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==","shasum":"beb437e7022b3b6d49019d088665303ebe9c14ba","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz","fileCount":5,"unpackedSize":17858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3NhPCRA9TVsSAnZWagAADA4P/0Y8HkoR7zm45iuEtjAd\nEfcXA4oFAC9rTJtAWNcmDGwTW1HxfIX3M9ci8WSjlwbEqWsvE6XJYq4yjhZq\ncwj7IRftR1aGaGusZPrBQTXnwqMvRKTFG4ZMwH/IeeoEtmBq9hJJZX8yXjNL\nZbaAq84JTiGriMb9kjS+sizB6dHMUrCN4SDTP6EUEAVuF6lIVrikG3G6i7am\nqXeFIVXJQFn31/MRV/258l6eOefuPTlgWqpiBBLSScxSOSsyLhW2+FTpZ1Ga\n8wqAhQVf0JATKrElCH5x2u2slNxOI8FltAwxfMFHzN/5Q2XlOFznqFqoO1l6\nEYF0NgJQZXBQuKWIAVIyqwBZ5fQ9+lhjKtVqCGbcw9I2U+TRK0eHMNDgI+pR\nebdSwAhVWGTp0o2ahqhQBW/CB+tPgIjgy0lPRg5ioPs9noBb6AZZ5H9I0Ffm\niWO1FsneQYbFL+2IM/P3rIQefwFTParMXRuq70XxuVcU+cTXNi4X8lzH8KiJ\ncnq3Pit6czof7+OvNBWQAIq++d6z1tMq+ELOqp7L0QogZl7OGI/nFtZQrTbn\n2VtTg4su5j/zkE350pwTXirnRkS/9AiignuLco2H9PspMxEadPnmmakwErZJ\n+KXAFLAHZhgxfa7meSbFFoYDarbpuizUzDDULbUM0murTVR2dAYZUnCByEoi\nvmIe\r\n=Oa0u\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"0.4.1":{"name":"cookie","version":"0.4.1","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"6.8.0","eslint-plugin-markdown":"1.0.2","mocha":"7.1.1","nyc":"15.0.1"},"dist":{"integrity":"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==","shasum":"afd713fe26ebd21ba95ceb61f9a8116e50a537d1","tarball":"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz","fileCount":5,"unpackedSize":18123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen7jNCRA9TVsSAnZWagAAX/wP/j8Mcw3MQyifqWMFSZTL\nwpTBVC0/hRHh581NsIKtfF1fzWvRHKu+VPlGhMg1vqXoZweebf1H5Mwhlz7z\nDEiUiPQgCi6hXgdsUMxc+iDOFy2fQoPOKtY4LnfDA/vZMCok8QFLVWArl3CC\nLmA5Amh/Zfud0WkGzDGrjRQKWHRRAUVrQBZ6ziTM5KplDWy1PBSE59M3WYMY\nUFOdCEqk4xGEvW8YjkAkRSiY5Z8r8wcES4GkxaLsVFfpLJbI0cbRCen6b1uK\n4ZTGjwpnQKHPaywefIX1UTV8Em6D0QGweyc4CgTicMz+lPD9uZT8jmZr+Apy\nkcfen3enN1sKrn0e4p6AXOu1Ku38KeK0nLyU3ueo7/KzbAf8XVkbbsWdZ1Yr\nteOjmHDqv5k7B7616PSjyQJRmXhfB2FgR84MmyUbeEtOSStBaNPI7BxzA0Mj\nKvSfVDGxxO0dTb3Uu6QRF4tl8T2AFKarNzpik5VNvJpYsueISnGVG4J480YI\nz8L/Ayn3+BmW7GLtVU5nfXaMZBjGNryRRQFhju7tS0JOzbRgmUCRLK77NGUX\n+warQVVAXDJJgAVexSen90OLR+SSNq84HIBT9/UP70OLFxwndxB91XuDTuMO\nNot9PtZFUNZnv9ArYN/HGCRKDkJm98Gn0Pu5eJ4ITNA3iCE/urbSnVLzigSA\n11mU\r\n=IPIC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2020-04-22T03:23:59.666Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/45/dd/ec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46 b/data_node_red/.npm/_cacache/content-v2/sha512/45/dd/ec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46 new file mode 100644 index 0000000..1b13e0b Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/45/dd/ec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/47/84/79457d6009c233324ba257c5d8636b24e8ab105b238353a3930d4dc286315b7e2c7801c4e3dda513cf9e14032dedc127c0a17be33591cd4aa4fe5e91bd07 b/data_node_red/.npm/_cacache/content-v2/sha512/47/84/79457d6009c233324ba257c5d8636b24e8ab105b238353a3930d4dc286315b7e2c7801c4e3dda513cf9e14032dedc127c0a17be33591cd4aa4fe5e91bd07 new file mode 100644 index 0000000..f099408 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/47/84/79457d6009c233324ba257c5d8636b24e8ab105b238353a3930d4dc286315b7e2c7801c4e3dda513cf9e14032dedc127c0a17be33591cd4aa4fe5e91bd07 @@ -0,0 +1 @@ +{"name":"engine.io-parser","dist-tags":{"latest":"4.0.2","alpha":"4.0.0-alpha.1"},"versions":{"0.1.0":{"name":"engine.io-parser","version":"0.1.0","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"d4c69aabaf2e0c2d276129c865cdf1ed7270bad7","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.1.0.tgz"}},"0.1.1":{"name":"engine.io-parser","version":"0.1.1","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"380c8b6b19577ad97718b81cbfcbfdf94f0fa7cb","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.1.1.tgz"}},"0.2.0":{"name":"engine.io-parser","version":"0.2.0","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"e6b9855adda0ddd90938907c7dcbe933f8845a14","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.2.0.tgz"}},"0.2.1":{"name":"engine.io-parser","version":"0.2.1","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"ff8828e6f2e5d3584faf65320186c0702b52c45f","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.2.1.tgz"}},"0.3.0":{"name":"engine.io-parser","version":"0.3.0","devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"67fa40dbbc4ae01b51ddaada7deaf75eca2c5061","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.3.0.tgz"}},"1.0.0":{"name":"engine.io-parser","version":"1.0.0","dependencies":{"base64-arraybuffer":"0.1.0","after":"0.8.1","arraybuffer.slice":"0.0.5"},"devDependencies":{"mocha":"*","expect.js":"*"},"dist":{"shasum":"34a074284bc104d2bfd1291257dff514ada7ed78","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.0.tgz"}},"1.0.1":{"name":"engine.io-parser","version":"1.0.1","dependencies":{"base64-arraybuffer":"0.1.0","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.5.4"},"dist":{"shasum":"48c3040611e8234639880a21fc55ee7931dbf6c1","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.1.tgz"}},"1.0.2":{"name":"engine.io-parser","version":"1.0.2","dependencies":{"base64-arraybuffer":"0.1.0","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.5.4"},"dist":{"shasum":"f5944134ff01f3f2218a4174259a3ed720ee5387","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.2.tgz"}},"1.0.3":{"name":"engine.io-parser","version":"1.0.3","dependencies":{"base64-arraybuffer":"0.1.0","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.5.4"},"dist":{"shasum":"3182f48b81cc79cef6c0ff0ab0a93df7488735b4","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.3.tgz"}},"1.0.4":{"name":"engine.io-parser","version":"1.0.4","dependencies":{"base64-arraybuffer":"0.1.0","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.5.4"},"dist":{"shasum":"68bcfa17dcd619e60cd24dcddd6c368b9df32f11","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.4.tgz"}},"1.0.5":{"name":"engine.io-parser","version":"1.0.5","dependencies":{"base64-arraybuffer":"0.1.2","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2","utf8":"2.0.0"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.6.3"},"dist":{"shasum":"9f78a3660608f5fd541e82cfe8d4dc7e3e1c0127","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.5.tgz"}},"1.0.6":{"name":"engine.io-parser","version":"1.0.6","dependencies":{"base64-arraybuffer":"0.1.2","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2","utf8":"2.0.0"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.6.3"},"dist":{"shasum":"d38813143a411cb3b914132ab05bf99e6f7a248e","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.6.tgz"}},"1.0.7":{"name":"engine.io-parser","version":"1.0.7","dependencies":{"base64-arraybuffer":"0.1.2","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2","utf8":"2.0.0"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.6.3"},"dist":{"shasum":"d71777192d580e0d2df59389e3d4218bca1aa405","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.7.tgz"}},"1.0.8":{"name":"engine.io-parser","version":"1.0.8","dependencies":{"base64-arraybuffer":"0.1.2","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2","utf8":"2.0.0"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.6.3"},"dist":{"shasum":"ef5c7bf85b9067f4f9081c31b32c317bb2da6be7","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.8.tgz"}},"1.1.0":{"name":"engine.io-parser","version":"1.1.0","dependencies":{"base64-arraybuffer":"0.1.2","after":"0.8.1","arraybuffer.slice":"0.0.6","blob":"0.0.2","utf8":"2.0.0"},"devDependencies":{"mocha":"*","expect.js":"*","zuul":"1.6.3"},"dist":{"shasum":"39a2f7b1e8998fa1245fbc91e13504b8c92f3755","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.1.0.tgz"}},"1.2.0":{"name":"engine.io-parser","version":"1.2.0","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.2","blob":"0.0.2","has-binary":"0.1.5","utf8":"2.0.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.1.0","zuul":"1.10.2"},"dist":{"shasum":"9df352c064a0a3eb7326e74ea34e425b90c27dee","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.0.tgz"}},"1.2.1":{"name":"engine.io-parser","version":"1.2.1","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.2","blob":"0.0.2","has-binary":"0.1.5","utf8":"2.0.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.1.0","zuul":"1.10.2"},"dist":{"shasum":"4462a67d0c70a907c06db2e1de53791a86f5ab37","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.1.tgz"}},"1.2.2":{"name":"engine.io-parser","version":"1.2.2","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.2","blob":"0.0.4","has-binary":"0.1.6","utf8":"2.1.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.2.5","zuul":"3.0.0","zuul-ngrok":"3.0.0"},"dist":{"shasum":"cd081041feea39c64323ff79b82a90a72afcccdd","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.2.tgz"}},"1.2.3":{"name":"engine.io-parser","version":"1.2.3","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.2","blob":"0.0.4","has-binary":"0.1.6","utf8":"2.1.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.2.5","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"c26d2bdf185dc797f48529a8d6d8663835a620a6","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.3.tgz"}},"1.2.4":{"name":"engine.io-parser","version":"1.2.4","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.2","blob":"0.0.4","has-binary":"0.1.6","utf8":"2.1.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.2.5","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"e0897b0bf14e792d4cd2a5950553919c56948c42","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz"}},"1.3.0":{"name":"engine.io-parser","version":"1.3.0","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.6","wtf-8":"1.0.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.2.5","zuul":"3.10.1","zuul-ngrok":"3.2.0"},"dist":{"shasum":"61a35c7f3a3ccd1b179e4f52257a7a8cfacaeb21","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.0.tgz"}},"1.3.1":{"name":"engine.io-parser","version":"1.3.1","dependencies":{"after":"0.8.1","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.6","wtf-8":"1.0.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"2.2.5","zuul":"3.11.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"9554f1ae33107d6fbd170ca5466d2f833f6a07cf","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz"}},"1.3.2":{"name":"engine.io-parser","version":"1.3.2","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.7","wtf-8":"1.0.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"937b079f0007d0893ec56d46cb220b8cb435220a","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz"}},"2.0.0":{"name":"engine.io-parser","version":"2.0.0","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.7"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"535ccfadc3b154ed271470f8c1dc161d02835159","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.0.0.tgz"}},"2.0.1":{"name":"engine.io-parser","version":"2.0.1","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.7"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"2d8929581b1a768044a2d61dea21d595e862488b","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.0.1.tgz"}},"2.0.2":{"name":"engine.io-parser","version":"2.0.2","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary":"0.1.7"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"41b398b3aebdf3e4e2122089aec57d23c06a7c26","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.0.2.tgz"}},"2.0.3":{"name":"engine.io-parser","version":"2.0.3","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary2":"1.0.1"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"8d8906609d4e753fee8c5b17fa61735b89b985ee","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.0.3.tgz"}},"2.1.0":{"name":"engine.io-parser","version":"2.1.0","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary2":"1.0.1"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"033aabfcb6348717f9d8f7b45d66127745fceadb","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.0.tgz"}},"2.1.1":{"name":"engine.io-parser","version":"2.1.1","dependencies":{"after":"0.8.2","arraybuffer.slice":"0.0.6","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary2":"~1.0.2"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"shasum":"e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.1.tgz"}},"2.1.2":{"name":"engine.io-parser","version":"2.1.2","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.5","blob":"0.0.4","has-binary2":"~1.0.2"},"devDependencies":{"expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==","shasum":"4c0f4cff79aaeecbbdcfdea66a823c6085409196","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz"}},"2.1.3":{"name":"engine.io-parser","version":"2.1.3","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.5","blob":"0.0.5","has-binary2":"~1.0.2"},"devDependencies":{"expect.js":"0.3.1","mocha":"^5.2.0","socket.io-browsers":"^1.0.2","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==","shasum":"757ab970fbf2dfb32c7b74b033216d5739ef79a6","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz","fileCount":7,"unpackedSize":39153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2pNjCRA9TVsSAnZWagAAOj0QAJ0NRt+YQV5oT+qfxARI\n5U3oGQ7VGMGjkqQ7+R9jxkdb1r9bDlcb4qc6gzrrTaqum5POwxccAFDgPBS0\nK8IXqsBL+lQtzG0HSkcw1YIdpo50JGgZbhTxgGGPF0L7nllPmYbTJ002mgSs\ntHKr8ZsV+lq/P5PukT4fUbOOmcec9ybarYnMsEvc8cpGY8NZUHOWrGECaW3y\ncG0/QqaQDpWt5HmjVQikVLxW5h4Xq7lbRcDSQ89TrdXoMATT6ivoUn8EsDKv\nmLv7Ub8LVE8eQ9x66HfHEUvKqHUipnKyWx9z2reL21xRz1jr7PnD/mBTLUNI\nezBtXpWxB4hxun+9kE+S1Iye71xOrpxI375YwM/CukDz2z+puIw1MUzoN1Jc\nvOcb/dFxtfiUduApvRH2efeMpR3xxXMdUKVsRE60AQMYr+vqafDeQutYxDyf\ndzlbVBLrBEVVvursX1kDqwysJQOtJZqpAU0t/iR3MKTgkyMKZ2C4u9DhibQO\nC4m0eUzix5bVp/w5/8dw0ewMCEFRkbb/OtYLVhqb3crQtf+hp1miqWaw/v+C\n1ShrNKRcAjN59c/jF6occ4VzKqgsgUZnGozvBlC+AoeA+jrDveFmp+RSDs21\n2PR4NKFmOtTumvVJyliramS6CGNrZggBuf2QxC+zYlg4scTKp9yicegdc1Wn\nw3R9\r\n=yHWh\r\n-----END PGP SIGNATURE-----\r\n"}},"2.2.0":{"name":"engine.io-parser","version":"2.2.0","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.5","blob":"0.0.5","has-binary2":"~1.0.2"},"devDependencies":{"benchmark":"^2.1.4","expect.js":"0.3.1","mocha":"^5.2.0","socket.io-browsers":"^1.0.2","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==","shasum":"312c4894f57d52a02b420868da7b5c1c84af80ed","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz","fileCount":7,"unpackedSize":39150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde1ytCRA9TVsSAnZWagAAeikP/Rbk9e9Gig//UAI/nDgM\n3V8zsfBX0sXQmDlk16ZMrYFSR+cMi8UAvwPJVNeIbCccSCNdxaIoZg36JK/b\nZHyZ+fqNBJDDbCYZmLmxQd44li37l6Xd/RcEDNp6qOsMnI374wve96ENX+9m\ngXgLoc4fq015H+I6HvpH/C5eG0CtRRF47ROqWjO67v9JkQzsf+zRYwart1oc\nURyPDJ63AQz4XjUbJ4X2zydtkZqOtcpk5XHt/Zv+VNLU7YJyKO61tzi+M7EZ\nT4JKUfO+Ae8JdJoezyiGDXlD+kXAWFRkGU0Tk+XZLu5B/CuddGKOM+NwZkQF\nw9UtS4ZWntv6aGCQQdYySeU3nfetJi2+khcTI/M/fxiv6QqpdD+2VNE/tTV+\nRMVLC60N6LRLqBEZLwxjz6eGYMvmz4aoMK5BpqbE4JC3vhTEmI02eiQwdVyO\ntgW2HplwqvSdjAU6tlSRmJCFRwklahC/5cyZzWmAlsk2Why37DOPsTjRhhmt\niJbP1NsGZv9oA/aAux1fpN4dNf2IXr9ocj9xnUUDHL2h7M03W7L3rwT/sCtW\ntWC0bdvuMbZNsXP2XEJDs0tJnoEDj7ZL6asKlvDzRHna6f7Eva3yQHpKyscv\n0oRwdojvd88blb953SzmrAgBMQmm+qroJASBx8xEx6WrhqvI3GGz80GqR7Nd\nXta+\r\n=74eR\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0-alpha.0":{"name":"engine.io-parser","version":"4.0.0-alpha.0","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.5","blob":"0.0.5","has-binary2":"~1.0.2"},"devDependencies":{"@babel/core":"^7.8.3","@babel/preset-env":"^7.8.3","babel-eslint":"^10.0.3","babelify":"^10.0.0","benchmark":"^2.1.4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"0.3.1","mocha":"^5.2.0","prettier":"^1.19.1","socket.io-browsers":"^1.0.4","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-KhJdJGo1u5t/I2YvRRYnVZtL0hgGON2tchScqhd5NNmAx4CgFzY0COyU/bAQe82fFkn9lAjgFW9RnAtuN0+lVA==","shasum":"9414ed17d59af9d981af052c3c2eaf91b79c8c84","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.0-alpha.0.tgz","fileCount":6,"unpackedSize":39213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOVe8CRA9TVsSAnZWagAAhhgP/3dmXV37YC3q3/lLvtNO\nPDplVMHNPxay+XSFx/KeVQ70fT1ohmxzXw7R+pvRPEQROIEFv1xHSECBIn92\nu7WPFXqJ2qz3ZQOKtGJbue4Mg6Ueghfy82BpBPW81SHyOne+bYdWV0GizN4x\ngUWS3DsSN6/UQEr1iXXj8cbS15+SqOwJtYvdmHAq4jTObylPuG2t1xoYhx8s\nmyj3iaEOGUjPlqnR2Cz5wtGEnrW0x7ifLR55peMee1nkO6e1fMvHjUw8SpUx\nEQnDUKXZz8897DBWFZ9I7Edm8VrX+dMdkJj4deu2PhAOhgC1kF1OSjmla5wX\nQH+s3syNUd4SRuGGdzSGC9Hpt+X47kExhU7oclBOXD7BTTZlMFN89qNPDh3d\n2D2bCtrCWsvbr/PFvId3lXXmyuLS0InDgJFz4unvIpZwsjPnnO71uHT1DG2J\nD8WzZuf9qPwjNxp60J0KsEdhBLcOwBinA1faEW9zXgKZEdPMq/Z+NnA/Agjg\nzIn3OmnvaJYGDjohYMu3JB0fUTIjO7ejVQN0Wjxubp7qXDw2d14lvaieCl6D\nNgVZVHIIrBGMzltdo6OjIyGxt+BMIbWqFcTsdyuMMotJmQjNniqdl3BQ7Jfd\nmxJ1a9ZeTNDL7NaXxklYTU/zEzp61iHqjhLwH/XB0LDMUEGXlASYm+tHO+uA\nK/ml\r\n=Upz6\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.0-alpha.1":{"name":"engine.io-parser","version":"4.0.0-alpha.1","devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babel-eslint":"^10.0.3","babelify":"^10.0.0","base64-arraybuffer":"0.1.5","benchmark":"^2.1.4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"0.3.1","mocha":"^5.2.0","nyc":"~15.0.1","prettier":"^1.19.1","socket.io-browsers":"^1.0.4","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-BeL+9posYtemNE1Ifb9cydaHU1lGfueGzl0HGHPpwPk2pC5ypAlf3Z8CMYHZPqJu3aUIvKryJk+mQFBuyBZwcQ==","shasum":"93483a93c8832bcc4171e0d76c01d8661ed462ee","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.0-alpha.1.tgz","fileCount":10,"unpackedSize":16924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew90HCRA9TVsSAnZWagAAsCEP/jgQ1F4SXCmDupxi2+zK\nmRXsYPEO/SeraevMJVvk3ZL1ja0QoBPswgNLw0BMEHyA1B7jtsG6n8nHDVAD\niAlw3GAD4Zmgwv33A12zST/GSLgizoWf6qApb8XpzMY5QNGtB/mcxkW32pc+\n/jjTPvpRXO6SBwetS2Df8pHps9EIV/x2TQQfmIrysE/bd//QImkLZUy63pUM\ndg4ZLAXogIvXLibE7I1BWNI+olScxY1XCSBf4UN5c3X+rM0+Ay5L/DMvmaRh\nDiUUf6yYFs5sVwy5VFyKwwP1c1g2G5JwncdX+iab8V3pT9as5ShS/ABT6IuO\n0SMgbtZsmddrn+/oY6ZLvmggemmfqvehzAi8Y/YyfQy136EA30FeH5OaVbw7\nXWAIRFpQefXUNXwTCr44VMutO+GHZN+CgmrSB4HcemSgOak0U+vhAUSGxeMO\nMU14hcno2epa/SPbxLsIRFDvf9WvLjIvtn6TMY01IUgApgC/vLEZJqGXwrXe\nwJy4+EMY/zDEJjL2Z6VGbreKdZIe4xPM9PxKqyUkDZD3oPxFwxkUnMKiQcMh\nAvsxh9XT6mQecU13CjCLv2rAcYB3XepIxfnYenKcxrKhB68MATXYO4s3zCG0\nVvStewYYUG6OZ5b/eobMlGaCnUeNILfW8oXtgObqqH6m5F7ENVwIUB0Zm34Y\nnZmg\r\n=FJMi\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.0":{"name":"engine.io-parser","version":"4.0.0","devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babel-eslint":"^10.0.3","babelify":"^10.0.0","base64-arraybuffer":"0.1.5","benchmark":"^2.1.4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"0.3.1","mocha":"^5.2.0","nyc":"~15.0.1","prettier":"^1.19.1","socket.io-browsers":"^1.0.4","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-dfV5CyDe0Z5I6L5gyZZXIuWhqtaIrKhHLTfsQpTvDkoQfPPuQe94wkUBCsBe2HOlbNojiDxQRi9RvMNNZRyarw==","shasum":"40189f1d9f4d9bf07cac263d864a776a24aeadad","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.0.tgz","fileCount":10,"unpackedSize":18650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfV/SmCRA9TVsSAnZWagAA+q4P/1EM7yMgeVZmBwsE0Ekb\nuEBQCYk2BGGIcfAatoTqmN8tNL3pXge1f2vk35BFbsvgktna7p7SrpPYmvvZ\nCVtdRPPWAKSXDWD4l90DiAGDsxDNJGMXlUhEQOXdxZoeUAjCmgIJqCjXtBOi\nuxqFZIzKL41gOmp5G41fDpn8vLnczP1PHx87uy51R+3yck9wu7+vR+oPDBst\nIdTQDNy91jx7xkn47E7+VPXZ/CrkNdSMA0YhAJqY4hPD3j5e3qk9MhJPbFBQ\nCUlJPfNKQOiJnlVjI+MIS1XMoLZgzS/kirEsVB4T0mioUlJ26MUS0A2EJryw\nKiMJHaTGawo4aS0BghlTt/kyZRFx6xPhRWKSTh1rmiX2Rl50QNIaRipGzi/Y\n9edEKgawIzBMH8qmhVEpeXj3xbjwz2ijT9mLKxtHfIMDYMWlfmpJI5fNfPCo\nzOeRS2F0l/ixdh82NkCAfBOeIa+aLSSw6dr+1XrOMSfM/UF7lV2dSXqgpc0m\nq8JEL0pGH+2Z83mjuLiGfTmcylWyLIj4QvSMIdDjZKpLkmHMJWuVJ0mGVOXJ\n2VacnN0S35020z6RJzkthCeObGKgXrXgllhli2xjQ/PZtjrP7hf/wQzwVUy8\na2GRie9ME2r9ee3t+vpFcBir3xRc+f3qbR8CIJNc21CgY4ntoOvsKUb52chQ\n9wVz\r\n=QU+m\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"4.0.1":{"name":"engine.io-parser","version":"4.0.1","devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babel-eslint":"^10.0.3","babelify":"^10.0.0","base64-arraybuffer":"0.1.5","benchmark":"^2.1.4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"0.3.1","mocha":"^5.2.0","nyc":"~15.0.1","prettier":"^1.19.1","socket.io-browsers":"^1.0.4","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-v5aZK1hlckcJDGmHz3W8xvI3NUHYc9t8QtTbqdR5OaH3S9iJZilPubauOm+vLWOMMWzpE3hiq92l9lTAHamRCg==","shasum":"6444c3cf2523ba4fc3bbaedd4fe425e6bcb16479","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.1.tgz","fileCount":10,"unpackedSize":17113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWq2xCRA9TVsSAnZWagAA1uAQAJCQQWuDiRkREnWIujq7\nZxq/c23yKY1uKr/N82+j+DlHLHBSK4dXJ0YLgqNqtjCRxMF2UQ2fjTfWswoT\nBEg7UImGCb5zKrdVFdHltstCJmM/srqA4Q3fJdA6JTjKK5H9Hl8DoYSENbSt\nMi8HrSyXBehwqJzP2fWaX2LjGeVxQ3xNoyhuLChRj3TJLvF7gYyqNW+vVi64\npytHSdwO7nRcRBUO1WCq3jmfxn1i0dfI9ccTVW4msdef9tZJcHUdcWlnBzBm\nQVL7zzuXvm19RS86JWkTAZC0hOzbthrBL0GLg1GrplIfnskVZO5LS2Jk5LHH\npj7Keh1fL9Pk6BsqwpSha7wkxMazSTSnGLAZG/zdjPxncFl4RE6JXy3QwKTv\nc/OB/4e9ffaQ1V3jWaefmo4tU2Lo2noTxodLW3EWmV0QpTirB7kYYnF5rwyj\n4SA64CIH/xw1KqRTCFzkZnLqdwn80yYW1CFQVkJMJP6IfysTMw9Sk10Xa+sH\nrTV/IOzLo56Xn8CM9mGNEzgfbRfpxsV7jZRQW9pRlDJbwwtRTlWFgkDXGdem\niIMxRMDUm5RbQXqiazMd/Ll4QNSsjPpQiHI+W4CpXeuXr4Dj2VpHyVI1mJFL\nMJ5Y1mTtIsJURv/Xpo2k9N9H/WMQmVy7Taw1gNi1OQGUODuydiR7Nof0KuSd\nPWw/\r\n=1LPI\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}},"2.2.1":{"name":"engine.io-parser","version":"2.2.1","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.4","blob":"0.0.5","has-binary2":"~1.0.2"},"devDependencies":{"benchmark":"^2.1.4","expect.js":"0.3.1","mocha":"^5.2.0","socket.io-browsers":"^1.0.2","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==","shasum":"57ce5611d9370ee94f99641b589f94c97e4f5da7","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz","fileCount":8,"unpackedSize":39242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc9rhCRA9TVsSAnZWagAAyJQP/RMPeIdubhfLOhCk7i5X\nOAQ+GWMgSz/gZNrsz7PBZvMgA3TIxty/q7K1UztqPXx2VzCwBOC/q+L08CLh\nrZ8SsidbiDys0KhRTRzYI4zwNb1H6W+RKrbHvsF3Fn3Z1oS+0eB5z2DQPFZC\nNYDec6Nud+Yqa94GkPwJV9FxQ0+6fC02HWyRnA5QuS412Br+t+gUDib4K2xC\nIlRIq7U9RYNU39NEj8IgTPddFMe+/RVx8Y7ZoV2sC84YAOBPTZmz65kr8u8w\nj6GwsanjrUQEqvY4MZ7saq17+646/aDu6C2jN+ErMzDtNPUtwXdMCG7Z0gvZ\n4vU0szpTrpQVzAppY+QpKdaVpCttmagepeU1oJiGf2PJONki+U5En0xYJWs9\n9g6SvSqciVpOkMe13xXNpDj5HfpvTv0mrhFYCG8rV5hEXr/t/9du0LSEseG6\nI0BNfwyvql04ntYc5I1KWge5WG5PsJfyycKTGtxYeJ7/o92bet6DUoJWF3sp\nGIVo/p6xGS4M2/q69qERCiD1Wld0+kV+Qu/Qglv9sTp6UBZvx69zYK78jrOO\nVW35VoEltIXudMTx/kv8w0rlqav1oE+gky/TlY7gVxBKvoPJ+ojYURlaArV8\npm8kuhYqDODBCswNnMaFguZZVQwjWzDp1Sfni2kTtYWJbCi6BCqO7vaS7tzP\n4k83\r\n=VCLU\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.2":{"name":"engine.io-parser","version":"4.0.2","dependencies":{"base64-arraybuffer":"0.1.4"},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babel-eslint":"^10.0.3","babelify":"^10.0.0","benchmark":"^2.1.4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"0.3.1","mocha":"^5.2.0","nyc":"~15.0.1","prettier":"^1.19.1","socket.io-browsers":"^1.0.4","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==","shasum":"e41d0b3fb66f7bf4a3671d2038a154024edb501e","tarball":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz","fileCount":10,"unpackedSize":17470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzfJrCRA9TVsSAnZWagAATLYP+wXbbhrCw8HCJ8LMrS5g\niNbwYLLCwunuovK4/fQ+xe4pa9E4oXrsII1WNJz/QqgRbFqU1x4Q3XZFWstW\ngrFQotnaI09SOOWUMdRHuhvCd50nTn418/zL4qCJhpptV/imx2UbMivz2ryi\n0BCy72J9N4yK7KBILI+B3ulj76Y5CpHEsp2cDyU2od5+GrmqPSVtG/Jpy4Bn\ndUE4AaeWUC4tTS3TXi5XZ3CC3Z+mCbggw4+5c5qcd6DSDxaEuJ/QApgfn66Q\naEanlcYLRu0qcnzmLeYIouSPo2jl9Bmt69FphCV+iwXu8HLv3vZYDLl1s8A1\n9XHl9Y+0n7H+MRzbixrCGcdsfI4OcbFRU8RLxBwZBZr+Wmpmt72iK3UrKtxA\nqVTv0k5Sh/aucNBrDOzl2hn1/skEIvUfr5v0hS1B+45IVjithe42Bf0RV4U7\ndAE8uihBUarlxAEdNH20NREDV/psB1P9xlrzatJZN0qWLa2O800eNbBDKpER\nbn0yCQ1p3Q2Zp2gscE1pE9B4U2dC9t8afFCwr/bCK0ABV4wV+E34G7qsnyiz\n2LfbDNdP0HO6jhwRbrIGXQDkEr+0fklWMg4vml0QaMJWuq8WBg/SHVmAYoK+\nNyPImv/RzJd8gm4DxH78RiGhWDN8T7SGiK1mZxUSt05a0op8vMBGTM42nqmx\n/Vzt\r\n=Oglm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"}}},"modified":"2020-12-07T09:14:22.806Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/4a/2d/7cbf498c5c602a2ea095a53c416bc306aab88719087c71c10e866b26352ded84d0860703bc586af03226c036c5ad410e4d4ad759c07a994779da25515cdf b/data_node_red/.npm/_cacache/content-v2/sha512/4a/2d/7cbf498c5c602a2ea095a53c416bc306aab88719087c71c10e866b26352ded84d0860703bc586af03226c036c5ad410e4d4ad759c07a994779da25515cdf new file mode 100644 index 0000000..707d88a Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/4a/2d/7cbf498c5c602a2ea095a53c416bc306aab88719087c71c10e866b26352ded84d0860703bc586af03226c036c5ad410e4d4ad759c07a994779da25515cdf differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/4f/6c/73915432ddc4b2424d97a09255352e8cab451a6dfd0b5d6bdb453dec1e60b28ce4610600f35b1f98ff80a902df1f9369005354670f2db06bf4c46aa9c193 b/data_node_red/.npm/_cacache/content-v2/sha512/4f/6c/73915432ddc4b2424d97a09255352e8cab451a6dfd0b5d6bdb453dec1e60b28ce4610600f35b1f98ff80a902df1f9369005354670f2db06bf4c46aa9c193 new file mode 100644 index 0000000..523b953 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/4f/6c/73915432ddc4b2424d97a09255352e8cab451a6dfd0b5d6bdb453dec1e60b28ce4610600f35b1f98ff80a902df1f9369005354670f2db06bf4c46aa9c193 @@ -0,0 +1 @@ +{"name":"gridstack","dist-tags":{"latest":"4.2.5"},"versions":{"0.2.3":{"name":"gridstack","version":"0.2.3","dist":{"shasum":"7ad7e4e8148e6200db158c9b889a316bd7ef14d1","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.2.3.tgz"}},"0.2.4":{"name":"gridstack","version":"0.2.4","devDependencies":{"grunt":"^0.4.5","grunt-contrib-copy":"^0.8.2","grunt-contrib-cssmin":"^0.14.0","grunt-contrib-uglify":"^0.10.1","grunt-sass":"^1.1.0","grunt-doctoc":"^0.1.1"},"dist":{"shasum":"d6b7e0e84e9acc1e7c5699dd18c7762efbcc77ee","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.2.4.tgz"}},"0.2.5":{"name":"gridstack","version":"0.2.5","dependencies":{"jquery":"^2.2.1","jquery-ui":"^1.10.5","lodash":"^4.5.1"},"devDependencies":{"connect":"^3.4.1","coveralls":"^2.11.6","grunt":"^0.4.5","grunt-contrib-connect":"^0.11.2","grunt-contrib-copy":"^0.8.2","grunt-contrib-cssmin":"^0.14.0","grunt-contrib-jshint":"^1.0.0","grunt-contrib-uglify":"^0.11.1","grunt-contrib-watch":"^0.6.1","grunt-doctoc":"^0.1.1","grunt-jscs":"^2.7.0","grunt-protractor-runner":"^3.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"^1.1.0","jasmine-core":"^2.4.1","karma":"^0.13.21","karma-coverage":"^0.5.3","karma-coveralls":"^1.1.2","karma-jasmine":"^0.3.7","karma-phantomjs-launcher":"^1.0.0","phantomjs-prebuilt":"^2.1.4","serve-static":"^1.10.2"},"dist":{"shasum":"2fddbdc657d3ae98609ece660d29f597c1e5de3c","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.2.5.tgz"}},"0.2.6":{"name":"gridstack","version":"0.2.6","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0","lodash":"^4.14.2"},"devDependencies":{"connect":"^3.4.1","coveralls":"^2.11.8","doctoc":"^1.0.0","grunt":"^0.4.5","grunt-cli":"^1.2.0","grunt-contrib-connect":"^0.11.2","grunt-contrib-copy":"^0.8.2","grunt-contrib-cssmin":"^0.14.0","grunt-contrib-jshint":"^1.0.0","grunt-contrib-uglify":"^0.11.1","grunt-contrib-watch":"^0.6.1","grunt-doctoc":"^0.1.1","grunt-jscs":"^2.8.0","grunt-protractor-runner":"^3.2.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"^1.1.0","jasmine-core":"^2.4.1","karma":"^1.1.2","karma-coverage":"^1.1.1","karma-coveralls":"^1.1.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.0","phantomjs-prebuilt":"^2.1.5","serve-static":"^1.10.2"},"dist":{"shasum":"0d30a8a00547e0b79dbd46488b54f4061e40f10b","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.2.6.tgz"}},"0.3.0":{"name":"gridstack","version":"0.3.0","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0","lodash":"^4.14.2"},"devDependencies":{"connect":"^3.4.1","coveralls":"^2.11.8","doctoc":"^1.3.0","grunt":"^1.0.1","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.2","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^2.1.0","grunt-contrib-jshint":"^1.0.0","grunt-contrib-uglify":"^2.3.0","grunt-contrib-watch":"^1.0.0","grunt-doctoc":"git+https://github.com/nickyout/grunt-doctoc.git#master","grunt-jscs":"^3.0.1","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"^2.0.0","jasmine-core":"^2.4.1","karma":"^1.1.2","karma-coverage":"^1.1.1","karma-coveralls":"^1.1.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.0","phantomjs-prebuilt":"^2.1.5","serve-static":"^1.10.2"},"dist":{"shasum":"be1c7891f3fbd2af60f9d60f4c7d517a30d3bb78","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.3.0.tgz"}},"0.4.0":{"name":"gridstack","version":"0.4.0","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0","lodash":"^4.17.10"},"devDependencies":{"components-jqueryui":"1.12.1","connect":"^3.6.6","coveralls":"^3.0.1","doctoc":"^1.3.1","grunt":"^1.0.2","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.2","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^2.2.1","grunt-contrib-jshint":"^1.0.0","grunt-contrib-uglify":"^3.3.0","grunt-contrib-watch":"^1.0.1","grunt-jscs":"^3.0.1","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"^2.1.0","jasmine-core":"^3.1.0","karma":"^2.0.2","karma-coverage":"^1.1.2","karma-coveralls":"^1.1.2","karma-jasmine":"^1.1.2","karma-phantomjs-launcher":"^1.0.4","phantomjs-prebuilt":"^2.1.16","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-N8ehAjdZWNm1lik9J34X9YrjGla9+9odm0RmrpLmUaQUit99ap+ve8TdYkJR/JlUMfI1zBgmxNcAxVWMKKpkWw==","shasum":"9b1fbf5bccb73cc41f26cd1dc45b248ef5b4f37d","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.4.0.tgz","fileCount":31,"unpackedSize":425036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9bBiCRA9TVsSAnZWagAA5dwP+QE7IDBMVY5kS8MafQS9\ndMW1UhInkU0INFuCuGV8WRGpW6y3xxIE3qrSsbBl5EvjWLi1+4hzeond/kZp\nTCpGtznNSSHu+kuHEOtsKwcchfwzLT59VzoX6SteT4bnHPgD0a7FP1dSg3Lz\nEgYY9XDVOkU69ymBS0knlXbuwSv3/qsN9OFyNBADN1kVSzQVSiP9nN11lmv2\nl1HbuND9li5i+IxDE5h443rIWqfG7ZxU9pK21k80KOZRUtDdyB+g/XFGNPhg\ngtK52ol5NqH9AKHC3GnguBNxytyRHlYypjQ40yiJDse0C5qcLYNzdG4+893B\nfUO1zznqClolL1l1UaXuVHwZRimkC5y2yzrBxZ6q9VC/513iAsYYsEO6mNHe\nuYDffVGVQQB22qs5bwHIxR/KCqwV3GUYTeTYt+rAg3kCbHSLT9MDRB9pyJ7C\nxtvtj8Ysz1zy7Mj4kfPfY5DJA/EpBfprV6Mo8mklNczZtxjpp3QsUPAsrUrn\nzkmBk7h+oGZGTwIUom5QMXC2QuFgioizIRBjcSdXCKBwihs/U2ftmu4OsC2c\nyTR20Yt6rhjZ9ExZO6XMRc3irFDc0oXLd+kqo/W/dP7RIyzypv/khR0yubpG\nZ7M7YjjGENcrSrT/qAyGjr0u+rDXloquGp68bR+DfwhtnZTtUsWV0Z7BoQ9P\njw8K\r\n=JdFy\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.0":{"name":"gridstack","version":"0.5.0","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0"},"devDependencies":{"components-jqueryui":"1.12.1","connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-jshint":"^2.1.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-jscs":"^3.0.1","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-X4uO11BZ6jK1sIsgZRd2YIVF+Oq4cFYvgYOwx+KTKGYNCh3IMp4LeFF1Y6TOSk6tlQJuZLDwxUGF5as3dVvuiw==","shasum":"db1599cc91a4255207988f95b683f0663a48372d","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.0.tgz","fileCount":31,"unpackedSize":647729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwyszCRA9TVsSAnZWagAAlosP/0Aphn+WlhHIe47ql4Yd\njc3ETXaZNHtIj8JxgtUH06zTF8bBA7C44ndVMdXfz/cOvZzaUd82QKWsfuQa\nojTTfJ+bkvRE8UWUp7fCnrKL3SjRTNa9VF5vfTQIyAZcmcpf49hjcePJhCAV\nZNnEUMEUpJDWVjPH9vk41lSYWjQtoCxvkmWB0+N7S72wrgm4vOw7jLMEz0Gd\n2OFp0yfo6A3SKPX1reT/9j0PBri0YkcTXOkOLAs/FDFQzFMwtY/IUJtVmE0d\nJis4+JvvzISaHJdiosfK1/nFi3XPtiUHiL46Ll/T5v8CCgOrpykhcUiRP+Qc\n6d5paMPbYOcfr99OAGPCEw0M9FM0Dw9Uf7b2FgVZbVisL7AvUNaeFZJ0AvHz\n4XP4YJ5uNULJz38QT1bJdn0xIsOc7+BTxpzLv25tBmWdmKc9WKlBRwNOtOA9\nnsaI2mCwNI1ldQ6jpzu3PQy39KulgVBt9vDRWyGxeFFXh0WpS2KffeRNI0jm\nld2NE9xpuKEACsnRlQsTm/8yefSQMJ2Be4RyN76Mv/GclcdeLH2AJe49Mt7O\nIOsfxuRd/Uv/Hr2wLC557foBu1hnG87YtiSCeWCFwbWtC4MmOom9bvH+x4Jx\n54ce51cAiIZp1NLqiuMW/ioRMn9gJKQpvLW+tt/8LFO6JznLYW/oLmfdPYH7\nP0lL\r\n=PiMO\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.1":{"name":"gridstack","version":"0.5.1","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0"},"devDependencies":{"components-jqueryui":"1.12.1","connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-jshint":"^2.1.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-jscs":"^3.0.1","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-bahJkFWIwdLDkOgcPXGawcuf8zYh9iDDKUmsgdcy9HWkKCZbZh8cleb8BvkZ/QhVYkpbVRRZ+D4SDvHESOLvrw==","shasum":"6ffdf7a594b1fd1bbbad9c93719362a129f4d999","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.1.tgz","fileCount":15,"unpackedSize":306981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxHbCCRA9TVsSAnZWagAAJjcQAIs7kUqCzr6HP30tczsc\nC1G1Z70W2kOemruVulkR/PZyvRqRf4BBxaAeIZMnfZmASWkxk1jnMG2MlEGt\nySzXBnB31pEvWOubG6tnv7C7QMAABXv/zcviT2OJwGFHnhgG3dXqDmmm6Gsv\n8OMBuXn+XF7tnHwljAeHP4h3OVTxOXg0JPfbhmatIcowL1ZjHP7QOvbI/cw+\nSnchWg+TLsi9qO1Z+QXd8KOg4w+Jg3I6prtXbtSGDu9Z/eq52mhCj2qk4m3Q\nn6TRIRffWWEFZVvTIb8MD1TlTF60C0DPjaXs1cONk5Ht1K1L20eOOTdE0jlA\nDSL4QaEkJXR+VjucW+iIkypfU4EUywunT4Vk9F/8cxmDo8CgWlFUJ/X+jUzW\n8GYLlR07AdRwiL/CxVu04I7DsI8BvSVTpoBli8zvQ1vK/s+x9amy3TuaY68Y\ngE9SjRoOH4UYlw9bdDH19vUFUWg5ePNmNsGRcOtEXjXEMrXGXHzzVYDcNxm0\nnFFnP44ghE3DidjrR2Y0ljbsXLpKm+3fh+SkrAr90fKmqfiytB7MIsPWzc7a\nHkoxh//onkZMjL9JdORVN54ji3Naal0vfDM4hbolyAZZjO8+EuTNpfP/SDSN\nOrU9o73FfFiAKZgEWH0xUknNrtEf44E+yXCkDxucJc2SxWa4hzjDN18uZqEd\nGrSo\r\n=7mb6\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.2":{"name":"gridstack","version":"0.5.2","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0"},"devDependencies":{"components-jqueryui":"1.12.1","connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-jshint":"^2.1.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-jscs":"^3.0.1","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-mn9ned8C6wnr8QNQJJ1sPMKcPXPO5wAHQv49auf9lRLG8Jx0i8+MbzZvnhsA0k+9Q/2RA7SuvnrrMUX7un8HQQ==","shasum":"9394b72e21e1627b447fd5ea09725db8ef5b1368","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.2.tgz","fileCount":17,"unpackedSize":391293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzH0cCRA9TVsSAnZWagAA2KgP/3My1HtHLjyyA2LwhsH5\nefBQO/lPYcI7gtX2DTG4Q9IT9GBVD5AZO8djkt56WjfK4seUuEe1sHq8gJlO\nVMB09+dcYVM372lmAObVCwwkc6sqAlYytoq096SZJ4voVoVzP5D4AjHt6Soq\nRU7Np0OHlUMw4oamMX1iadZf2VmesRedo0S61YvLnC4ofzmUe+bZfbR0Hryf\npbltgZhtlvaJnycVlYP8PNAv961o0KB2Sz0e/ekgrTj4IdtkS0vsJ9Tfl+7t\nWNIO+ZRsn7gWWvxPHciysFN7M1nd7aOEMZt3n5quMQ39VI5oMovYa020kdBO\nc36XGHcWdUyjWU5pZkkRCPncypdj1TGM2ExypoJvoZnzTsU0ykkBAkzW9SKV\n9VyQXXzwId8x0bN6UaNQlHRqmf5r5wdh1hIL+OzzmUyTAWWfY/CGhmf+KyG0\nJreAbLSC0mJ2XXfT+teFB1cNhyatmtsxOaaKARnMntdyrlqTqDdnkc7WoeXs\nOETs3Lf3m5DrjhaW4HN4QYAnbGxeFGcJZB1YnfT8KFg6mi8v9s38Y6K6zqr1\nJFfGuCYx+EaFt1lfdeA+3uYJGJ+5GPW2CiOmOhYH5adhMY91+1OQjhgM1jr+\nowEY/fJjdC/TWgxlex5yvLucqCpwKMgBsvAj3M1GcweLjoRROEeUecvMHNwY\nujXv\r\n=lwzN\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.3":{"name":"gridstack","version":"0.5.3","dependencies":{"jquery":"^3.1.0","jquery-ui":"^1.12.0"},"devDependencies":{"components-jqueryui":"1.12.1","connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-wCAm3B8MH5JSEWReHwZJutz3UXM2zPBc2n5T7ErmGkFVss+CHQP9YmnvBTwhjk9Mk0SGiitCpgveG6blr0TRYw==","shasum":"451dbf10cba1fa1713ef7d07640e84281c1f50b3","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.3.tgz","fileCount":19,"unpackedSize":385853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1W2RCRA9TVsSAnZWagAAxy0P/j52VQFvcVFSsK2w8XD0\nWXXARFWBPobvF7Uk79hMJ/0T931ZUfPRYwGqyIlT/X7VkV9ijTmkhdg1kqCv\nX142AUpzAjW+HvLtElbW5VBD/N6yaLkNG3BbIXGLs+kTrl/3SAKwPraEoVz1\nGcI/uKB/3NLcIYexhId7cwzl2HnEEJlXUNpH6rz8hESP101zGv0PC6yysI3l\nSFiZadekdhO/hRHHU0IodiLmmRKIqa5w8FefbTuVED/SYCsn1juGXImh980m\nPVhHH/Ms2X5dib3xbuitOmKYdniKMug8fKnfcvSvRrbsgLPgVQIlqw6MPuZF\nGx/xnRi4AGsPOXGCC05gC6J1UZCIm2XZ6T/x4dWTi6PWp+q/wi6P5oeH31hn\nUfD9SaACZCReGr8DU/LyZ6yOAsYhEBqh75FZO7Gjb8CyZYUTPXqDnbr7J3Mw\nkuZBHDElacWUoNa43M4u5lqkcFtdNiQNPzI9+GcSFAQdF3PqChj36joI3/4c\nHSmXI02joCT2ZNzSP4zIPRVCSVQF+DOfwJXMPsm4iP8fSRNyVarKNZJC4DmV\nYhXu/GkpFMszIlHtp8uzaYInnygFu79RS/89K02RTnfUntq/Obs2luN3uvTI\nYMh54jZ4wlmLa/oz221eutmcpdra4MdAqmG1zK3NFJt/BK+r8YlTUp0C06+7\ntyXv\r\n=gceX\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.4":{"name":"gridstack","version":"0.5.4","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-XTfDOqGKRa7Kt231Z+e5OYoHBUNmBZmXfWuemJpF6vp3DpWLa+kXDcll89AM0atDnZUZq7mbWTZv+SEcIbDjcw==","shasum":"73043b7c6459e8aa54bb6159315c9bb3f3072872","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.4.tgz","fileCount":23,"unpackedSize":769600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3WVuCRA9TVsSAnZWagAA4f0QAIQ3R0YefUZH6zmwCfCj\nl3hsEIThuxiSNBmhz2dWsTE3DrR3vlc01yHwwKvQMTJq1Kj9wdzKWYUED8pg\n9h1AOQPOrlbErmkPCvoetS1dtAMnB8u0BCe9rEoeWEbGnqb0TWEDVSuP2i39\nqzPONhGK8UrUL/7mL9zNp/M9bXW4TwxU3o5S9HftqiQhBqXJ7LiY8BeBNZ4b\noTn1cFoEljIBKscwE9S/N84JaOAgJoXUOmdHhwNHwdxbmpc39VC3vtY9UIXN\nkVnlGTczCciSoEa77gcgA9Iy851miIKRRH5xVAuCGGwK3qPF2sP79ExxUOy8\nVPI9adeGrO1GPAM40uTLvYHtJNjibXi+PbrN1kt/cUffGrR7wT4RQkJxsZqz\n3CPS2f17SuriufL67pZgesJbdyCWUzh7i4WvwgsHraFN22IWtS0ASi7z6v1l\nSc8EAmRBZniLio6vBTf95ruMdLSWue21GR52xGHmz2zGriTM5TjJorR9Dvuu\nYXBss3LTkIx7G1a1pQKZeAg/Qgd2CqH+hVd8QdPRbqv6WE3OcVtspdeFUdQi\nwGpAkgomjqgal0cthSxcpGAxuQTh5QmMr4lHMUNp85fQ8QFde4gJBO2cOUQK\nIPsi2oKEIXZ/fOzzRiSfooiYUjIrPLd3PaCdyjNZ9lEJY58fqX3AQf7dRq8/\n7rC1\r\n=o4Bd\r\n-----END PGP SIGNATURE-----\r\n"}},"0.5.5":{"name":"gridstack","version":"0.5.5","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-ctHlY08JRDE6qjjTCyow/l3OEcy5pT6po80hgtoF8qjzHs+lguPnwpL+WaEUBGfQmT3bWNfpz0x9CVYOKR9wfw==","shasum":"7aa95e1746891029940661a199f680a653c0e27b","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.5.5.tgz","fileCount":20,"unpackedSize":625144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3xTjCRA9TVsSAnZWagAA22sP/0YM3cWBHYuRN0fEIv4m\nMt+zyrVioXbqcJp35PfTFZ6qjdLMGpjgj4GvYtdzGfPOA/esjB6ZQy8AJ18T\n+5UZrWF/cqFppsvQBAfDlOEqJTUmnxJVI+7EVohurQGDhPBA7GYDfmK94vEt\nWcD0909XCsRU7It2axTTcrMPsZOBPEq2cChFpEjE8l8pURtfGIJJj08m6JKJ\n552hAvI97NTHjx3X4FwcDtpboGB3L9VufMT/cf6aUgcH7wDSwp3mHBVM+jE1\nLAFRNeUsdYVR42+WwAd0EYs92Kyf6JiHYaM4D3G8KV9lEbFM/PfuE9oGXtG3\nssVGxrggXt9g+ogTvginCdBFFbgBzmNlRDlPzLZ8h8DUiGhfsIYYZwXceNg0\n52RfmaolIci9DKqJZQlCDJAMDhA3MqyEQABN+4efuhZ4uOJGfsaF7zNOdOFD\n4q5bf7RYP2qfPfSxGT0scfb5xqWCYM4ugnfQQ/Ro8QanrGB7g7zxvZcebQgc\n3c8FQGZ3kF/1uZuvVFbRSyeiNqHfSgn6ElOsOSu7mVS4Lv10LuSbXnsfUYUZ\nhNoplsQ90+LuThJfMPVLyN758gQ+roMu61hkpqs6uqd7LDwlt544KM+ds9jK\nHYKzBQ0IT0BlGRi/jI+2gQRVcuLlc+vZP/YL79iJOkD33ciIZuE8OUf4Szze\nulXF\r\n=+bDQ\r\n-----END PGP SIGNATURE-----\r\n"}},"0.6.0":{"name":"gridstack","version":"0.6.0","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-bcg/xP/4Fh3/dIhRIQFPBybR4C/C/eLBT213ZZfQvs3kpUMav7aZhzUZo1JHtPyLRarDGoxoDYg6B7dE86FkrA==","shasum":"3927d878114cd7fada136b1fd9be383b14180ef1","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.0.tgz","fileCount":20,"unpackedSize":632161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAkSrCRA9TVsSAnZWagAAA50P/1x3ufVOmI4hVssUPm+0\nY99mvpqkEFbpTW+3kAcTJWkr5JI9X8y+p5Zr9ieySA2UToaNVhoGbp7EgLRD\nIJ/ewUkYmh0YJLCAXGRpqBqbgnhpbKkxfGQ9ZjilZUO+qTSWu8xlr5lVjR21\njbTGEjTiYSlBXgEyvVCe5BTezDIE5x2PCnhL/BEMy2dL9M9RQt2dobcYevam\nRJrNGncUtaJ1fyuU3o3KxRHHTY8Z6b2bsMTjSDA4pCKDsEmiqI6vuf/U8xx4\nFUPR8ziOFd+hLG+dxt29n9qAvj/MIvMRZWwbkQokX/QY2xVTvmyjEa9Y8XZS\nRhpHKZdYL7uFey8yFtaF4pogvdG96yNMKQrEv751HqdGOE8WwovKtOrYSj6n\nTN/2n1YXG74HyR8IOSVjJAU5hOOQ/AdT1COB7seYP2IRBI26XNezocfla0MJ\nvAq+wGdjFb8CEbhCxcnT2wyZCqS8RWsHUTF/EwRvFTLReuM+MsqD1gUbo8bY\nNXhZYDpy85DOYcVj9illp2s28ihyTlSEuiLtTSwfa8StgHnwATlNZ9GQyXEx\n0y47VP1Db35KJLB2EF9LDx46Mfhy6WGd/FV1qvut0G8M7tGZDjCzai3tQkhQ\nTrhEWgOXflmjXkAJCoiNGwyES23/MUdvJJme9rpotCLYGee7/8BcdTFhyjrD\ncVrw\r\n=HzK6\r\n-----END PGP SIGNATURE-----\r\n"}},"0.6.1":{"name":"gridstack","version":"0.6.1","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-DuB5bAz2p9GP/KoTaESufxDDqlRMoFGXeu4tk90aNNSFfxT4EE48B2t+BiC/xGt0Zl31XOKd60ZBMNKu9dCUbQ==","shasum":"973fe065349c55011ba96acf85b8915fcb11df99","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.1.tgz","fileCount":20,"unpackedSize":630170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNyFzCRA9TVsSAnZWagAAzzgP/iGtYp2zuyd2BUY1mWOn\nhQ7ny0LsOwLwZo1qypYLlmW25jz+vW5bXlcErxvJZB9/+m68hS3QWEr8urjW\nwTuAF6k2pWArn5QKWRk4I8TDq3loJ7+NvEL9Dzd7gWSk2KaWxD7b0oqraaQ0\nhdaFCsOk9gijUSR153Glif59ZnXhSsKkHZZMv5WKLFxKHLzbmNiSmPdEheqq\n2/ORlAMNm4eMzAOSNaCeNtJ8posjDWPa7aURGkBYVMZxvp6E09runqzhmPeg\n5ljxl+ib0wZ1gKJnjo/PEVkDJjbaArOBHY4QTl4DxrlyhPMrNbWOHxijPM7n\n+lEoQtWXYFebWDgQFhsuN3Wmcc1qHKNgiKAlMp1zIsH35409kK2hJe5noJ+i\nO9iwBF7U5Bkki+ZQRVmtWQGbHzjz8ZzHJ/9pI78XLNRFWfqk+l2fGUitNlNi\nX8pgt6ee3iu9bucU1JRw2/1b7MWHHWD7FVNj/MjXaQGsEVNWbNEj8ZQIUM7T\nHjYR0Gd2ARNamcteHr+IqeAVSRxriHiGCVFM4ptGPNq+QwfFC7cM0NNl2Kff\nH3SMmYENT1QLKCHCGq1geJRSJca5G5p5rLwPcBibbHfMObdbAo8OaP6lrwzH\nQP5siNulwIUg3Ty2mWWgs4zJbsXj91YGvQG1vkabnRf9GIOqeXREDQ99CV9D\n24Oz\r\n=G63C\r\n-----END PGP SIGNATURE-----\r\n"}},"0.6.2":{"name":"gridstack","version":"0.6.2","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-5ixy9gwAszA69GCRZ+VXAyHVCU+ofOYcq/yLZ42ySdYLpvqelnItMlan2HWXXk8MEg/I5PCyHTE8OcWlOu6BJQ==","shasum":"ccce0f9e2b27bebc09ffec0880c44359e12df742","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.2.tgz","fileCount":20,"unpackedSize":636013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeONS+CRA9TVsSAnZWagAALbUP/2Fe39vyGqBQco+3lp+Q\nKKbX5IkBHK/AXwVZ+Q/ruUF5TAwVM/IWwnZRlDcA0f0M4AXB49yhK1osKL6E\nSNmYZ6+llcGZ3GdZzK7tu22badtCjSKvpU8LV3y6p9IzOyFEUlR4fS+EEtT9\nx7R7Wh0ug39oMZovDyMVjucK0aVmFs5X8brNsDmhNCDSbndmc1dU4SfvVoRg\nqIddnsXZXcXSY4ao3I44c1QiSJh0FEC9su5sA2LY9J+bOr4AqFFQBzZi5S9m\nwpXBzEjWm9w8xQR4sxDtvsbgAb+FiF1+nFrIqC5TIHKcTGBx36vIHJpPcDgm\nYsUzCBZKUBFwIBKQWjyeoe2QtifvGDjOpQT0NckzzkXOWw9A7ccfjgx1jueK\n/8QJ+BGhQy1r6CuwBIBLzgCzKKttNds0T9pJd4EL4sGwEVt+2H0Q7rmSX4wb\nZIeWxlLgojfIhOIyCj+2HeXZqAN/Mo23wTJhXbslRvxGd8n1rKz0JdgHQApa\nuiTHF6+byfjnVBgSc630hSW+XEMvI3J54/8bRT/PcVFH39KtqSLuEPtt9onc\nmNdjHffOZzrVEeWUjbnFe3jE951gMYG51TCL4Ee0+mtg79K4lJjkelVNlSHh\nriultNP1G0sdhb731TiN9N2G6wRUmJVAPWVD+aLFBmFXor3M3bDoyEDQZrQM\ncpBb\r\n=jlJ9\r\n-----END PGP SIGNATURE-----\r\n"}},"0.6.3":{"name":"gridstack","version":"0.6.3","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-bh7SnCe4N255TNvBIZ6pCRpoAh1By6EH1uHSI5lOytPhdfXn5Vb+k4Wnlt0/VjvNMO+DmehGlmOLo5B2cwX06w==","shasum":"f7ba5dde5f747fd076b8d1365080f2cbe2a9f0b9","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.3.tgz","fileCount":20,"unpackedSize":628217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOyzaCRA9TVsSAnZWagAAVD8P/3x48O2fO0RwHmnPMVWC\nAbyCe7eIaIXyAg31XRGWSxMpPRwr8D0haQKsEJ8FwQ+xuoAvDKuyH4sxCLp2\nLsMieRY0iLM/TNLG5S9pV3wYnj7YEUdNR0CymZ/6gUYTinmZOgpLs4OV28dp\nZ+fLYo4A0T2e7peIsrgFEKvSIy1VLWJuasRFBBO8Egxv8PjY0yIhdoSCH5Kj\nLrwV64R8Y56U34mm+FiH+Sv3M61Aawm0/sw+ZsMdXWuz60Mb1tCho+18EFCd\nc+t2sR12MGTpz1Cix4W13gdwF7nkFK357TaSfT/GYlZ4Y48yVRmLvQ6vDp8T\nIk3o84vwi1yF0oCfu7y6csMjWdchr8r5TZPRwVlEX6NK7xOmpEqL0H3DdkF8\nwY8iW3mGT5q9lg7LnTqVlpNaW4uUi/8MjB8qqqpaZqk3PlCzvZiOKs+5X1Gq\ntPQBEHaxowoTEV/wu1n1pYmKkECSUMbmNt3PYn7Jr1vyJdHOf+Qotr3U3m1Q\nmhBKbBLT7JZ7yGhLagvWFWGPgFsoxWH55uTZcMAZWmwiXiV6X1Kvg/i4Ig+i\nDtcUOWl5gnf1ZLCeCkDfJkx4xZ93zCbbBTAwLA63ITZ8ovuYU+UhdGbJ6TRA\nn7p5Gzetgru5xsHd9CJ05biAlwdsSFcE36eNVZrfSy+lqe3PUp4JfAs2MSR1\no6+B\r\n=CRRO\r\n-----END PGP SIGNATURE-----\r\n"}},"0.6.4":{"name":"gridstack","version":"0.6.4","dependencies":{"jquery":"^1.8 || 2 || 3"},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"dist":{"integrity":"sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==","shasum":"f832903a1323a0e536348dd926d7b5d084ca88eb","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz","fileCount":22,"unpackedSize":999344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSq9XCRA9TVsSAnZWagAAo8sP+wfdnoOg06/eGQgmEZKS\nIgEvAB3tCDigohussZ7bJM1+Undl2dmw3mDzmBoh86m9e1uXFRNXdMOxOkp+\nVS+qJKmaosyvQHiHZytwuugjbcLS3a+gI6mAgfShtBZfMTKrcyWkhqiTRA0z\nCPSkpxQvq+ja/ReOp90NuxEJmYjOpAcn0zYSaHoWHCnLQ1EcfE6Lzndl4JrK\nuNUSAAns/exqv6kXj5SewY7X9t6/i7ok/gKPK+iTKsrzJEjlT8i0zJ7U5vl/\niI/Tbk4mR5kg3DtSh7ejTI74H1jEFxxzjUVFHP2ilbHPJBNfb/Xu3Sh1hsFJ\nHe8lljVajH1PElhQNxwWTnV9Bbw0MfsZB1XcLQxJzyk3nfv85h9p6pkYJgch\nrUAlnzn46ArhmqnfvAAM6xlCM4J7H3atnSIC8XxwSRRmmaymTX6wjmcaWNw3\n2VvCHXycZ7EMNV3fGS8RlO4CKjUAgzStGHfbJhAvua6ARFexTGW2WBG7sMTu\ncQMvNqx8pJZ+npdi3ZAMZFquKPD7QsuIGA0zyEt0mlGJ0GuwYO5sNrUS/mOO\nhY40RikJBwO0+6/1gOcPNMhwWnpqOJyxCtkExus3yxSQF1rPvlROqPoTl8Qg\nQZjiD/DOuV7cBVlqyHZRPYmczCDPgkDlJ2/7wr7T480vThw6WTVgRALJb8sv\nFpt0\r\n=y0zM\r\n-----END PGP SIGNATURE-----\r\n"}},"1.0.0":{"name":"gridstack","version":"1.0.0","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-mkKUT+z/0A/h0EKWT7gok0KU9dwAXO3GLJpIGWGZxH2ZDn9eNswq+Ic1Rytb269xY88cMffPcejSx/wOqcgC8Q==","shasum":"8717b16e707aa425b18a089481254bc4e1e857d4","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.0.0.tgz","fileCount":25,"unpackedSize":1305995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeU3xZCRA9TVsSAnZWagAAQssP/3P9x+FBy6SPo0wCedAq\nCNtgKn7Fn2NQjoOiqrwSIqO4hhdHBvsKbZcpCH3anUB9DJKUhzT46lUnRsrX\nlCPEMvHYHddx7zn6mnzddGmd7ICK+ZbdhJ1sEpZlOCcOnZ590KqwNj32uD+I\nTVnSos5jmAcFH5rrfXpnJ9Hkgxz1Nt8tzyiszASjCLGx9yNl2GVrMaxoug5X\nnWH/uawtKdveks1MgpWXXCVnebldweZjEPiH+aH5x6HtYgGAbKlTSBVUOPId\nDm6cdkGD0LBsNgpAlB29WNKswOmjEguzLJCOhNYgaQ6FnaXrrVfYmZYHy9pW\nlfKgeCJnk0lEtmb+LR71ZEcbuHqzrJqnt2mTT/3f1lVJhUcmDOo1iG8r/eua\nOLXYW9HcheP1lqYmowf86ShNPIUhi1WJ1CMnQP3YgmOIAozJlhrM83dNu2WX\nHo+i7KlKR4Momu16O5ScUefE+taoPW+D2dKxFE/5zDE0fqfAE7jwqQXNHXMg\nuLB7HPciEWC7r1aJJytD+fHoFQF5GgDenYJq3d6yHkIStaLgeVTj3einkZO2\nUQseW/CJsnochagF/mlgEhU+HHVPIRD8w5lncFf4pxuLu3fq6AW5RR3uRuNV\nfSTOJQj98xIzpg5azkazuThyQno9ZDFtaRPdPK6TlR/cgG2QmjbBbBHkhJ0N\n/6Uf\r\n=tLQV\r\n-----END PGP SIGNATURE-----\r\n"}},"1.1.0":{"name":"gridstack","version":"1.1.0","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-gv4kzKDlOpv4qP83WGyzNcHsTiZOIVLJhUAuaByO1e6f8OfDd08aCg0Z4xWqHVxJHyPbQRfX7hDaS80ym3UcNw==","shasum":"f8ca0cef6c5ecc99182d5578826b3a0f7a47df31","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.1.0.tgz","fileCount":25,"unpackedSize":1310918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWqgSCRA9TVsSAnZWagAAIOQP/jqbMmJGERccmD6QMkGd\nFGQrnbFa7vgH4HaHFFzz/q6hQsAyZ71wtc4Z0pCcyCFp7he6aC2gTEo5vlP0\nitOFqlZ2KnPcUH2GmKadsNj2kfHb4JDQOzX0DpQQOrq7kY1YLJ8Uq4lZbLSu\nJ7qvPRpgbzc/0ujqQ9UuhrSqi7MYjyVW9v7wvkWg0dA/i7mlaZUA/OQ8HoRt\n9JrIqN3WGf6+xoIztudhSyr2pvi4D8sEHvjcdMUxxN/vNM++5nEO+68Pf4pF\nRiwgHEYdqNkVL3CrBOPYp9xCZUYfc27jfkZRhm9bM4hGGPt0jlRMy82yq+wy\npeW4cXgAaD4Ap6YKTOsuRvDsz9mL8Yyggcn6Dh+7ztcWKsVHZztcRpWbol3X\np8kbn0RP5qK7m20ZnWEH1/x+q0PfCzt0OL/rzXvFt9uAs6K8EIVf6cNOw2zl\n6utcF1FdXT+7tJ+Jr6gcFWwZf14U1DwcW2OWoVygQrb4rpPJgF7cngcPRwsk\nYVBX78KC7xh4JrshmyH7f/GW32puyjYfSadgCEdYxaAfHav61PcUi0i3i7aV\nNeMvEX6Vm0zAd1gd3jpZxvkoP8Pkl1f8Uzl77PVrcfLXbkp/4de0wJRbdJzf\nlIF9bmlcRg5Q8cHR0JGW6xhQhtwezOeqXoly6IUPC9u4oDt6ZHDp6TQ6HKhV\npkBg\r\n=8LN4\r\n-----END PGP SIGNATURE-----\r\n"}},"1.1.1":{"name":"gridstack","version":"1.1.1","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-7XqikhTTKK/UbXtvOm+pF+xmxOi1YLWPU9cfcOrdbFbbN2aLLVEhx+oLyayIi7P5UXgaNk/DUHipMIl7L4gA2w==","shasum":"5ebbcd9cb4d47314b34f0534202eb3e3125fc6ee","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.1.1.tgz","fileCount":26,"unpackedSize":1300555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecWOGCRA9TVsSAnZWagAAvcoP/RpCisex/JJ+BLc6PqBU\n744ozDAAzbO95i+t46dGUyVafyQ7SepjzBJVXQgqUmIxGBTT6mz03ITH2l85\n586cwbIzHRO96E7KiclAOILMqcMgJUHvBjh2CHSNmrJwmFSG2GR+PvD8w7bk\nSEnjpPU+XJ2luxergZkMGqglB1/Ct+nN1/dsHc1apE5Oe2cZX4oI3TVF+5qQ\nGuuMQ3NIMQOhze98O7Ijo/m5lJV0pxleMqNjSBBHPPRpHZ9P0tnR6VJHjgQ8\njp+BNCtyaofqPr9uDrZ0336KJ2PezP9osNit0Ql8BUwlxgEEEhqMmukxBLtg\nciR4nsqpoZjK9Fex1wr50wfn8n8O1Ymx1umpE4cRC8OllDwvuZRrSAxYfBe7\nAAL0WOk2mEVi1HGCbyFb7Se8w7hxIghhVSAm30kB2vZUSnnn9hiUh98FUZoq\n9d+Imd2mb9m/ARRLYam9FE/ZiBkGT0chI+K2vTphjyccoGHuAa2ijqYJ42xI\nkQMkk7jbRUw4dMn/j9HL7flXb/NagopFlj0FJ/3G7wF6mDMXMlmv9BSY9UjC\n5HHMc+w8FMGUeP3fDNKJPdF7VMlh2jqkIPudkgzLVnPvhuEep5ILuqW59VMg\n2eeA6DjkMNttpaLjL2RzXjTXsdFbxmH84NpNONPdRri0CQU7iPOeso4H4uWG\ntKRn\r\n=Wvjc\r\n-----END PGP SIGNATURE-----\r\n"}},"1.1.2":{"name":"gridstack","version":"1.1.2","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-orfS5X58XSbsQMCuiz0+oxU7OGJMO2p1NVfTGJF6zcS5cDNtdX7JlY1ulM0yUnEzkkbcr02uO6txCd48zZariA==","shasum":"1f39e420d7e4c096047adb53ead082c46926998f","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.1.2.tgz","fileCount":26,"unpackedSize":1302248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewbZMCRA9TVsSAnZWagAAbzEP/0eDOBxXPIYX/GciIuRE\n9GOM2jIvLtHFqk3Rv2HXvmCuU74NFn8aoDvDItUDKpfX1+vZCuuuLofke8o5\nxtDMeAo+W8cnZJxVAng9cZdfzjwvjlYyqjV1QTmVMG6agIZXwaiTUDWz5HOt\nuTwL2HfXjtcpxjSp6vJZ0naF2bTLYUhvAO988HkH74XN3++TAqTvhXysfOwa\n27ePRHiN1JdBrpJgYNguEu6mdnm614uFX5IDaIfNiXnlkHrEvIRyFObQc60s\nlaCOHNsGPzfvwjAxzkDw361dkoOelXYVXs8/CEE2cYBLoi71/q5GngtoFkBB\ng0ynX+uVGUk+yYsyi5F3/G0V9JhvO6B+OGUXeC1iUsi9aHo8ph1wZEx4AT9N\ncALIpyxntAitK1WLdg4hX/subTUjsdrK7DBgz2bnP+uM8zQm7OBI+LNkmZdp\neo8uvlkef2M2TqNxpwU9jGDMmSwFV2Dpne/StumC65lYr8HYVLxtewTMUmDR\ntvAbFWtamo8kRYu8Vdhdyz6BcQtafKUjqcr0RQnn1IGbC0iOTkXhf1XentC1\nkjO9WHYLE10O9tL/LN+mK4gMtjpIqrGKhTItdKy7Uza9LLIyUx55N79ttoHr\npIN4x+DchfDmtJDpdHy+gB1FqmE+4H9iIIIUFSnpxrC2YuqcS8UZmI5MN7VV\n4Evc\r\n=hwRO\r\n-----END PGP SIGNATURE-----\r\n"}},"1.2.0":{"name":"gridstack","version":"1.2.0","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-qcK0Zb2ybT9U0nrGQDTm1cdOYtSfZe88PmK6076iH82zE5+ucyIXC2O5yQCaoJGfo1qlMYwSBXm0GKO62Vt7ew==","shasum":"981883f88f0ebcd738d63325bdc7a9b471e102cf","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.2.0.tgz","fileCount":26,"unpackedSize":1315101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJZR7CRA9TVsSAnZWagAAbGIP/2VTa4NfxseBNzgDh9+2\n32YhxbiSUZwWcylFyjSnwx6u1BSZ5PBxR84sbuHNscKPBdaEBCENmWur6Ilz\nB4FJ7tdDwfNIWJL1b80LNA56nlB8li21IpqRlzMm7Q6DWBe0bG+si6JSQ+Wt\niMP8IIWGr0LkkuFgM9cIh1vvlYTWmDcSW/k3JKerfTWu6MMfg5v0lf7NAPvK\nqSqXX006SsKoxLwvb3dlOUtvUIed2BVooSYUUzUJ/Gld4HKiI/5+Y2HWnfx7\nrPBi9IHYe0Ty5fOjc6dlkA6X83a78k4OEOLXIEhdJ2Rzcz+H6EPC+ngVdl98\nh+/4nPhObllUnFd/Gx3G4fUCqJLI/oPdLXx7VbPskNlSk2uLMx/iW0TQHS0z\nTr60SaSzMiOR/w+0s7WHxB1S0aRjYSH6xTS+bV1laviMd4OuY9oO4pq66zqp\nuaTuRJlZl+NjkJr5qC2+2SUCqeroNNQObWuPo51Zw5exgrbTLownIibUo74k\n2s6HywbkIeIOrxjQUg9fTKLon7bnhHIJWLsO8bZI3RdFTnqZ7EYyrctEipRg\nXQuDEr4lTi3/98O712F/o76Dw4DVaINF0RmC0QeLRakjNE8DXmzjE9SERvnc\n49/aiOIO323HgvWW4hzmbcTHOkKkLwzsXsKxtB2aCK7TJVjAye58QGcr85jr\nfveJ\r\n=z3BK\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0-rc":{"name":"gridstack","version":"2.0.0-rc","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-e8m/ip69Z+wuOZJhx7RsPVSnFXA0qXLUAEjRpXKqOawXMuLpUJ6JlWK6luZ2dZtFquOMhylFqfJ2/AkcrhRDRA==","shasum":"3c94a9f4db2a679c69bd2d2d1dfeb1d888542aaa","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.0-rc.tgz","fileCount":36,"unpackedSize":1866714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMtJICRA9TVsSAnZWagAARw4P/2F9xW2d56F2nA/gjm4v\n5OHlVuHEqNArGeZzERBx8pfkVs9EtQ17FEPPGnB9pqsotNC5Lbta8iUogVcM\nGcJzoaY8pTdpAksTMsUAp7caYTIwdx7Uxc5OVWSPiI1TthW0wJYfCz8N8zU2\n/nUTxxXmAw/dZmd8DIb4ouz1ruxeY/E1CMCLonYQo9/1w4CDQtCY5G6Nsdob\ntrQNomQqwFGhG/Q+CeTbO5VMJ3qcs8vNz+pP+wS+DUiXZfFY5ta7UUX4btpZ\nVaguApFOf7r+x4681AW0TI7rAEnpATlIExRz2A/RM6P2QZcztUEVE/58yZhs\nI2uUX88f6tTV8vfOt50VWorarvc+ioap8XbVH/1r6RTgiCqtBy+tuuI2CQkn\n7bztCN7PnTgM1iUa66O1IJYytI0MGtCGiytsJVP9wFwYYFtUqzAymWkj5YbZ\niFQfYk1bwLv6x2o5cujtE5YXEgogsx+9+WGTxyauAob2FOW5d6gd0pxGoY6g\neGdfjujgrEaVyfCPbZvR+fs8w9XQMtykhObWI4IelwDFPFfA2IzOh0RpVjY3\nmOUHyoq867qnsRq2ql1lGJHfW0Uhch1BRCvxwurGXpMDjdLj3fkJOSF2/E4b\nh2uKmV4cQTXDZnx1Ud6t4FLJyfB2sfbdwobM/xDpRGqKrG0QC977KlXNjGjI\nl0FD\r\n=NTHa\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0-rc2":{"name":"gridstack","version":"2.0.0-rc2","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-jvg7a4mw0UxuQ9rHZyXCril+BMapoHzNmqIfFnKa205UY6uN/Htzt+55vsbZTnHpC5qAZQduBquNHJBlgfAVEw==","shasum":"71f6f619cde5f67e105563cff444fbdfa280bafe","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.0-rc2.tgz","fileCount":36,"unpackedSize":1874762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOh4FCRA9TVsSAnZWagAASPoP/jRWPZBB0heL8zacSNsv\ntu0h0sMUW28v36tjjxAha+L7ZLL01Juq/qzhBG3jPYcleO8K6aLtBrMs6uVD\n367bY0qluaLN8kpU2TXnl4STkPr1eH1MsZDorEZJEPgcS9v+Niu/bycAWjTB\nlEf0zzHm6ACvvoULsQ1Lxx3eZeH7wj77yGwvFd76M9QPeRGUEwX5CzYYW8JK\nOS0MAAun13g6Thtgl4q1rvnOvSISwtu9rW/ovRymC+S5XCo39/5KHhobvUzF\nhgi1owUHcX598XGcEiODYKPwc8/Wx7gGc6RksyTM3nfROxN0eJQQqx/1ZK/g\nXukPYjhjKad53zS9yuRCz2vwgHREx/IPzibaW3sQJpkTnbM54/ia2zHAhQYv\nf0EFIW7qJpRkOpe/oP4NUeWcJykIvGg2EMDYFU5Jk7pYDozSdMav9Rslq7pv\n8Z4cMi8FUVNactFQ5oBYfQ7hd3GavZctcYQ4tnsVWmAo1ZQYIutQRmVZhB8g\n+oQF6oimJbLoUu1lBXTzJZIm+82ZLYknt/90CNf/UXNTTzISxL5PbUeOfDrX\nyy6T3jC71u6elV/oOcpWpcXwmTeNtzdxPcnEBaNRasim0a3uf96wrPrMS5yx\nbxNKFLu6+OFDMYnsv5Khk8ZWbhdSoL8tvKXBwRYStZLpji+XDC2DtnTovBho\nYYJe\r\n=vU8c\r\n-----END PGP SIGNATURE-----\r\n"}},"1.2.1":{"name":"gridstack","version":"1.2.1","devDependencies":{"connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.1","karma-coveralls":"^2.1.0","karma-jasmine":"^3.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1"},"dist":{"integrity":"sha512-yhcwA8ty1RaC1Vijd+C6v2jFOZhaDjweN5JtOQ35KXPFfnwItrPEejTLUij58GdG+Doc1bvHwg534El5xd4B6w==","shasum":"4505b3a5c3e11f3d5be0a5bb7f5d2194506487e5","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-1.2.1.tgz","fileCount":26,"unpackedSize":1306703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUn7lCRA9TVsSAnZWagAA5rgQAIG/Gzrj04ixLIz6xNbF\nXyQajhPpqFgYSPacfPEORCSB7ufxhmjXZfAfpjkLmwbZ6YgWXA6xD+bjTiuQ\nHo8Z7Am72E49orJ5L9zJwXVMlKHX8LfPKKBGhgon5e8OPYfb18pZDLvLIYsf\n+iW49Z+dBb8RhoUl2C1fX5X12jbFd/cy0S7DADI+CXjEc/nwbTKQ0gXG7Qdx\nff0n00GZ3n8ouErzLjq7hmAnv+VQjj0hZdd9aDpBS9gYwfxU1ylLkz4kd2ge\nZD1mScowq02RL2layUpkpaVgocc+xewwoynlxSHwg46C58K01eSQ587Dv95s\nO4HZaoM+ft8UE47N7aQkKrXGCnvMsQC4QfaNTzuzA4JcvNRUzzI1bWZH5+7H\nd7dBc9QgwFk4zSbscYD32691ySbULEaEmz8LRtMlrfk0ztIJQ38/rZQyLFf8\n4XQgjps3djmSRMPHPHZMpJMZ1/0Q1cE0vxZZAx/RjdhfWMkmWXmtIUIZbuh8\ntvbQrhXEh9r0Dc4UroCAF1ZivRYXcQJBVsz7g+sDdHmi9t85hT7rCc+/NLf+\nG49PWFegvbHgdOyrffz7wL4yoyPYUTKE1n8ILrXMKDJM+CbE7YE5re+SEfyq\nyspMCMqoX9El4+7EE3+vuClv89UMhSXzlb44PQaoOZx4CBGFc3Fq+OwFLIlv\ndm4R\r\n=flPp\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0-rc3":{"name":"gridstack","version":"2.0.0-rc3","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-byio/hNCGAL24sOO+qBCpl2YPmP2nKhUhMP0Lcn/Gc8e+/RjoODWg7TDkCLGkVZUQVSKdi8CjqAoGeBFD6dreA==","shasum":"f1b76ab61452b81a84e75a3ee409b50523930ee2","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.0-rc3.tgz","fileCount":36,"unpackedSize":1876890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUpFXCRA9TVsSAnZWagAAv50QAIKmGy9QVGDPmmtjRLxZ\n49w53UUIxYJUV6k/kiSX4BRjyp6XoCA2XmomAccI3/mVxo41bvHbdr1OeJrX\nAwxaggSSL2PcTmdeNHDobCaXn8c6/46plOqz8mtFk5YFpOPG2P093L75JA5y\nk9qMKKuVzSDQ/8+QJy1aojtDsS1i84C1TQLl1zCntfrZpQ3HBxrZbPcrPM5D\nhKw0qpZNza4T8NBbxgbGSeJfzJISU1gd0RM6vxBM7atyuReYT50/qPZwZ6Gz\nroLf3Dm52/OFeV6ON/m0sS1mYcyYWFqwY0zkV6usDAUZiaS+Nqe3yCSMf+gM\nRhstkOLIQ1U8bB4wcJBHa2MmWe40zB1infshQ0+uLwzF9hmtfNMVdvT7Ji2Z\neaBnMNKXjMhEaI5y8hdgvRa1tG0fg4J20iZprJ9cQaPz5UD5+u8orlN9RSnL\nSIFVK6lcYNAc9wVzZ/7YsFSON2pBJcFripzBWpGwj/QtSVFSSUE/j7dHquPq\nHp1X7Jxuc2jcfRAnlnWxFNyaR+k6Dazv7vrpq3Eu2R8cGh3qA+6wBxAEWtwv\n80dVyX96/8NgA7UNYmxl3G9l3lpmHNuYuWAPLWRKBAOZtRAphNqfRdtjapYY\n0bL4OFM59W/GsKKcmaXKBH8VYiGQFw09RIn0gnYuC9X04Z6hOVR8IgjDfLfO\nH0yv\r\n=FzcZ\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0":{"name":"gridstack","version":"2.0.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-QdWlck9GGIHf1hBT3pwpZtXjHhkretsMeJO5Ltsv9UbmbWpdzIIxf/ZTv23JOFg9DfLBhsI0H1Od1xtTsh8UIw==","shasum":"315aa139611695f71a3b5fe51b295b0e56ef3308","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.0.tgz","fileCount":36,"unpackedSize":1876982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVuOdCRA9TVsSAnZWagAALSAP/RzXqgzvYQzjvcN11jPC\noXmYGFEtU7u6s09J5u9dE1LeTfEmQlqvu3jjfCgOgT40AZNHDYSGIXT4g2a4\n3y8rZmXCzAjjsNdD4/WXeZmeI0W67j6jULh0Ukuu0KJ3CI+UOA7qp0Cps4db\nHh1zN/USeKfOR7uUX4fEPdvy/DFhBGfxXQqjFzbc+G6mejqU/IQSVgUF6qjn\nt3v4PWm4g1aVU/rUj7TO/YJNtiJykoOBvjxXXvU4I+rBuOVRZPHdZTPjAz4J\ndnl2kyWAc4SZ1x3tUXKIE+awxeZFFOOyyJwanpkyoN5to8m7gBGdKsFXVtRo\nK5TThAUE2OnU0FUg51gKVKXef6yGjrPzYRxp8imZfA+oCQerQBAn/CDc2I9Z\n6Ffeg56ePpq4Z0qJrz9mHTy+XcS3YhXHZJQsexYuuo1jTUzQRx3RCYEqwgfH\nuObNde+St6Fm+7RwLTuk79ILCY5kfLU55xPfQqaFvlQXcBVgtfpa0/4JTPAB\nFj0LSCEV+pVlJzVzlRWMinEOT3WJOyzDKEDI72GEuhol2vCo8V7U2tVT4FOm\nXif6eKxfQXTixsxK15PitoySlNayhtNCOjnWhrNNvjsuFWHC9bEDOxtFeJaB\nLLLMGiARPpxkzIvWYupM5bQeZ67v6SHJcZdMjQmW4AG6aswbqXR677xna79n\nQSH0\r\n=8Gqk\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.1":{"name":"gridstack","version":"2.0.1","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-Zb6jpOMGKDP8liEKgmpLfcFnY59HPKw1hnamz5H7ktJ0iZZ6r3uvrWt/vTHmon3QHSlqLGhgSuoDh610x+YJvg==","shasum":"b89ee83d1c1fb0650e98e3e56fd1421ae943c76a","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.1.tgz","fileCount":36,"unpackedSize":1881872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfb/+LCRA9TVsSAnZWagAArm8P/3zwYrXCghxBuz3X0AuY\nzI2gT1jW3HlnpK8VY2rwkrIz9kLEm8bzHwYdny4cKdQwgrc2jLyrGMm0/Wjy\nM0BP+E5TioyqdBqpF3kNMSdJH8XEKzXIEzTvBmuAsA+xLC0TtYxPSob7DRzf\nhG8FvAHORjvl2BQ2WPFsHl2toDIRXi/+JWBQbnuz72JOe6LNO4LYwBm+KjdF\ng/lJhDPjLXDFYpqOCLsihFLONew6i+3w0RQ3Go0VevMWj0mvgMeR/VXtK6zK\nvgQlFwGxVlG84GSYcH2dNGT5uvjf7dJMqy/v3ZjhwZMdMyICq4+xcRXqVGkj\n5r3h/Dnjbhp5nLiSOpnCe6fwD3QwH5r74Ge3d/DyuWHkV1oHVPjkM59wAVGR\nXN3u9JlQlwAQ3C1VP5zHw3yiwaMvdVOGrxLoD0/S3dfbc5waN+2qwlaJSL+b\njQgXQ7kP3uOOahNnLUjug510os5GKtxF5T0kfuL2gWdz+xs1pnACHFQhteWZ\n77XtViiEQFvqv4RZmnc2094EKA0C14UNFlubKOigZz2JD7tcSR3YpyUikBzP\naGOdyGbbsxJVJVvO3nYa7nx335z/Gu8Bkv1Z9qU+sKtJi/or1zvtI3t3iTPP\nVEfRpOJId1zhPlQ0GR33TTC2aipp+c7NISZMXGirIEAeaKwAXYHEJmAe9qPj\nogvg\r\n=60+z\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.2":{"name":"gridstack","version":"2.0.2","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-sRqfiVa/5vsVVTzKNBV9DutUHosMQxQr2nvBSfNKbe9fJw5X61AI1+MlfP647s61h8KEIqD+Z1FSDtNJ983PLA==","shasum":"e5be0e137f11ef1ecde8c30fd3db531f9631838b","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.0.2.tgz","fileCount":39,"unpackedSize":1890418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffBU0CRA9TVsSAnZWagAAmNMP/1SoB+Ezn+tyEnIbAOoJ\nWLRUMedxz5lOhVx/cIt/cuJtXYBW9NL8IB8qCY4d2CHTNu0y4Eh7k66h5Ru+\nvkMbv6PkKRnNGTqF5ls83KYCMAjTvn7RozAmCIgMyCDkfjefOUkjJBj8RPAZ\njCon4wf+p54LGfbPjpGl1bczXLgO/VzZtvBJM6MRLoo2Lxfw7f8SY/sFD3xS\nSnfcZ6lYSx5GTMSnSXuzsV832x96+hA0WEGzFlDN+e48oRLRItwJ7Y2e5Qnf\nj+z9tkUMh5d66m+kiIrVuFNaEaUkBwNLAPxr4Ymr7gNF8dVBALfilq+kn2XJ\nLJ5mezlXG7slEu8i5CQF8vX3w8hsLH1aIHCcoZ9ZA6mTlIP5DKsfUL78IrPu\nTiIMij7m3fLvjs0PLXCF8wMELhaVQoduNTsPFxgO/EztnZBL/2Ib4herdqAV\nkT+hktXIgUGo4IsebXmTfX9pOKfQFHVCeYyKYOYzt9RSbZ7WASAmcWwCeKQJ\nI5CnAyQ4x9OMLROE7EPoJlPT/ITH9iuFoyHtg1NEYKdbxO8mY8qDDqOvW4Gw\nzlI08JX50bkO91FvdZ0gtyB0wKh2syDNIew1YuNtyd5qM/xpY+q4KP8F1mOc\n2AmJBLRLJZfVvGL+KLXVdX2QgPNIvGBbeA28OobY+3WwBIaqC2HMs21hTCoQ\nGIPf\r\n=v9oC\r\n-----END PGP SIGNATURE-----\r\n"}},"2.1.0":{"name":"gridstack","version":"2.1.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^2.23.0","@typescript-eslint/parser":"^2.23.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^6.8.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.1.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^22.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^3.1.1","karma-typescript":"4.1.1","node-sass":"^4.13.1","puppeteer":"^2.1.1","serve-static":"^1.14.1","ts-loader":"^6.2.1","typescript":"3.4.5","webpack":"^4.44.1","webpack-cli":"^3.3.12"},"dist":{"integrity":"sha512-t++cqmXy/e2PO5tOpCN+9KtWtia4VBVI6LXinCrpkfObrU5/VAyzzI9BoG031wubtjemq70I3ItTBiSYMNwf/A==","shasum":"63c6e16b53099f0384be546c566409da04283bdf","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.1.0.tgz","fileCount":36,"unpackedSize":1901555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmmPJCRA9TVsSAnZWagAAu1cP+gJaQa7jeMvxK4AsPSzo\n4F8J6S+7x8C7FvQvUfW/tIVdJ49OZ2LB8XP44WsacqWzamImMsmjXbF6lZs9\nMTyzx7pX3sfVBuu8yzKrOH9bC7i5mFUUNysbo3x1xlep164NlOxrhB0GIau0\npyLrUWdPvlgFT2dFanfZXHuW8zrWhK/yc71r/8ksNrr+HePjvHBFhQBhbman\nv5Tk2keh5MuBZZ3aY8BpW7jfr7Ly8zLdtQjoVnJ1kewU7O0tGX0efeO74fif\nstzC7apglasuEKpBSVvDUNJC9cnXr9/vWx0zBvirGYeFRMQta1R5+e1E1lWN\nHaLbVpUqc8Z58QmEY1niZP9akJs3Ov4I57CTG9KxIB1w/Jkia+MixByyz1qg\nkVnO7H8tsKGYNIZixd7H6ZG2dMYH6qbHnGRUS4wQkIuG0pb6BOvPnS2pkEnB\nXJ/EVDfdnlqotyFu08UvHcjYCQwylDetSP14Sv6XgoIA+7hgicaMFZVVoiwk\neDykfSIoyVv4IiCaH6FcvsdCBfn9n0GpRqnL39AyL/exxdKXd3n+2OWvXvUD\nO7gaWgtbSJ7oL4IUD/mVs9Xx1DWtyM0+e5sWWLJHLAmNq+0R6vWrbQJ5XzGW\naSaCL5pdkIr7Uk8CQ3FRZX85HoRZkVPXwTKOJp8TZk+UKNeSapGyqV+/Ez6j\nzFT6\r\n=Rh8s\r\n-----END PGP SIGNATURE-----\r\n"}},"2.2.0":{"name":"gridstack","version":"2.2.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.12.1","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^5.2.3","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"5.2.0","node-sass":"^5.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"4.0.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-qJezPsH445ct+yNjBSVTvMP/SpC/Pa8V2H1b8SPuB0uVOKV+QFOFOThMRToSGbPwH7NCc3A7WOjTzRx+jnUFaA==","shasum":"56e14dedc838d9aa87289e801bec7603b552ba1c","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-2.2.0.tgz","fileCount":37,"unpackedSize":1909447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfprZfCRA9TVsSAnZWagAArMAP/1OzkVX7LumvZBWxHMlv\n7zFsr9PNYZTygUDM14i8Bx2v96NwRMuOAvjEiywXZnv5MWwLotYbsxhC1weO\nzvNpkvXm2PUFyPdfP4+NI3USezfNzKew2Z8GbXcMATnnPw7/vG+V4nJDyDnD\nBl2aCZ9PdFsICd06RzMbmkxoyYZxXiR1INQ4TEYUMg301AfbeJwS/dYMKlmc\niN6n9GtiFhEX0ZOdP1EzR7Ps78VAtm9DQZ8Mq+U/r+IeBgvPUeM/I55Wm8Az\ntC8AFhJy1tTNJn/KB7Q8wZWIs1sAg9Aaij3vkyJWo9InwS2st7vSjQ/OsqoG\n2ISdxS6kEviHYwo5XKtzB0YvXILLpnq74F8+BAmr3PKbHD9oCFaAcJGt3S7W\nefXgPC53aV80aemzdGOttULfBSLPjqVZEPd3I40Di0PDNscwWADnEK3RjcqC\npJxkWFnRUN+U2dy6mAeQOxZUwFiPBdANOiC9Hi5XVe+LOimxvM0A+rQyhQt9\nsNpXwiat1HonhhWfiDrmNwW0qjxpncjdIMBzuOeFnHRRZrfBN+i9UetuQaq8\nim7GJI4q1FrKAP87jbRZliwFt64EZ8GsMrgS5AV4GZC2P6sK8Iz1DgtzpJo9\n8hU201wOrokaFdbIEBvQ7YkD7lQHW5sSr72GJRFCt+bPH8YtvhgrPs0+pqEV\n4res\r\n=hJBc\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0":{"name":"gridstack","version":"3.0.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.12.1","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^5.2.3","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"4.0.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-xJJhxhlE9YQT8VjSz3Xu1l6/rMZBs/to+6kvJxyJLD+/jRGKsSBw8MgDxhsLEGPWi6JNc0t96154d2Pj466u0Q==","shasum":"6ce1efc0df760125ea489b5110f657f1845e8b6c","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.0.0.tgz","fileCount":76,"unpackedSize":2543046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw+LyCRA9TVsSAnZWagAATRIQAJuQree7cn6f/+ylQUPN\nX5D93/Yh5Jf/kagOBhhCRyRMSz/z2igRglmIcS0sLsD1NwbqPHnuEXOX2jTE\nymBA9ygE9Ddopts4u8UhuU+pfja+Qzne5CjzxyXaiv1larAlYMJxEi3gpctt\nF3zmjex6Jjpa1rPW84rVP85GfBuPkPu3E4Ib0IrJ5PzNBSTmDAtwq7bHEx9+\ndXDh0CeZkElT6/8w586CMffhH+JoMV4WOl5PLHQv+dhv28k8vw4dyWbE45tu\nKGz0Uc/B9MDwQH3s1brQRzPpLRq77vN1vgDVCOPe0N4sBE9z+uWwqr5iElkM\n+GnpZx2qxQDmjbC44my4PVHAb+OD1GGCwaYBQOR3LxQdnpcevd2SyltK/w1+\nB7U9U5mGgKR9SbwjcUrXSACFsMYkb5/rko3HdZ0BCRuEhpVDVfx5b9bgd0/M\ns9+0ht9zQtatCRwHvxEmhsj6C2GY8GzUyFqkjNFL9D8hVw33WuXf3Z+AHvtR\nvIYkhjnuVCWvomgHvIpwgtw9qx8+AnnWwGfDKyvCInppXWVBBsrkhyeSdE/X\nAX8bSrzhpcPVpRT+awWnloiczS+LrrKSwq9kEr9i1PLsBsPcNsMKSPHTCEEp\nu8qlSPjOfWTijdl6SjICZ4pAi3H0DGbQ/lXgnrlkDNP6Q6OUQzSVeOUBl47i\nOrKQ\r\n=KmYS\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.0":{"name":"gridstack","version":"3.1.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-QgMJvSQdoalJHTzeoz9vyXJ2si6zlwP4R8Zd7r+Hbn8s/HqxoxRNOe/e7PjgttJOiOiNKUqdO/g3C+ERofZYPw==","shasum":"114188e52b62f4c4b985ab6f2ba662c2fd3332c2","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.0.tgz","fileCount":76,"unpackedSize":2577757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfym6KCRA9TVsSAnZWagAAKqYP/2QIqpP3RjQaXnA4axRs\n7haNW3n0VOcN5Sd3TpNBfk8F4oxbDZrPcpBrGiLr8hgVaEgaN8YPx980Igpq\ndOjBL2VB+gKkyLQEa5Pvb+2xHdvQEAQm2qtyyHk/yBbgzOe71H33+oOiZQBH\n6xK5tO0hVblx0uauIxpgrPQ0NxtYPR60267+Zcvce6eqnjDfO+aQF6VrfToU\nQLBLfyzyew5+1RdOZ9117f96X3z+hGHP5cqy8+isgqG6QY1GtDs34FEKtIvx\noNOSJ6rWk1Iai6DCO8C5PqWawOTz0VWxVSj66mMG3rIzq8MXgr62M7vCh90W\nw2C+sPGqZFsOGgdfERryWuzPN7y4cD7mK7g/LwMUGOjLOkRLtI+Q/dO2aHln\n8/B2+J5IM48bfrPszyDI5wjy13M+IriwruJ8FHKa0YboiLntb8x0lM+if1fv\nQY1PYe83m2tjJeXNkgmsvfN3OxGPrt5pC+ZbRJtwf6gFTv/rJ0As2Zfx2HP6\nilyk5Rzg6somuPtOgfowttb5ba1uLqNNzz1S4Y9qGqcIwfh6TU1HSvfm2ASa\n1/9yb0ydeBrcCqJmyvpPXLN1WouPsSgjfuA9W+QAskVwvvfiaf0tEb46aisD\nLxQcDvQkKqPGObNwEawT7GOXre0uHlU7W4xXga9pL57TwkWD/G4D9mpc2TKw\nZZ+4\r\n=jya+\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.1":{"name":"gridstack","version":"3.1.1","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-2fZiWxOp6y+aTezEmV5xUSnJDDqTO18XwFxkBdsMV8AWj6rQqswp7+0j+7XQd2gUQjV6GNCv2HbGdCel6AqrEQ==","shasum":"df7749697a1123130de862b1b61ec2320f3eada9","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.1.tgz","fileCount":70,"unpackedSize":3577110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzt1zCRA9TVsSAnZWagAA4JYQAKKJzc4mLU5ava5Op9pG\n+eYY/RfTaAF9T/y9Or9yhq7Uv+qQC7HI9FhswRILP1uxIOxOuCRphwH5TUgg\nyiYqW1+sZ1jq7gAKq+r4LjvGu3ezYxV3PjW6qUNA2TlgnzIf2waCeAtZ6Qn9\nPNjihrVMM4fbgbtiWewud60SN0w1QJJXW46KkP4T0K7F1nA5kDY7l0ql4oRB\n3WMmTqQWs/qTGqyYCqqj0JYOBlmExYTng/zPEmGxG7UeUNnjbemIUkC6kGp2\n5qDNB3Xk9fjTaN3LgxRK/01xnO8pFSyxGDxNuOvy2Qo1Qjx6o5Ul6HrKzQpY\nLIU7RkR0pmiifz3VCeZ8n4/QXmLwTMausYMie/KpXl/ExgMSQeQ3z/tmIwYM\n6Jf5FU43VHRsIwQso7n2YjTqSgB2JWjV+/KjIp3f+38DJc570g2L9/kW206X\nacdEeX2ODyWAarno9AWwC9a76h0/S7hgM9sDmn2QfoR6SP7FrZSVjOvQk5oh\nDN2jPLIqovJTCwjMQ14ehh0KSgUVlnlf0FUFeulZnAGpAruTbFy7CBcVW00S\nY33MPPxWORPuRSJ/+axcNoxj17kkOIHPI/jFhvB6/mRQ564ctQae+dLWpI8R\npcEdCNjbeqr/42ktpsoIuxepaQwgBMvfaL1EYesxfNBaYfNSQ77oLHPOCprF\nuUhv\r\n=RiRc\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.2":{"name":"gridstack","version":"3.1.2","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-ZiD6ywTRA1INg3f4C4kqkIPfT45dXjXSI6PoXBc85pyjr2vjKcr5ko5KtpfH5gA6NtbMIDBtxlsjhTe5/ltOvA==","shasum":"338657eaa13e81cb433302dd2dca0674a96101c2","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.2.tgz","fileCount":76,"unpackedSize":2589281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzuF9CRA9TVsSAnZWagAAi4kP/iGtw3HDBoLXQECa+wTI\nhN07euyqUGnjY9p7u7+fDJsLG2DjNm88tTn9PsSShyK7fsIu7b9VwqWNIyEo\n/ET6H2q+nQ9zDxMr92qItO66Tn1GK64FYyfgvBlkIBvSo1XC2GU07P3PqQLe\ny75v0R2tNTrh9qNForzF1oLG1W6xo6aDTitEyaxP4EKkQWSEoQI0cg8gtAhu\neZRZ9RpJv/i4MnHVFyW89TKSFSXU45M0DFf6Xx6MEjMWGcM2KEWDfvpi891m\nk/+YxtrjWzY18qefZI4f+3WM43j1E5RZ6r3bYLoZUBjLsOMd9d05Q7qvadB6\niJrlAHPg6EUSJ6dI96FgAnizrcs+e+62ePPJ9GxF3HnGdriUCTGzAbwrg3VT\njWElfRK5OMSqrpWxNx6Nd5WcXebYwdmfjiHRzvPjuAgWIurxMtmxjk9Sxhvf\n3DUmlnf0XvasZKW9z64fyzjLt5/pAx8MPvK6C2T6EdY5BIEeMuPbBB/ZAEwm\neRG2S4a03V/uAZyAlQjsgyGc7kGjFe22TPrkVe4Vc7T82URCBIgsjohxzbAv\nOaeHt9rJWv4O5bzuCIyA+mQYoV04hQ/Y1JI9o5LhOXix8v7BFlS1cH95VPSu\naF5qnO32s2QcLmhhKmyh0KHnN/bTk4Z0J/tq7z1JHD4yl9zD1KGvBxisEnT8\nsZ3Z\r\n=Abc4\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.3":{"name":"gridstack","version":"3.1.3","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"shasum":"982572b5d7b3608ab0463821a9798cab3766acaf","integrity":"sha512-FNmuz5d1qRFXxK/tWj8PsAECyiFOX6Pnj4aaW+zd9BcTI9yY1hT7gq8y5CTBZ3vIy7VE+99jDwvb9WWchs0xlw==","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.3.tgz","fileCount":79,"unpackedSize":2592442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8TH+CRA9TVsSAnZWagAAp3UQAJJHiZbMSKKnhBQEnrxs\n9OLR9O7j5xUa0GmQQi8sJKzqxaY0ZHQPcI/Y4yqGAeuzXlrCDpwUpzNBPkXQ\no09zm0pToG0Dh4FUIeMAHe7rKqg1rVh0JIev4rO6WAfgf1lGJSPOrnLm5OOq\njyaJV8UUzXikJAPCldPm5QF5C0Fqd6km6fPxGkqMRP9b3kv5GSbQKHmczcx5\n8ofZDifNKARzJG9JTMkbovC4aLfbHCQVduZ9C3B0lKDVEWexTCGPyAiZ1p72\nz8WkToyH2rgZk41W6rYUZXqPu7zAYOgg56MPxanpm4QjLQbtQjhP/S5Apczo\nqiivtyadspPNKFCqesSsqPSYg8qWzg9cWKtE/WQcYy9/hyoVA4wJISf2k08C\nxW0OHBx3oSJFmcpyL5tyOhNwbFWYCYsZb6l5zTXjTjnh1NYXLwP5WD0qpI1w\ngPodKHFkWUrjp/FPgJOp9ut9ntA2I63OAIv2O+zlfJWS7am1QeeU9WsVoOBw\n7jRNUligjx+hThjqoHItTZeRCiOrFUxQoTj6ZCShyar0rvqHABc3IsjUUbL7\nwnqrJ61HBgA9gxgommHmNGY4hA4pG75cDHdnUwLEL6rWeJI0vD1z98xVmYbp\neDNbE0Rz3g2gRuOlWuvCQyx0gvMCuRmXMJHNBGYnjRSXu9YHC1dqaaRLPekx\nLb7z\r\n=JWKQ\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.4":{"name":"gridstack","version":"3.1.4","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-nIo62xKcfgQs2NBTH6bUsMd+/muE6UzlXAYlFlMbjwLhZ1TNcg5oWLIC/ubpqJpJlGWD2Ou3827M49VNCfcJ8w==","shasum":"0aa2cc3ee256543dc53386d78dc794e22ac3eafe","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.4.tgz","fileCount":76,"unpackedSize":2603261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/QiJCRA9TVsSAnZWagAApcgQAIFtIMGhKunINW7svmQP\nGMquNxChfvunNKCQkKk9DIOsv0DTNQr48bAZX0uxzaOg3BEXLdVIfAfo3sxU\njRn5JZp8BSiP6oDYTtuof03TFyOo+zopY8qIMRo/7y221w2hUv4FSS8gCHaj\nZTafd7f0YnuPJ/Uz6zahcC/EprO+b5Z5BBAWsAp/KNTceuThC3sRo0hDufxc\nBGlQq35qEOuWyGaj9XHetED/f641aBFIRcge2X1oXOXwbHOJrICrCLZIuHiC\n8Np1fILXiF6/+/caH+IWUyEJB7pF4toxZtPeVqyYb1sWcSYoYLzYdANDHu0h\nO+OKTUjYv6hKA5oKxpreRat8qJp+Un59VzVXs50hbyOCMOzaIScSNRvUJktJ\njoU3NqVvLopUtJicfk1p6dcaifRPFK207tyv+5A4xDpNQhI5MeiZj4cXMGnQ\nEDFLikEvU6M8mVNzYN/EmjVytJcY6UVOBHWOHjGx7Nn+hoGxmZj3bm5C4Uha\nGGLftWYlLCtm5948DbghstNhPmipTGRx4o9MQIXl0BwRU3cfu8leKzCxXgZF\nkAeQhc8dgvckT7rb0Kj68dMe3ld6zXhEU6QwG+B2Cl8B73Jf/iM3ZdvZWylB\nCaCMt4hTnGnIImGEpnhE4Hx8/+UBWVSVJrlAwc1lisZ95E1Zj3tRBKSOgJ4T\nGkW3\r\n=0Ooa\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.5":{"name":"gridstack","version":"3.1.5","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-VPsBqAqOe7qYti3xwSTvXbN9bv8nEp+cPYTCPolUUbjKPxNOL4EWQy5ZuKZ5JskciVQGLP5FXO6D+7j8rj5s/g==","shasum":"f4964fec300bc009b2ed2ca464080d26b8f0bf7e","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.1.5.tgz","fileCount":76,"unpackedSize":2611396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDF8sCRA9TVsSAnZWagAA4wgQAJx9a12s0KHqOlsTymvb\nJzaeoxWBr6OwrnRh+Rsz9xtI0Vsc0QTC5wPOjEJI07JSX0OWJ2tGRbx1B8f4\nCnNu4uCJdpU/cihdeTYYYrOqI5BsaBemU80JJ7sQUdSIL1hNNiayqNdZcQuB\nHspUBbCtyC3UO0LX91JOoC+XBwXRgrYtlABHm6+6qDJD+ixOxZnpPp/JR+2Y\nKor0h3SM4oqIX5XTlPIJdLs3ciCWoBKEs2ZglD+D1w6KF2A9aZyqtPtt9eHS\nT5sJGcH2r354U2/cBYUcjEnT2knh9xU2xmonA3xnfkqTriohd9Wh41UFN395\nZRz3ZjjFYPlhyC9ko+bL4+RnK3TEyN3PYfNTUSbHrrrFgxsYiIB7qQkU7ITG\nIy+fFf+oBq9Q9zmhum5AtlPY5ke1QTOmuKMv4NV8VECJ0AQi229nOeCIBX95\nKwZzZdTahyzng4ClhIUQU0l7mAaUR6Q6XlBTHKLoXkybz20yBNhjaofhFORS\nYeBfvfItwGodil4vgioLlm25XWv78V2KSthNmWnOp8vQWUVONYU2ZxBjus22\nz79gJabotiG2u3px2S8ibmnFH6R2i+aSaPhf5hi7bbU8l/3YRIr2ov1lbiu8\n0xql263a0orAMT3DMqV7eKIMJZ9QCjJ5NCj/j9b7aBbPYWhOr24WJbgmxqTt\nytyR\r\n=YShC\r\n-----END PGP SIGNATURE-----\r\n"}},"3.2.0":{"name":"gridstack","version":"3.2.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-zLZF84eM1R18dUgnfl2UsvtQJwiJ2J3GO7MHU9ujxwlltuOAYvb5bnqagLMFqZO1mn/Phxsp+e10pSQ7FbHTSg==","shasum":"c7694ea8843fda3c814b54e9e5b3dd77c7ef492f","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.2.0.tgz","fileCount":78,"unpackedSize":2637937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgD5G/CRA9TVsSAnZWagAArkoQAI4ugf4YRH0us7WJzMLw\nlW6XF8IoiQ1ip5bkHS9GMnpNqtbf2Bu3b7VpRaAvU6VqVY6cZSVYHaX2CwTs\nl04cd0XRgxO6WgvjEy4MRExwCnA7HRODHxPS3sgoqjOT3RQ2WB9G2OE8ZHrC\n9gmMJhjP1MV8EQVLrj1+Mb18LM7+LL+DApAodnMZOQX3XCnK+ztqZ/ArVe3Z\nSyVuD62Hs6Zf09phlQvX8TQCSYvsxevl5yFUGGAshry16OQe9wpUCIxkX3NA\nBk7X5UYSTEeJ+z+oCXYDw9N2cLYn8p55+wHXc2ePsi4GpUBKwNCDhD6CyAGf\nkIFNgQAw/4GWaRn7vjZ98gq0PER69R+p7mKeHM9hFCK/otVXpdLI+M3OmJ3x\nBnVKS4adqjNDovOqEFoVn/yyKxroy9gKdFApQ/ApmH0ZzW5utoVvAE0YVZEX\nDxHXfqhJOLBHhlYIp3gGQUxa9iULHg6fSyLePQcQjTR9ahinxNZkn0Vgb4Dl\nYEtJ0Tv8trHVcZxfut+U+OYZS5qPGQZEIgEO0Bjg8ULim2G2hKyEBxdXZWXz\nfyBxCP5iIDFs9LPNJr+FnMsillY2g5O/mCD4kXUMz6qLG17c9Ys7gsLvumXX\npj0BjfHjrSBaQUJPVx4PgKiTrFDk68hm4EObwvLcgJxPDspmKoTUXXJcmqJH\npOTO\r\n=ngTr\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.0":{"name":"gridstack","version":"3.3.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-xF8EF/CvUYRSaq0KRHA6ROHRuAxObqAVByBLyZfOPWOJBJTbg5GvPUj8HABEBYZWKxQeFkONcZwNflZLhHEi4g==","shasum":"e324de1acbe59b812293117783c398ca83e2d1ca","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-3.3.0.tgz","fileCount":78,"unpackedSize":2652640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGkG7CRA9TVsSAnZWagAA+q0P/iqALhjzF0fJ82/NIvJm\nu/PgX58TD+RAZWj7CSAson7Xr/MGyQFDNJQWqDHzG9O9ezhs7Bv35oK08hrO\nYvNVm/57dvxpgr7FgAC211kmq2IMht7F5Dq27/B7i6AlOk5mNdHov1zpsxz3\n+Vuc+Y8At1ypIDwFZYAZBJb+bYAJB6wk1VtywZXwCm6UMzTaWClqz8kd75Yq\ncaCbdkM2t/KJ0CNvCumBb3db6WWFM4duN7GQw6yDxDd3+/t0U56piZ26jWgZ\nC7ItIZT4dBQVs261Nknzzzf2i/GrWLF+vWbtgtKXOBKwo6Ay8+7DcO+n+a8k\n3wXrdR9xYdEHnFsIRNgsLzBC0ssVvL7e7RTd3yCI7P4r1XYzoA6zCZLPtEev\nKjMPdbSnizXIp+B9ekaHUcnyaivjJzDn2ri3maezb94eiDvyqiv75NNx9zqu\nPZyTXeonakuNVeAbvorVb/HBCKFheEcshupi3Jab9y3LfTqTz4gacYRrlJl4\nbq/y6sb5WnJ6Xbz0IsFmKml05h9fDBvtJhT0E2t+UzROLAi6jzE/USMjhfds\njoEkPk34Ey2U6jAhrL+6tCE5gd+qQQlCQs0NRmj9X9HORyMcrv8OSwEJ7Gle\nNo5cp2T6o+PcwLyrOz6gprCeYp+oyBqghw/k4Su/3N4wtkqOIcRyI6ThSxb7\nbdQa\r\n=QRwW\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0":{"name":"gridstack","version":"4.0.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-foarrbQCVwvRgZjgDR3FA4sllx8bBVTRfIGsGp54/Xv378pMmqL0ogohpo38Rb7DdTLTL8PD/E+7LLXxn1bMWw==","shasum":"99277d150eb2266ec1c8c7fac1e1592e8d5c0151","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.0.0.tgz","fileCount":78,"unpackedSize":2753632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVZQjCRA9TVsSAnZWagAAOfwP/iZzkJJjEIrUWbkjaE2o\nXLgYrSyRnYE37ZCTmjotmw0+iedJpwkS76QhC8GMYrrKPi6AigYxxZ9RmLDK\nLJUfPyrV/oF7Z2kkUbKh9dWyf7BzbHJOTupS/Wpa8P/7SwDX/PUvpxl8Ea40\nsXZE99thm32qAvSMTTyoUDYlIcCkzUfSbcCoEkc9s9cdLRbssdAzoDQVCJ8y\nT5HtaDshwevNFvkEiN3mZsYc9LTlDdkpfMzXz6TmrP5Hs7WdvJqslscaERTR\nxZYaW8MWNcgXweOdWdC9nF6Jiq+96wdQ1dXfEHdq1xXYFgv5x1bnAIVZNoS7\nvh2GXbpE+PGNr43s4lXqF2WDJDtHpqw93qGOcuwng8Ps7KFt+t4HmPoPMbxY\nZlRnk7dMWU7gNdekjzQONv3bWM2P9tsKMpjlxdFQwOvwzNFm+RwXk1P1+qSI\nI8CrtXt7RfDYlk4M/+QJN4BG9b8UCWoQJ3eIRVf8/+slXu4MzXte1IKBin/X\nW1ZQsKb79ILjtKjuedqTydO+DIcQufPmYaF4FIu7ld6lf/y7tLu39zwkGT9V\nOo5hQewU6csvxQ7UF9Dzv5N9ynpNiyv3s/BQjyIEVfCmdpFMbzx7HJd3YEhT\nfB63sg9sucS8bScMlY+VUJtgKwlJ39ik3j4JklumSk/nIvn/hB/ahoxTiEZl\ni2XU\r\n=IgoI\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.0.1":{"name":"gridstack","version":"4.0.1","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-wFRT5e9XtsN/vUdNN7j1y7Eu/kqwW5RWKdZGI7jJytyPXRGp3A45epGRrsXkZdEuRDKDFPxHG4FXB+i9+/tUjA==","shasum":"2a9dae7eab128421f747dd1a1d7e3a40766075db","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.0.1.tgz","fileCount":78,"unpackedSize":2760533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVjN1CRA9TVsSAnZWagAAoNkP/0LNNTr+oamjRA9uPn/g\nCctwLkz6bSrnSxVRDtewTP88L0BfnyTgxdHhAg+sSPSMa1y+OYFxPFbyx7ro\n6b6jtiei7WYSaRywzlRIe5s35O8ZZUTbDiHv9QoAft9qJ0atB0z64Ep3Vma1\nVzDKQx7anjWD3ZqAzTOQCInuJXSDn7JavBRkj3Q6T++DUdthIYvLtP3Sk99I\nSBQUtUanBdhaCjmdLR58eFNDFDhIoohGTXsjvUOFExZW6Ry20d8LLLbjEnyD\n5BvBnGOT/XhWmpd26tgxJHkMLVaYhO7XKBb/Awj2wc78qfQMjr0q3RC5gaG3\npJ11/Ec3Dcyapi2VSCfQ3PrSmnDGR5x5sHOWsqjM3Ewf5fjvIHQP6by8fzHw\nO+BBiYyG2xGDU4wV84B2McGmDas/m1VSOPmt1qIrnoyQLvaz0be5erIfrTek\naTqEZX/rLKYC72EeA8nADCeFE1daI+8Dr6jwnE0ntA+I4qc7Gtd1T4L59cUM\nXpfrrLKNNBEjb/Y7dXmx8kJsSgHYRYPVkoJHgZ0DCc+XRvPPvM5XXpe/seRy\nI5FMWJgmukY3/a9fL/H/hUGazpJ2Bsq9xVPU9giaaj3IymSPEpV0iy27yjQx\nre8zFLyfECKr7roG+6XSa6HRJNlPh/AUCa16UBRSupVjfWGlPOJ34v84UJAI\nHbks\r\n=Ua9W\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.0.2":{"name":"gridstack","version":"4.0.2","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-yOD3Ob8Kmf8o5PSXg4izTTPdNcKHgy4SHfUCsyXjV6D/AX9vi8dsnHlZk/JxTfjvsBT3uIEMW7oaq4mrHcjjwg==","shasum":"50b23e7c3278a0b6d9aa66491f928e1217ddcbf6","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.0.2.tgz","fileCount":79,"unpackedSize":2760040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYARlCRA9TVsSAnZWagAAjygP+wcapcC1Xrcj6UrwxHU1\nhl++hIHLErk8OFwEaI3fkS8hysrwQNdDqbP8bug7krYeqOxFckBMhmyHQVL+\nReCd2finxpRNZD0RCLBB7gVS1R9+a6fTyPZj/BKlZA/RPee68Fu6Lcn6Wqxu\nTOW9KckOgxoUajEbEaca+I06HYBlqzjCFaRoj8MGLnXLT8ZwjrQaVy58sttw\na+YDlSYQIt1Okf3NUAKCz3eqUrCiRZyq3f4WE7Bis3749lhZXU6xfWbL7OUz\n1Q+6D+3XDuSGzErKsYPmHZT1tI8koRMFCj+ZtfYyvvz9u5fazRDfK842xe5C\nFkwgxit1K8or0ePNP0VLoGz46EsK07cjy+zS3A2j/ftV4wv7d8mk15Yu523P\nj5OgRvGlqmCnlwuI3KUA46QX+Va40kk72yeeXRVMBwOjaWj53wRoe699SoRr\nkP8Q7YfGwq2mYHi7DjwW/wzqPewjTjwTC22HbWX/DuFBm2lOhGtGHWnVCTWG\nMjB/M7sL1FNjBOCkaUtGegRt3Z5fHQqkkdUg+Swwc6O/mFR4J4DAqas+TcOc\nVr1u7VlA2lG9OUJrsjjsS3jW636SGmxfuGpWnK/T39eDH6JugP2qGylXku0k\ngySOwU3lyj/OQgNYI88yGs9Eh9n3KwBXOLm6M36Xzrd2S5HIySGkY2mapxxz\n814q\r\n=oe4p\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.0.3":{"name":"gridstack","version":"4.0.3","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-zYGOYdYTmPCUselBQrvi3w+6XUW0Ya8FZfINkn2LrAQfl7TW8a6zkppmWdlQQMYlbZ5Hv5GsLE/hRTk/MZyrHQ==","shasum":"ff9394e64fa6593d70694c41ff185c4d2d8fde5a","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.0.3.tgz","fileCount":79,"unpackedSize":2748018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYVNXCRA9TVsSAnZWagAAvLkP/RHCn7i0ZG8hFrgMW6mo\n0dA1f02MUXZtHKJFisO2KZCQREzghaa7EtOWqDq5M33RYP7eMjsbW/b+Wf5b\ny7a79GxXzChJ3Ailub1YdwvR3dIVw97vh8xuY3EQKVOI+dvvv/0GOR/olS3H\nY7r8UNGyJIWFNSV8l897ueV4ZwE8RXvyKci15herOp2dVYQWsKmMZuROxB99\nLCXiS7O/GAYU88FRd/+jLOvr0JYEqWBao7k4ebl9A7+qR+i9we869UcP/lG6\njeEeeSO2L2/SK5xEYmwkt+CO2yDOvp2uXCQjKritMP/8ROUkFSspnISD5SGB\ndYkiZE3Q3Zsx927jQHLN73/LvzUd6qUbD/RHLI/7qB6/9PPtx9nXhaex2HjM\ns5D2WyiGwJ40fcYWrRklKalMMLuwDoKAnZ67WtaKlAsrWUcPfXyE+LK4ymaF\nQ6fKGPK8V5kHOyStkaAc48V+6BD6ipd1v9uqzxWOrffHUzCY/OSrRL6IF9SP\nasMpp0kKP7bPoKewhJetDa3LZBUvWR720wZBfEZhAjIT6zCRlhih1xAOJ2sZ\nrwIGjFqAUOFxTEHia8lFLXEgKe9IQnbw8jKlFHL9kltr9wXEdxd6Dwz3f6xN\ngRdJ83mZsYUpE27yhG1e/wPMjd+ZXxJMEYEp37eo1/8sbxyBm4F1AOVboo8m\n4hMG\r\n=2gOG\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.1.0":{"name":"gridstack","version":"4.1.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"dist":{"integrity":"sha512-zvbqjtOOCRFNFLSGueKy/3ySKM0hgN/qqhPi/4qSa4IAPjxF5JgQkorJj4K3JJSYOoKMoSXqrcOAs5aPT1S2ow==","shasum":"1aca3e0940ee6d8eca82b6ce75c536f1af90ad71","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.1.0.tgz","fileCount":79,"unpackedSize":2759660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbcQ3CRA9TVsSAnZWagAAS6sP/jmjTpTlUCW+1Rda6HUp\nhfBkMlwhFAKiwLBrKQ9p+jNZxGqbpd3KtWr6dzcGvK2o9amVCpx8yVHeB5Mc\nOYTfi2rICgr7u/0P37FC0upsXG3WkySdwIJxdBvIWJ7BjYck4StFaN5yzdbs\n2hdAlb1FrnIAqA6qEpSuyiEGQF0aziHhE56UGFgYbslyJSj2zDrUPjRWsuGJ\neH66oMwvOA/BvpTMnV8QzRpKXPzmBGBW9lvPTGGJg9crVH5iSrltLKnOBdtF\ntg9X62eLe6oDJIGGq4gK8hPufawrxK0iOkA7lKC4/zxqeLJTzsdDn9dQ3KA6\n6YxJOtz0mMNN7C19Lco58fEcg2AgV7WzBVS1uNcIXo+U5UHr3QfjFv0qmA/g\nzDwvdM8Q4Lygi6rOjD2ASoa3n5NbuyjhkQ2VeM+N6vQuJQCr4oSHts2h7u+u\nwE4cHXkF8PTDPDMW42dXLTYu1JIviP/irSm+305EtUK00d8efnONlGX3y++y\nC27lwGKcj5SlFMMDXsIAwTNZxbx5z7xiPQ42+zU14E39da1i40n23hhihltX\nKvuakEFaOKogaTNQfiX4bIUhkGyh0q88eqb7CvoMNy188cbvye1q+pGh3CFu\nxLNoP/N4kCRUJzZaJOQuEwZO14B3zuH+HC0pEVIpZoMHek3dYLaUgNErvuee\nc2Ie\r\n=kdqR\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.0":{"name":"gridstack","version":"4.2.0","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.2.0"},"dist":{"integrity":"sha512-NYmEermaOIklh+vObDHnK1VJl43Lj5AI759afHNHlpW+abydxJV4otlsZFP4OaJDACw7B5ERXyaWI/375HL5Xw==","shasum":"ca5124d9c047951e0ac1c4b13dc6c62f3616851e","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.0.tgz","fileCount":79,"unpackedSize":2768655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcyieCRA9TVsSAnZWagAAPiUQAJ3YBlZnsf+58YCqoGPo\nyfS0+mZ6Dsvjb9iogunHV0qYOwEUPIqKcZYbHOS6msAwwO45RmHaTMXihQ/E\n9UGfRmIBn2OwRzLKA1qd0VlDw+vp5NqChot99vSZqOz5sfE0SHVWJxUwAPFB\niOTT0vUuVpmCSPc4buZZR+SEU42yPZYsVurZtq9fQeve5j4fRbqoMnBbxZ0S\nUh3dkkkQM25wEMG5OwFtckmW3eKMlvqlb7RmlWFOubGdbA/7/Qn5RjtLKhbL\nkrSvykMjsbW63ei1OHPSN/avT4sbje2lECXVT1W0pApOU91aFT0/Grpe44c9\nrKxK9NoBG/K1dH0mutHSHz/vMJ2+LGnw3v6I0PreTh+N/iS3OtluLSP94Mag\nRBVlWxH3NQ3+qz+z+Q3kcmC+uFBMzJD/z7PjiXZGz5z2UuIufjFI89HjhvmO\nFm+djIQoi0WVuiQyDui6MQm3YbVdd/cnIPnTRNfJo0VVyVaoBz28V/787U8g\nmEXIP7b9XIjnXga+WHO7tUe6N0vygFtEuGTWGVcrr/hcGg4unpwSoCgttF51\nb6tzlyGTj5aw6EgZZI0HykU1ObnrgW0bw7yTfbDx56FCD2ujrOZLKAgc22Rk\nDwWRhyNtwUE8ikO+u2OfF1FkwPgqYoA+urfPt0cuxHqibn9X1ECYqE2xwMqW\n5aam\r\n=QmPS\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.1":{"name":"gridstack","version":"4.2.1","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.6.0"},"dist":{"integrity":"sha512-tY3K/WqUcPoVaJNXW1enw+G8es2fJfYxiT4Wieep0WP1vzc5tXrI4R9V2t8XhjRTeYZ41upWu7deGob/CCrmpQ==","shasum":"033360cc73558088aaf60ac78d3448aebb125dd7","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.1.tgz","fileCount":79,"unpackedSize":2771493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfGDBCRA9TVsSAnZWagAAmuIP/0MC6/vaGFlXSwotz/av\n/WmuI3YLggIpxUJNtZlWPXLlAx9pjTJamt5IjL96BRbepYDqrfafxzjkBv4I\n+icWXQ7P5GpNN9j4c+NPSL6plh1tsIcH4sBqdlRP+HG5tWQXp3aTAbD71WG7\nYX5FapLpQ6Ovd1gwid72GnirEFZLG4r1hpQlhTu6YLpzipTCkjYITPJN+V3n\nk2bwqnDjHHHuWaeQqLW8azBysx+TFzHIfYScfomluREPl5ExZH4Ew7x7/l3o\nnUgg5MYGGCOMsPQZ/YRpiyl/jtgrKXZI5rVZq0GFxoZDyMM9UMEnLWaqIK4Q\nHjMcX36a37IdxjcCeUqA+d4TKQUvccQKoZ9Et47CiEqVaYX0lNUnUYxRGJtm\nictAbPe9quZ57gyTXqTujrGBBpKqYpUjSRVD3BxUE2weRNY9MDk1iUg51b5u\nkzIF7ThxWYHkPm/Ta1U1mGPumSxMg36SVUwNt6b5C/dlDT/lKEtOZ/CvIFVD\nYZpHC3j3LGf7R6fmMXd+redETtmrK1sb6NPCVluencjISWl6aJPwrBjA38WV\nu6ccSSvgdnViNurPVO0Am8h4/UKhheI9E2ZDo31XzqOs/ZhnIcPpNiuCN1aP\nt99eFohYJCDSh44r1ATead5Sk6jBisjAfYnQ148VOtVLQi5R9kiU9FRtXWU4\n/xF1\r\n=Ygeq\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.2":{"name":"gridstack","version":"4.2.2","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.6.0"},"dist":{"integrity":"sha512-pVU1+eexa/gs4YFuJHjGDvObq6mcmie8aGULCu1F/u39lFlpAmZrzf8kJ+3tWbdBYdBUoxT/gydwDDeiA+C2Ug==","shasum":"d56dc914d275b4b63f19abf039c20ac644cffb82","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.2.tgz","fileCount":79,"unpackedSize":2775450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggw76CRA9TVsSAnZWagAARdYQAII6A1MMODNwIVAsVNbv\neDMUriwperrTutUuGqU9NDhlSWNxQTIOEv3N7XtN8lUMDEOw+sL0s4NSP+69\n0et1PJetoXz/7Gd9uHh4QmMQkfSAb7KxYLrJUgI/65a34nqgCLQnoAUdwOO2\ntT6AbQYdpFiDwgsrtWb6AEwfPuz6XpiY6MwRrMXFKd10utE6eZv7B80QDAqx\n85PFeFgvvWlGBRDrF5NuZdcTT2jYfaEzV41ZXyZWLpcUYpyYNCohWL5/FpHN\nvNOFKt0w/jlYAo9+PCE3Mu/lVbdB20Yg+cDKlSUbl7JG6ispsSDXN+x0h8hB\nKumZFLpYoEayB9AG/kCMEMrusDRdow2YXdL8cyOhBfcH+vs9kFTdAGgAmzfO\nzQHZL1LjzyUrSf4O5OdgUYo3lpTtWMwKfryxee86QSFNO6rTOJ+CRhAVWYX6\nz48tQIS6y3kbyBEEOztyN+gFhK82/JjB04WA19tW+a8gemSP1ECfWLmLomiS\nhyvZAIL6c5gx2zgxGfZscm6XrgnQppQER9WB0Cv5e0X7paj5IO5GQ/ZPw7Ft\nP+IeUaFrDGqSikvL/mbi5+24p0gS5sAzixdU9qZxVUh/9fu9ynt2HYjdmH4g\nzK2IN0dgiZfLRqnJN2zigS9rzsCcxCF/Ef7KB5FhenFP1zD8tQ+TkB9EAeT8\nPfxd\r\n=ETyE\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.3":{"name":"gridstack","version":"4.2.3","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.6.0"},"dist":{"integrity":"sha512-eaB8BUWsqldHIM6EJuUfRLnopCo5GejFfToE+vIbtNa6KStKxGIMovtSn9yguVTp2aN6t9SxSq0lKTdKrEb+7g==","shasum":"2154d68d8e6bf6daf44ccfa4196e8acd890f3ac7","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.3.tgz","fileCount":79,"unpackedSize":2779134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglqcqCRA9TVsSAnZWagAAlikP/RCch+Cv5bhNth3P5KC4\nyCDU4onP+gF1dyoQ8CebA7PMXuoFn7TnbyZ7HUzKVUT6Rm4X43POfDqfZ9PP\nfMq95YHeFBAy97VU/tUHT3cwvhN5uvMIC9YMsA+H+SxcyggnSVwLI91kQF64\nyBUV/d6XFuc4APPAwSDN8rqCtrAH90LaQVM4bm17Pe6XdHEt4UXp2bcgOdSi\n+e3sF5WIKnDtbBSCXx6vnSRhkX+BsCezqJp3HsxwjXjVpuzX1c2x1YtZGHAz\nOqKxcS/2Nepn766G9nPYXHciDSw94WStbaUOolGOGshY5BTr7RntgAabwXKW\nDyD8jKbYcN2djn/ch39s1Z/jGCT/19zLJTPh1L151aKCq9jfIzVKgXDI6lxc\n0rlSXA8TSGgDyJEE1uXHfVAL42WYu1t9LV4//iY5w/nylBMwx31qN5kfLznj\nydh/izaJqOZEvNSK20VOpuNInsTOQGx4qiuH3Q9r8oaWebKo8Oxwyf4PNkzH\nuLPj7j+0plDt0chRt6+xrYUJU+B7qmLoLw0xWxjB2reh2Grhkk6c/3dxfSmf\n2z/W8f9+kr6CFxkmQco+p+Z3bIMsqOkQErlBzCvSx8yP5ZSaiV4v6EHaf2ZK\nPzCMp3HEP5WPLus+BYokyb46dc1scWT9Y/XVqR/IJZ3m6N/SgmMfdYCHnNhu\nEjCJ\r\n=+urg\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.4":{"name":"gridstack","version":"4.2.4","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.6.0"},"dist":{"integrity":"sha512-Zzq2JakEf1ff7UeeL9rzvrGZDn2rZEU+H+aOMnJ3dJiMxhwVeWnJ0CknmgEEaAj7MmnvijaKB1WB9ddNnwqIoA==","shasum":"8db1ed295f8eade1878451b8c800ed487d2d6a91","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.4.tgz","fileCount":79,"unpackedSize":2783739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgslfBCRA9TVsSAnZWagAAfsIP/3hlBZCV207uXplM5z68\nA3NbBRk9t29pfvy/fh6QBaLs429B/JbrQ8JTgAfX7GSZkgt6H9fmoYBy+d1K\nlTuGt6gTuVSAIG6Zxa99pnb2305/S0z0FzjstwiKw2pO5JLTAKWA3KaN8sbq\n4duMSFn0TedoXx3ES1IAPV1KC062NCHOp2jPaKeZq8uupT1QhqW1Z/4fjQXm\nOuQML5Cc9wVFFtCYTUA4uYgZRWjx2k/PlVqaa+pF03+ds8MYRaQDMlxlJGkv\nixxe5DmXpoYv32I/woC+YQopk2SJHXYN9TQIhDMOkEAqGtnoaK5xE9ecVOQy\n4jOIJb3GC3iV7wWoKPW2koAqnppX2Df8K0EWe4Y/ymJhn8BQihIjtLyXQrqF\nwMISxcKshMW8Xj7ZscVu9lREYzz+7+fSyxpgfr2kXmY7b7RFLomncV23mOtr\ni8FfH8g51KEU48HXLZdhCnmJ3jpxcnrYTsKHvUEeJ6K5c6CoD3Q14JeuGIn/\nKEUw+oPVEv2teUbC5IyL5PjOl4kYF+hcWDCJxYd8ZriK+mH5OnK7IHyUTq3c\ntbfILzEwFNuNH4p+cjP77Fud8azMzp6/DjPDcEWLKsz9nzKXNajrp8j/0DJs\n88dUi7wXMDXII5plBNgI9aIitEjxRMsL8XxSw6pXUP8oHtcv/AGwUCZL711R\n4VVx\r\n=Tk+S\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]},"4.2.5":{"name":"gridstack","version":"4.2.5","devDependencies":{"@types/jasmine":"^3.5.9","@types/jquery":"^3.5.1","@types/jqueryui":"^1.12.13","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0","connect":"^3.7.0","core-js":"^3.6.4","coveralls":"^3.0.9","doctoc":"^1.4.0","eslint":"^7.14","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"3.1.0","jasmine-core":"^3.5.0","karma":"^4","karma-chrome-launcher":"^3.1.0","karma-cli":"^2.0.0","karma-jasmine":"^4.0.1","karma-typescript":"4.1.1","node-sass":"^5.0.0","protractor":"^7.0.0","puppeteer":"^5.4.1","serve-static":"^1.14.1","ts-loader":"^8.0.7","typescript":"3.6.5","webpack":"^5.3.2","webpack-cli":"^4.6.0"},"dist":{"integrity":"sha512-pOnUmNHlx47RTyOu9UWigmPo2YSBpAfTlQQnpAl2zvi+UxglIjUfTHEsRe4ce8qMLiS73VtmwfBwAhbEF67TLA==","shasum":"f024e16fe95914cd506115ae88c945770244fd7c","tarball":"https://registry.npmjs.org/gridstack/-/gridstack-4.2.5.tgz","fileCount":79,"unpackedSize":2784826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtPhqCRA9TVsSAnZWagAA+hUP/2GvVPoLzQkAJbB+JHlJ\nTDGzFwGvICL4LyEYZOF8WkR7cHtuQb8BUtH8bpm8Q2H0fN+9+9hGuhULfXck\ncgRCK4vdMdi5BoqsqVvaE0tg5ezpI+Q4Unv8PNSeg3t1Mt80MfblBudphr9a\nx58gn4Fur/GCrBI8UTBOSTAUR4eOyZgWs4cA+jSnVzi/Z89mlWoGl2gLAClY\n0XB3rmwDr7/Se6UDzjUMETHOb96erCV/rNJxFxj8cjR80q7ZTyDKNAoSVSwA\nTwzH8cl9S+2vb1B+rsnmukCO52o4QMZejHLLWuIOFp4SlsWy2aCvBMQWTRBM\npY2qO0EyVttpn8h5YAWUWPBXoSq9VNc0NWvI+2GisblsTE8FTSZjTjyA5zgA\naX3fhXAeZAsdTbgrGig3vFAAjrufx02gITnffqtIGG139HGvoHiJFo/6OU+1\nXyUJkxhK2iyxtm1zIIXZGpygqW2E4BMBnjVS0knsj1tvYxdpf9gA3LaMaMf4\nToEHCShCYcZi9f6j6yLaU1MEQPni9kzqpPZD+4doHRkQNNO7FwxtLPKqx5TM\n6abKQzDkQlAzDG2LrlLLbmtdS6ViMB6LavYTiaXQo3+DZzipV10NVmYO1f0Q\niRlsKLMyVmITqc+S7jLTpn3t409XdTCq57Q0yWrCwZSdaKl7J8zwhsV0/9XW\neZZx\r\n=y50c\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"paypal","url":"https://www.paypal.me/alaind831"},{"type":"venmo","url":"https://www.venmo.com/adumesny"}]}},"modified":"2021-05-31T14:53:32.128Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/51/eb/e9181a2476c5f175368d08babe23e0a049598a96d90adefd860ff33b38ba9431dea1e71a312bbb89e29a21763c17be206721e4d72d615da087fbc9d20762 b/data_node_red/.npm/_cacache/content-v2/sha512/51/eb/e9181a2476c5f175368d08babe23e0a049598a96d90adefd860ff33b38ba9431dea1e71a312bbb89e29a21763c17be206721e4d72d615da087fbc9d20762 new file mode 100644 index 0000000..b9ff2fe --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/51/eb/e9181a2476c5f175368d08babe23e0a049598a96d90adefd860ff33b38ba9431dea1e71a312bbb89e29a21763c17be206721e4d72d615da087fbc9d20762 @@ -0,0 +1 @@ +{"name":"base64-arraybuffer","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"base64-arraybuffer","version":"0.1.0","devDependencies":{"grunt":"~0.3.17"},"dist":{"shasum":"30a2322460984bb5faaa62b85453f308520fcd7f","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.0.tgz"},"engines":{"node":">= 0.6.0"}},"0.1.2":{"name":"base64-arraybuffer","version":"0.1.2","devDependencies":{"grunt":"~0.3.17"},"dist":{"shasum":"474df4a9f2da24e05df3158c3b1db3c3cd46a154","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz"},"engines":{"node":">= 0.6.0"}},"0.1.3":{"name":"base64-arraybuffer","version":"0.1.3","devDependencies":{"grunt":"^0.4.5","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-watch":"^0.6.1"},"dist":{"shasum":"cc76941cca1018861155c9e3cdde6e4b73909314","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.3.tgz"},"engines":{"node":">= 0.6.0"}},"0.1.4":{"name":"base64-arraybuffer","version":"0.1.4","devDependencies":{"grunt":"^0.4.5","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-watch":"^0.6.1"},"dist":{"shasum":"9818c79e059b1355f97e0428a017c838e90ba812","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz"},"engines":{"node":">= 0.6.0"}},"0.1.5":{"name":"base64-arraybuffer","version":"0.1.5","devDependencies":{"grunt":"^0.4.5","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-watch":"^0.6.1"},"dist":{"shasum":"73926771923b5a19747ad666aa5cd4bf9c6e9ce8","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz"},"engines":{"node":">= 0.6.0"}},"0.2.0":{"name":"base64-arraybuffer","version":"0.2.0","devDependencies":{"mocha":"^6.1.4"},"dist":{"integrity":"sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==","shasum":"4b944fac0191aa5907afe2d8c999ccc57ce80f45","tarball":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz","fileCount":5,"unpackedSize":4725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxVKKCRA9TVsSAnZWagAA5x0P/RDLJfsgFSed+9JrGpbr\n0m1pukeizGaachpVQhVbtiHxvsks4zkHXJsrgbxy5GK8ekSKtdKROVFX2IKk\na5mNfFIEf2LyjmR4lf3/Au3/Sg/gX/ik9XvrHWLrZRjR/3Hr2BW5KiPiT0Nv\nUrSP+pLUHB1fLVUv0QpfNm1Gu+oUDn0b8QBtw1eXJXmT1arEPG3f19F61HDH\nZ2kpfonwrISN43bseY+RKE7EJN57TmdsP5Rwfe1aict7omlRfQPxOILxedwd\nfKhoqTMiqF01+gX5KOS3EdhmlynAD0kGsO7Za07af/U1V36BSQeyCWbVTv+z\n15q8fqdpscdTd2ilbCj08BisKM7veY2kz6KeiPiP/NKIoZByjVBOZ2H5+mx9\nqvhUAa1CMNck4chbdeKZsOXKqkuSCy0Xl37ikgswXaEI1MHjUCrlvUFOW0yX\ndEjTyb+WARanD83qG0iTHpqtcTDkFlx9PjMOKStSNiLynAkv8c/3KL2dzXDY\nzeBONfwPAan+0VVAGS1uTNNF+h4gNLywEIIKeaJlZljc8XAjWkHZfwox8zwU\nZoABXPudZjAHMrmLXvTUC91aOp8KcF5Bqn9g11vz2SDRrg2Ckr1W3IS0PA9d\nVz2IsJ5O7UtOh7hEJBYTyRonDt2Gz7+LB4p2mO1M8HkPJIjZHMC9K1O3T6AK\nog3c\r\n=8JGq\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6.0"}}},"modified":"2019-04-28T07:13:16.960Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/52/83/e1ccaa006752442472bdc90a1dd12dad7162a0ceadb134a262e546cae35d504339785243c470bd73f37e9082633fc2a5d468492c34f847294cd36721f029 b/data_node_red/.npm/_cacache/content-v2/sha512/52/83/e1ccaa006752442472bdc90a1dd12dad7162a0ceadb134a262e546cae35d504339785243c470bd73f37e9082633fc2a5d468492c34f847294cd36721f029 new file mode 100644 index 0000000..e0794f7 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/52/83/e1ccaa006752442472bdc90a1dd12dad7162a0ceadb134a262e546cae35d504339785243c470bd73f37e9082633fc2a5d468492c34f847294cd36721f029 @@ -0,0 +1 @@ +{"name":"ee-first","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"ee-first","version":"1.0.0","devDependencies":{"mocha":"1"},"dist":{"shasum":"f06454b54ed5921b51011c6b2f45e2f383ca6ea2","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.0.tgz"}},"1.0.1":{"name":"ee-first","version":"1.0.1","dependencies":{"sliced":"0"},"devDependencies":{"mocha":"1"},"dist":{"shasum":"8d5e4fdba0f4a7cb8e790731cd275f938ee42f59","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.1.tgz"}},"1.0.2":{"name":"ee-first","version":"1.0.2","devDependencies":{"mocha":"1"},"dist":{"shasum":"775dd7c8ed52233f2339563ae4d33c9a9cb2be3c","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.2.tgz"}},"1.0.3":{"name":"ee-first","version":"1.0.3","devDependencies":{"mocha":"1"},"dist":{"shasum":"6c98c4089abecb5a7b85c1ac449aa603d3b3dabe","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz"}},"1.0.4":{"name":"ee-first","version":"1.0.4","devDependencies":{"istanbul":"0.3.0","mocha":"1"},"dist":{"shasum":"44dbff0250fe667e8a042ec445afd1a9c4a1aeb2","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.4.tgz"}},"1.0.5":{"name":"ee-first","version":"1.0.5","devDependencies":{"istanbul":"0.3.0","mocha":"1"},"dist":{"shasum":"8c9b212898d8cd9f1a9436650ce7be202c9e9ff0","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz"}},"1.1.0":{"name":"ee-first","version":"1.1.0","devDependencies":{"istanbul":"0.3.2","mocha":"1"},"dist":{"shasum":"6a0d7c6221e490feefd92ec3f441c9ce8cd097f4","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz"}},"1.1.1":{"name":"ee-first","version":"1.1.1","devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5"},"dist":{"shasum":"590c61156b0ae2f4f0255732a158b266bc56b21d","tarball":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"}}},"modified":"2016-11-01T17:18:18.975Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/5b/36/51523d64523ad322b50aa592c4cc567538b8f91702e500542cf64b99273262e4329d53b16c59cdfa48d980f220ceb70050c93f0592bae244cf2f5cb633f2 b/data_node_red/.npm/_cacache/content-v2/sha512/5b/36/51523d64523ad322b50aa592c4cc567538b8f91702e500542cf64b99273262e4329d53b16c59cdfa48d980f220ceb70050c93f0592bae244cf2f5cb633f2 new file mode 100644 index 0000000..f78c42f Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/5b/36/51523d64523ad322b50aa592c4cc567538b8f91702e500542cf64b99273262e4329d53b16c59cdfa48d980f220ceb70050c93f0592bae244cf2f5cb633f2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/5b/77/4b4fdde04130f7b0b6227364cb37f9973e3042f96c2025a89937677cb234bb0d8dcc0f8f336d63d9dbd29ce314223725b081dc6807b599fc705cf5005734 b/data_node_red/.npm/_cacache/content-v2/sha512/5b/77/4b4fdde04130f7b0b6227364cb37f9973e3042f96c2025a89937677cb234bb0d8dcc0f8f336d63d9dbd29ce314223725b081dc6807b599fc705cf5005734 new file mode 100644 index 0000000..5ce04a3 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/5b/77/4b4fdde04130f7b0b6227364cb37f9973e3042f96c2025a89937677cb234bb0d8dcc0f8f336d63d9dbd29ce314223725b081dc6807b599fc705cf5005734 @@ -0,0 +1 @@ +{"name":"bytes","dist-tags":{"latest":"3.1.0"},"versions":{"0.0.1":{"name":"bytes","version":"0.0.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"2a76c866ba90e6fd2641ab5c9fdb6c4e8b4015f7","tarball":"https://registry.npmjs.org/bytes/-/bytes-0.0.1.tgz"},"engines":{"node":"*"}},"0.1.0":{"name":"bytes","version":"0.1.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"c574812228126d6369d1576925a8579db3f8e5a2","tarball":"https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz"}},"0.2.0":{"name":"bytes","version":"0.2.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"aad33ec14e3dc2ca74e8e7d451f9ba053ad4f7a0","tarball":"https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz"}},"0.2.1":{"name":"bytes","version":"0.2.1","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"555b08abcb063f8975905302523e4cd4ffdfdf31","tarball":"https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz"}},"0.3.0":{"name":"bytes","version":"0.3.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935","tarball":"https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz"}},"1.0.0":{"name":"bytes","version":"1.0.0","devDependencies":{"mocha":"*","should":"*"},"dist":{"shasum":"3569ede8ba34315fab99c3e92cb04c7220de1fa8","tarball":"https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz"}},"2.0.0":{"name":"bytes","version":"2.0.0","dependencies":{"node.extend":"*"},"devDependencies":{"chai":"*","mocha":"*"},"dist":{"shasum":"37feb25b3478674e7b78a16720826b033459a6ff","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.0.0.tgz"}},"2.0.1":{"name":"bytes","version":"2.0.1","devDependencies":{"chai":"*","mocha":"*"},"dist":{"shasum":"673743059be43d929f9c225dd7363ee0f8b15d97","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.0.1.tgz"}},"2.0.2":{"name":"bytes","version":"2.0.2","devDependencies":{"mocha":"*"},"dist":{"shasum":"580fea1111c2df039f2644ff917ce4010501184e","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.0.2.tgz"}},"2.1.0":{"name":"bytes","version":"2.1.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"ac93c410e2ffc9cc7cf4b464b38289067f5e47b4","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz"}},"2.2.0":{"name":"bytes","version":"2.2.0","devDependencies":{"mocha":"1.21.5"},"dist":{"shasum":"fd35464a403f6f9117c2de3609ecff9cae000588","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz"}},"2.3.0":{"name":"bytes","version":"2.3.0","devDependencies":{"mocha":"1.21.5"},"dist":{"shasum":"d5b680a165b6201739acb611542aabc2d8ceb070","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz"}},"2.4.0":{"name":"bytes","version":"2.4.0","devDependencies":{"mocha":"1.21.5"},"dist":{"shasum":"7d97196f9d5baf7f6935e25985549edd2a6c2339","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz"}},"2.5.0":{"name":"bytes","version":"2.5.0","devDependencies":{"mocha":"1.21.5","nyc":"10.1.2"},"dist":{"shasum":"4c9423ea2d252c270c41b2bdefeff9bb6b62c06a","tarball":"https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz"},"engines":{"node":">= 0.6"}},"3.0.0":{"name":"bytes","version":"3.0.0","devDependencies":{"mocha":"2.5.3","nyc":"10.3.2"},"dist":{"shasum":"d32815404d689699f85a4ea4fa8755dd13a96048","tarball":"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"},"engines":{"node":">= 0.8"}},"3.1.0":{"name":"bytes","version":"3.1.0","devDependencies":{"eslint":"5.12.1","mocha":"5.2.0","nyc":"13.1.0"},"dist":{"integrity":"sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==","shasum":"f6cf7933a360e0588fa9fde85651cdc7f805d1f6","tarball":"https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz","fileCount":5,"unpackedSize":10997,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcR/D3CRA9TVsSAnZWagAAKxQP/jm6fmIJFjJzEpnOmOQu\n4tOWELz5luZxpItaWETqZxSAqm0cU4PiqWdkzVV7KJPgKROz6IgtqW4gvya1\nUcI1LlVSQ8zNlu0UiDLOL8yz/MKjeOEdDppglxHN7Dim+tvUVu0hF/4uhuOc\nhAG1ybdaijfeGN6uBM9P6TiqQUpT2AFuS4BUfZoAW4Gfq8fYUG5RW0KsicZB\nJ0IVRreG3KXu9BOoFa+PiGXX+LIG45yE7vMNXbWULyE5vnkBdJJK8L45lFPJ\nSHGKqYK/WIyFEnDBEQgXK9pDsbz9UvPRJFqRfrHyAkfifpTekhpKTNvaj+bC\nvuokTgppKHo8h3l3wFpXKO/Zb/UQFYH1N0dKFO+NSv4gR47Bez6O2Q0Y1ZdE\nHJmZRrFCRzr/m1VT3fZmDwDPJxjZ5kyATliI1lttyOInGlVJg+VR0XFrn0d4\nYOSKxgqTS5jIOPBNZgvt7lYGdBt9TnGk7VYMEdwHm9jfx4Hdj2aEhj3x5mss\nxlVX6q1+5Qg0Am5EWgRMYnODh9Q0oLH4Zaxi4lJr+hSp/6Ln+0IXPNcgT0lj\n+77CxeAxOQG6Aj5G6H5e45x2CGCavny5rsR133vCGBnHGuRcNOSvgZ3BmUvH\n2JB4YSQCAxX/Ku6phJepP0Ktv8gKMWohF+AM2b4oHlUnW4Ny6B7w7PMJoscM\nlFdb\r\n=oAEj\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}}},"modified":"2019-01-23T04:43:37.353Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/5b/ac/3b3930928289b1e8f52fd7f491027d6438f5b6b60946decfb8b49c6307d6c855e16fa2a1931e3c41237e9dbbd6a1963df4a719ebb443ae2aa6fe37ac29be b/data_node_red/.npm/_cacache/content-v2/sha512/5b/ac/3b3930928289b1e8f52fd7f491027d6438f5b6b60946decfb8b49c6307d6c855e16fa2a1931e3c41237e9dbbd6a1963df4a719ebb443ae2aa6fe37ac29be new file mode 100644 index 0000000..081e8df --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/5b/ac/3b3930928289b1e8f52fd7f491027d6438f5b6b60946decfb8b49c6307d6c855e16fa2a1931e3c41237e9dbbd6a1963df4a719ebb443ae2aa6fe37ac29be @@ -0,0 +1 @@ +{"name":"component-inherit","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.3":{"name":"component-inherit","version":"0.0.3","dist":{"shasum":"645fc4adf58b72b649d5cae65135619db26ff143","tarball":"https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz"}}},"modified":"2014-02-12T00:00:03.837Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/5c/66/673739b742f80ac5af1da73ca11531e6a4fde5e5836eb269ded3b554397c68bbd0aa52a61afc7072d76e11aad561fceda91026acfcc39cb038298a53ce3e b/data_node_red/.npm/_cacache/content-v2/sha512/5c/66/673739b742f80ac5af1da73ca11531e6a4fde5e5836eb269ded3b554397c68bbd0aa52a61afc7072d76e11aad561fceda91026acfcc39cb038298a53ce3e new file mode 100644 index 0000000..98b3008 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/5c/66/673739b742f80ac5af1da73ca11531e6a4fde5e5836eb269ded3b554397c68bbd0aa52a61afc7072d76e11aad561fceda91026acfcc39cb038298a53ce3e differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/61/96/bd23f2930f2e42be940bcbdc4323f9fa5f62239159a7542ca2b3576f6577dbe07f3e1e4676a1145568e4e676e330cc04060621fa8cb1d39bfdbdb9edf5c7 b/data_node_red/.npm/_cacache/content-v2/sha512/61/96/bd23f2930f2e42be940bcbdc4323f9fa5f62239159a7542ca2b3576f6577dbe07f3e1e4676a1145568e4e676e330cc04060621fa8cb1d39bfdbdb9edf5c7 new file mode 100644 index 0000000..8f1c0ad --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/61/96/bd23f2930f2e42be940bcbdc4323f9fa5f62239159a7542ca2b3576f6577dbe07f3e1e4676a1145568e4e676e330cc04060621fa8cb1d39bfdbdb9edf5c7 @@ -0,0 +1 @@ +{"name":"bignumber.js","dist-tags":{"latest":"9.0.1"},"versions":{"1.0.0":{"name":"bignumber.js","version":"1.0.0","dist":{"shasum":"944c0d5c6420620484ddc36c55d8b401799be13b","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.0.0.tgz"},"engines":{"node":"*"}},"1.0.1":{"name":"bignumber.js","version":"1.0.1","dist":{"shasum":"0e953896823b783d48ea921884d3fd90b89bdcb1","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.0.1.tgz"},"engines":{"node":"*"}},"1.1.0":{"name":"bignumber.js","version":"1.1.0","dist":{"shasum":"ebcc3dfa6ee8debd7656f4f63257b25931aadddf","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.1.0.tgz"},"engines":{"node":"*"}},"1.1.1":{"name":"bignumber.js","version":"1.1.1","dist":{"shasum":"1a415d9ac014c13256af1feed9d1a3e5717a8cf7","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.1.1.tgz"},"engines":{"node":"*"}},"1.2.0":{"name":"bignumber.js","version":"1.2.0","dist":{"shasum":"6b99ecc89638164aeff66f01a48e38aa8fbd79b8","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.2.0.tgz"},"engines":{"node":"*"}},"1.2.1":{"name":"bignumber.js","version":"1.2.1","dist":{"shasum":"e190f7bf5721c8766a074a95f90c0e476b0a2f10","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.2.1.tgz"},"engines":{"node":"*"}},"1.3.0":{"name":"bignumber.js","version":"1.3.0","dist":{"shasum":"07be3d171235a2ab78c0efae52338d645c76b735","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.3.0.tgz"},"engines":{"node":"*"}},"1.4.0":{"name":"bignumber.js","version":"1.4.0","dist":{"shasum":"28a11ade4b26fa07896426a5e52513049f51ad72","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.4.0.tgz"},"engines":{"node":"*"}},"1.4.1":{"name":"bignumber.js","version":"1.4.1","dist":{"shasum":"3d19ac321f8db4ba07aace23ebd4ac976fae6bfa","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.4.1.tgz"},"engines":{"node":"*"}},"1.5.0":{"name":"bignumber.js","version":"1.5.0","dist":{"shasum":"ff41453ac7b19ee15cda7977e179ff1b0d11956d","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.5.0.tgz"},"engines":{"node":"*"}},"2.0.0":{"name":"bignumber.js","version":"2.0.0","dist":{"shasum":"9fca55e6c73e1ba5d294bda9983180e947e2119c","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.0.tgz"},"engines":{"node":"*"},"deprecated":"critical bug fixed in v2.0.4"},"2.0.1":{"name":"bignumber.js","version":"2.0.1","dist":{"shasum":"4db50dd4bc0d48c3ae5912d1717f27dfdf218ef9","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.1.tgz"},"engines":{"node":"*"},"deprecated":"critical bug fixed in v2.0.4"},"2.0.2":{"name":"bignumber.js","version":"2.0.2","dist":{"shasum":"7f80eff1e502ba743beaf3ad015119d4a2495bdd","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.2.tgz"},"engines":{"node":"*"},"deprecated":"critical bug fixed in v2.0.4"},"2.0.3":{"name":"bignumber.js","version":"2.0.3","dist":{"shasum":"1328f1d618f4bfe23587af73577a5a1e4f3cf105","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.3.tgz"},"engines":{"node":"*"},"deprecated":"critical bug fixed in v2.0.4"},"2.0.5":{"name":"bignumber.js","version":"2.0.5","dist":{"shasum":"e1d16f495454d4229a7a483ce8d3d774ddc50659","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.5.tgz"},"engines":{"node":"*"}},"2.0.6":{"name":"bignumber.js","version":"2.0.6","dist":{"shasum":"d4094494fbb2afd30e5f63f4dbdc8a7066502625","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.6.tgz"},"engines":{"node":"*"}},"2.0.7":{"name":"bignumber.js","version":"2.0.7","dist":{"shasum":"86eb0707cf6a5110909d23e6ea7434c14f500f1c","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.7.tgz"},"engines":{"node":"*"}},"2.0.8":{"name":"bignumber.js","version":"2.0.8","dist":{"shasum":"ab9f2d18b2a7a4415473e009114b6866abd5745d","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.0.8.tgz"},"engines":{"node":"*"}},"2.1.0":{"name":"bignumber.js","version":"2.1.0","dist":{"shasum":"4f2f516b1494093a25dcf9af568de01f550a4c61","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.0.tgz"},"engines":{"node":"*"}},"2.1.1":{"name":"bignumber.js","version":"2.1.1","dist":{"shasum":"fd24a5f6bce992aa56692ecf5882dd029788a9f2","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.1.tgz"},"engines":{"node":"*"}},"2.1.2":{"name":"bignumber.js","version":"2.1.2","dist":{"shasum":"5b34651333a7e088b3ac230a31e26574e7c6d0a6","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.2.tgz"},"engines":{"node":"*"}},"2.1.3":{"name":"bignumber.js","version":"2.1.3","dist":{"shasum":"12cde364275430c323c198e4b602a0c5943826b2","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.3.tgz"},"engines":{"node":"*"}},"2.1.4":{"name":"bignumber.js","version":"2.1.4","dist":{"shasum":"29b3bb693dbb238e88b72eac2fb89650888b2d59","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.4.tgz"},"engines":{"node":"*"}},"2.2.0":{"name":"bignumber.js","version":"2.2.0","dist":{"shasum":"160d2f47668abe216bdc0f2d6148b43d23073437","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.2.0.tgz"},"engines":{"node":"*"}},"2.3.0":{"name":"bignumber.js","version":"2.3.0","dist":{"shasum":"597a02d791edc3d64f17850e21789e7a4095df66","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.3.0.tgz"},"engines":{"node":"*"}},"2.4.0":{"name":"bignumber.js","version":"2.4.0","dist":{"shasum":"838a992da9f9d737e0f4b2db0be62bb09dd0c5e8","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz"},"engines":{"node":"*"}},"3.0.0":{"name":"bignumber.js","version":"3.0.0","dist":{"shasum":"1c0246383f207d995ea92a892220ee5cb964cac0","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-3.0.0.tgz"},"engines":{"node":"*"}},"3.0.1":{"name":"bignumber.js","version":"3.0.1","dist":{"shasum":"807652d10e39de37e9e3497247edc798bb746f76","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-3.0.1.tgz"},"engines":{"node":"*"}},"3.1.0":{"name":"bignumber.js","version":"3.1.0","dist":{"shasum":"0ef82b546ba1142b55b94d173d9db70e2dfff58c","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-3.1.0.tgz"},"engines":{"node":"*"}},"3.1.1":{"name":"bignumber.js","version":"3.1.1","dist":{"shasum":"07fd43a84efbbd760871f144d617a273022a1ed1","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-3.1.1.tgz"},"engines":{"node":"*"}},"3.1.2":{"name":"bignumber.js","version":"3.1.2","dist":{"shasum":"f3bdb99ad5268a15fc1f0bed2fb018e2693fe236","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-3.1.2.tgz"},"engines":{"node":"*"}},"4.0.0":{"name":"bignumber.js","version":"4.0.0","dist":{"shasum":"26b23a3240820fb6b875f07de822004c7d34b682","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.0.tgz"},"engines":{"node":"*"}},"4.0.1":{"name":"bignumber.js","version":"4.0.1","dist":{"shasum":"1ffd30d349366e078bd6f7dc97907e6da9a71888","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.1.tgz"},"engines":{"node":"*"}},"4.0.2":{"name":"bignumber.js","version":"4.0.2","dist":{"shasum":"2d1dc37ee5968867ecea90b6da4d16e68608d21d","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz"},"engines":{"node":"*"}},"4.0.3":{"name":"bignumber.js","version":"4.0.3","dist":{"integrity":"sha512-k4oRv40D6QNDoyG0hdI/VOuScPs81eiOw9WlSspXmoLHT210kpFB3vzyCmR4oQvTd+dkUSuE7wsew+8ouDFZ/g==","shasum":"b730be1a6025212b0836fdde0e93fb4f3359b133","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.3.tgz"},"engines":{"node":"*"}},"4.0.4":{"name":"bignumber.js","version":"4.0.4","dist":{"integrity":"sha512-LDXpJKVzEx2/OqNbG9mXBNvHuiRL4PzHCGfnANHMJ+fv68Ads3exDVJeGDJws+AoNEuca93bU3q+S0woeUaCdg==","shasum":"7c40f5abcd2d6623ab7b99682ee7db81b11889a4","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.4.tgz"},"engines":{"node":"*"}},"4.1.0":{"name":"bignumber.js","version":"4.1.0","dist":{"integrity":"sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==","shasum":"db6f14067c140bd46624815a7916c92d9b6c24b1","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz"},"engines":{"node":"*"}},"5.0.0":{"name":"bignumber.js","version":"5.0.0","dist":{"integrity":"sha512-KWTu6ZMVk9sxlDJQh2YH1UOnfDP8O8TpxUxgQG/vKASoSnEjK9aVuOueFaPcQEYQ5fyNXNTOYwYw3099RYebWg==","shasum":"fbce63f09776b3000a83185badcde525daf34833","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-5.0.0.tgz"},"engines":{"node":"*"}},"6.0.0":{"name":"bignumber.js","version":"6.0.0","dist":{"integrity":"sha512-x247jIuy60/+FtMRvscqfxtVHQf8AGx2hm9c6btkgC0x/hp9yt+teISNhvF8WlwRkCc5yF2fDECH8SIMe8j+GA==","shasum":"bbfa047644609a5af093e9cbd83b0461fa3f6002","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-6.0.0.tgz"},"engines":{"node":"*"},"deprecated":"Custom ALPHABET bug fixed in v7.0.2"},"7.0.0":{"name":"bignumber.js","version":"7.0.0","dist":{"integrity":"sha512-J4mbFeZ/u5avKy4ZC23Jd4W1hKH031FBHPY4IvBWw90o8zH+ntX+lCXp34jys7byJzYz8zP+TDE1m3v2ZNTgAA==","shasum":"aa5c4733a6289c2326dbf73c792222c1828ff7a2","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.0.0.tgz","fileCount":11,"unpackedSize":381963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4eu3CRA9TVsSAnZWagAAzXwQAI+B2Xp/9iqPA2wrmUgQ\nK0JJEPkslC3epYt3Ztbi+64toEutWEbun6Xe5tKbLdVXbubexbHJqEqYxAYh\nQOcrKe4zFK6P3BYWJ3N27C2UB6pqmTx+IfeHZWDQSPPwLocuWgIbzXybEZxg\nK4W+1B72/Ww+ZmCEEWWr0MXXwDLk+yLvjjEFQPtrFWFxC0QZNj/R45k+yq97\nM/qLShDDkdqaqinhnbTQZpXAA4jNIu3Tw6/hU4dDcl9+EWBvkJpkippZ9Y1t\npZCCXc3ktCPHwuBbbohFmwjT6m4DBMjq2eGpWK9nYxYunEopp/H2zQXBzaxz\nYvJqIhS7rVm2VaxpFZ2Q2gZ2i6WhHilQDQ3FiSupyAqkY4ExeJ7SpaC0DFD2\n0wzLKUXKfDWQdxKMhLv5T+jltqV0D0nLGzZU0iq2W9x/wZkNua1bN4GkveH9\nBW70w8omXNs39vtpk5ITaGUZreGcTydKvIoLA8Q/u408AzBibFvIbnJGdoQp\n4evRwB1r6if0fudPh6V3+AASv6sMC8vCc/uNdsshXRMhwsSrzgmKBN5ac8Ki\nRM3kl7UviHHQbLxPGkrGNSvKaFtfsF/N91VjxabtBwzulZb8dFSaR7qOArkN\nGxLFIkbBbbF6XrOp2pq57+W6+lNPpgwhW+Z0E5x/OHzHzAREBhj8VDqieFHA\nTh9m\r\n=Sfl7\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"},"deprecated":"Custom ALPHABET bug fixed in v7.0.2"},"7.0.1":{"name":"bignumber.js","version":"7.0.1","dist":{"integrity":"sha512-orXkDA6dhvrCTxYkWMDLIu8R1XWKfPWoJCkFeXOi/Rybl0FVUGHvgDYgUkWVn8fGa5mw2xy25VQGPPmrxfoZkQ==","shasum":"8d2ff74fb2e7a78cbfc3a57bd63cd6106bf8903a","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.0.1.tgz","fileCount":11,"unpackedSize":382012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4gscCRA9TVsSAnZWagAAWk4P/j2acE92Z9IqwE6VHqP6\nKW/0arobVbKcEFL7Ji39hCGFwZ1TdI1lZj1L/Q5cuB9rXeQV9GDXAmYyYjU6\n2K2GVQ/HYFROvWTkPjotPl+fUjltI268iqZryfMNx9lRNfIcO4UgeklCJdJv\nmjhAmY21WF56y3Hz6RrfCfZ3JuPG4zNwp9NDeVGssUBKrV0Zvb3Ze8NxC+1o\nd5e14roRakIaE0EdCBsyrdBh1//D5BM3sz/orp6BV5VSWXnBhVNxah0SZD3s\nt5YdhrqNZwqAWrjbx+OqAO0cD17rqw2feNwAm08n3hNVSUU6ksrecqxo0Lb5\nXXZpWqsaPRlPhFQIOXlsuI5+TLE0umbQ1UDOdIeS/WUlHhgjRYa3yCObnImy\n7T7OPh84Rvlrc2NmLg5TohTUPkx3IPF91EQmjQFMgPQ0w1JQ7uayw6GKF/av\n1FmVslM+VRAdHtXjAjJClWM3pj5AEHszwuh0Y0VrkO0w3zmgf1PcP4GI8FmD\nIiqFfgR+TxzFCMQpiKG5fnqZX2idXIA/OgYSJNyREAplNw5jOVJtYRANxA3l\nxZkERY93DZjxISUwSPCN8/fnsjbb8Sx6+BT2yf1Ti4pWnnZWxGbXkSvR0cfT\nSp+rCty5eWIivZFW1feDipwfh1LrdO5T1Xbq0XnxnfcGw8N1iyrrSBXKmaLj\nP8mK\r\n=UXJj\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"},"deprecated":"Custom ALPHABET bug fixed in v7.0.2"},"7.0.2":{"name":"bignumber.js","version":"7.0.2","dist":{"integrity":"sha512-TosM7Yg1Ux0ZCNwwS/tW95r3q9xIZstgsUGKWaez0Cgq8Oy3qia9RGvyG/fbxlQAvigjza1d057QNQLGvYXCeg==","shasum":"2d9ce9428249896d6ef528b2abadf69a405cf365","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.0.2.tgz","fileCount":11,"unpackedSize":384254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/b1CCRA9TVsSAnZWagAA6OYP/2RWac9O3PRSMQUYKvOW\nqXHKxi2ktV/lokLEwhPOnul4CEoSdjKiJfQy9pobDK+QebKg9RjN72NjuwBR\nOI48kQ8o0xRpJjKuh5Lbm+EVAgurbqL1z+bPnzA8rir3Tn4w86qPFw41xmyc\nafmU2AztrYXfaDzcLzyJXhmpO9WuPkPN8KPwxbHLpHKyIMnrTCESLJwPh7Gb\nOTKDlYVMWhyf8JHdnJ9Y91+5C0JQuXbRmfEGM/F9sGkSEMqf40SqA0dnaPTu\nW5S/Nk/cT+oLDJoGNg/zcLWqABKSzP3TL7JpZXRii/HayTRnxAsZEYLWw5Mh\nu3QsfZG79WmeAGI2BMwt2tMIMRE1EMnP7KXh+rssHMCth0t+N78Dl4V1trhw\n22juEkNYa/k4XiN1PlnPZukBlp619b9C77f23tRT5Znw1RJ+3B1DsGPubfEg\ntWTbFBR9g2cP++g0QgnR8EVTeCEAxgbwUgz8C+WnRWJcxIj1ylPH/8PQvcjy\nZVS/TS+FCJRHzlln5uHM0SttgnrOXM4wvEIlWHOf/kt8I+O5CmMrloBFtG2s\n+Wxj4jmfbD7l085LPb0tNEeNgpotlvuCNry1S+4Q6DTtj+Y0eutfudYvLoKA\nQta+m6rxUILjblKFEGiVwhRAaYvO9rEIbuVoHyNF3a9tf0Z4Z5ffiPacyFAY\nAQs8\r\n=ww3v\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"7.1.0":{"name":"bignumber.js","version":"7.1.0","dist":{"integrity":"sha512-ioirFr31dV5NwDdw6bFYCi9a62dBhGHohVmWYh0VS84GGbQsb69kIZ1wyqXNqFaPJmvIt9EXpqenk/0hc8tiTQ==","shasum":"d258f41f8aae0aa33c6e77812ca740dfb758a862","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.1.0.tgz","fileCount":11,"unpackedSize":384375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/o1KCRA9TVsSAnZWagAAwk8P/11GDH4rf1MqpIkqi1Gc\nQVMEj/JZ8YYnKYWnIPhMPyY7kqpuRAC2GLQO2pgHkDL84n25kUiY8pI4oeV4\nESHfDuKNuv+ThS3NCRkAGP4Xc78xLetKgfwVSBkv996UwkL0XbjVFasnHaM7\nohPghcbnNc04lS86YHKM7+Id9jVH6EepkjaFrFOmCJeDrH/2AUUhm4FLYvff\n0M65vqI6T2NLhap17lqIS/NAetw+hBVq+tcGwyoQ3aKmsOJKrPIKKvjroBWx\n8DyIwHFgdqqK1noJaY8tkv7VDZ1MkzemHp0zf/X7m3nBK7cjS/aCNYz3QbEU\nPRRF5tpRw70fdELGbOrC9cKAR/K0gH/17X+OM1OhPmVrj/iHA9JQ74S2ywMR\nd6cESXqc0HCATza4O//lU1K1dYkqiIit/dP49NkarErZfRvQvRmuafi6GoPe\nkCXVFKUaCaIxDJpHtQ8cnAMP4SSHfS3B/a4FRyKdV+UBoMYe/9hZAmCbMNB7\nGt8ci5qUMMaNG1P+tnBLzQHdFr3pwTA8JyWB7+Vza4P7Pe0vvLU3S/lASdzs\nuRRGLw6TNXChs7yk1eU5F5Y6cq+mBPthqVJTMv4ue/fVs1kUDcdX+7WHNm8r\nREdcEXCxuHcccjYC0feqIHAob0UbJulh6ftJV75zaHZEZzEK4Xfsa2zkN6e6\n3oZ3\r\n=AV2V\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"7.2.0":{"name":"bignumber.js","version":"7.2.0","dist":{"integrity":"sha512-WWHzlaRFrhO84RfylRcoAye2yQwlUMVASbgjYpRUsAULM/8KpQn+DL0e+xVgLqAzaS/qImPled4wDdmpIBnmEg==","shasum":"2a477d9dd87d3fedf77b18ad8ba9e373ef275850","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.0.tgz","fileCount":11,"unpackedSize":384518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbA/cdCRA9TVsSAnZWagAAFFgP/RZYOlLzdJRYPRzNDTq+\nK5LYZsqlI4IjhCx4AywbD8BkCABgD4/PrJB0FNoDuARnjgO3E6c4ZAEZFDGL\nP/ehAeqfJtU7Pj/XGCs1ME4LJnkvJgGL92Bk8qK06oic5Saq2r8ZPShkLEfg\nhFaAmMvVRPrng0ykA0M0gWQ+CDC39VJmTjsCkaanL+o9alEsl2HtU0B1x0Ar\n4bU3b6Lrt9h9yWgQNgloeorFjY5EGg8FlWpRwjpHOkUg7UHSNST/ty1N40No\nMtFBxkZqUroqHeIk+QpXn1EhWKqlbd1EanLfsktaB2/a/JxSf3cwewCXTyk2\nHqvoRXwdRXBjmrbxYcOKykGfc31PUuT/xzJY2Kuf+oymCJTzXk5l76COb2Vz\noWT7XO1BcGfRFzCeXMXhpxxCVFivV6vPhrHD3/wBGadiwFS3MKovbZOdAGnZ\naXJ6ZhKHoEOpB14Knck9SmkwAEfXrNnc0nkylWdGQuqezaQqBjVh8TEGcfYJ\nogRXR0PSNOI6l7qsEZOa3bTcw4AYx8sOAttoldjoo3YnviZlIEDtL92vy/cx\n5O5AZ6N6dP71SClJvPDvKbg2dElt+NNG0Pf+XIQCjJ9TmEZzVVK4XY0NNHkx\nHlK3sQ9t3HUXqz75tKa6L6p5XNkog54ItspYZ+tz/VQ2hwbhvSeg0ZcDJv5l\nopJd\r\n=XjDI\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"7.2.1":{"name":"bignumber.js","version":"7.2.1","dist":{"integrity":"sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==","shasum":"80c048759d826800807c4bfd521e50edbba57a5f","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz","fileCount":11,"unpackedSize":384618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBuBmCRA9TVsSAnZWagAA9DQP/AsurlYSjjPMJZ5cHlMt\nuUWYGIGzc/0SfWsBh5QHtb4WxZVoA4iwJX+SeK1lqB+DLW0RddWSsMAxGiXI\nW/g2hP2IPTQUtXPj7ZWU+bFA7SFosObVEfuy/LFC0UqqA3V6WfF7xYIpyxhk\nCP9wvG1NPY/KFS8VPN/8LA377teuckVjJ7fsJ+p8eTAauPNjbov2I8axiNe7\nFngWQlCkrdWvBl142ZkSKUcmO0hKsyfkaVPrkcsmrf6CDRCjcsDD+Lu3vEsA\nKlfMk8xcf7tZDoKh8ZRtNnfiVaS4Xp7EUklZqvwOqenvW3Dqi2c+sp1eLWR2\nKPPqQbNQGDDyoDC9R/4c49j31/PUYnq+Wghkd8x1lJHBMlsleCJyMw/grB6h\nhpZ1kDUMwRrwVUxB49QAkk0bqL3sOVfbW23lsQycFuRoHuoGXYLOUJ4SiOR7\nvLNxFG+V+9c6yS+RX3PsYPKoOGEHCjeXFQhLxkqNUExuBfjGxm8SPQQYXvQD\nBNK7ETNrNnpnwBsbQ2UmXhPIRUxPAK2afRX8Ws+R4nydV0gl6K1cdY8gYNGT\nqTlQll6bY+bDhFWpXQ93hdWfLu7nA9gF6Shcgb4Z+lT1c7geCR6SiCZL+QJp\nsv1bLkuULj/lSG/PG6XE8UNMgo4fPKLZzObsLUlN3T9Z8DoCmGW/N982J3hN\nLqsD\r\n=9Aj4\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"8.0.1":{"name":"bignumber.js","version":"8.0.1","dist":{"integrity":"sha512-zAySveTJXkgLYCBi0b14xzfnOs+f3G6x36I8w2a1+PFQpWk/dp0mI0F+ZZK2bu+3ELewDcSyP+Cfq++NcHX7sg==","shasum":"5d419191370fb558c64e3e5f70d68e5947138832","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.1.tgz","fileCount":10,"unpackedSize":392588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2yoCCRA9TVsSAnZWagAA0V8P/2Jke6OvPakCxMGOaCKB\nUgzwX2UaD3Mh82yPqRIEjkB4b+1iFG5v6dNxjPk90BFs+1D9ah7JOhJt87Fu\nKfnwHtk1THQ+Vm31IIWlr6fbDA1LUayTVizxY9IF95dfhNhM21Jm8rq1TsYT\n3pGo2Ocj3Omp2y9DAT9pGh9ThRVjlEsiEUzbQvNGv0GjcmFfIwR3zAcMH7h4\nsS/RXrOHGoTsVJxSm+f5V3I883sNpRc1Tz0EVrBExxQkF32HIOie+mo10ZEU\nO8nPnOh8F6641bC3hwV20JQshkLWm8J1+s7Nbx+TYeB8AZUY9ScRACtzLwhE\nvG/P6KoMyFlzXFuRk6dbAJpCgSQDPfiJJpsyaIndP5EzXZ2cZzj5hkXNh2o1\nRM2Cqmc5BvgLphBMPZtHL5NImNtxZtFkKEfi78iSpCslzpJ1EfZWpJOGzm2K\nm5ErK8pCi7n2B+45JEKwzoN4jZtgeuc2VSnTtE3RuTGHw8cHKlpVS2zuSHGz\nJfwS24Q3mnAOvpw8V8/rAowbgZjFTWmmKoGtxr4bMnLg7Q+CcV72QOwhMIon\n8atf1givAgrXLMBCQY0J5wUSaMeXtvlXoBwIkItxQzoX04xPCTMuEx2EyjPv\nFbnF5Ct+X3TWOrcFT5dwvT4SRZCfz0eV6sxpYISGvF9/hm2+6znMAK08r9o2\nYPvC\r\n=bOPT\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"8.0.2":{"name":"bignumber.js","version":"8.0.2","dist":{"integrity":"sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==","shasum":"d8c4e1874359573b1ef03011a2d861214aeef137","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.2.tgz","fileCount":10,"unpackedSize":394844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcO74UCRA9TVsSAnZWagAAbwsP/1CHGyqtrqk8grZ5eR8M\nWbaCYnqPa4XjWl1KSi9ZYo0KxUeY/Isi1eFd80345XIFrFL8ZtSwTMFNIW9k\n4w0GTqa/piCki/TfEsLneN98GA1Vnd4qHNd30xqgx5j8o1C1Ep7rH9tsesD7\nqjOH929t2fhDL7gp1kY9OGh/4LnYS0/O3PBYwTwc/GN8qtQmVJx7KywJI0O1\nEeQmBgD6sPmp2qu6vw3CJLQ9wshIV7tiH8Kl/jgL7DZAyA+tkZbHJIYTJhJC\nWazgWiATVLjpZBCWjfHxo7Fp1ETL3CmkCNBoSqbtJuo73u2e8fN1QPd3qsfv\nXLoSi1Z+A3dLcytfBEdnGx5jsJU6T/x4xvrLV3g3Pz722+yQhDuFVvJuBGIQ\nd1rW1sU04liZw/AvRxb+O4ncvSSnC1A6xQINnvU6vY8EFYyYKefTSHy0bj8A\nz0ooswvnyDvRO6SxXRL7L7Wn/ZfCzT6g1Kf+VQShJCY+63pojisFOy2lYrYd\n+lGZApPOsdJJQKnKYPBqP9EkHwHJk8knQn8BNsG/V+qYfXBz/i75AUvZfZsa\nxEs2fOLI7xcw/G4Ev5aMrUwSnOwrl5aIpgOmwAPeazr81utdkhW2FB7+ZMC9\nCRPTM2pi9zaanqEcXZ1CqXkWj+8FCb1dpUgDiamTxuJsITcS77R4farLtZuM\nT3W6\r\n=sig/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"8.1.1":{"name":"bignumber.js","version":"8.1.1","dist":{"integrity":"sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==","shasum":"4b072ae5aea9c20f6730e4e5d529df1271c4d885","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz","fileCount":10,"unpackedSize":402139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJccpceCRA9TVsSAnZWagAAzUYP/0hr58bhLziwD6c2rcAg\nrhOjmtf8dt0XaS6jr5p0v64axU41vfEqV9BZcF+Mbh/IVGe4o9SdbXYPjuj+\nNfAeele6T6fYZR5gY/SLWDyNbYjzZwePVhLX0sJ5T9FTL0wJO55PaPUGZIBg\nOX6nJluLQvA1oLxFOyPF7NwxyjuEb5ZRem8roWqpWxFPXbggRu7rMAThTkfc\n8GyWuh0Z799xG4OvaG21aLL9OlEuqZwqu4lSXIM9SEVsYgj4lvcQXT0bZNge\n9HY84RyIq2MvsAZTLdSxgI/C9tXnVBGJdcZip39QJpJjQT/SGiXlVE6pKPjG\nnB+8o5Tv6AohoMVBkTZkWWFOSjmffRAPkIcQ7b8E8VydCZWFDjtH3cvyA6yl\nUPFZEtufe/E0PDNYAndrHZ5Av9AQ/cR8S/l8T9loVcZwfH0fgiok+Iv4q0Uk\nDiHj5NrTtRyEUt89unw0gc/7deHKTt+jBzjgZqfom/fKlYdUm+xXQdm4/y1/\nqop+DM9cMCyIPyOqzA46nWNphu1VrtvTpGyD1sRv7vLWJHhpwScJz2hfTAFz\nalbZ56ycFVDAu9wwVI/QwgJdLEy+mPhS4MbUNce6853tZ/crwhSYxFcISqij\n3uXpKj55sgm2LxbguNKT3ZSSUpABCraAR2pXuI3kvfHcB7fs0L1Kc2RN/G7+\nzc61\r\n=LRgX\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"9.0.0":{"name":"bignumber.js","version":"9.0.0","dist":{"integrity":"sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==","shasum":"805880f84a329b5eac6e7cb6f8274b6d82bdf075","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz","fileCount":10,"unpackedSize":401573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7BxcCRA9TVsSAnZWagAAaVAP/2i1olzrdqkcX3On4KXS\nmGTjsLOApkDw/5HcLxVy6f0DfNdn1PVWPrdPLQwE0xwYc+VuyYSOKugNgznQ\neIhk5aH9e3Vk7E99dUdmDoMq2v8NXw1Mz/EcZ4zGKZF7GbYz65LEXnNVeJZq\nAPHWKQOm7kCu98v5h7A4a2brlkQS5V/W4qcZTUv3Kr7zHoxYs6aiOYk1kg21\nUCOUu6w/1EIiwWAymQ9Ui8tEb1Q3sqJgngpk9iBRZEAYgQMoHNf5MgcRpYig\nMsiMQPTDJF5kjoU+kcq5xFvaMAPXf5m4lNfeeVs0R6qZHeiucukNKmtoH8kq\nYLlpY5THGUmhK4Fh/He56ARPwLCg4npsBgLfFshgT42UlmKaRsDpWvJEwEwU\n72ylXG5MRAM4AJusTuDiI68jhtChmC63SNzu2kB0RYOH4yxActVY05srZzqJ\nm9eVPoGFmbJ5CgjMUIrU9k8PY1Ft1cFph4Eq/Et7/5uBdtvIJC6dedGV4ZFO\nfewlYG3AtMjXXgcdqhoFSYVEgm2BRKfK8xV2kpIbgSo/gBdtItyOKCfAfZzc\n3By6oZToexGqDvjscAWiC9Aws2LJ51ZoDuRM1+bvLlzx8Yy2hmio/H49AdUo\nPdw5kvkm4IobJofixDruBvf/59RbPRiaoBSe7nkSTkf2iLFINu7HH7SgZrYc\n5L3z\r\n=i4Nw\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}},"9.0.1":{"name":"bignumber.js","version":"9.0.1","dist":{"integrity":"sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==","shasum":"8d7ba124c882bfd8e43260c67475518d0689e4e5","tarball":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz","fileCount":10,"unpackedSize":402020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfckUzCRA9TVsSAnZWagAAJuoP/1cbAxUBmbvIZzhPchs2\nbPzg9asPCbq+cMRh+mOOxYVGe7zwyaytuWJabQblVlA1/JWRxKBiwMjqAwjy\nyH0yqWZbAR0EFwDRBkkmP6fZbxIU3UJLEZ1qc4cFEVao/Z2MHmrVIZMcXjr1\n4fSIFAAq5AfNQOcWPVozh0xjItBDUyyD/89Z6hmuJV3pwVHjlzycUrNkTv4f\n7pAaKMbuEAhbZAb5RAz9J8jc/ZBeuIRYq7sYowlkyoEoI/AHR2/k1UwJym7S\nd7TEbnQ7oW7bwhZzvHl++aTOql3G9lyfczG5BS9gM+zRLwK/JdsySzTfR5rt\ncgNn3bJaRuH0snKS64FAWnsfzfy3m0SX31b3wTulCc6fN7pMin9zprr16jbK\ndDbceOsU1suDtZ3W2Bl8GZ1FZZLydWt4eN/Kabb2OMAHh0T1HI8qgZHLuiKb\nLTxRc6/gVXPmZLxWYAGw2GlZxzqQygPRAIeyKfY+zVuoX/Dl3Ik/wO/uMoC0\n6IUvBfs9n5s9YIFJJ6kcDarGJIZRPvxJsE/s18BiArVjazuoT0cD5GsV3t7Q\nIyIlPBObZ1+GaWcvVIv1c7jc3IjIK7vFu3bvfXaUkMAFCnGHWhZgEs/5xBMP\nXjj1Qsi2u1dURFwQ3XJYMfMzJTrTSlQ5UpAUo8R58L3O2ECVhGQdpGtxLTNH\nD3nc\r\n=EmH/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"*"}}},"modified":"2020-09-28T20:19:01.282Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/62/68/470cee0ccda0cb07e33dca6fe60c0e73d27697f23ed22254fc7fccfe23456dcec45b7a4c44bad1d299eecd3d2daa13c4ad09840d5277d6757b5afd8bbce4 b/data_node_red/.npm/_cacache/content-v2/sha512/62/68/470cee0ccda0cb07e33dca6fe60c0e73d27697f23ed22254fc7fccfe23456dcec45b7a4c44bad1d299eecd3d2daa13c4ad09840d5277d6757b5afd8bbce4 new file mode 100644 index 0000000..795ef4f Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/62/68/470cee0ccda0cb07e33dca6fe60c0e73d27697f23ed22254fc7fccfe23456dcec45b7a4c44bad1d299eecd3d2daa13c4ad09840d5277d6757b5afd8bbce4 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/64/54/593bbf3d095c9d48ad8976e70734cea1f954e3face3bbe70d8ba82bad03f4fe9edcc0eb453d79e762ce89622930fc57c03a48024c410a27a5e014bbb97ce b/data_node_red/.npm/_cacache/content-v2/sha512/64/54/593bbf3d095c9d48ad8976e70734cea1f954e3face3bbe70d8ba82bad03f4fe9edcc0eb453d79e762ce89622930fc57c03a48024c410a27a5e014bbb97ce new file mode 100644 index 0000000..2d1e666 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/64/54/593bbf3d095c9d48ad8976e70734cea1f954e3face3bbe70d8ba82bad03f4fe9edcc0eb453d79e762ce89622930fc57c03a48024c410a27a5e014bbb97ce @@ -0,0 +1 @@ +{"name":"ws","dist-tags":{"latest":"7.4.6"},"versions":{"0.2.6":{"name":"ws","version":"0.2.6","devDependencies":{"mocha":"0.0.x","should":"0.3.2"},"dist":{"shasum":"aec644a272a71228f7cc86d41167a6ec855d8a12","tarball":"https://registry.npmjs.org/ws/-/ws-0.2.6.tgz"},"engines":{"node":"~0.6.0"},"hasInstallScript":true},"0.2.8":{"name":"ws","version":"0.2.8","devDependencies":{"mocha":"0.0.x","should":"0.3.2"},"dist":{"shasum":"861f66649e5019e0b188c380da99ec09fc078f95","tarball":"https://registry.npmjs.org/ws/-/ws-0.2.8.tgz"},"engines":{"node":">0.4.0"},"hasInstallScript":true},"0.2.9":{"name":"ws","version":"0.2.9","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.0.x","should":"0.3.2"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"7f32270036409863d1401d6da6e58653b572b18b","tarball":"https://registry.npmjs.org/ws/-/ws-0.2.9.tgz"},"engines":{"node":">0.4.0"},"hasInstallScript":true},"0.3.0":{"name":"ws","version":"0.3.0","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.0.x","should":"0.3.2"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"c67c62352261fa6f8b1eb5dbcf2f9be969525aaa","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.0.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.1":{"name":"ws","version":"0.3.1","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"73f5d1b310f72594857ecaf0e5f79c7af86385a9","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.1.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.2":{"name":"ws","version":"0.3.2","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"c57326cba08f76231002b3e4fa595676938d39af","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.2.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.3":{"name":"ws","version":"0.3.3","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"a506abb667a903e5a8a281009be3e976a1e17643","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.3.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.4":{"name":"ws","version":"0.3.4","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"2252c1b3a6d646d899d5bab7b31bd979b139fadd","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.4.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.4-2":{"name":"ws","version":"0.3.4-2","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"8ff01a3ed0bee94ef4f4c6b7bb1b868c6a58e5fa","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.4-2.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.5":{"name":"ws","version":"0.3.5","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"cdda02de927eaec577b4a67604075ec16c145527","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.5.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.5-2":{"name":"ws","version":"0.3.5-2","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"0e58b65ffb2eb597a85d08d5c975c54014f57f65","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.5-2.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.5-3":{"name":"ws","version":"0.3.5-3","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"84afdaf8a4ed524ff41e38c18b7231ee5a98749f","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.5-3.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.5-4":{"name":"ws","version":"0.3.5-4","dependencies":{"commander":"0.5.0"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"d4bd8a2e3659a85e7784a061088a9410fa70f1ae","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.5-4.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.6":{"name":"ws","version":"0.3.6","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"9a5f590afaf25b07c8068a3dca27a8ce53f94723","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.6.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.7":{"name":"ws","version":"0.3.7","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"8e4495cd48fffb5789792711b70af3a24a562921","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.7.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.8":{"name":"ws","version":"0.3.8","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.3.x","should":"0.3.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"34bcb09d0c3a32d7c2ba6fd1ee900662c9e35e23","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.8.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.3.9":{"name":"ws","version":"0.3.9","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"4884b921daced4f35b0f821652bb11dec47cda3c","tarball":"https://registry.npmjs.org/ws/-/ws-0.3.9.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.0":{"name":"ws","version":"0.4.0","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"b98d30cc64bc38b0c122aed85a712665af456b5a","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.0.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.1":{"name":"ws","version":"0.4.1","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"aaf0f86deb0b38af0f6f7e880d8f4dc61b2c553d","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.1.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.2":{"name":"ws","version":"0.4.2","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"1744041779964c117cc5d2afe50a85b4ec2946c6","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.2.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.3":{"name":"ws","version":"0.4.3","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"ae6c2edf997d2a1f4a2855958edfe70ec42e24bc","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.3.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.5":{"name":"ws","version":"0.4.5","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"1aaf999a59bce58e4f1f37280b878588003ed5d0","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.5.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.6":{"name":"ws","version":"0.4.6","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"bd494be81d06329c50fbacb78345ea2b03bf595d","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.6.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.7":{"name":"ws","version":"0.4.7","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"e299d45764627a6cce89378b0aca2bff6bb896d9","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.7.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.8":{"name":"ws","version":"0.4.8","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"f52dc246ca1cb8adde0947e2dd4646363989bcc1","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.8.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.9":{"name":"ws","version":"0.4.9","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"5a37b4607a8d15ea71cf5700f97bc1b35356b17b","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.9.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.10":{"name":"ws","version":"0.4.10","dependencies":{"commander":"0.5.0","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"7b7b9d75eae61359fac376f361682ab57a61480b","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.10.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.11":{"name":"ws","version":"0.4.11","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"20025e169457fc07f4062117b9c59a1cb8e5d3e5","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.11.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.12":{"name":"ws","version":"0.4.12","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"2aefe4e7e8a135cce0b04e31a4f57bdda7a3b4e3","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.12.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.13":{"name":"ws","version":"0.4.13","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"7edd1a8b16ac223bb6255dc054abe8071ab33036","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.13.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.14":{"name":"ws","version":"0.4.14","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"b2e8ae12dd2abdf7b845ccf7c7b6d39f2ae86a0b","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.14.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.15":{"name":"ws","version":"0.4.15","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"ff61ef4e86ae686a12d68e86b8be2d405e6f1a5a","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.15.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.16":{"name":"ws","version":"0.4.16","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"0.8.x","should":"0.4.2","expect.js":"0.1.2","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"e85feca7f265c00bbea2a9ff93a077e1dada1036","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.16.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.17":{"name":"ws","version":"0.4.17","dependencies":{"commander":"0.5.x","options":"latest"},"devDependencies":{"mocha":"1.1.x","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","tinycolor":"0.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"7846c12fb7dd7c5f1185cef1ae4e70d2bcf1aaa4","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.17.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.18":{"name":"ws","version":"0.4.18","dependencies":{"commander":"0.5.x","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"1.1.x","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"0561be7753e4863045939574f1c76d50a5070a7e","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.18.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.19":{"name":"ws","version":"0.4.19","dependencies":{"commander":"0.5.x","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"1.1.x","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"3e2330568d07a46802226c09c5e26a7a31a80d7a","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.19.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.20":{"name":"ws","version":"0.4.20","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"f44b63f46b9edfc457309c720bcc0f83f2fc5874","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.20.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.21":{"name":"ws","version":"0.4.21","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"15a50f53fe69b73fe3986f6cbd07270aecce62fc","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.21.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.22":{"name":"ws","version":"0.4.22","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"12b19ed222ce3a9f81858de6d8f41ed553ca56ae","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.22.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.23":{"name":"ws","version":"0.4.23","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"deba9d34b8a19e33091d1b6a79fc8709f5c5f2fc","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.23.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.24":{"name":"ws","version":"0.4.24","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"2d23335de727aad6d26b84f32817864fdfda5e38","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.24.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.25":{"name":"ws","version":"0.4.25","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":"latest"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"3dca06feddc25944af780d7b01da2cf63da7acc8","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.25.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.27":{"name":"ws","version":"0.4.27","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"~1.2.1","should":"0.6.x","expect.js":"0.1.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"077d3a48b6e0b5a96f68f3b38a94ea1ec72c2555","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.27.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.28":{"name":"ws","version":"0.4.28","dependencies":{"commander":"~0.6.1","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"1.12.0","should":"1.2.x","expect.js":"0.2.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"03bcea020195847d1184c6c08f45baaf12322eee","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.28.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.29":{"name":"ws","version":"0.4.29","dependencies":{"commander":"~0.6.1","nan":"~0.3.0","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"1.12.0","should":"1.2.x","expect.js":"0.2.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"4b79ef62b4f3f782a05ba56b41b122d1252d4f90","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.29.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.30":{"name":"ws","version":"0.4.30","dependencies":{"commander":"~0.6.1","nan":"~0.3.0","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"1.12.0","should":"1.2.x","expect.js":"0.2.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"5e2c18b7bb7ee0f9c9fcc3d3ec50f513ba5f99e8","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.30.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.31":{"name":"ws","version":"0.4.31","dependencies":{"commander":"~0.6.1","nan":"~0.3.0","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"1.12.0","should":"1.2.x","expect.js":"0.2.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.31.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.4.32":{"name":"ws","version":"0.4.32","dependencies":{"commander":"~2.1.0","nan":"~1.0.0","tinycolor":"0.x","options":">=0.0.5"},"devDependencies":{"mocha":"1.12.0","should":"1.2.x","expect.js":"0.2.x","benchmark":"0.3.x","ansi":"latest"},"bin":{"wscat":"./bin/wscat"},"dist":{"shasum":"787a6154414f3c99ed83c5772153b20feb0cec32","tarball":"https://registry.npmjs.org/ws/-/ws-0.4.32.tgz"},"engines":{"node":">=0.4.0"},"hasInstallScript":true},"0.5.0":{"name":"ws","version":"0.5.0","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"b3980391dc4777d83974718aa361e808d86cf9ca","tarball":"https://registry.npmjs.org/ws/-/ws-0.5.0.tgz"},"hasInstallScript":true},"0.6.0":{"name":"ws","version":"0.6.0","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"4559337acb3619392aecf775f9ac749bb59c752d","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.0.tgz"},"hasInstallScript":true},"0.6.1":{"name":"ws","version":"0.6.1","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"e239e8269f187f022d9da5f2262beb2ea36a9209","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.1.tgz"},"hasInstallScript":true},"0.6.2":{"name":"ws","version":"0.6.2","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"7b2c943d01b9f02491481bc39532d63893634370","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.2.tgz"},"hasInstallScript":true},"0.6.3":{"name":"ws","version":"0.6.3","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"777949e228ad868adb73709899c81079315d904c","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.3.tgz"},"hasInstallScript":true},"0.6.4":{"name":"ws","version":"0.6.4","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"3d8454485cbde399241876c3e9a4a6cef8284674","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.4.tgz"},"hasInstallScript":true},"0.6.5":{"name":"ws","version":"0.6.5","dependencies":{"nan":"1.4.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"f00844001ca393b003681ff32838e72a560dafd4","tarball":"https://registry.npmjs.org/ws/-/ws-0.6.5.tgz"},"hasInstallScript":true},"0.7.0":{"name":"ws","version":"0.7.0","dependencies":{"nan":"1.5.x","options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"d215f9f8350a40d78c72810c59aa99d67a8504e6","tarball":"https://registry.npmjs.org/ws/-/ws-0.7.0.tgz"},"hasInstallScript":true},"0.7.1":{"name":"ws","version":"0.7.1","dependencies":{"options":">=0.0.5","ultron":"1.0.x","bufferutil":"1.0.x","utf-8-validate":"1.0.x"},"optionalDependencies":{"bufferutil":"1.0.x","utf-8-validate":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.0.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"8f1c7864ca08081be3cd0ac330df0d29c5fcd0da","tarball":"https://registry.npmjs.org/ws/-/ws-0.7.1.tgz"}},"0.7.2":{"name":"ws","version":"0.7.2","dependencies":{"options":">=0.0.5","ultron":"1.0.x","bufferutil":"1.1.x","utf-8-validate":"1.1.x"},"optionalDependencies":{"bufferutil":"1.1.x","utf-8-validate":"1.1.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.2.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"438c560bdfa2b7da3dd5b6b46ed61325c24699d8","tarball":"https://registry.npmjs.org/ws/-/ws-0.7.2.tgz"}},"0.8.0":{"name":"ws","version":"0.8.0","dependencies":{"options":">=0.0.5","ultron":"1.0.x","bufferutil":"1.2.x","utf-8-validate":"1.2.x"},"optionalDependencies":{"bufferutil":"1.2.x","utf-8-validate":"1.2.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.2.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"ac60ebad312121d01e16cc3383d7ec67ad0f0f1f","tarball":"https://registry.npmjs.org/ws/-/ws-0.8.0.tgz"}},"0.8.1":{"name":"ws","version":"0.8.1","dependencies":{"options":">=0.0.5","ultron":"1.0.x","bufferutil":"1.2.x","utf-8-validate":"1.2.x"},"optionalDependencies":{"bufferutil":"1.2.x","utf-8-validate":"1.2.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","expect.js":"0.3.x","mocha":"2.2.x","should":"4.3.x","tinycolor":"0.0.x"},"dist":{"shasum":"6b65273b99193c5f067a4cf5809598f777e3b759","tarball":"https://registry.npmjs.org/ws/-/ws-0.8.1.tgz"}},"1.0.0":{"name":"ws","version":"1.0.0","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"2bd1290456daf0a9e88c56f616b0bdc090668b48","tarball":"https://registry.npmjs.org/ws/-/ws-1.0.0.tgz"}},"1.0.1":{"name":"ws","version":"1.0.1","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"7d0b2a2e58cddd819039c29c9de65045e1b310e9","tarball":"https://registry.npmjs.org/ws/-/ws-1.0.1.tgz"}},"1.1.0":{"name":"ws","version":"1.1.0","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"c1d6fd1515d3ceff1f0ae2759bf5fd77030aad1d","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.0.tgz"}},"1.1.1":{"name":"ws","version":"1.1.1","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"082ddb6c641e85d4bb451f03d52f06eabdb1f018","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.1.tgz"}},"2.0.0-beta.0":{"name":"ws","version":"2.0.0-beta.0","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.13.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"47eae6d1a9a2a04cdb0c7b9d033cbbf7861009ef","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.0-beta.0.tgz"}},"2.0.0-beta.1":{"name":"ws","version":"2.0.0-beta.1","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.13.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"148696794af6e8766699d55228166fd0dfbe3cc2","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.0-beta.1.tgz"}},"2.0.0-beta.2":{"name":"ws","version":"2.0.0-beta.2","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.14.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"8d5cc5dab90ad208419f0c140afe4f162ed5e30a","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.0-beta.2.tgz"}},"2.0.0":{"name":"ws","version":"2.0.0","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.14.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"31bd7fc93c3dc8940ca812e36aef0d0754450f77","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.0.tgz"}},"2.0.1":{"name":"ws","version":"2.0.1","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.14.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"0d3498dcb29dbee9fa229e61ebffeba67316a827","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.1.tgz"}},"2.0.2":{"name":"ws","version":"2.0.2","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~1.3.0","eslint":"~3.14.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~2.0.0"},"dist":{"shasum":"6257d1a679f0cb23658cba3dcad1316e2b1000c5","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.2.tgz"}},"2.0.3":{"name":"ws","version":"2.0.3","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~2.0.0","eslint":"~3.15.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"532fd499c3f7d7d720e543f1f807106cfc57d9cb","tarball":"https://registry.npmjs.org/ws/-/ws-2.0.3.tgz"}},"1.1.2":{"name":"ws","version":"1.1.2","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"8a244fa052401e08c9886cf44a85189e1fd4067f","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.2.tgz"}},"2.1.0":{"name":"ws","version":"2.1.0","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~2.0.0","eslint":"~3.15.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"b24eaed9609f8632dd51e3f7698619a90fddcc92","tarball":"https://registry.npmjs.org/ws/-/ws-2.1.0.tgz"}},"2.2.0":{"name":"ws","version":"2.2.0","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~2.0.0","eslint":"~3.16.0","eslint-config-semistandard":"~7.0.0","eslint-config-standard":"~6.2.1","eslint-plugin-promise":"~3.4.0","eslint-plugin-standard":"~2.0.1","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"3218a7b1ebd15a09c56bb12a3e943a960eb7bde5","tarball":"https://registry.npmjs.org/ws/-/ws-2.2.0.tgz"}},"1.1.3":{"name":"ws","version":"1.1.3","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"67c3fd0dded7abd3c3316d281b7c968c3a2f4a3e","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.3.tgz"}},"1.1.4":{"name":"ws","version":"1.1.4","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"shasum":"57f40d036832e5f5055662a397c4de76ed66bf61","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.4.tgz"}},"2.2.1":{"name":"ws","version":"2.2.1","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.17.0","eslint-config-standard":"~8.0.0-beta.1","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~2.1.0","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"f5ecbd4d47fb55a251d1a275223d47d693d3a8f2","tarball":"https://registry.npmjs.org/ws/-/ws-2.2.1.tgz"}},"2.2.2":{"name":"ws","version":"2.2.2","dependencies":{"ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.18.0","eslint-config-standard":"~8.0.0-beta.1","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~2.1.0","istanbul":"~0.4.5","mocha":"~3.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"aa26daf39c52b20ed716e3447f8641494a726b01","tarball":"https://registry.npmjs.org/ws/-/ws-2.2.2.tgz"}},"2.2.3":{"name":"ws","version":"2.2.3","dependencies":{"safe-buffer":"~5.0.1","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.19.0","eslint-config-standard":"~8.0.0-beta.1","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~2.1.0","mocha":"~3.2.0","nyc":"~10.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"f36c9719a56dff813f455af912a2078145bbd940","tarball":"https://registry.npmjs.org/ws/-/ws-2.2.3.tgz"}},"2.3.0":{"name":"ws","version":"2.3.0","dependencies":{"safe-buffer":"~5.0.1","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.19.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~3.0.0","mocha":"~3.2.0","nyc":"~10.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"459f482239b88e49b4ee17e8787c1bd43629aaaa","tarball":"https://registry.npmjs.org/ws/-/ws-2.3.0.tgz"}},"2.3.1":{"name":"ws","version":"2.3.1","dependencies":{"safe-buffer":"~5.0.1","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.19.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~3.0.0","mocha":"~3.2.0","nyc":"~10.2.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"6b94b3e447cb6a363f785eaf94af6359e8e81c80","tarball":"https://registry.npmjs.org/ws/-/ws-2.3.1.tgz"}},"3.0.0":{"name":"ws","version":"3.0.0","dependencies":{"safe-buffer":"~5.0.1","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~3.19.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.2.0","eslint-plugin-node":"~4.2.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~3.0.0","mocha":"~3.4.1","nyc":"~10.3.0","utf-8-validate":"~3.0.0"},"dist":{"shasum":"98ddb00056c8390cb751e7788788497f99103b6c","tarball":"https://registry.npmjs.org/ws/-/ws-3.0.0.tgz"}},"3.1.0":{"name":"ws","version":"3.1.0","dependencies":{"safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.3.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.7.0","eslint-plugin-node":"~5.1.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~3.0.0","mocha":"~3.4.1","nyc":"~11.0.1","utf-8-validate":"~3.0.0"},"dist":{"integrity":"sha512-TU4/qKFlyQFqNITNWiqPCUY9GqlAhEotlzfcZcve6VT1YEngQl1dDMqwQQS3eMYruJ5r/UD3lcsWib6iVMDGDw==","shasum":"8afafecdeab46d572e5397ee880739367aa2f41c","tarball":"https://registry.npmjs.org/ws/-/ws-3.1.0.tgz"}},"3.2.0":{"name":"ws","version":"3.2.0","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.6.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.7.0","eslint-plugin-node":"~5.1.0","eslint-plugin-promise":"~3.5.0","eslint-plugin-standard":"~3.0.0","mocha":"~3.5.0","nyc":"~11.2.0","utf-8-validate":"~3.0.0"},"dist":{"integrity":"sha512-hTS3mkXm/j85jTQOIcwVz3yK3up9xHgPtgEhDBOH3G18LDOZmSAG1omJeXejLKJakx+okv8vS1sopgs7rw0kVw==","shasum":"d5d3d6b11aff71e73f808f40cc69d52bb6d4a185","tarball":"https://registry.npmjs.org/ws/-/ws-3.2.0.tgz"}},"3.3.0":{"name":"ws","version":"3.3.0","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.10.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.8.0","eslint-plugin-node":"~5.2.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~4.0.0","nyc":"~11.3.0","utf-8-validate":"~3.0.0"},"dist":{"integrity":"sha512-XPwGf44sJI6zgBpiWk44HQG6pK7HABl4F77Uydtb6BcgTC8fFpXHKM8bGu4AdBMtIjREDbNlvGitRZnwi0vXCA==","shasum":"f8b948a1378af7efa702f5513da08dd516897c31","tarball":"https://registry.npmjs.org/ws/-/ws-3.3.0.tgz"}},"1.1.5":{"name":"ws","version":"1.1.5","dependencies":{"options":">=0.0.5","ultron":"1.0.x"},"devDependencies":{"ansi":"0.3.x","benchmark":"0.3.x","bufferutil":"1.2.x","expect.js":"0.3.x","istanbul":"^0.4.1","mocha":"2.3.x","should":"8.0.x","tinycolor":"0.0.x","utf-8-validate":"1.2.x"},"dist":{"integrity":"sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==","shasum":"cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51","tarball":"https://registry.npmjs.org/ws/-/ws-1.1.5.tgz"}},"3.3.1":{"name":"ws","version":"3.3.1","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.10.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.8.0","eslint-plugin-node":"~5.2.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~4.0.0","nyc":"~11.3.0","utf-8-validate":"~3.0.0"},"dist":{"integrity":"sha512-8A/uRMnQy8KCQsmep1m7Bk+z/+LIkeF7w+TDMLtX1iZm5Hq9HsUDmgFGaW1ACW5Cj0b2Qo7wCvRhYN2ErUVp/A==","shasum":"d97e34dee06a1190c61ac1e95f43cb60b78cf939","tarball":"https://registry.npmjs.org/ws/-/ws-3.3.1.tgz"}},"3.3.2":{"name":"ws","version":"3.3.2","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.11.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.8.0","eslint-plugin-node":"~5.2.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~4.0.0","nyc":"~11.3.0","utf-8-validate":"~3.0.0"},"dist":{"integrity":"sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==","shasum":"96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608","tarball":"https://registry.npmjs.org/ws/-/ws-3.3.2.tgz"}},"3.3.3":{"name":"ws","version":"3.3.3","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.13.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.8.0","eslint-plugin-node":"~5.2.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~4.0.0","nyc":"~11.3.0","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==","shasum":"f1cf84fe2d5e901ebce94efaece785f187a228f2","tarball":"https://registry.npmjs.org/ws/-/ws-3.3.3.tgz"}},"4.0.0":{"name":"ws","version":"4.0.0","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.14.0","eslint-config-standard":"~10.2.0","eslint-plugin-import":"~2.8.0","eslint-plugin-node":"~5.2.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~4.1.0","nyc":"~11.4.1","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==","shasum":"bfe1da4c08eeb9780b986e0e4d10eccd7345999f","tarball":"https://registry.npmjs.org/ws/-/ws-4.0.0.tgz"}},"4.1.0":{"name":"ws","version":"4.1.0","dependencies":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.18.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.9.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.0.0","nyc":"~11.4.1","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==","shasum":"a979b5d7d4da68bf54efe0408967c324869a7289","tarball":"https://registry.npmjs.org/ws/-/ws-4.1.0.tgz","fileCount":15,"unpackedSize":103770}},"5.0.0":{"name":"ws","version":"5.0.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.18.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.9.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.6.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.0.0","nyc":"~11.4.1","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-XXG4S0b771C68AeTHebBsJJBZMguxj7Em+D657RViuj6ppRd3tfuOhIK8eGwZGNb76C8MjQfCTfH2NN50rJN4w==","shasum":"fb4ede3fddcff99b157d292a1069ace8d6e04db9","tarball":"https://registry.npmjs.org/ws/-/ws-5.0.0.tgz","fileCount":15,"unpackedSize":105211}},"5.1.0":{"name":"ws","version":"5.1.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.9.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.7.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.0.0","nyc":"~11.6.0","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-7KU/qkUXtJW9aa5WRKlo0puE1ejEoAgDb0D/Pt+lWpTkKF7Kp+MqFOtwNFwnuiYeeDpFjp0qyMniE84OjKIEqQ==","shasum":"ad7f95a65c625d47c24f2b8e5928018cf965e2a6","tarball":"https://registry.npmjs.org/ws/-/ws-5.1.0.tgz","fileCount":15,"unpackedSize":103665}},"5.1.1":{"name":"ws","version":"5.1.1","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.10.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.7.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.0.0","nyc":"~11.6.0","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-bOusvpCb09TOBLbpMKszd45WKC2KPtxiyiHanv+H2DE3Az+1db5a/L7sVJZVDPUC1Br8f0SKRr1KjLpD1U/IAw==","shasum":"1d43704689711ac1942fd2f283e38f825c4b8b95","tarball":"https://registry.npmjs.org/ws/-/ws-5.1.1.tgz","fileCount":15,"unpackedSize":104066}},"5.2.0":{"name":"ws","version":"5.2.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.12.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.7.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.2.0","nyc":"~11.8.0","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==","shasum":"9fd95e3ac7c76f6ae8bcc868a0e3f11f1290c33e","tarball":"https://registry.npmjs.org/ws/-/ws-5.2.0.tgz","fileCount":14,"unpackedSize":98827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAxwVCRA9TVsSAnZWagAA9VQP/39iXeH1zQCzfpOJLSzn\noeVFUFTlKbVEvIQT1FD01yjCUp2T7gGHyjC4XnaFJ3pRXDa8+O6MWGnWYhtw\nssZ7osNJV/9r2AI+xrW+lcit5qp5qg1l2/zvc3OGSVyt/3ITlnfxYJE13dCn\n23hf9veQKZvigi6OGf73h6sGqfxVcQcI3Aeez0rp28khcZrZKyhOA12s6LyS\nbrhixmvClFPZeCjDO7iP0Fy0qWYvLLOagqK3Vb7FUrObHuEl9JGFqUNW0egS\ndsVxnyhhmPHzVbV+lxhNfOPHwKPWWE1ngCu3CTqBT6zkUhCbAl+SqZkbQbwu\ncGs/WsLmAoX773kDf9PfwWIr1psvp72LLN7VBOfmTPBaO7dvvGM4Fo84DmHz\neaubp5Hgad3zpqeVnXTLJAQ6gzwdiWqF0u6l9+gKMHmXhB71CgOpF1dhgGkh\noGve5bMFFORzbYdq/Cc/NTROQIY6QEy2/ASs0BjZIEd97IiEPFbtjrcqlyr8\n9v9jkP2u8GKrOVDMc2sZu8hMyTGu1np82UEFMSDg3g4tAbVvuGDupHzgrexB\nKWWFLcarSSQsdILHjVTyTuJqZ36zGmAzLPvRPTitOn0esUaC/+MQ3r5chySk\nuagTH9F4vTGf2YbwydNYsWWxZ1+tCf8bHegjvtkO3ybm1AaCuF8huU15zqOZ\n1jRV\r\n=Ikvp\r\n-----END PGP SIGNATURE-----\r\n"}},"5.2.1":{"name":"ws","version":"5.2.1","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.12.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.8.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.2.0","nyc":"~12.0.2","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-2NkHdPKjDBj3CHdnAGNpmlliryKqF+n9MYXX7/wsVC4yqYocKreKNjydPDvT3wShAZnndlM0RytEfTALCDvz7A==","shasum":"37827a0ba772d072a843c3615b0ad38bcdb354eb","tarball":"https://registry.npmjs.org/ws/-/ws-5.2.1.tgz","fileCount":15,"unpackedSize":105366,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLnFLCRA9TVsSAnZWagAAHjAP/j1h2rW5glAQeQyZs9/i\nbLlM8N6XXz2dv81aEzpXTV/VQWp7WmyV130OUzqEqzAivqAcPWeGOqUyx2JR\nGp30PlS5LtU3IeqAk9kJNPUEmP3CkWGsJYW80Bv9eww3iKVj/O5XDu1RgQ8K\nigfwJQcHwhLjdugBrIvijGk2TALL6QC6CDjr6NWVxL0aRpJazG83NOLL9rNz\n/apAQhh+x5ANNRXi4eF+kY2pH7wTyrq/qOFAKamgcT22sTP08TeDv2Q0bpEh\n79l5yqSyaEJ0lwFL1PMEhCY7X1e/1ecGzfkNqPJsKm6TmhMRwkFLdJTMA0dH\nh8nTqMFBArmXihOn7804li8vEDkrPcvmVp7jS+rIDR0G7fUpKH8SAZ0CqQTi\nBGYaAQ1UTjSZ78KtstzzMIsbaBooBn/n+DLcg21zmBLvdKwBY99ndhlUOVki\n5N6JEHXa7b3Vck0HSb0fQ9BgMQPnjDZ3u1FJdw4rFbBrm/yoJvb41MYTlKxX\n0nyMLtzpuZ2+U4zuXe6oILI+ZDhlDEdkHts0ZjDbZEcXWkW02DoE8Qt+2fds\nDrz12QW2BosLOuiuvQwkfPiOvutWo0Q0hUgfjtekjEdQ4E4L4e8NpkgxlSWT\nHe66UBpdlRaiWjYEocv9KTuV21QcSrPUwyJY1xnJ28NNWEPJC0YTo+5zUn5E\nCzLX\r\n=10rz\r\n-----END PGP SIGNATURE-----\r\n"}},"5.2.2":{"name":"ws","version":"5.2.2","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.12.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.8.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.2.0","nyc":"~12.0.2","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==","shasum":"dffef14866b8e8dc9133582514d1befaf96e980f","tarball":"https://registry.npmjs.org/ws/-/ws-5.2.2.tgz","fileCount":14,"unpackedSize":99219,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRmFaCRA9TVsSAnZWagAAZH0P/iB0EIYIHqFAJznwT4el\n8xU2FN/na7yK3k+nV0cNYD+gKdOcTphij2IJGnQBM8hG4SlPBf+NBqy7/VBo\na3cmV3Rat395nmI3lhTgb9EDMFgYRQty3ORS3KAf2KEpFFA4QlTjOttjYsCq\nZN/j3GMnsnH47RxToPE9wTyC8d+cgIfdQHLN1k+5YaN5OtBCyKIXGbl+QJli\n2YLGAU1mp+yM+CF8CV+q6aodokoF/89D8LnJ7N5LjIgYGHTohB9c/fY/7v/5\nQLqd35RTo8OXMfiujUy2EhyGP5SyiTUzttAmXuSOxG3KQTtzss0dHMBxFeXJ\nO6ZDh124WW1VJYhdPKwfaHwszfmB6a95K2Gmu7xtvlq48qMq6Rfi9WQ1/rlc\nYyeyXAX1a/ykbEza4mm9oPfZpkPKSYM4s4fYufxyG3sAz3vKaOy4MQNA6gOC\n49sJBGT7kdTlPgHuE832t9T+J8ByCGNl/o2zJDDYLq6RLZqtgaSqAWtIBaFe\neW/yEVklhm2InF8e1yAiHg4au/6OKf4PFfKpcjdKvDbMZO8fFm6VDRYqFlI5\nnF2XzxK7p86sIe+YeFqVAzc4kMGcvYzrD7RhA25n+NBbjHaYChCLibgEDG7E\n2gqUv1T9BU2ihq845gapZ9h1b7/dpfqOKZCf5kvMxZLjp/rL8msRRPd4GIw9\nPXXp\r\n=QnaD\r\n-----END PGP SIGNATURE-----\r\n"}},"6.0.0":{"name":"ws","version":"6.0.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~4.0.0","eslint":"~5.0.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.13.0","eslint-plugin-node":"~7.0.0","eslint-plugin-promise":"~3.8.0","eslint-plugin-standard":"~3.1.0","mocha":"~5.2.0","nyc":"~12.0.2","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-c2UlYcAZp1VS8AORtpq6y4RJIkJ9dQz18W32SpR/qXGfLDZ2jU4y4wKvvZwqbi7U6gxFQTeE+urMbXU/tsDy4w==","shasum":"eaa494aded00ac4289d455bac8d84c7c651cef35","tarball":"https://registry.npmjs.org/ws/-/ws-6.0.0.tgz","fileCount":15,"unpackedSize":99254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUzj6CRA9TVsSAnZWagAAzt4P/34SG+VwqdtTCepV7vHg\nIZdyPTg4bMSXC2h1xsNsSPLa87m1OGenRSc7QyLuBwBmXV9PXEFwLs1c7rt2\ndMmVoOUx2nz6cV34LvhwlWitnurrTdCfuyc/jSjaDCYkVFreC1eCB4FqJcWv\nQO+Muvs79jK/JFFtxuQWJvrwlvghh7WdnA99YA0Dp2hG84blFrU3DTnvNaeJ\nPAFbmsT4VWpCncX5QAwVZdJkyf/Me9ePEtajo8B5VDXCKTcTW9rsaUD8+3gB\niALBZQjhEkQ4V57IioqeUvjx90c4+4XBfIBaW2DlL1sJAfBRcjz5y8GPLn0x\nEvTop4Q6AcFJYzh748h7Fbc1+K6BjQEmZbpjkWnNeIveaz4qSzsv/R3wPzVE\n+ICCwcEED5XIvU3hV4+uXFaPuq53j1z40eOtNLz3ELnh06KuiCAFI8iEMvUA\ne+a5052P4QTthG4ssO30PzngkocTQRXcBA/Ht1KVrjntA/AK5s7fq6SmtMRN\nzRSRqpgBjvfI9HDHwCx+/RWPqbV99pAxRResUY4YCctxu6y8cQCDZdwHusr2\njpe3nn/exxcofffYkJTimwC5VKTj81q2I4bMbFPLo88Ik9Sz2d3mVwQm4s+l\n3HoRlHEs7GWqFbACjETAKquTET7Oy9JzZIHNklGUk1OYhTsSG4yNUuaRk3TQ\nkAg1\r\n=xeQT\r\n-----END PGP SIGNATURE-----\r\n"}},"6.1.0":{"name":"ws","version":"6.1.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~4.0.0","eslint":"~5.6.1","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.14.0","eslint-plugin-node":"~7.0.0","eslint-plugin-promise":"~4.0.0","eslint-plugin-standard":"~4.0.0","mocha":"~5.2.0","nyc":"~13.0.1","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg==","shasum":"119a9dbf92c54e190ec18d10e871d55c95cf9373","tarball":"https://registry.npmjs.org/ws/-/ws-6.1.0.tgz","fileCount":15,"unpackedSize":99539}},"6.1.1":{"name":"ws","version":"6.1.1","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","eslint":"~5.9.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.14.0","eslint-plugin-node":"~8.0.0","eslint-plugin-promise":"~4.0.1","eslint-plugin-standard":"~4.0.0","mocha":"~5.2.0","nyc":"~13.1.0","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-tfSg0NBK1w9FkVhIftPp2lWPoFu3AInndGyydLPTNSIA4o1V7GveE2fCTF7kFmHZ/+NGVObBptvFXwzF7ALXDQ==","shasum":"3f5a17e51059272dc18cf039d3ef29eee5d3fdc6","tarball":"https://registry.npmjs.org/ws/-/ws-6.1.1.tgz","fileCount":15,"unpackedSize":100571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb779dCRA9TVsSAnZWagAAlBMP/0rQR0ky6Shi0489pjNH\nkWd0vNvdBUyTGPfPEwCzvPbkNnTFw0Mp5B6X+mKFQUtTMF8OPSPQyAJ8YPRG\n85pqTxd248JlWpzXD3gc9rP0kX/oDfqJKgbWwy0o7N6MhfRjgto8z8TMyWKG\nWqDlEep8XLFuTidosbn5YSEjh8XM9/MYLxCv+iOwUFSjRS/7zPMPpDQcNNyd\nQZ2xiwhzHaTgNQSUJ8lZuSOjKjwgf4g1OCYE8KlZRCVcTA/CvY9HhcXt/S43\n4qYNx46kl5jlZB6SX5ta1X+OQJLF+OchLUhUeNIv9RtjvqAOF14ddfWXqAvU\n5780iME+RAj0yiMIlI147Zegg0y26kPcYbMzNyIh56p5UaleoXhSA7D/HktN\nMaqyl/eNpmMHoAbbVdy+IUbN1W8S0UoPN3EC/PFNtfOm6bcUqsZJvB2FVRDo\nz45qMWi68W4lcIYv/Bq9IJLdqaLDJJAtgSBuq5jB9SC6jhZzCqgc3zF2UszM\nRcHQ9mcEoDwTWbozvFJHjEzfY1R8rU62wdluIea2sDjiHvUiF6vnedZBaVGQ\n7Mso1OofEaAaSNOnEFQgdlZi63qoA9dHjAUMBWraFz0IX5wg0kDndliXJRP/\n8LGhcMUdK0pxMLDbgE0i57q0xdpB8zcvrM8ytbjIIYxDIAcRyKHbLQFECh08\n8Z4y\r\n=pErf\r\n-----END PGP SIGNATURE-----\r\n"}},"6.1.2":{"name":"ws","version":"6.1.2","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","eslint":"~5.9.0","eslint-config-prettier":"~3.3.0","eslint-plugin-prettier":"~3.0.0","mocha":"~5.2.0","nyc":"~13.1.0","prettier":"~1.15.2","prettylint":"~1.0.0","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==","shasum":"3cc7462e98792f0ac679424148903ded3b9c3ad8","tarball":"https://registry.npmjs.org/ws/-/ws-6.1.2.tgz","fileCount":15,"unpackedSize":101241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8HRXCRA9TVsSAnZWagAA+eQP/j8yGGNE4WomL+EdKWmn\nTIjjcekIj2v1sqeT5huJZ2IREDk82hrRSA0UF7OpyZZwIJrOC4bFvMxNRHYR\nwzTJ/k2FIlEJ3r8OtBPnrHdXYYml6II4yW3qya1fN5AANz/LiWe3mgh3GjZp\nZMHeUTAA1n1Ms46nAibXTsi4m7xm94azyTeFeMdYFfrGoq4iTO9DVbux/G/b\nY5bxJzzciXCvu7ZmL5AUktghiTMp+sjuDKP+WSpvYU7O5p1C88LjTzMO1G4l\n15Ye23Mx1Oj9n47ZSSqF/uvS6yihejnnFs+Daqx5oY4+k6ik5etYSuP9uj5E\nvuMDGWclD86E6v/aHFZVCs3jQo3QDan14Ck5lXuPvXLkRCl8Rdlw4KnmgnnI\niicjtpQY8V1KWU6s34WHoySRzPOS3ruYFD+WUupUzl8Gk3ssxm8bSw/8AH1t\naWVMwWaaVqCRadl/rCnnMWpF3B4JgzQWC1O0DPxmiZq4Ftic2wSYbP8JZb6d\nZ2CO08WMgT67NwzA8KVUUlauBLfaI58+ZlesE0KuY6HbhTCCJsVTyJDr7v5o\nU0AlBZl5En+HxllkZnwV8C0QFVRqQFHqLXZbuLA3iTB4V62ti3payzHowWaC\nB7K7wWcnW77dvJbSB18YT6yL53enuWJ9f6TpobeKg42gTFqk63dxo7PjSfNn\nNko2\r\n=k/S4\r\n-----END PGP SIGNATURE-----\r\n"}},"6.1.3":{"name":"ws","version":"6.1.3","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","eslint":"~5.12.0","eslint-config-prettier":"~3.6.0","eslint-plugin-prettier":"~3.0.0","mocha":"~5.2.0","nyc":"~13.1.0","prettier":"~1.16.1","prettylint":"~1.0.0","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==","shasum":"d2d2e5f0e3c700ef2de89080ebc0ac6e1bf3a72d","tarball":"https://registry.npmjs.org/ws/-/ws-6.1.3.tgz","fileCount":15,"unpackedSize":100829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSWUfCRA9TVsSAnZWagAAfwIP+wc/E134+PtKAQyUt98N\nJg0s/p5NAcA2NjnDUIro11T3h8BX0n/pYjGChh0sbREBYCD1Yc9sH+3mNgQg\nIO/X54RHcVtgbzXud/GBc+8xBuE9ZztK+bnyxwYDeRABY7ZC+h7IapybvVhR\nmVt68fesQBmvA37AhKHejHMQgndai/6YZTdjKevOJrSSYd4XtwCcV5/lhP3I\nUm/ZA1oynIuKo6NdT+fJZ1VdvtCxwaW8eJ1IXF0xmeadtCtX7wQ6AF3mLnT1\nhXmMz/QYI3Hw/68k5b38lK4ni32yxlCYK3rs/BIrIjBnqMC+HjFV5f6MjXoA\nR8WihWoxAtkiRRC4mEmXqI/0spOEdLIvehgj+zCyLO0SP7D3svvS4JrI71he\n4AMWdWJl/xeGDcNzyi3GvIuZqzbMLJ/291NCN82Q0IHlQHzg8bIW+316qzfL\nZREhySLXUGc3g5LPHxtiFotRc/pK21qPdMIU1JHQYLh1btjtFWDP3KINBaw2\nkWrML3nPrdMEiWN+wyaL5h1fYoOYWz8pXZXOya56teEHYMqw7oXB3aW6ebqd\nQYkS0RqaqcCNAi8cThQePFRtlHaNLKS3jJJV58K26nt7AAUp36/x9KO58KyK\nodsOZ+LcqJS1FXOUvRYS8qKKfReSf0CterL8I2QPtbxQ1fHqD8ev2lQoQ6Bg\nPTqd\r\n=MjyM\r\n-----END PGP SIGNATURE-----\r\n"}},"6.1.4":{"name":"ws","version":"6.1.4","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","eslint":"~5.14.0","eslint-config-prettier":"~4.0.0","eslint-plugin-prettier":"~3.0.0","mocha":"~5.2.0","nyc":"~13.3.0","prettier":"~1.16.1","prettylint":"~1.0.0","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==","shasum":"5b5c8800afab925e94ccb29d153c8d02c1776ef9","tarball":"https://registry.npmjs.org/ws/-/ws-6.1.4.tgz","fileCount":15,"unpackedSize":100922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcaENICRA9TVsSAnZWagAAJOgQAIIYsDq4idx3DQFPWO0b\n96kAU/3kHf7+wDwhojNWz2FSZKCSaFXvZnPPEY009yp3bJTxawUmFaj5MUaf\np+Vl9lm8AsGqIHbxnQin06AU5UpEugn2yZrxuZ4+ePBAo0An6BvCSBfC4Qa8\nUjrKH0S3U7Evxbo5xRFPr5YPqaTCzIdyEXXpvgiJE0X7NBO/puy1yGl3qgLJ\nN4ptfnHP6d+EDTfGdWZXDC9oP9yiiwGlWUG53wKJIMEKcBgDGlMxDRs1eTxD\nbV0DrNJPP71FMOQdY68twHAM6rVTsZWw0AXt0I7reDNrjplVJmznVlloukFi\n8Km72uqz0fXMt43AAGKPTIWAnJS/z9gozqwfJeuc2ZXB53wgkNHhH6FM0zO7\neOfpeBExHQavSFb2Dl26KCus/rBoeKnAhOFaX6csSE1hA5YF7m2Qqgj8eoCl\nSdHXOD3P5A2Nh8MfuKrkeDJ6PRzB2Ut6P85n1Q6Ood9D+fct6pmAIRxec2zr\nHWZWnvPAKoUL4BaYsnuYLhuclcepniEdmY2LAUU7XGvHTL82UynrL8hPCF1d\neu3Ag6bHaq94+5CKY5FPh4/tJX1/qiCg5wIfKOWTsd+P8PZBOMbawSSIq034\n2Mu7tC7JvRqlPnpTEEKm49cLEu3wXZoahyi+7lBDbczSmNvoM2pH73ITrOih\nv9LM\r\n=PIG+\r\n-----END PGP SIGNATURE-----\r\n"}},"6.2.0":{"name":"ws","version":"6.2.0","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","coveralls":"~3.0.3","eslint":"~5.15.0","eslint-config-prettier":"~4.1.0","eslint-plugin-prettier":"~3.0.0","mocha":"~6.0.0","nyc":"~13.3.0","prettier":"~1.16.1","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==","shasum":"13806d9913b2a5f3cbb9ba47b563c002cbc7c526","tarball":"https://registry.npmjs.org/ws/-/ws-6.2.0.tgz","fileCount":15,"unpackedSize":101597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcf3jyCRA9TVsSAnZWagAAhRUP/jPLHHJyOx/g4umSgYIq\nkTKGLea0hXp7174Fd6tWaQPCF0afRGYJZ/szTCkOtcshU1OMSFsmUSxVokK/\nlEftgoO+reDS69YW/fIavKyzXEhNXsRkSm4ZJVmijZTI+rmr4W7hmcw+N38k\nAJWGr+3y5Ul6WxTPyVSOrWnY0YW3ZTdy5na5BwGbc+o2WAVml/jaDK3gXZPF\nUpHsJ4Vo1b1pxR4jZkVCCm3qO8X5ijmAB0g038bT1y3zXRVpYkittjhRkweH\nbzME40Jwk3rBhfjMiS1ZWpUK+6JebVkAHDlXMawtwH93Wmaj7wAKxjb7ubyF\nrmtD/6QjYFBMOCuJwAPZj2IW5OQXDivSH4GouVAvAH10AM2mijZPw+vE4J7Y\nKVyCGYQ5uoJlFz3AuK6ifaihdDML5fxK5fwHAHdBeQGELKCSBd36vGTU+avm\nrj9I2R2WOhwSSnp9FBX1jhVQgAfXNbElOe1Mhu5TUqfIT/f4UsY0SJAc5VCx\niChmvzA5lSgsVOZQRo6xa7TH7FLODxt5BvJckd1h0k8NDm50YzhitKg03d1/\nfuG/JSc0b1bmvtpTQ6Xra4dqkH24y2NnOCUBVnqn8NlmHjQ336iLgrB3wnvJ\n8yadZtlgEn0ekb7nnqXjb9XqOyap5TMHBZ9asQvf0aHwQnA0mDh3HANbmWnq\n2Rgi\r\n=xp5G\r\n-----END PGP SIGNATURE-----\r\n"}},"6.2.1":{"name":"ws","version":"6.2.1","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","coveralls":"~3.0.3","eslint":"~5.15.0","eslint-config-prettier":"~4.1.0","eslint-plugin-prettier":"~3.0.0","mocha":"~6.0.0","nyc":"~13.3.0","prettier":"~1.16.1","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==","shasum":"442fdf0a47ed64f59b6a5d8ff130f4748ed524fb","tarball":"https://registry.npmjs.org/ws/-/ws-6.2.1.tgz","fileCount":15,"unpackedSize":101449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmzoLCRA9TVsSAnZWagAAtEIP/RkNfhGX2vND8luKumDK\n+yGhSf84CsOxXBmfkVLkgQATR6gTeGLpsH1VnLqUcRzBL1sQdNM5bzlhhIHc\npd88Wdsocs0KB8+AootOv+WFz7As6gp0Y4CVEnrTr1jU4QSxbhxb/RbVVwyA\n4WiBvgQPp+AFGtWt1FfUtZkZTURyj9yRDP7xqCmGIuAIa6kZvGV65m82cAve\nP9F65FEcfZGM5996u2kw24pPzJ/aVg0lNrsgiUujHiom73UvIW0qP3u73XpE\nmolxbiAdx0oePTau42100B3Yzod4/uTR3LGvVayl7Jd+4mYaUt08DiXfTJB/\nsVK+W6Wkx/0OyH9sg32EEqCT6f2B4N8PEHvEv9xNst7PnQzpCPufHGlfzu5X\nlCuc27/08KbkpltLghmA1DRAno2ahjpxCIb8hQw5omv63zsuSUMqn9urZEeB\nGGgHLl1NkxbDFrKPpmeP54O5f16/uJQz0Fh+iIN7OV565GLNxQ92qep2+XkU\nV7dpiP2pWky+GTYMmd96FOIp1rj1EsOF8BbwknLZQnMXXOGyEFcMU5qoo0R6\nFRufPIwJvyUQxMyYvlm8BN7OGxzi9DkxFRDKzRF1AbULDDHdHmlGiYe0Iw5P\nt1EeVGEqj52f/1H9z4f2oVnuk7iqSs5KQjs532Bk1Ap177l+g7xF189EEbft\nA0mX\r\n=r0jJ\r\n-----END PGP SIGNATURE-----\r\n"}},"7.0.0":{"name":"ws","version":"7.0.0","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^4.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-cknCal4k0EAOrh1SHHPPWWh4qm93g1IuGGGwBjWkXmCG7LsDtL8w9w+YVfaF+KSVwiHQKDIMsSLBVftKf9d1pg==","shasum":"79351cbc3f784b3c20d0821baf4b4ff809ffbf51","tarball":"https://registry.npmjs.org/ws/-/ws-7.0.0.tgz","fileCount":15,"unpackedSize":101063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyHPeCRA9TVsSAnZWagAA62QP/RDg0q0DWhTXKjcDCKJj\nLX16DfGhpjj1uCCk+VlKjGQ+QZ1B5hFQVXQwpgO9Wv8/CUgTmY3DNSWNkBiD\ny+F/uS7+TKvoPsO/JKLnGTOnfsbmxhNm8eo1Gh22K0M9wnJjEbCMrBj+QmoR\nTQAZPBrMXBqnM+DB5FNyAYVaRPzFUenYphMYAx5Dz8qq2R3Zvy2q+zMRqVZJ\nQFrg12tv4L752nRzikFi9kjbJ2wq+/BYjvanuh+80YMkaIM6W3uWfgDJOIuK\n8PBLxO6hggNxTrWInLEw6qN5hMnQDPRBD7sTalJ/56huOGDi1XD9NPjVc4OI\nV6smLPUYVl2kw+fVpRADrljAXmaOJmvgZ7vzjzC8AKPvovEFMhSUxpXWeRag\n8AAoj6CemHAi4g7hXxTjJcqVSvb+efl7KmZx5sCsaX6ImGnq2QKqyKueLrcN\nDZ3D/ZyEKR9eJcCzWktZpUcp7D2++RZtfg76EGGaST531xuvY3L5e919BYzh\nEQnYhPImXgjM2Krb5b5ZblsJXWVTjXHg2HHrU4SbmDff1QCnU1NAssREgxF/\nEr/1lz1KYoGSX24/StLdGlaho9AWIgKg5zrs5wUD5Fa0oPWZjwZZ70cT4XNA\n89EHgSboPx3DeD8n/Wutnc5GYVZ57APQ5DMs8hqf5Wjd+2yF6NlXGgp2U5Y8\nta+i\r\n=51J7\r\n-----END PGP SIGNATURE-----\r\n"}},"7.0.1":{"name":"ws","version":"7.0.1","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-ILHfMbuqLJvnSgYXLgy4kMntroJpe8hT41dOVWM8bxRuw6TK4mgMp9VJUNsZTEc5Bh+Mbs0DJT4M0N+wBG9l9A==","shasum":"1a04e86cc3a57c03783f4910fdb090cf31b8e165","tarball":"https://registry.npmjs.org/ws/-/ws-7.0.1.tgz","fileCount":15,"unpackedSize":101173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdB7zVCRA9TVsSAnZWagAAZaMP/0fE9/JMko6mytPovF4S\nINT3I7c6IjgHGuTPOeZDy1phNLVdWPpnuqvHN0Oj7gFV19+NPLpsJNmdqj13\nW3ad6psXDkWl+7gQp36G7g4AsZwME8wia3DrIgCAdNW3dVWLJjztohY0w2c0\nse3BsB+NcD1YjeE+smJtZyNAVZ1eilvzxDjyrMbKU4gYjTq5Tr+yJMGUv0xe\nxS5jtne8Zh1iinyYCy+PZsELvrelxlULLSoVSCga/g4R3x7HPA+p9ubY8C4y\nbkJ8wOkrztLKHrgIyNdbkc9PtgWQO0puZwYBpY4YokNAhWMfMm00dJ9qGgs/\n+B3COQ8ZnL9vxm0AFhYunCMAx+4gY1PP6bkMnckeFmeq4fuJCCEFuQEEIsft\neQfZjcBOE2z7k4nrgqKFF7pZmQoXoBPGy61JufziS3kwJs/+yuRESUq9eR5M\nNs0biaJP3fyEZyygUwdgxTK8kZhfzQedrvH8Fz5jlDSETwwIXMLsEGbBbPvP\nHXNz3tU1jM5RjiPlJewf3oXuT9cAtJOzw1hBgOcVlEQ4J6UtVkr0rSQECYUZ\nYuaECbc80+Fd5hXOlnvVYSgpzfCRFrXeRf9c+//hXtoQS8asoZHMPXRTUOVq\ndgo343oQ1Frp9wJWpLfy/9inKA6OuYETa99KSnYFmzt2nGLYzx87asePaLtX\nmQ28\r\n=YSYq\r\n-----END PGP SIGNATURE-----\r\n"}},"7.1.0":{"name":"ws","version":"7.1.0","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-Swie2C4fs7CkwlHu1glMePLYJJsWjzhl1vm3ZaLplD0h7OMkZyZ6kLTB/OagiU923bZrPFXuDTeEqaEN4NWG4g==","shasum":"0395646c6fcc3ac56abf61ce1a42039637a6bd98","tarball":"https://registry.npmjs.org/ws/-/ws-7.1.0.tgz","fileCount":16,"unpackedSize":105465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI2srCRA9TVsSAnZWagAAaIUP/1+xbr9vMFO2lf6EeAZo\n6okOcB6C3OQFoq5LlPIBCzf9lZQXqj4NYv+p8LH7VIb9CzvUu7tpibu7ailg\nV3++ymB5rl8kvZeFOvIMNUmPM1tmG/EuUw4SBI6/U3o2eV/mgx1/cib6W7D5\nUBJGgtDpFDNs/CabvCu8PRd577I5rrGTfVxO/Re7Y7w3sQtm0OyX4wbEiBSN\nlWx+BmevMp5YCjshjxOrHeT3PeGGQS+LWggcNCxgvpQn+nX76S97s8FWI394\nkKh3k78JB+/gWdLFyA/SoHeMOucw7AIWrl1+Py63EphVRpwQ92gn64cJkUjQ\n4o2plZUGU/G4bul5ICcMnWuSqVN0FjpiqzV5hk5FOuWtOdVvDc/qt7qdddM3\n2KBO4eujib2R7eQnvBHwT4hjzQlH/GsF6+29ALoYNcso2u9MZfR2TBdjwe7h\n/VvZYxNaTx6DY614ED0nEOkZHKsaCtiP8npp/CpUUt0AtHC8QmsOQzXxsGNL\nQIZnDuhONkAcW66Xj6JSWMR3y8Z3HSb/kjtJeH/pGicc2BUfx5f40lpRCwp4\nBe7gSXrs/yxpew9ArNN/XmjhSqwB1KFEzGc1Yqhi4jjs/GPyVoV+tpnC+dC8\ndUYroPkDXhdZq/cfCW4SU5PE+4cSYKEVSr/DUWeLk17S9Yxiu8v3rjmPjGbF\n9fza\r\n=zgVn\r\n-----END PGP SIGNATURE-----\r\n"}},"7.1.1":{"name":"ws","version":"7.1.1","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==","shasum":"f9942dc868b6dffb72c14fd8f2ba05f77a4d5983","tarball":"https://registry.npmjs.org/ws/-/ws-7.1.1.tgz","fileCount":16,"unpackedSize":105820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMdfgCRA9TVsSAnZWagAAAWEP/ivL7q0N824EkUmkrg4h\nkGrzLlxzjnZJ4ViNHtrfTQAUyPEb1xfTR02MKwlUwPJ6/Nmb9+3SO13obOnS\ndqG0y/kdV3Jk77giHoBNZkB+Ss1MjskaVMa/Kv9S6m12vGLAedrapzT21Fcs\nTwVFcdsw9hNHCZROx9g7pxrtSJmSRPX0bCZ3BnK3nsm2ZsJZg16mmH2HE1Wr\no0llUE60QmMDlkqLknno18Hc66gwO/DgKPPtZeHymfgqROyu0lgXiZPkxOK6\nPyooMEJcWoZuBQU/V+ZOm5+3aIEyJb1bqyi6h5VDAEBiKoWFHH0t74LMG0d1\nH3wcdiC+PLyXUdnTBLWolKBmOJ8o1YIBL9xT7JCWPdcDsxkz78SZ6Arm/gAj\nJuSsaJFLhf1vcZeMWR04lBg5yuD38/qloh42pypkUvxYFruY+IeOt7R28j8C\nc4mlG2il6q8/vXYMmkkE1bfKiFhPD72ZLD3S/uR7t2dnbzlFS0ogT2GcMC/E\nvm/tebOdLcWALktW5BGcRrqD2MuxMMnVfDVJhve/LpnpcULnjnafwnlEfNgb\n5frbAa7y81JqtfhqGa7MKQ4WayfnJ2NnOrKJnGBD+p9h0BfW/cP4XpAGoGYJ\n89xtYW/FoZxi5PY7D/GDoBlO9IcsUIh1X5VsdEU5dEp0JbhSKj63nJr1dono\nvtsM\r\n=ZWPJ\r\n-----END PGP SIGNATURE-----\r\n"}},"7.1.2":{"name":"ws","version":"7.1.2","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==","shasum":"c672d1629de8bb27a9699eb599be47aeeedd8f73","tarball":"https://registry.npmjs.org/ws/-/ws-7.1.2.tgz","fileCount":16,"unpackedSize":107031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUYqLCRA9TVsSAnZWagAAjvQQAJbD1uawtWjhX1Et5uQ8\nrDp4cKDpVoJFdUslHKbK35Kgo48E9g9FDZ4UfYclBPzU4gKg5e2L/1u8XX+K\nDSrmP1QRLllkhxoq/kzK8ugFC6tO5FyUoxNolC8fdwgddMPrbPH/8y2bLuaE\n45k8dDz3zbHX7vz1Ti3Ja8wMbw9ISMerg3i+dJE4XtuM/qIudnfhE3ekFq19\nSJCaTJ+a7FsPYDM4rQR7rXhd2Br584xdIjkUF/9YFPpOx3qU9VZbF9+3kYc2\nCzMZsWAjWDiHz99e87gyWGVKuVr+nm09tf8rQ9O0GkGXNsttWoM20N6GHJxD\n+SVgKQOzfDlwcKnz4pH9PI118TGQrv3icb39If0JoNv7nbggPyLuL5M4l1ua\nDgZoD2eoLdN5HT7C/Sfci28rA+Un+DXjjG9esqUgsEaXXC4aXkkmZGjJiOJE\neI1T/rPlUle2Y3WXFgY99lP54VKR/4VjMmmh1uk4nf7Dp0wuw+wgK4rtIzq0\njY9NMcPwufO137KJVyZwZQBarnYYfEmx8ThX2EvT2P3Y9pubi5GnRftScetm\npMaCio7XFbjOiXFs0qcqsVlmXHZYQta6fpiaS5PSeBwW/+y7ILnF1MlN/cta\np5+V/e6Hw6S+aaueTukWwE9FYaSx5bed3jypEamMrTpLgzHRfvRl347TELW2\nRhXB\r\n=f5CZ\r\n-----END PGP SIGNATURE-----\r\n"}},"7.2.0":{"name":"ws","version":"7.2.0","dependencies":{"async-limiter":"^1.0.0"},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg==","shasum":"422eda8c02a4b5dba7744ba66eebbd84bcef0ec7","tarball":"https://registry.npmjs.org/ws/-/ws-7.2.0.tgz","fileCount":16,"unpackedSize":107115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqxyzCRA9TVsSAnZWagAAVBgP/jP+ViVBra9QaZJe2hlR\nK3rn9Du0thtxJ3fKPRxRpDDogaA8CC9KFtjhgid5yqkkvgd2FPc1ohDC4ovq\nedVVBIP6i9R1uZtFRHoY/I2VQDG2yF2RHwRmlJwe2PWvVLjlRuq1uYjrYW3s\nO5De/3xFl2RrRyV5TPZGFbKyJcPHuy91pbisYOmDD5gAYAegQgJDRvw9pYIn\nmHTu1z4SLqQwxKsyymUYMqaXRPBX2huSpxp39tZQj93q8x1HCx0/zVyiHpan\nrkOdaE4RU/CnlWGvVIu96KzI/Z9gpSYYO5QOff5KXinbk+j5r7jVN9wK0mIy\nN1wikpL61nv6nPHnHH2KK85LViFMUXBIjcAlQxoqQXmbr2r1J24cfSarWlBT\niwtMHg67xyvSf7DdmgJGP/N3Yofd28UEXYHkG7Npqddx3nWVlouYGC91OrP2\nBRPwu+sr9odXlDVXWUxjDNfdgGdB15la87uNi/nKjH+gfmNRPg3p8ZRx2c3c\nusnFJhGV8hwJ6YfYgItilEg6qjUHE7cMjUbQc0hEMwuFrD12TpdMXnYGJ+ml\nC45dYx9lsGIH6ZNTNdWjugX2AWpvjGo54La22BjHuivV2f2bh4QB3dwXo6iU\nwfYHus2hYqkWtiT8PgXG9dMX+3UxgM22uJEhHwuaXBqDKrMCf6wqlqUpmkR1\nXgZ9\r\n=A4o4\r\n-----END PGP SIGNATURE-----\r\n"}},"7.2.1":{"name":"ws","version":"7.2.1","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^6.1.3","nyc":"^14.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==","shasum":"03ed52423cd744084b2cf42ed197c8b65a936b8e","tarball":"https://registry.npmjs.org/ws/-/ws-7.2.1.tgz","fileCount":17,"unpackedSize":108109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9Ke7CRA9TVsSAnZWagAA20AP/1vc9IQ+Su9cXPin6jxK\n2QPH46YhtrZHON4LYwTV2T/Fx9wNpckuw12wvZs1IWf7qiPGCs7PKLbNOIAz\np4FjvVFmLTQg6LIn88twVtKbL91mhI3FIwSB9VUtMztFOJ7WsJeTNGR/c0EF\n0WrzZ3LLxB7K+AuyOPqIWW1Kx8fJzYSwLBBcryunGmzlp3TtTzpavb2/svlu\nn73VGQdldq/Ee6+I73wBpPZi/z6GoYFj/gbg2I9Qs1a+aeU8Jq4iuNqGSh2Y\nGAaiqw9ZMp7tAIXjgFoIRAY9WlcLCKtwvxiVJAVUNaOtRkPEmP/ZYq6rfta1\nqGjHDwxvGMYHPZtDnvLQvxEVhsgv9Dr5MqYsjNRNxx2i+L5+48OztUga0LNv\nv5XthfTeV1SuA1IZ7I5KEluXgdqIH5VrqfX+W3amuUmtKUCxg/UxrqKmcK3M\nkgRnX3NpWvq3aRFDwXnPnKt/l9alChIF0gtD10p4grQOX9ycunpijVaestlm\nqMXoupKRnPs2Ox1gJyS1aFENA5/tyC2JZ2AuSomdlSvBhC79w5RlrwGaOHh6\nWHjDz8rfRlmDLLF6FfJw1P8YvEYMm6lnNM1LkVO9U2XdXMj/y26gNjKxWl3L\n8pM0/fhNshL5FoCtnxPBMxvDObT+PI2tVq6uhUnONtNL/d5dseg8e4CzyQzV\nbYh1\r\n=fiDW\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.2.2":{"name":"ws","version":"7.2.2","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-2qj/tYkDPDSVf7JiHanwEBwkhxi7DchFewIsSnR33MQtG3O/BPAJjqs4g6XEuayuRqIExSQMHZlmyDLbuSrXYw==","shasum":"36df62f68f0d1a6ec66d3f880a02476f3a81f24f","tarball":"https://registry.npmjs.org/ws/-/ws-7.2.2.tgz","fileCount":17,"unpackedSize":109439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZJaiCRA9TVsSAnZWagAAMC0P/1SD1epfzQB4PlEbbkKf\n5zNBhRUPCT7qcQUV8LRJYUVNEMkGLrm7CmejoGST78O7XWjAzH8blOhuF2fp\njKmiwn2XZa5YHzH4IHtD9XiS6dbYF4QPK1/499Vx5TBuvU2cYMncxzsh5peS\nRjABzNVjT1ITW/NX3A+nGZi9RnCOlnX9XAhGaPwoJ5PPfUTcHSc/UzhI14rn\nKxpEM1o9Qw0J+POW1j+QIFaFdE7TwVscXTgCw1DrYlwWx71rMOUlKoXu715i\nAWuEHjmQZAptIOQTI6+Q1NruvhHtQpKaRUT+EYZ2VfHB9PPMRuX79WEORwKn\nEu82h545KXPSL92piGP/IRPgSHG14dpcSdvvtv92s3rKJAko1gU/ZRis0zLs\n/t9Y6GFOmMIFv5iLIuwkJXgwP/UkfzFL52iXOnsVlL3h/gJipIvLKIO0w+Gi\nF7+vtIR4jDYPS3QkCI4jE61e4l0Cxfmt/y2WXV2p7QpobiamTNRFMTjXmtD8\nL/gtjrKV2PYRLxarA41qutq3Buz5MldDE8bpPxP/g5vyfPPmwkbdv7hy0dPX\noewkvmHvYma1D7Ls+lejXkkahexVUYjGofS8Bdq9K3ETjmY2Xf69awRWiZtm\nTMNahgHQ6uya+wwW0J9qCDZrFibkYcK6keXpZOy6Su376dFoiUQfxN2Ty2+T\nwxZN\r\n=kr1j\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.2.3":{"name":"ws","version":"7.2.3","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==","shasum":"a5411e1fb04d5ed0efee76d26d5c46d830c39b46","tarball":"https://registry.npmjs.org/ws/-/ws-7.2.3.tgz","fileCount":17,"unpackedSize":109814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZnyFCRA9TVsSAnZWagAAUvwP/jAz5ASUvvHJjDMOS+r/\npDkuV2MoMwz6ccV+qfbVRWUKq9DqnK7bZBApyNlzV2I+APDqLOVU+2BazNKh\nqoTcVHYcBYe5oBIYUvEeSK2qyBCNJUcz2f79lVxWagdcax5nl5tOcW3B8v4X\n9T2hSvSuDNz8vg0uhCnLboZ+F4SPXd3lHwwfcZFkNSjTcRog4W4QNQTEaPbi\noqPawUw/NXDJMFILS2m/rerFnEyrDl4VpoAS9GyitCE31g22N03bCbsmaUMo\nHmFmefATEhmtIExXMDW9JGLL9FtTwVEIAJEfAWqjLt3JeAuWHvYKKd7rU/y1\nwPUQJxwGM1HDYaxbDLXRBVYkOja3YHB5txB8d2lHLt98c5DQ/lZCz1XQIRao\nPv48dpOX2Qg69IpMzSHktoRUJpt+0KkLWUhb7XGVY79kCgqt6ZqYxBs7coae\nOeReUBaKc+yuM3k45sHxyqiKCsw/qejgzScPnmU/BaC32vEdjqpysRNDtfZj\nNmizo+cLoiO8stLVCHGBwpIxegM8aGj3/C8emNEsSFi4rXT6LGHaWvNfv3FR\nVY2/4QZFL/ddUQ3yAOKF4znsHBY2qfbpPJVnW7IyxZ2h39HX3PpITCcYDPzu\nj4LV/wXFESBSre9RANqfPfkJC+A3k0V8eAB0bYQJKImeUAiqkOkYMyrX+2Ea\nHUeL\r\n=aUaH\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.2.5":{"name":"ws","version":"7.2.5","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==","shasum":"abb1370d4626a5a9cd79d8de404aa18b3465d10d","tarball":"https://registry.npmjs.org/ws/-/ws-7.2.5.tgz","fileCount":17,"unpackedSize":109520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepBaJCRA9TVsSAnZWagAArqAQAKUTurNgpRC/zpN3XTPA\nQZhkGYq05pr/ztJ8dJpT+G7dx8hgh3sPMPyiQ1JPp/EoJ9xHMj4RBin43iQp\nqxQyWbSZHYgF9fB2wF5kFkWcxfFs46KGi/rfv2/uBRzaYRQbjXSXyexS1ZHI\nTUp2ZodbreXOrvkUOFPxlEAG/Mj1BLpvxpStsnj1DQi00q0vJ6sgiMwKZVND\nsucRMU82gc8j3Fk9GzKEETG+Vf2QotccE0XMAciodpTH7eKbP9W3mUzx2xlZ\nwrmrHtr32NfPE0IbHY6ARamolSJkGThLTeA/vFgbEwM1eLmOazgu23ib4wcl\nLRcJoJWguKqfZvxTwm1wCRioBLsWb++D1KaD68aMg+wxkPlIf8glsSmZ1vXf\nKe3Ru6w0fSflhz68gZXE9Csyo53HzkvrMQTrZ6HAkoMccwVV2v/OnLjvBEdf\nGwPbmXKfbqhI5gPyz4cSP7h1zSW/oVkhr33nn09Er0i+BRwHoQ/8NB8buHNb\nA0QLvgOwyCN05FNiOaSeB1lskTxNM5NhCV4ukTXixtd9epzIiqwIEp41NgCJ\nleMmqbEstxc8l4igGZcClaEq5ReKtwWH+coTB5pK2rcQ+l2XYiS1ddBZM+Ha\nJFIkofhETLQ30boJdu3GNex0dbR2FNf526MuvEkaQLyf7WVrstLXsYd6nbju\nTRda\r\n=ev6E\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.3.0":{"name":"ws","version":"7.3.0","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^6.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^1.17.0","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==","shasum":"4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd","tarball":"https://registry.npmjs.org/ws/-/ws-7.3.0.tgz","fileCount":17,"unpackedSize":109903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJet5LqCRA9TVsSAnZWagAA2l0P+wYqJmHokCLMTvcLA+Q8\nJJSXoNNThM2fvd6n5gdzNQdgH2q34vYX2DAPF7wJGrj46BlIBDAhn172qSIs\nOYOM+CkUIAAeXm5KWKKxTrXkP+BBk0R+x+bWey5LUnfsKc8NI2PxNulb12hw\n6zFa+FdES0t+BJ2mJ7Ye23kl/gR8VVyTApeCjwWZ4q2j0UzcZbJmtRPAbok5\n36R8qwgD+mvrlCCQKPXnnCjnZ+dg9T5HuInhHKR7pexW5rlA39RAxgc1kmDF\nlL1FOQnykw2omicRm+EkrNHiLa0zKB77QmLOpxoycHjFa3jKT/o6fVgB4XmX\nwduH2/4u6mskWsOSe0URKNMhu41cZWUo2EK9bElVNJl4sKSNL4QUKNv18kaN\n92yjm0udd8An4sxE01/G0ZedE9m0ddHDYLSxL8C0DHkgxAqtLidvADqWdoa4\n5S8Ohx8PyUS+QXw3jktrBSkHN77qzD3/Scb3uk3Hddb6919DsCZCdzkuMSgA\nGUpPKMInPd1AZ/v3oZULU4rdAOy7mk4v6dFkqnW6C/NsBoCUTF6cm6ZJdL6g\nQuOFNzwUwVpMJppybugnub802Dmf63C6P8pPMdQe9QWs29suifFAlX/U0grO\n6n0qweXjqtf5kqU13Rb8TFH1AqEpmWOq5LE6XirUtOdpLtYbsLalM5Df9GXP\n4erP\r\n=HYUw\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.3.1":{"name":"ws","version":"7.3.1","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^7.2.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==","shasum":"d0547bf67f7ce4f12a72dfe31262c68d7dc551c8","tarball":"https://registry.npmjs.org/ws/-/ws-7.3.1.tgz","fileCount":17,"unpackedSize":109692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAWWpCRA9TVsSAnZWagAAgcoP/RLI81NN2qDopAbD2FZ2\nNOlPxJdiy93XpkApJUObOX733GOAVuqzaahSCbe0aZO40yWchy0+HDSKulTw\n0Myz5YFQcKQa7QNCjij7GpWwmUsLOlPHicPnI1rD0oijtZEqxWexkF0EVXTi\nrYCvgT6h7DYZ073ZCrexoKiPDDithT7GfdcuQY/Aoxl0ac1DXPSMdT3jAB8L\n8riRGm3/HgPecINFe8XOTSaqHs+6wKcwRgp6dH+JpRYv0uEGJ5SLGsbj/qb+\naoV8BBCGYdAfFCjsfh27bnIwYQBr2O32gOGo/yPPxituQvvg4MNIBN3s5QZ+\nJYTFG/fQDJR4velQQqIzow6n3pxZUGQojFj+kZjcAwt9dzc+7D0VGmjv7AXM\nrD4gX8eIMoI2ykPQtk926wlKbWiHm7zZ7bOYFBsDF+n9kFU7P2whgWeYu4ra\nXuPmOsWxdrZ+ZGQujg91duVRsBksN6z7/T5+VgiThAnfGoUlltusrdri2B2s\nwOl2lu1p8FuWlVMBMSS/pgg4lZii5axjRGvAOP5gjlPM5QHKAvjgdUzayIjm\nJWYSBibuPz5fmjmYLQkiOmiymCjsZczJC3UjKJgqV7kVdg67yIhOPgTSOCDQ\nDuhpFnh0EuNC71FoeXWDuQY0hxXVleTtsQw658CRacvxKSsX4hWCg3YuVotL\nFyMZ\r\n=fX1K\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.0":{"name":"ws","version":"7.4.0","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^7.2.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==","shasum":"a5dd76a24197940d4a8bb9e0e152bb4503764da7","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.0.tgz","fileCount":17,"unpackedSize":110918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfp5ntCRA9TVsSAnZWagAAiMQQAIFi7QQZ7YXN7qO3u5rU\ny4p7TNe+yShxtLCtiw6zmJ9aaRBYTAE2B3t0YykLv+oxH87IG62upWzLpef1\nHB4ocRqwiOIwxgGFfDo3JRp7MH+440TB65OCTr/MeVE1NbFmejOYpUY+ui43\nPmSbJjCAlIghtDM1wMFw2PUp9WK/TtA5VOq+VWxqmaMT4qHWv16lNzW65pP+\nqaaQKnkeK/2mB1yti1Sac9QriY6E7PW9kKS3xCR1LrnDYVH00V4ZDIRGEBOp\nkgjqTX+FFVpci8jdjtDh3iB+5O7tgRnCezqrZj9i1b4ANyVn5c90sQGp2UDg\nUVm8jIXHK07IcA9Zu0XWiCDrC1bgurIxJ2puiPFk+qE098dXPxPRnhnQh4kx\nPKtkzySynCP2vQ+WuyicylZAOYA8Wy/5nTx/6PrbV46erd+YnRk7mQArAkR2\nQ4IFWC0zOvRZXsp4Bf9PJKDjWNUtlpzDs1wFrjbAwcnIaJwd3Hzzkul/o58o\nMUk1N6BtZEiVpZxfwyyaZ7y7PPy7N9x8jAyDSPrWL+8s1AlxbsHGYiuWX01d\nebKkUylEj06o3rlLs0ZQC0pcZrkP4qP+aPiigZVPPytGsMK7MfaOEH+xLHQC\nT/zFQEB/jhJB5c1HS7DP9DCYF5mmLDjaHf2ZKvXEF02S+j44BXhyIHAO/wL+\nSGq9\r\n=E9jd\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.1":{"name":"ws","version":"7.4.1","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^7.2.0","eslint-config-prettier":"^6.0.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==","shasum":"a333be02696bd0e54cea0434e21dcc8a9ac294bb","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.1.tgz","fileCount":17,"unpackedSize":110923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyqCHCRA9TVsSAnZWagAA+GQQAIs7fk81l7J1T2qfvXcB\nwfRbhmwbR4MCn1T0GoBkH7MqxUE44M5UA+g3HRb2G9zLnAXABLxVUVuN9/vy\nL85mGhGwsyUiU8gz9O0WVR1xSBDWwoQyl5ZJhCnaBfxcfUoauzAODVrQ8Zlh\nmutMMFKnbUnGNex9MI4gnctB7cTpXX06bi4H3+fqIgSQ/Qa3MDNY4dtTEo90\nspzjgdoDzhn6AI8zTqQfPa+urGYnY6FOdCLn9kuMfBJrbqRqayUDAynzy0pL\niBAZyFQJuPk4wi+9C73qrZjnnj9gM+uwi/ODYr4LTFceht1TsedBHM1q/5NP\nxGv+vkJ0R0s1iBF/OK+BL7iYkUmKsm/W31kJHuSJRLsxwYKk+4/4yKdkgg3e\no/S3MYy7Pct3Y919jj+lWp8xqy1Fx42BrStn391a71zb1z3Xy//uebu8HQF1\nnmv/b5yjdQ6iZC1xCYpr4leoWzYafVqBWMaFXqmRjyG2gmpgtGCZp3gQiPNR\n+SSUdCUJYVVI61B9GY8tiymZROGXqcLIfsqWiyKyFV4rTRmYhVqQ7fWZI5ka\n7GMqToo2QRke/BhBIYhkzEBAAFw5LqkLo3RlyunEpTtb/D5LcLI0B8NQlSRj\n6wVNqptMuArSAWUc1PAAPfGSHVc21nPrBKcW9FaB8aHDc6HZ315/UoGjLzuj\nANH2\r\n=UHxs\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.2":{"name":"ws","version":"7.4.2","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^7.2.0","eslint-config-prettier":"^7.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==","shasum":"782100048e54eb36fe9843363ab1c68672b261dd","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.2.tgz","fileCount":17,"unpackedSize":110953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf649bCRA9TVsSAnZWagAA9Z0QAJoHCljY0H+MxDdsGKFP\nJtW0ZGHDRw0pDclhO418teDmCXDtGv2IMkS/VSFW8a/yJUOzb0fapBkLNtil\n0BBLXHXbZ445EKYQVZL3UbhICBAJrT+91+8ei8SLcJ86O658TUAJ3aZJO5T7\nFGWw8KvvcLUYVhctYV0vI16AOZn9eiJ2h/dFO/3oFJW6cQ4PpIjWCYL2t05b\nYqZbsxDHV1aOT2MuU4umP7zC0mvHAutYbB67b21e9mm0MVY3TjQHuailfx/9\nDK3vmHR7nvJzZ2Y4604jefA0/3YmThE4wQaSJOhTl1py7SPJeAsDRnBbHnuV\np4KdpVeFdX5MvTh9ch9jztDcpUpFiDAVm85SYDxtDt0rAmiBDbUefdNpQeY7\nqw7az5FE52E/qQcN+JyTMsj5mslgI0jfsqbm00wna371zPX476ZI5tiuMEyv\nVHaDSIY3ySmjy18G5NmErqU9FIcqzcJ3rLQsmMra953HQ9Q8fVO3rCgafNEe\nvI8qfaaOW/46BvQy1TIdZ75XAEXGfRyXi4iCAnhzGzzN1wsQxYgCZ4Z8dcjI\nuNxM+2FucOWNJs2Qk1zA7MckeU/URUozDcorbfmX3TgUtAVYWYKu2HavIqvc\nMmwatuzxXsFfxJLb2WqpQVh38Iz5mjci4UScL9gbUHEwYvHhNM4go60+5uco\nhdzx\r\n=uDD3\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.3":{"name":"ws","version":"7.4.3","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","coveralls":"^3.0.3","eslint":"^7.2.0","eslint-config-prettier":"^7.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==","shasum":"1f9643de34a543b8edb124bdcbc457ae55a6e5cd","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.3.tgz","fileCount":17,"unpackedSize":110849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGaZOCRA9TVsSAnZWagAAdAcQAJklfG4Oj7D0vG+j69sI\n9SmkgGHCffychd5LwyTccWOPBP7gr8CujKBOdAAJTAA753yo3SmNN2pv8gmn\nn4inrdBDr987SUZ1HLMA6C+n+2zhQhq3cDghaZg4SM68aOqtElFcGFYvEd0o\nmR7Owo+Xx7g69rZQt89HozFarSsKM/rciuI7QccOZvA7AHTMN2on+NVVNXq6\nuMCAWUyD1HwhHP4DEJOvU8NZ6xwgr/Ekb3Sn6r3eHxzTMwcgvjpZlTutEGrQ\ngrSYbju3I6zIB6o8BxCjxBZR/BoL5u1t1HKUH3j8VtInnniNQNOB5tQPu7rz\nWVd+TdTsYC5XJVBibqvkdKyBr5k9t+zhx3o6Oa9Zn766chR2ak7GDyXKLtsM\nqV3mvnU6dNlDfCnQ8dtlktp2go3AXJH2fXZWYoDvfGES6aB7c95h93oxpUdZ\nqSn3rJfNLBAY1RaV+mSuOfT2xL0W88xj8Z+LbWgZsDMgOPVCRaoFJZNjBJwf\nAfCTPHADZZZgtmc5zWvTcYzjxInA0mVU4lXAEElf1stHQXbeC5eSLlyDGel4\noTwm86q3m0aad5EMgEpXf0jbmy1PxJqcMKXxGJ8vkpr3G9wRelIE0MaemyuF\nZPNZfL7sr6ngVo2YmUUUg3Yzm1TzZIXIuBniKPcidwtnf4ToKEB9dp9KtLiw\nkwoX\r\n=VZbe\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.4":{"name":"ws","version":"7.4.4","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","eslint":"^7.2.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==","shasum":"383bc9742cb202292c9077ceab6f6047b17f2d59","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.4.tgz","fileCount":17,"unpackedSize":111037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQ+pMCRA9TVsSAnZWagAAZ/8P/1b6s7XR/oIUWaDIDp+4\n0kzWV/sOtdGmxkBClaVe9nnb/2XJAAsEmn/+HoBhfJC4X5efzS+qArb4w4Rd\nx+GvyKKsXh8CnQxaCSjfD4PbbHIrPy3OskQhj4056oNV0yKYy0+5WaujkpwA\nXlXKHGAkPa65MK8jw5CfkoPlR/aPpaZujHc5+/bB4c143qYm953PpIbXSqMI\n9XBF6gjTQ7l2A44iXoXe8pyRDE529n26hGb32JVzaqJXyzbpJRmaZ+gUozD/\nWrfmFMcNLWnH0G+qejKGQWRwiF8qwSLpSIB9COdsAk05CdTJUwNKtY3kzTUC\n7GDVocxJk6s/RteDJy7QLiOe30QAUrTy7+RUX84KzbmrKWB5z9tAxrB5PxS6\nhjlTR/1MxxjWtd2UaTjpCWqyRViFku4tqfT0SyvMTAkIEuu5lhjpl4jfRltj\nNU1wDURKuppb29cWM+VqUKeKKKn2KmufvrRA4QXO/aRJumuwQDEsMlFvWZ7x\npEq0u6T4pz+f7bHhfuaqshJmmUeyRCBDEqWKDWPTFyDE+D7IRTZrIm9KOZyq\nRlLC6Vz+HLgI4/sMnEc8sud7CE2wnzQenRrWBFQKaxb2Sx35iQvRhbOYaEB9\nhm8662ktA7ulNp8Y3sJSbNFk64Sy1D4sRJ5UfwRsLyBIq2AKkfJnhbEOLTnk\nUEi6\r\n=sACG\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.5":{"name":"ws","version":"7.4.5","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","eslint":"^7.2.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==","shasum":"a484dd851e9beb6fdb420027e3885e8ce48986c1","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.5.tgz","fileCount":17,"unpackedSize":113125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJge+xACRA9TVsSAnZWagAAO9YP/2/w3EaLUACI5er1U3l4\nxt0f2RfokximhGzjmoOYyxFFS6QIuZSAHagUrUlH6wodYpLz+aL8R9QJGK1F\nzAFiULT8uoz0DPc5r8+yt1gYEszUoVouo0RiQhpslQScNb4zBFLqrucSRf/b\n2nd757uOY1DBUg9F6XAppZfZO9NPJNOTkKkgMHY5C2DWzmHnK+2urlwxIa7f\nXL+Mv8Pp4aOlwwQO7fz+6vny3VJgNbjgfAC8uKZWPVVj/KgPL8z3eghmgqZw\ny3IV5Ou2r4yniiQr4CLD2GH1mL14HGUWax/WVT/aJrbTpo7/4nJpsTyGdck6\nOXF+jZieJk3543LCULlVugAuoWX2EzhcSdl6KHVKvyn8+NEtPYvErIhGLLA1\nGaPQMDGjSZf7liCZ6XDuyQcevg8TSMRi7zkl7hmiYbNhEuDFoEshSzgQOQS8\nSw7Nbyt6L2oPmgiFq1QN6sKpShrJr4sY+w36GafTwRLP3qxjrBztA8HvZmHe\nLdWUU9DPKkgGdyeLw1bE/+iL9VbMIEn67TK+DT1YGWyZpj+adS0ZVUDXT0OO\n0lxE65FB8+70GcY+AFt9E1d1FUWprkNTWbVj/l59yDGK44yQ+wrYn3yccuRU\ntIdXAVt3raoiy0C11nVR02LoCi1qkl1+Ea/Roxy9NXZwSJerDXoLmppqwWpx\nhKEZ\r\n=MzsC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"7.4.6":{"name":"ws","version":"7.4.6","devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","eslint":"^7.2.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"dist":{"integrity":"sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==","shasum":"5654ca8ecdeee47c33a9a4bf6d28e2be2980377c","tarball":"https://registry.npmjs.org/ws/-/ws-7.4.6.tgz","fileCount":17,"unpackedSize":113359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrSYHCRA9TVsSAnZWagAApMoP/ig+CqLojND9JmG+Ibgm\nBn2/SHruCtrieAZ6plCAU3KxW+f18U/leb/LxcD9vp2yy0qX49RVUiG/ImPi\n0n66dfg/w7G+WXKD+/Br/SICinTMyjvBtDMCsM6KXDeJTx8w837JBtXay0qW\nJ+PUyzT0XrlEdgWFakcfLUExfDbVJPhu0UvAS3bl/98kxGNiXgVoWy0M6rJb\nNznvfXZZ2B0XJhzFhVtgOn1fJZkRFMURfhyv5ZGNgKDUB5JkUdyWUkXBkrhP\n3pkpJ0RTG5/SINWDQnS3A4Ci0Wp1BjAnPj9ZRUNuT2pmhQJvmsQx6nwvu5GY\n2X9kZttj9SwEFB14Di7SDwGumCxWTmvjU0mn1reQ/pFbeXBCWBDeP4yD/8Kg\nx7FUfRD+xD5WVi1smbGOpcx2mRFaWqBVQAyis3bHYHVc/lIt+eYzopQjvcTT\nnid6hAwYYpZaciYyIMgDm1Cc1aD/T3hmDh8cDz50ijX9jSFJ/kQxBKZeIpeV\nGxWYDrOP5YtYrgidCetT4ITtza8QS67uGhal7Ahju3UvY5AUuzk0JSOfIxXv\n3aQtu5/hwukifYkRLiZkLI+ydHNULfJ8xk2ky11Ws25Pk2ahCo9NYhhY9KZ1\nTlxG5E3QBaSAwFyCnFHf7pFXqXyDPf0OaH3egm2ufDHxgPy7/BQtNPFMkH6H\nlCOy\r\n=QprN\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.3.0"},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}}},"6.2.2":{"name":"ws","version":"6.2.2","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.4","bufferutil":"~4.0.0","coveralls":"~3.0.3","eslint":"~5.15.0","eslint-config-prettier":"~4.1.0","eslint-plugin-prettier":"~3.0.0","mocha":"~6.0.0","nyc":"~13.3.0","prettier":"~1.16.1","utf-8-validate":"~5.0.0"},"dist":{"integrity":"sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==","shasum":"dd5cdbd57a9979916097652d78f1cc5faea0c32e","tarball":"https://registry.npmjs.org/ws/-/ws-6.2.2.tgz","fileCount":15,"unpackedSize":101735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtn3NCRA9TVsSAnZWagAAxFsP/jSEBOvCrZ5dtS/nj0ua\nqsCbU/Y1wqG/M0edJS6b9hM2SgKdmHPH9byqgrBs6SlEBSi8v0H0XEhvUjd0\nW3SNXps8SA0j7O1v6Sbb9YbJm0RU14Cq0gOngxJ/uad6XOOwCSsQqV9FfA9R\nnzx9QBXnJVks+q/LS3qDJ2XbvBDD4nA+YiIPJHu9nry21Z+lC48lsMQinLVZ\n4pAvCHAYNzgUg0J6B0qQQ+wc+i9Ml/3CRUmZMJ32h/yx2zzdwQ5zR5PDl3xb\nKhROfEE2kybahk7bYMIwBCVNPhe+WeoOKBJlu7V/Mzx3x/RnsSLUu6pF2alI\nvNfb4cS9B0ik9p8OdC9ULauDVKwHusfoxNjtmDFqDmxgh0zEnCQidhaWep0k\nwg30GmEkx3lzGWgjOJ8/1svW0TFVUUojGvQQc0qmgM+9Rn2tqcWkdV+xNm6A\nymtt9ZDpPPFBPmtipqbcRcLU7JuLM9PUz6xqRBCYyerBc1aqO0/oIevFuC/F\nifB8ZNPVvVwUJq2gz0KTkrnqpa1GDvaP4abFihpuXeodhN9QEF1YvCItdoAp\n4kWSOpVVpLfmJAxEgtHhkCKwfYJEP8lf7mjS+ilnkeP0cKO6Aq/N693fnH1W\nWE12+K2HXSmpWzoyKiFyU7psS9afANp4QbQsVh/mhQKSGRyIl4wmU1emJT9b\nv8eQ\r\n=1LXy\r\n-----END PGP SIGNATURE-----\r\n"}},"5.2.3":{"name":"ws","version":"5.2.3","dependencies":{"async-limiter":"~1.0.0"},"devDependencies":{"benchmark":"~2.1.2","bufferutil":"~3.0.0","eslint":"~4.19.0","eslint-config-standard":"~11.0.0","eslint-plugin-import":"~2.12.0","eslint-plugin-node":"~6.0.0","eslint-plugin-promise":"~3.8.0","eslint-plugin-standard":"~3.0.0","mocha":"~5.2.0","nyc":"~12.0.2","utf-8-validate":"~4.0.0"},"dist":{"integrity":"sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==","shasum":"05541053414921bc29c63bee14b8b0dd50b07b3d","tarball":"https://registry.npmjs.org/ws/-/ws-5.2.3.tgz","fileCount":14,"unpackedSize":99505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv8SPCRA9TVsSAnZWagAAriYP/iSXFrEyNi301FEkiKq+\nhLVkPJo8P/Zf3PntFH3C2XgqBuTn0pGyv3tJRqqRNUp1jOFv7m4kRlMjRZ11\n2HNznOgiJP35pr8yT0wbvzczUPMdsVzMbv5HOYNbNVjveE3oBS8PhJZMnXVG\nbcJOONpbh8qO8DXPzQYJqG7/mYxtC0XhogNR95VxZUUY8SOlByuPjhEEmDsP\nE6PjKAvbP/xcJCNYJ8cc9RXK5XwjtFk4PchGoFsuhmE3pVwsM1E20L+ZTuVf\nC4Mvf+pozHSymBjB2CEmffv0OLJOvM7l8aj77D7OEBnrs3aJyQ1odPFEsNg4\nQfuytlNgIExuezwxOWwWO3lsuzdn0sXOylYkbChbuXfiX0a2qxMO2daLMlAn\nLWQRKAqkROet5X4lGrdWx1iajakaQmkJolmWkDVyBs7JROh4P+zkx/UHMqeG\n/amMdrtlPtgR9Ow8VIHmXw5QHWHvJ2tnSuvekl4s5ZFxjvTbOBBiFq6SRmLd\nrSiWPpCPAUIIMe5uuszk/tJCOSlaP/OUXE2f/85Jr87Uq+HMLkDAu4G3XwuY\nIByPQJBWHB3epxTF/iZ2t3/C6iMnieUOyvlbT9KV/p0RQdXTN46G6srQUVox\nNTIKAdz89XG0RszYTqdZO95FjQJKADagD7oh4Jijw0ie3yVp9Z2vxgPupYB0\nw8CB\r\n=NZr8\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-06-08T19:31:16.704Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/64/61/8abb2dee23e051de55763d1a87f0e7b7e97a28b449134fa21fc0448e4136fd8d4fb2a69346191af22e5f7e52ac058a53ee2a84ce13e720e6711ebe9917d2 b/data_node_red/.npm/_cacache/content-v2/sha512/64/61/8abb2dee23e051de55763d1a87f0e7b7e97a28b449134fa21fc0448e4136fd8d4fb2a69346191af22e5f7e52ac058a53ee2a84ce13e720e6711ebe9917d2 new file mode 100644 index 0000000..c78a243 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/64/61/8abb2dee23e051de55763d1a87f0e7b7e97a28b449134fa21fc0448e4136fd8d4fb2a69346191af22e5f7e52ac058a53ee2a84ce13e720e6711ebe9917d2 @@ -0,0 +1 @@ +{"name":"engine.io-client","dist-tags":{"latest":"5.1.1","alpha":"4.0.0-alpha.1","old":"3.5.0","v4-latest":"4.1.4","v3-latest":"3.5.2"},"versions":{"0.1.0":{"name":"engine.io-client","version":"0.1.0","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"f14db26ca35722f2cd5385e8fd37cd49848bf87a","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.1.0.tgz"},"engines":{"node":"*"}},"0.1.1":{"name":"engine.io-client","version":"0.1.1","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"249fd4de0038eddabebae23fb4f75cacd0678689","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.1.1.tgz"},"engines":{"node":"*"}},"0.1.2":{"name":"engine.io-client","version":"0.1.2","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"fe7a9ae522cb33bc7c88e1ccf68d59bce1e11b87","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.1.2.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"engine.io-client","version":"0.2.0","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"3e25dcd865755da56a01ea0e8b8b103da5a42ff6","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.2.0.tgz"},"engines":{"node":"*"}},"0.2.1":{"name":"engine.io-client","version":"0.2.1","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"8d4663f2bff2af5c8f8d6f87fd9b6331ffba6450","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.2.1.tgz"},"engines":{"node":"*"}},"0.2.2":{"name":"engine.io-client","version":"0.2.2","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.4.2","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"531c801154b3e396bf3bff05f1ee002bf362c4bc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.2.2.tgz"},"engines":{"node":"*"}},"0.3.0":{"name":"engine.io-client","version":"0.3.0","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"22fe9eef0bb77f93f4fa9ad829fda627c0794c84","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.0.tgz"}},"0.3.1":{"name":"engine.io-client","version":"0.3.1","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"a42de41f2d6cf6de8778184476ec50e4a36f7452","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.1.tgz"}},"0.3.2":{"name":"engine.io-client","version":"0.3.2","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"37e637c3cca79a980527fbd2b79c823b77cda0b0","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.2.tgz"}},"0.3.3":{"name":"engine.io-client","version":"0.3.3","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"b1156ec9dc4a54b4ce23f122e6bb88f960436161","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.3.tgz"}},"0.3.4":{"name":"engine.io-client","version":"0.3.4","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"caf681927ffa0f6ea06f632e5af606cc80404c7b","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.4.tgz"}},"0.3.5":{"name":"engine.io-client","version":"0.3.5","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"3c06b595bfb5bc4e9e7007d5fc6629e92254c2ba","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.5.tgz"}},"0.3.6":{"name":"engine.io-client","version":"0.3.6","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"c35741fedce944e47566d6e932e5deffa852fd67","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.6.tgz"}},"0.3.7":{"name":"engine.io-client","version":"0.3.7","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"54582ca6149a7ce0564aa652c5b9d945e7f10aab","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.7.tgz"}},"0.3.8":{"name":"engine.io-client","version":"0.3.8","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"c5ff22fe1c87870177f8d28b9698a60e0a90c5af","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.8.tgz"}},"0.3.9":{"name":"engine.io-client","version":"0.3.9","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"338de92b4239aa812ae04df370b4d1980dc84475","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.9.tgz"}},"0.3.10":{"name":"engine.io-client","version":"0.3.10","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"bb886e1134a71d464df75fb5eeca35bbeb78feac","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.3.10.tgz"}},"0.4.0":{"name":"engine.io-client","version":"0.4.0","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","emitter-component":"0.0.6","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"baade6666a8fcdc1aaf91019f8a6a47b03ee6431","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.4.0.tgz"}},"0.4.1":{"name":"engine.io-client","version":"0.4.1","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","emitter-component":"0.0.6","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"f08c55623d565a0ed63321ceec0ff2bb8f97dd72","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.4.1.tgz"}},"0.4.2":{"name":"engine.io-client","version":"0.4.2","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","emitter-component":"0.0.6","engine.io-parser":"0.1.1","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"d02dfa3d5c506af7d97905f9255cb9c3fcc80f13","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.4.2.tgz"}},"0.4.3":{"name":"engine.io-client","version":"0.4.3","dependencies":{"ws":"0.4.20","xmlhttprequest":"1.5.0","emitter-component":"0.0.6","engine.io-parser":"0.1.1","debug":"0.6.0"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","browserbuild":"*"},"dist":{"shasum":"0e782b997358822041538917326d43993c5cf17e","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.4.3.tgz"}},"0.5.0":{"name":"engine.io-client","version":"0.5.0","dependencies":{"ws":"0.4.25","xmlhttprequest":"1.5.0","emitter":"git://github.com/component/emitter#1.0.0","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"6565ee5d24c81f6d77582a0d6d67eccf0cc6445d","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.5.0.tgz"}},"0.6.0":{"name":"engine.io-client","version":"0.6.0","dependencies":{"ws":"0.4.25","xmlhttprequest":"1.5.0","emitter":"git://github.com/component/emitter#1.0.0","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"4de6e33ccf984cba5946e72f44e736160ac932e2","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.6.0.tgz"}},"0.6.1":{"name":"engine.io-client","version":"0.6.1","dependencies":{"ws":"0.4.25","xmlhttprequest":"1.5.0","emitter":"git://github.com/component/emitter#1.0.0","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"5562a3881774bf70015efa180611392d7d3ab578","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.6.1.tgz"}},"0.6.2":{"name":"engine.io-client","version":"0.6.2","dependencies":{"ws":"0.4.25","xmlhttprequest":"1.5.0","emitter":"git://github.com/component/emitter#1.0.0","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"5c6ae239ac4b2c82ff664fb9e3389f0bf6a01df7","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.6.2.tgz"}},"0.6.3":{"name":"engine.io-client","version":"0.6.3","dependencies":{"ws":"0.4.25","xmlhttprequest":"1.5.0","emitter":"http://github.com/component/emitter/archive/1.0.0.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"cdbaf1767fc8f98e0565f7791b6c31ba33b464c3","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.6.3.tgz"}},"0.7.0":{"name":"engine.io-client","version":"0.7.0","dependencies":{"global":"component/global","has-cors":"component/has-cors","ws":"https://github.com/einaros/ws/archive/2b4663655c9133a8131cf2a3a664caf1825c2409.tar.gz","xmlhttprequest":"LearnBoost/node-XMLHttpRequest","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"a57e4d763f73e08233f872ef06e3e5f0a143c1d5","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.0.tgz"}},"0.7.1":{"name":"engine.io-client","version":"0.7.1","dependencies":{"global":"component/global","has-cors":"component/has-cors","ws":"0.4.29","xmlhttprequest":"LearnBoost/node-XMLHttpRequest","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"07613c7158cdcdfc765bf10e62481aab0a31e331","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.1.tgz"}},"0.7.2":{"name":"engine.io-client","version":"0.7.2","dependencies":{"global":"component/global","has-cors":"component/has-cors","ws":"0.4.29","xmlhttprequest":"LearnBoost/node-XMLHttpRequest","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"1725f4763fd13b82266d6ae1baca2c939f593399","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.2.tgz"}},"0.7.3":{"name":"engine.io-client","version":"0.7.3","dependencies":{"global":"component/global","has-cors":"component/has-cors","ws":"0.4.29","xmlhttprequest":"LearnBoost/node-XMLHttpRequest","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"b2afc2a0e5a4a232aeaa6ef17fc361ea18650580","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.3.tgz"}},"0.7.4":{"name":"engine.io-client","version":"0.7.4","dependencies":{"global":"component/global","has-cors":"component/has-cors","ws":"0.4.25","xmlhttprequest":"LearnBoost/node-XMLHttpRequest","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"d10ecd746f71639487868d6aa812daa7e22a3830","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.4.tgz"}},"0.7.5":{"name":"engine.io-client","version":"0.7.5","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.30","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"81cd7e3e80c6135cd6d9b6e4d2d0e3a4e4ab661f","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.5.tgz"}},"0.7.6":{"name":"engine.io-client","version":"0.7.6","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.25","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"8635bd586a9dbed40a42b7ff42efae08f9360d5b","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.6.tgz"}},"0.7.7":{"name":"engine.io-client","version":"0.7.7","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.30","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"a75c9897aff509b371140d3752b553bf5c98d0dd","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.7.tgz"}},"0.7.8":{"name":"engine.io-client","version":"0.7.8","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"https://github.com/TooTallNate/ws/archive/0cb9fe7a21a7a7c200f68b57916d1d62b66082a1.tar.gz","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"2fbf67a254c1b27c571e22a964447fd80730be7d","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.8.tgz"}},"0.7.9":{"name":"engine.io-client","version":"0.7.9","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"https://github.com/TooTallNate/ws/archive/0cb9fe7a21a7a7c200f68b57916d1d62b66082a1.tar.gz","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"b5fe2d7fa1e8ee163c6001f82a7b2d82c476f337","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.9.tgz"}},"0.7.10":{"name":"engine.io-client","version":"0.7.10","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"f08fdd40e65c3b8e1cfd05193bd45f5513d49dd8","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.10.tgz"}},"0.7.11":{"name":"engine.io-client","version":"0.7.11","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2","browserify":"2.35.1"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*"},"dist":{"shasum":"5bd7e10075e9fc4a7967f87bd4ccf5d78df48e33","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.11.tgz"}},"0.7.12":{"name":"engine.io-client","version":"0.7.12","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"mocha":"*","serve":"*","expect.js":"*","istanbul":"*","browserify":"2.35.1"},"dist":{"shasum":"1ae849531a42afb951509813c5d7c5283b137365","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.12.tgz"}},"0.7.13":{"name":"engine.io-client","version":"0.7.13","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"zuul":"1.0.3","mocha":"*","serve":"*","expect.js":"*","istanbul":"*","browserify":"2.35.1","engine.io":"0.7.13"},"dist":{"shasum":"88dc16452c3979377ba23cba9d530b04adfdf0c2","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.13.tgz"}},"0.7.14":{"name":"engine.io-client","version":"0.7.14","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"zuul":"1.0.10","mocha":"*","serve":"*","expect.js":"*","istanbul":"*","browserify":"2.35.1","engine.io":"0.7.14"},"dist":{"shasum":"75c82ee61f600edd166c9c5d6ddeade6476b54df","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.14.tgz"}},"0.8.0":{"name":"engine.io-client","version":"0.8.0","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.2"},"devDependencies":{"zuul":"1.1.0","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"2.35.1","engine.io":"0.8.0"},"dist":{"shasum":"6cdb1cf76ae4aadea7d56676bae2133157d83919","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.8.0.tgz"}},"0.8.1":{"name":"engine.io-client","version":"0.8.1","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.4"},"devDependencies":{"zuul":"1.3.0","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"2.35.1","engine.io":"0.8.1"},"dist":{"shasum":"39d4ec5893f6e270f29007f4e739def7b20adc80","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.8.1.tgz"}},"0.8.2":{"name":"engine.io-client","version":"0.8.2","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"https://github.com/component/has-cors/archive/v1.0.2.tar.gz","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.4"},"devDependencies":{"zuul":"1.3.0","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"2.35.1","engine.io":"0.8.2","express":"3.4.8"},"dist":{"shasum":"f7808c40befbdfebfddbf07bb5f0a3e97ceefd92","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.8.2.tgz"}},"0.9.0":{"name":"engine.io-client","version":"0.9.0","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"0.3.0","debug":"0.7.4"},"devDependencies":{"zuul":"1.5.2","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"2.35.1","engine.io":"0.8.2","express":"3.4.8"},"dist":{"shasum":"162cbe09cd74722c0d6296ee9bf3a3b11f49a881","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-0.9.0.tgz"}},"1.0.0":{"name":"engine.io-client","version":"1.0.0","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.0","debug":"0.7.4"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.0","express":"3.4.8"},"dist":{"shasum":"f77d27a7c5e7999f9e8d815159a004bb21a19cc7","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.0.tgz"}},"1.0.1":{"name":"engine.io-client","version":"1.0.1","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz","has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.1","debug":"0.7.4"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.1","express":"3.4.8"},"dist":{"shasum":"2f9d932c299cca03f4db6d5e1c92322836593432","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.1.tgz"}},"1.0.2":{"name":"engine.io-client","version":"1.0.2","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.1","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.1","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"ec0eb8aa02bce4e10e466717284c25f940da39a3","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.2.tgz"}},"1.0.3":{"name":"engine.io-client","version":"1.0.3","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.1","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.3","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"2f7d1d283c6f33c185f368596358c5715a907ad9","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.3.tgz"}},"1.0.4":{"name":"engine.io-client","version":"1.0.4","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.1","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.4","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"ca933ce90577f8cf6363c4fca08211da9d3ccf24","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.4.tgz"}},"1.0.5":{"name":"engine.io-client","version":"1.0.5","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.2","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1"},"devDependencies":{"zuul":"1.5.4","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.0.5","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"6cf3111beee3d03d53bd8255ae32a9153093acc4","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.0.5.tgz"}},"1.1.0":{"name":"engine.io-client","version":"1.1.0","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.4","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","inherits":"2.0.1"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.1.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"3f4cb0cf45bbcc7cfeed38282f57345ef99a9dcc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.1.0.tgz"}},"1.1.1":{"name":"engine.io-client","version":"1.1.1","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.5","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","inherits":"2.0.1"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.1.1","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"bc1d7ab8e49c0a4ca2d41747ce434d4c33797571","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.1.1.tgz"}},"1.2.0":{"name":"engine.io-client","version":"1.2.0","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.5","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","inherits":"2.0.1"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.2.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"eb23974bf9bf3333293d864dad601020343aebce","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.2.0.tgz"}},"1.2.1":{"name":"engine.io-client","version":"1.2.1","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.5","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","inherits":"2.0.1"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.2.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"88cf0df6f1c4e7798e1d4871f083f3e5cf40c822","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.2.1.tgz"}},"1.2.2":{"name":"engine.io-client","version":"1.2.2","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","indexof":"0.0.1","engine.io-parser":"1.0.6","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","inherits":"2.0.1"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.2.2","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"317843f9b0a5d7e94aa42eebc2631d5e01f747b2","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.2.2.tgz"}},"1.3.0":{"name":"engine.io-client","version":"1.3.0","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.0.6","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.3.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"1c49d67fff82a3a971e95cb1ca768c1e13d908f3","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.3.0.tgz"}},"1.3.1":{"name":"engine.io-client","version":"1.3.1","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.0.6","debug":"0.7.4","parseuri":"0.0.2","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"zuul":"1.6.3","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"3.30.1","engine.io":"1.3.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"1c5a65d5c5af6d04b44c22c3dbcd95c39ed1c989","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.3.1.tgz"}},"1.4.0":{"name":"engine.io-client","version":"1.4.0","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.1.0","debug":"0.7.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"zuul":"1.10.2","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"4.2.1","engine.io":"1.4.0","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"6a0dde44a6e6cbbae5851fce117f6f64ebdbce78","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.4.0.tgz"}},"1.4.1":{"name":"engine.io-client","version":"1.4.1","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.1.0","debug":"0.7.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"zuul":"1.10.2","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"4.2.1","engine.io":"1.4.1","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"4ba4da4cf6b0d4b6243024e6b80e87978ac72633","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.4.1.tgz"}},"1.4.2":{"name":"engine.io-client","version":"1.4.2","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.1.0","debug":"0.7.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"zuul":"1.10.2","mocha":"1.16.2","expect.js":"0.2.0","istanbul":"0.2.3","browserify":"4.2.1","engine.io":"1.4.2","express":"3.4.8","blob":"0.0.2"},"dist":{"shasum":"c7ac000e6df05b1ca358f060c7999df9114ccf1e","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.4.2.tgz"}},"1.4.3":{"name":"engine.io-client","version":"1.4.3","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.1.0","debug":"1.0.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.4.3","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"1.10.2"},"dist":{"shasum":"7227cb6b29376435f0c819957ce6ba3ec1a8d955","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.4.3.tgz"}},"1.5.0":{"name":"engine.io-client","version":"1.5.0","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"git+https://github.com/rase-/node-XMLHttpRequest#a6b6f2","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.1","debug":"1.0.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.5.0","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02"},"dist":{"shasum":"ed9b25a7f042053212d59c7ebd0bf36f30ffd5bc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.0.tgz"}},"1.5.1":{"name":"engine.io-client","version":"1.5.1","dependencies":{"has-cors":"1.0.3","ws":"0.4.31","xmlhttprequest":"https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.1","debug":"1.0.4","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.5.1","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02"},"dist":{"shasum":"ecd0026d90b065169b9885960183f3d56b8da18e","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.1.tgz"}},"1.5.2":{"name":"engine.io-client","version":"1.5.2","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"1.0.4","engine.io-parser":"1.2.1","has-cors":"1.0.3","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"0.7.2","xmlhttprequest":"https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.5.2","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"github:rase-/zuul#9d3a02"},"dist":{"shasum":"5fd4a521bdd3dca3c7f50e38f9437b5f66957ebc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.2.tgz"}},"1.5.3":{"name":"engine.io-client","version":"1.5.3","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"1.0.4","engine.io-parser":"1.2.1","has-cors":"1.0.3","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"0.8.0","xmlhttprequest":"https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.5.3","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"github:rase-/zuul#9d3a02"},"dist":{"shasum":"fb4229f94a4c4aea1b07eea6ffa89a0a16469113","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.3.tgz"}},"1.5.4":{"name":"engine.io-client","version":"1.5.4","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"1.0.4","engine.io-parser":"1.2.2","has-cors":"1.0.3","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"0.8.0","xmlhttprequest":"https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz"},"devDependencies":{"blob":"0.0.2","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.5.4","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"github:rase-/zuul#9d3a02"},"dist":{"shasum":"c6ad65a65752a29cb930c6911e579d2b28d1106c","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.4.tgz"}},"1.6.0":{"name":"engine.io-client","version":"1.6.0","dependencies":{"has-cors":"1.1.0","ws":"0.8.0","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"github:nkzawa/engine.io-parser#patch-5","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.0","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"2519896a96273c0369bfb0d82df59d80490d15c1","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.0.tgz"}},"1.6.1":{"name":"engine.io-client","version":"1.6.1","dependencies":{"has-cors":"1.1.0","ws":"0.8.0","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.3","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.1","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"708cfc250a5655875ca72fd6208cd70b462b0eff","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.1.tgz"}},"1.6.2":{"name":"engine.io-client","version":"1.6.2","dependencies":{"has-cors":"1.1.0","ws":"0.8.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.3","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.2","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"731f9cf4d63ba02a75d0c54f619b7b15933f3823","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.2.tgz"}},"1.6.3":{"name":"engine.io-client","version":"1.6.3","dependencies":{"has-cors":"1.1.0","ws":"0.8.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.3","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.3","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"f8305158c62da8ebcebbc763e86f9d8f726ac666","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.3.tgz"}},"1.6.4":{"name":"engine.io-client","version":"1.6.4","dependencies":{"has-cors":"1.1.0","ws":"0.8.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.4","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"20aaf5c5580115697331cc08cdda750c5e0bc5bf","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.4.tgz"}},"1.6.5":{"name":"engine.io-client","version":"1.6.5","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.5","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"39f8e15f0f49dd817ef149fd0e7908395eac4aa7","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.5.tgz"}},"1.6.6":{"name":"engine.io-client","version":"1.6.6","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.6","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"7aad3dd66caba29448b0e6e7c30309ce324cc1d4","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.6.tgz"}},"1.6.7":{"name":"engine.io-client","version":"1.6.7","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.7","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"eae106736021526475e6b087c8eaf927d26becc2","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.7.tgz"}},"1.6.8":{"name":"engine.io-client","version":"1.6.8","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.7","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"6e2db11648b45e405c46b172ea3e3dac37cc0ceb","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.8.tgz"}},"1.6.9":{"name":"engine.io-client","version":"1.6.9","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.7","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"1d6ad48048a5083c95096943b29d36efdb212401","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz"}},"1.6.10":{"name":"engine.io-client","version":"1.6.10","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.10","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"e50fbcafbee031b0ef93185cba0ff24cdbd5a01b","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.10.tgz"}},"1.6.11":{"name":"engine.io-client","version":"1.6.11","dependencies":{"has-cors":"1.1.0","ws":"1.0.1","xmlhttprequest-ssl":"1.5.1","component-emitter":"1.1.2","indexof":"0.0.1","engine.io-parser":"1.2.4","debug":"2.2.0","parseuri":"0.0.4","parsejson":"0.0.1","parseqs":"0.0.2","component-inherit":"0.0.3","yeast":"0.1.2"},"devDependencies":{"blob":"0.0.4","browserify":"6.2.0","concat-stream":"1.4.6","derequire":"1.2.0","engine.io":"1.6.11","expect.js":"0.2.0","express":"3.4.8","istanbul":"0.2.3","mocha":"1.16.2","zuul":"3.7.2","zuul-ngrok":"3.2.0"},"dist":{"shasum":"7d250d8fa1c218119ecde51390458a57d5171376","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.11.tgz"}},"1.7.0":{"name":"engine.io-client","version":"1.7.0","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"2.2.0","engine.io-parser":"1.3.0","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"1.1.1","xmlhttprequest-ssl":"1.5.1","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.7.0","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"0bb81d3563ab7afb668f1e1b400c9403b03006ee","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.7.0.tgz"}},"1.7.1":{"name":"engine.io-client","version":"1.7.1","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"2.2.0","engine.io-parser":"1.3.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"1.1.1","xmlhttprequest-ssl":"1.5.1","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.7.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"ace6464e083a954171898cccff484f03657ac774","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.7.1.tgz"}},"1.7.2":{"name":"engine.io-client","version":"1.7.2","dependencies":{"component-emitter":"1.1.2","component-inherit":"0.0.3","debug":"2.2.0","engine.io-parser":"1.3.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.1","parseqs":"0.0.2","parseuri":"0.0.4","ws":"1.1.1","xmlhttprequest-ssl":"1.5.1","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.7.2","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"12f01d3d9d676908a86339cee067ff799a585c3d","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.7.2.tgz"}},"1.8.0":{"name":"engine.io-client","version":"1.8.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.0","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"7b730e4127414087596d9be3c88d2bc5fdb6cf5c","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz"}},"1.8.1":{"name":"engine.io-client","version":"1.8.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"71237e9bbce04862675d4d6bfbef351c8b6a35a3","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.1.tgz"}},"1.8.2":{"name":"engine.io-client","version":"1.8.2","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.2","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.2","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"c38767547f2a7d184f5752f6f0ad501006703766","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.2.tgz"}},"2.0.0":{"name":"engine.io-client","version":"2.0.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.0","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","engine.io":"2.0.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"625fa90bf84341b2a686e4f2ae3204172f778de0","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-2.0.0.tgz"}},"2.0.1":{"name":"engine.io-client","version":"2.0.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.0","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","engine.io":"2.0.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"6dfad134143ea87bbab3216a1d679228a8cead2a","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-2.0.1.tgz"}},"2.0.2":{"name":"engine.io-client","version":"2.0.2","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.0","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.2","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","engine.io":"2.0.2","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"bae5086148c1ef2b18eee346876277b219fbf55a","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-2.0.2.tgz"}},"1.8.3":{"name":"engine.io-client","version":"1.8.3","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.2","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.2","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.3","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"1798ed93451246453d4c6f635d7a201fe940d5ab","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz"}},"2.1.0":{"name":"engine.io-client","version":"2.1.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.2","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.5.2","del":"2.2.0","derequire":"1.2.0","engine.io":"2.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"1d3ffb786fddec786e2115ce5d000dcbe9d3aab0","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-2.1.0.tgz"}},"2.1.1":{"name":"engine.io-client","version":"2.1.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.2","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.2","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.5.2","del":"2.2.0","derequire":"1.2.0","engine.io":"2.1.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"bd1fa1165b06ded3277fbfb0a2c1c79864d1e6e0","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-2.1.1.tgz"}},"3.0.0":{"name":"engine.io-client","version":"3.0.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"2.0.3","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"2.2.3","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.0.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"5af219e1ecbcf442d0928c52f5e91f97656c6294","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.0.0.tgz"}},"3.1.0":{"name":"engine.io-client","version":"3.1.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.6.4","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~2.3.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"1d6884edea9fad86e4b2507748656c2394ad4c63","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.0.tgz"}},"1.8.4":{"name":"engine.io-client","version":"1.8.4","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.2","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"1.1.2","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.4","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"9fe85dee25853ca6babe25bd2ad68710863e91c2","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.4.tgz"}},"3.1.1":{"name":"engine.io-client","version":"3.1.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~2.6.4","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~2.3.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"415a9852badb14fa008fa3ef1e31608db6761325","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.1.tgz"}},"3.1.2":{"name":"engine.io-client","version":"3.1.2","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~2.6.4","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~2.3.1","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"62a0ef08ec83d16a06668ccc3a4f37916768a6b9","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.2.tgz"}},"3.1.3":{"name":"engine.io-client","version":"3.1.3","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~2.6.9","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~2.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"d705e48985dfe8b54a98c9f77052b8b08258be05","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.3.tgz"}},"3.1.4":{"name":"engine.io-client","version":"3.1.4","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~2.6.9","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~3.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.4","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"4fcf1370b47163bd2ce9be2733972430350d4ea1","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.4.tgz"}},"1.8.5":{"name":"engine.io-client","version":"1.8.5","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"2.3.3","engine.io-parser":"1.3.2","has-cors":"1.1.0","indexof":"0.0.1","parsejson":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~1.1.5","xmlhttprequest-ssl":"1.5.3","yeast":"0.1.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","blob":"0.0.4","concat-stream":"1.4.6","del":"2.2.0","derequire":"1.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","engine.io":"1.8.5","expect.js":"0.2.0","express":"3.4.8","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.2.3","mocha":"1.16.2","webpack":"1.12.12","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==","shasum":"fe7fb60cb0dcf2fa2859489329cb5968dedeb11f","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz"}},"3.1.5":{"name":"engine.io-client","version":"3.1.5","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~3.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.5","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-Rv9vgb83zrNVhRircUXHi4mtbJhgy2oWtJOCZEbCLFs2HiDSWmh/aOEj8TwoKsn8zXGqTuQuPSoU4v3E10bR6A==","shasum":"85de17666560327ef1817978f6e3f8101ded2c47","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.5.tgz","fileCount":13,"unpackedSize":177530}},"3.2.0":{"name":"engine.io-client","version":"3.2.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~3.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","socket.io-browsers":"^1.0.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-AeoIj1QYv0OhJjus85Z+rwpNE3RSjOWpP1qrfBCYES3PbootLFYaSTKwimacX86OVlUE80cfFciWImS+jDQXJQ==","shasum":"3e34fdb8b3d72901eeaf73f7e591d5612749c5d7","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.0.tgz","fileCount":13,"unpackedSize":177520}},"3.2.1":{"name":"engine.io-client","version":"3.2.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~3.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.2.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","socket.io-browsers":"^1.0.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==","shasum":"6f54c0475de487158a1a7c77d10178708b6add36","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz","fileCount":13,"unpackedSize":177141}},"3.1.6":{"name":"engine.io-client","version":"3.1.6","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~3.3.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.1.5","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"^3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==","shasum":"5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz","fileCount":13,"unpackedSize":177105}},"3.3.0":{"name":"engine.io-client","version":"3.3.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.3.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-NLewuiNiU97xa8XlII8uI5zVIBehZgA6OPSAnYve+3KANlW2OnOxIpa70UcRROKNOhKFC/7p82sZO1i7ix8QCQ==","shasum":"e21b7a26e856f47f9b0ddf4b36c6b77b63cef8d4","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.0.tgz","fileCount":13,"unpackedSize":175090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb43QxCRA9TVsSAnZWagAArccP/jQRAoZlXF67+WddAbto\nPUTYBLW5T5XqAW64HH4NsbNRaoPdLnaVxdEmkImc/Zh6LYYolrGpwddZed0Z\ncI8nB8ujcJA8VHjO9+csAytEOVaokcI7E1nVfilZdrwzxxPHzk8TGfEf2wFH\niZesFHulV1Fceb4S8xmzwVCC8aHsqh8j+PHlvB2nETZrx2irTwhjMgKys73v\nMUS9i+ZIPqa0Auy4nAv6fj1JD7uTOsWlgQ2ivFNGY1dF5gyAlKh5AxgyPqsf\n99ishT9ia1PLdpSpgvnLajE84xwZ3eIjxueFFaN7LO8KXNIRRXh7HSzZoVyF\nlv2ok+CUBp1qtj+pkRWDethDvHsRPfbHrrZSF830a/CmKjWqcYzOP0ewnatG\nvNXHmwJhjfkVo+a4oPlYIi1LZgxApHnJSePUepJod3xyNVywXSsaSSnPLy1Z\ngbeRWB+Vj4joMA0Gx/6fs2PjOdP7rTDOFUWQwGu6/jAHMlyNtu8nq7nh6UhT\nzrCgrKjRH8qkGfgsiZvX08molaS2I41Tc5ylxpeGGtROBe5PHeJDAI1IrE9I\n6ekmULmFQHM+J6/Pl8h8RvhW9ak5I3gOVpkj7GfZsMREg7iCr7e/5ig9d8JO\noeuJw0csmfxk91UesACL+dzw8qtnP+4wCq0+GWBxokGtB7jUp9JCTjbt4AUh\nFcvu\r\n=JQrR\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.1":{"name":"engine.io-client","version":"3.3.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.3.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==","shasum":"afedb4a07b2ea48b7190c3136bfea98fdd4f0f03","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.1.tgz","fileCount":13,"unpackedSize":175836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8ysPCRA9TVsSAnZWagAAXqEP/jYOQ9CuchRxDzdlF9ke\nuLaLCWJt8YlJiF2BCJjiqtKNLjJAWT+a4E76s4MdNTfu1l6R07pfpTnLqBEc\nfagrNmK7N+V6vTI4NHycWKJlgsL+1MBDhbPnkzPctNqwcU6icuXQad6j0MC+\nJ1Xn3MCNWh8NUdmVtHGFl0BqeXUko6YOwP1mbc5apO+BwloKpMpWesuYOh2m\nc76ryVRe6+Epg20mPTVjR/wjvfhenV+cp+WRdyFwMnU82m0tNtfCp5XHXFZ6\na817jX7YDwm7I+70XGPzHD2z5tl4kFn00dDnxi48K4p1HAG2YNyofPCW49aS\nbqFN/enRBF6t7FetoxlHQbr/Xs1Z2CoS+1zz9GwKqgqndKF1dy8tCnuVYvbB\nTtGeQSIn23aJ7TtvugBBVU0Ir2DVd64y+6FxYL1vcN/6FjpAVeQUw0ibfRD8\nky9esFx6taGO4r3bPZSlpGoSRN5s8LrT0+9BormCNvb/qaz00e8bpjQ7g9vl\nkYbpogLtxYcsi3Nq883ANnUE0aQpG0EsjUVOIz+EOEBP3hm+LR+rRcXw5sjx\n8gu8ZrCIGTMKsRl4eK5xwF11/L6TLL0LZV8gSA5AfeQBMo2TjyWt8uVfP9rH\n1GhIn9EBkICKrsRB6OsMHpCPWMq0PzO7OJZ5C0UwFrTz+d0MMDcKEcybskcz\ncPy7\r\n=dkpx\r\n-----END PGP SIGNATURE-----\r\n"}},"3.3.2":{"name":"engine.io-client","version":"3.3.2","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.3.1","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==","shasum":"04e068798d75beda14375a264bb3d742d7bc33aa","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz","fileCount":13,"unpackedSize":176096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRPGMCRA9TVsSAnZWagAAd5YP/3mu6R3LcxBZBEIakAgz\nC7xTSkxqMYq4kcmTSulQnH85Opxad6QfnAbo8G2YP35kvzEzVG69tPA/naGs\nwtYJ0fs0VIcGSe044tJX36TGr0iMw5jszEzpHVQZ9UdWOQK936ILcwpiBfru\nbklgRjpQ2exoeKlmAsEOFi06xTBwrMuCAlQU1lsZNewcdXqzaBThWo5cN7mQ\nfimdewfIBJs//RnnTm6+CcAlPXkTIEAascRzrP6vaGGLiz8POSw+90He3QJD\nVlhLq/ycl/ME7/V4gI85eXddUnv5c8WY4CqD7Z1oc5Fejk/G+us35q47HkXh\nM8BN7OldiMIFTaigcbwOtZFcduVtr+Y0G3elaLkLIP4ZM/fexrCM/aJFr5jQ\nzA946dwJDEfzUyu7xlgFf6rKu/uX+4jyKIPjGSEUJcRL252UMDCaZIqbphWJ\nBrGdCNE3RDyTxIqY8AmndiB9myBUX2H/fcnbah13h7lFB1jnB4ZWElW83n0e\n59SLwQeyO2aRED5MIRtGDJLcGAkI9U8VmyNwmo+SkQTXCuSyiQP11mZ3LbWJ\n2uYHHbmFF5/xBbQtenbaR2ue5Jczyql9NzlMQ5NlhGdt3El3Gk8qoJmQolmb\n+xgsXHtaXCdBzk3rV47+gUsTD7rx85myteOnIb6yGPTVIjFyPC88KKoUPq9g\nXN53\r\n=0MGY\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.0":{"name":"engine.io-client","version":"3.4.0","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~4.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==","shasum":"82a642b42862a9b3f7a188f41776b2deab643700","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz","fileCount":13,"unpackedSize":179125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde4R+CRA9TVsSAnZWagAA47sP/0g3hnAxkMrBOw6WgkJE\nlIyOJ7ZTSugF8BgpVh0D65ke8dxBtCKHMD/4N8Jqm399WaXnkZo0OY7Y2ngj\nCR5XPvZslstX98JQbz12HpeNGv0lE1nT1FD7vopQGjyNlaO+jJWEIqYixi7c\nsfNtZVsHnLpKGu2gSymeti/iiLz0pw410tA8hlR0wDo8ebe5kD3fxnnIwar6\n5b/4kwDloWFn1sQAMCdGJxDUv0D11yvpu0T79K72qg4BEaaD+5UorwgO72WI\nHetWmCZHdSPMlE+xwFZqHrTaKvovir5lxfw+pK/ScdZO8pyR1+H73ZP2zaON\npgd9oVOM2ii1GB7Snn1fWMRuNIn8Om4o7XVrzNVVhlTU+9oaKTMAogYvV0ro\nYbxS1H12mDR6nDnOjhx6BlLJTJTHFyMiymeJ+Y4uJldsg9kgcvqu0ksLl3eD\nqAafJXY54/2vCsVLzKR84izA0gi1PgQijnr/hvykU3qo8Z/rDIBz3NznTyVV\nIdTHNsQy+rnyZmkrKo46OIVrkjZLjyXvk2YVRo8j49odap405quNl8QeQclK\nJadeo0NfCS5oZT+Udxh3ahbOULScr9iZCLSQ8aB6EkKYlONIr5YSan67600y\nO5dg+Y7/c4wdY/l2eOUB/1Ug9tO2ikbi7e8lIpfX34eVPHVkbnXUPF116Bny\n/pPR\r\n=led8\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0-alpha.0":{"name":"engine.io-client","version":"4.0.0-alpha.0","dependencies":{"component-emitter":"1.2.1","debug":"~4.1.0","engine.io-parser":"~4.0.0-alpha.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"git+https://github.com/socketio/engine.io.git#v4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","webpack":"^4.41.5","webpack-cli":"^3.3.10","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-Nm/QJ8uGQfktoFBtMdX+dITpz7b+jtFzSZjYZ45Lf6hLn+n9QDy/my4iuSirFPnORc3owVNZvsbU0ZsncdQ8Rg==","shasum":"7de9ed7a3c15e8b3ff83779ef3eb8d7aa22feb3c","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.0-alpha.0.tgz","fileCount":15,"unpackedSize":114203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ596CRA9TVsSAnZWagAA42IQAJs4yH1JRSxJ21a9U58r\nQrFSWaNzyXOk+CPZ8NZkBaJwA43enrhGIOhuvPS866W/9bKUlkFLRPNO/ZOJ\nJ2W5W4ac+rFLmFfIKFwU9WfJFvIpFPj6aXZoqfO9FkbJMvj+wEmRIFqgp4hZ\nfPJ8TMtI5LX6/KrOOA6zXzuk2jq1rER8QnVdav8fuNQxd/mDcvHd0gSQotQI\n+iQGwfsK7ZnDid2GCGoyP0JGREhkCJVPJgq7RJBG24UKRH0cSvif/Buz8+ve\ntIrpuW9K8441DT1U3xgiZwcRF/twIhUJq/obp70Q34GUwh7weCmAF7Fq1cls\nr0X8YB/qjywWIk5XwJgGTN+wo0kVyv/ZRRgnOs9N1Qr2fqQlQ5JAJcuawyO/\np2MyDC4YBk2A7cdFHx6RzjSz+Opk+qqgjx1BFVjKVJ8O3SqK2/ksETnm8yCB\ngULqOs6DK2i4sxRndxwrQh2Ep0BBO2aLaJ7CkEL3s/3CgOMZ1c37nYb9uOSE\nrT7YJoitd0/r/Hj5vEty3JkVmxewjhW0eGEFUBMvBmQkLG3yjaaYiIzcJ8tT\nWd04eHQroaM8CstpdQZYSKHmwTD7w3ZMKs/LIMGRc7lP1m+Pt4RLP/4DrM0U\n30fe7riWBKbqiEy1rJCXjl0i3Gh8oC6aqng35mPEBBg+Fhmzs7H0KTdXZfAN\nzHFo\r\n=HnyL\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0-alpha.1":{"name":"engine.io-client","version":"4.0.0-alpha.1","dependencies":{"component-emitter":"1.2.1","debug":"~4.1.0","engine.io-parser":"~4.0.0-alpha.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"git+https://github.com/socketio/engine.io.git#v4","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","webpack":"^4.41.5","webpack-cli":"^3.3.10","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-mvmlG8oO65nRU4ayvD+1eKCx3jqqqoYJkFPjWAvZ2ozocXj9K/ord4nf6yVNj1PGHT1E8NNs81Tx6Nz6GFyZKA==","shasum":"6d19e05c4ed561ed42bd64eac014ebadaa385040","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.0-alpha.1.tgz","fileCount":15,"unpackedSize":114716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ6lyCRA9TVsSAnZWagAAaSIP/jEjNF1dtAs47enZJt/a\ncM9IUNYkU6OU6o9YScfcT52Ebyt00ZOgVfl6MaqhWEnmOby96C20QQDsHE+6\nWiJGBGwNvgXLqdfRNmjZqntKgNIR+TL9ANq/dcEwE0sK8Fpx6kaAB9DUnxUj\nh6grcTwEqjIZZYQW09k2+BLXfNlYGuDW7VMkq+hdHzX3vUdi7HALkNr800zU\nkosjrywc4HmyfWzBHnlTAIa4tk+zlzWFXFa73GAaaaRKvb0+w3T4QB7xZq+n\nWeZVQ3w9kNI608LSBgyCLf0/99AMXEMnTh19cqkFlPA7pOJpdtOa3TQYRp57\nP5U3aumDt2ChHrrj+ON1AhgNKNZoa98tqo3mvQuyj/OlGYydpuKu8xCprUr0\niKw2NluGA8I64DgAN4YruOeJDy04fn2NIPG5wFFEUcUpn4TLIUDurFULHVqA\njQ/amg2vNPyp7b3/TxvWhB1UCT9nTs4IaydY5RfVGn0OnNRjYTR+crpOmw7j\nj6ycNBxOftducgZii3Ueg1Q20zoJCf1a4BebI+9bHHxkR03Krwm6A9EUEb/Y\n/5agOr9EDvHBN2SQSuEQLARUAo323ZfL71/RvEi4kMkvv1Muk+KlllhNjh6U\n/FJikkQUkhHs5o60AH0JB0udgdZr1kIk3f5Mg5V4fNKxhQg+O/HpHKKmWh0T\nQUGe\r\n=Xx8S\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.1":{"name":"engine.io-client","version":"3.4.1","dependencies":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~4.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-RJNmA+A9Js+8Aoq815xpGAsgWH1VoSYM//2VgIiu9lNOaHFfLpTjH4tOzktBpjIs5lvOfiNY1dwf+NuU6D38Mw==","shasum":"922ddb47eecdcb541136a93aeead24718fd05461","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.1.tgz","fileCount":16,"unpackedSize":179671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemWztCRA9TVsSAnZWagAAAUEP/j+NeCiMFxA/sKtn6QK/\nsXJ7HvxJIyBiyfeJzm+O8KcypAaWoJTgtIoWwQENy+wGbmBmZzxdgUpdcVf8\nger9dGZ8sH03cCC9FvuKoQqtcohKxMo2w4sXDjdOZJOns+B86n7ApYvnZDB1\nSU7C/xYhoWDN/5IlyBQgel1Svvpbj5V0RiYQNDSBKiZtZnpj+AV+ngvHg/Xt\nDrUMNdSH/u1a1oSaXEUOI6gc8Ns3c0epIRUqhzPTnR5fijZ/tfDHnjuD0cZi\nZggPDJzT8mn6hEbJcKZcPWvSALFWISKSHzx8Ww7Nduv8JRbY/c/05XKXbUTf\nygqbUgBLS2CDtWX9qKMN2t+eiafDI+9XSTKoq4BDjK07p3lqqsjx+XrEw/qM\nFyfvexGS6uPDgYIBk9bop1P0CHmDEfnRVCScnVy6EsTxQPTDkQQLbI965tFr\nAJwGqEIq5MbgEAjqiAps8pjspN18y4vV+HpGJN1ckASsdsPtfSs9wUJHb5RR\ntqUIxALydxn76/5c5f3Qtv8uW0DAuaHetjMZoHEsC0P2ge99RC4UlAKI2Yr0\nLLGwuvH2kKFRsnaxE2Pm7G3K9W5bR/ItKUb9y6g3Kiu8KnX4jBb0vUd+nJAq\nEFdLJsRO1BDpcmgm5sMaLCiPkCtnKQHQobTxPTZpQr2Fy3ZOaHv8gOrAJlnH\n2TRF\r\n=FJ5r\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.2":{"name":"engine.io-client","version":"3.4.2","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~4.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg==","shasum":"4fb2ef2b1fe1d3aa1c621c6a8d87f1fc55426b50","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.2.tgz","fileCount":16,"unpackedSize":180062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu5IOCRA9TVsSAnZWagAAho0P/1mBgXJKxU59OGtjwr8O\nVXSsVGdN1ensnq2K3rfECMFzmsSk49CSrJW4kOCjbPGPZUCr5sfQKMa3uhN9\ne9dzOuzlkiDpoXQikNgevcdefjYZ0SDV2PE5sMma7UipXGJfLnocFyX4liLa\n09MpdUwjBgoH4dK3c+5eHiXivIpPbOwCX7kzMUH8f9a4kd0P0Nx2xnPwz0nX\nNidn9dM4z9TuUutuxb7Zvf9f+deoUfs/XUdq/tvNhfHI8XUE9NJqykGxg/mr\nfCiCDSMreM0OF7Xnh7Ng+VcSty1EtsSXmkrjJPlBAgbM5TpA0mxIOK8LehXb\nH+tUTbSg6z9W4++4o+Z5l5Z0Ge6KWJ8mCZBHPzY1K1MGUAK3b/fgcyCdQYqc\nFaWBNRFyqTZsSDsSKZO2fQxy1wJdWT4irgJrF0Im12EH/n+wH1+AvBe1DYTK\nr3KXwgT+pWwOZHA9T+J7iVbrV886aVmFy/AhTRynSj/YVV/xM3PXSjviSZdw\nzP+GpgTNtwLqO218WXCrQtAUC4MI89UOwj3oiLhb/9JVesRmu0jeNqlgf0Ra\nrUsQxgMZK1kmsqdKx4c6NGYUcVe0nFu489gtjk3FCzOHdKraKqw/x73mY45B\nCinfrmzkoJB3VVhq3whKmZyQjPo7RuVnmGEXfakN1ErAtnPiAsl/EuIwoaHf\nksVY\r\n=1bDe\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.3":{"name":"engine.io-client","version":"3.4.3","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~4.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==","shasum":"192d09865403e3097e3575ebfeb3861c4d01a66c","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz","fileCount":16,"unpackedSize":180479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2QVWCRA9TVsSAnZWagAAk1AP/Ah0MOuoFPCnokssm8+J\nIabL8NJRyCObfuJSB+bZc+ee6Sik9mCfNuq2qct+L976OsqpF80OqzxytTzP\n7xBgQ5yzoWKF6KdS9PSVOh2BUvuVlQlrF2dVnWcoaAK/W1hm3BMAl7wmNIZm\nA82YlK4pDk1iaTAsx8At0/e1ukLO1STXoBtD2TfGA0CpHlsR8OnABd2emMoJ\n4MsUE3RQZCPiZl1eHXW5zz1DlvualR99LxbbfwJZI/NyIfueNTaP4VTOYvhI\nbu5Ukde3M4bDmDsJM9mEiS0NGPj6O6xzQtJX5xcudJA0a28ISlTUQXZcuoXd\nsLB/hvFzcCvphzBCiBOaryL+omMcgPsFZjtk0J9BXCY3iW4MOtnV0l8QsySm\nNPQDZbnPIUAEHOj9kq8Omyxf/7/VPwpWv6N1Wn7Zil/nj+v3tZAyNiCnkbqG\nZ2BnZyTnuFqaW8849pMGB4rMBJXhgxV/fXvSkZY/3hNNN2ILMhOKDH/vRSuG\nrKSIqdHci90RIsEXjnlA/WFvnU2Yd+8i3xMVQOo0CA71dse12MrZvzmTduxO\n3h0fa+H5tTMkLZfXoS2DYdWFkfgRIPHqZCsN6v3RLupJSjnB8TR3en+4/WZq\naLyfPEobmvxhpND49md6CaeRS1BqB9pVCVZxmEfuTjDfvAy6oejw/TELztEg\n3tyl\r\n=LaLb\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.0":{"name":"engine.io-client","version":"4.0.0","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.5","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"4.0.0","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.41.5","webpack-cli":"^3.3.10","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-dmydBrbZW0AYX4+u7aRzslPw/MSZy3HwwqHx3Es5OPj9q0tnyPeFZZU/UE5aLjba6xIwZTXkB+OdqF5wmR21IA==","shasum":"a4da437bf1af6b952443fa1fdbf0dec4b810a23f","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.0.tgz","fileCount":20,"unpackedSize":221499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWq+MCRA9TVsSAnZWagAAm7UP/2GRIpB8sngglmRFRXqA\nHNUW1rDAU7I/lh2xF0PslWWMyFWpnZtMYg2qseceFgTpKHjLIqoFHdLxBpiw\nkqPpvTM6RHM43MGdvYuYfXRq05dWWTKRvMLP6yM1N5sS+9UZ1vf+rEj96GWH\nNZhSEalq8mFXnkEZEPXmtf1LYrABKv3NhmvCnQLQb2eEXuyxnETdEbFq76M1\n4D3Y21nfel98vy1x5eSiVSozLhwf4EEGmnFAZvqFW/Ehs0LAxosXZHfLoxeu\nNmqRLN7gDZKue5ps4ak82hLlvlDSAq8yo4oZUIDcgg3Zc31Q6nOUFEKxXkLO\n2RYdNVanGIzUwqH87nGPCmObfE1iYvECN18DZDDsZnvt9IZgmiLztJ5/2aUf\nbKeUW7Q7IXB81eQMvDbAqGAAk4FuUibkL1cXMVzXoRd9VP0JF8IrJzThhAky\nWUdinAavYPSc9zXIuolXHQ34kBdGftJqn1e19tyvszJtzkcz45Ta2rsluate\nHpHUM0+fcFtX90bkV6woBZ3KBTf+z8EgYIKy0hlYHLI65lPlotJldFExPrS7\nbwhjQvRmyEuEN06eCFB7jIMD5r4bczq6XVVTQiafqjhIcXVmPQkJ9DfYcahH\nTv3HZPxUiSALt1O/4EkFvGEWt8eATNpzeH3x3q64GcSu24yQoiO/ECTyXsmK\nK/K1\r\n=htIY\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.4":{"name":"engine.io-client","version":"3.4.4","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==","shasum":"77d8003f502b0782dd792b073a4d2cf7ca5ab967","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz","fileCount":16,"unpackedSize":179203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc86zCRA9TVsSAnZWagAAC/AP/iU1ljn4bzFPoRwVZZ72\n47IZiFK6GZH4cAUxQZmfZe1DzAlaTizK0/ktotK9rfrnNiTZICgclZwb0ypl\nASLjFwXVOLuBIgoRq3i7ZcdeoU9SpJtrAFBnxgW4GwVfN6xz0roiLVP5j19k\ngjeWNr/z1K7yzSN+0E4ZOHJlNS6O8MzUe7SvK15jK+vCm0M1P7cvrFicZDLo\nvAvV4FNb75jU84Qkz4nV9Is3mM7sShGNBfDnYVX+8aTbJHjQlz+V0ZpvDuHY\nrj7xJwXuWmvA7Hm/r6t0Pjs/qJQ4+8R+uroxqlPilu5bz+OQXJ88knrrs3h4\nJacRh7G6oVRpv69L0yfSMPFQoN/YF/cuS5tyrK6YRwzSQZ2Ntxl0w0rCvN8S\nWSqiQp9uTNgjHLv2DaFRgDd4zZ+F7EH/zGAiKTBfBY8507HcYuvIU05zTjOP\nRNsKgjIstHCL8gGpodRxh/LzRiLGFYklZyo6P01CGSe9HX/NRVUscH1l2aG/\nwpidygVQY2QzD4SBlhjfORfDBAtNghCZcormBvbYbkys6D8SWCXEiG9i9Mxr\nBi55P3wflaTQxlxH7kc/g4LnEvw53unzmYrFTP7HrVhsS11FQbCwMOsZVPZD\nAALDPPekav9WveIESzlpE8vog76gYkH4RQCQa7F7ckYUClBTppQE1r+GQu3/\nR4I6\r\n=D9Br\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.1":{"name":"engine.io-client","version":"4.0.1","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"4.0.0","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.41.5","webpack-cli":"^3.3.10","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-3XXfWrEutlf1vg5PlS805bD+AgZXhRIKYAG04f1iCGOs70dWEYlZGfCZUNwPwNx05lBCKs1lIeL3SkLB0P++xw==","shasum":"476ae6237d5d0ce44e964bb8ed376c934c7a80b3","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.1.tgz","fileCount":20,"unpackedSize":222581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkLcrCRA9TVsSAnZWagAAOZYP/3dezKZnhN7eKVK+ZCzp\nlABqeIG5pDV1egsWVavDUYmFSJFJLOF63KPtvuhaJ4DaGlE1czN9E2TGWJVx\nV8RMqnW1ldqiKW+KHmKsFPnpD9IxUeHbn/Y+gqKoh8pRQWIJvoU4RkHVUFm+\n7wyUAhJ7Cakeksg0RrufkqUSEAUEl3cDdNbqFXv9O6xlnyAEwSck5BnUWYKw\npwXlZVBUmzUiaOuN3dDEFNlKvI9dZXJymdSMsWPxJKHAFetHuV748ou56JRg\nihVxF5IM9tG2AS5L3j/OmJ8T5MMdttaGyA9G9/cYb06cTKh1WiOeFaqcWlNc\n5mDGzu2nI0exvU7CDoXlnqsQvD/ms3wvKVatJaG+5nysGKcRDKCdRBZMz/JL\neceoB4uUhqi6K8pBphvanGhkLnQ0X+jin1cqBOEfZtxLaTgFPaTpnDHMWA6N\nuSsHzFQICWU/LT6k83mwRU3qU8BKOAGx4SaazOw8FV94bHkVSduIJd/N9azC\nNK8a8fvNw7mE20JkY63+GLv9xB7XNucjOT3IU05Mfh7vI772M9K+9J8WLn3O\n0kb/mkvEG8FFy35IW+aNbsaGqtDSAIVwUN5AnkI2y0pEox7r3tXo1wUownzr\npl1+qMYOq+2Ss80pV5iKTIifmbOJeKcsyJbjmtAGWxIGYhMbb91D05yw00gr\npBTN\r\n=Dpam\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.2":{"name":"engine.io-client","version":"4.0.2","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"4.0.1","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.41.5","webpack-cli":"^3.3.10","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-cfzFu0u7rr/Gmz/CefwZ6mBj9kxtsOtOavV/YLbn+2sPGE1ZTSWh3tj8427a0od+BK27zsWDpnDx98fnpnmksA==","shasum":"947479b45931d0e63b84f2242fc7a4ae954db5e4","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.2.tgz","fileCount":20,"unpackedSize":221625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqQYPCRA9TVsSAnZWagAA7nQP/1SuD3IBr3qI9oTN+Bqb\nm3mNoycp8qr+Wt6qvEeSuNkq0nZCAY1yriIhJbKYljDWzoW5Ec7YwA+4HQLi\nuz6d7J9O2wkanYMgeVmjzyiJ7uzQjd5J3eu5qy62Knn5cDsSASDkOJZE8W8b\n/0Fs5MxbBhYufzD0C2IMLd6SWMDjsOsB2xUNEYMDX57d1hEvE2Mro0WkXYpQ\nmCXUS2fgLePw+mdGpOhM+n97CvwV6lE19zglsnm17Y+1h3a7p5KiOmjnny2t\nfZE3Fwl+C+ChY9/7PBEjhtBcdCFLa+cAIvwkpUK2ce8Da44SxqGF477cm5vb\nuKxLPJ44bQ0Xx4q/KUQWPS8qBnMADoaQ7zDIKixWRT1VSnoYRzfCbf3GlM5k\nqy9mG7AxezLppFQAN3MiHy3VOAaDFz+BVtkGwDvLgmQT3jUiGayl/qIZBDq6\ntZMdznwf+a1GVB0C1LdA0WlCW8e2LALmgpxaH5R2SCMrElH+T04BY48D7WDd\nhNbohZZ9DEWNRqq/omZW69JDZ4ypvKZSUwSnYUA0hPjrUbUY2OyFWPXtak00\nhQpwYFl28awX9Cld/uJm48YFxXd2I7AXHTs5aK1AKeuMODpQb6dkGtg4XiyE\nFGQVPBLhNCT5eMkD9yrOQVi1lRU7yS/j2q23WYNPwnxBcPdAqSDuDi1ZZ3GX\nKWtU\r\n=ue19\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.3":{"name":"engine.io-client","version":"4.0.3","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.41.5","webpack-cli":"^3.3.10","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-2U6dZkOrMGpVh11l+4pMXHMDnirnzIPIYfugEUpnAl0/3wBb+GO7euu0TT3Nn8E5hgaWSpUA+XOfrch2uZdyGA==","shasum":"6b5db9e44998be8b053937aaef2898755cbb78fc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.3.tgz","fileCount":20,"unpackedSize":219238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfs4kpCRA9TVsSAnZWagAA9mEP/jHLMm/89TpsjhHhe3qp\nvHrRM1qHhTZlZjgwMFdoeHaK8zQ8DLQVhnNxnKkohtKjFQH2bL/CILmZBNog\nc0DtkmabSHM0+59xQch6V+PXMydlJo/uLi/eGashZezs5rxWqrUS2wGKdCqM\nsFgZE3AhEATT8e46l2Sb3MtNrtGc5RJAInCNn66oG4KI1bazQun0Ahxxynnq\nBdhPkD5qpL5IOw5xrQJizksnw8TfNqVmeWFVRQMhvININM7Y/R1qIjRAL5Tw\n2ArQlawPNbxjkia3HSvbs2na+diDQ14QaC69V0zptyYppWmJdvu0IBfvG4J1\n1sL1jC1PlWWmoOwkER3rXwxEDgP/zI4GC0jbaPVk1ihn6lhsnWTvthp8NByj\n02R5wqpWO/gqdK/A8/AGqK/KOQ9N2GZu470f0Ti4+oO7gdA9vWo7VdEnOpe3\nUhzAWG2y0Kd2pF4spgyUTdIVm0+2mPu6fotMiOodkEqc1tRi4e2ynBuTESFf\nCUIae3Mqp1FzBhF9zqIEB31HQCH4BSy8l2iOLp8bp1md/80IRP3jSRXcf6iH\nnVXo+3TzpqXuDLx9iHKjuw0fuwiYmGGMyf8mthkHptinIx9L2oeOROmYFiAi\nJXYbX0faJfUpiGfO9PG470xDMChbLSy4VYS7s0lSG3wRDCZgxkD8k9jcok+B\n/nJf\r\n=b85f\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.4":{"name":"engine.io-client","version":"4.0.4","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-transform-object-assign":"~7.8.3","@babel/preset-env":"^7.7.7","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","blob":"^0.0.4","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","expect.js":"^0.3.1","express":"4.15.2","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.41.5","webpack-cli":"^3.3.10","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-and4JRvjv+BQ4WBLopYUFePxju3ms3aBRk0XjaLdh/t9TKv2LCKtKKWFRoRzIfUZsu3U38FcYqNLuXhfS16vqw==","shasum":"973d312ab9c8dc41e64d2c323982f3b04a7f749d","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.4.tgz","fileCount":20,"unpackedSize":220245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfs6g/CRA9TVsSAnZWagAAzkkQAKPd3Fh6w7ZU1LRwa0jU\nNNXNrn5kJ5uTfSUWI9hXx2e38DzfYLkQv+aGebUDCtYQQBHiblf4C9pesdMe\n99HKHVp/h5IWch+VQ1fK8v5M6nFc+VPnpm2v/pg98QNCEAhXKCZK9q5ylBkL\n0DcMJ58MUuCAHJbqe4NLDjJYTsisilBfla+8kYf7vxQ1sWecuEMc2WoWGnaS\nDAZU6ozjdldpeTLdyDV67fRAVH5xu0MK065cdOXJyhvTNgHKXyoleQ6KTOEp\n/UbsWpgFJVhqQQMYH5d/xa1beLXBlEEQXCtH3LgY/h5K/OKs5JLaFFqS6deG\nWEqUQFhoB+ooBohCU5J7F7zfeoh6bLeGoNEwIHvYaqW53E/dGwL0zYEIjNN6\npngXti3f/prv1GMM9fvx10Lv1gdbTNh5a5w3OWze5tek4eN9W0q6M6Cd6g+o\nhfeDJIoxqeiF6Lybv+o94e0UcufkuH1ay+JErDuG+OrMPn5sHEeUxAIb5D4O\n+09TS6Du0QwTbr4Z+Sp5Il9NuiLzlxVGoUVdsyDWCUKuip3jy49LW8yAHNb7\nZ3sCEm0YmGJM1pPps34bxx7vLyIAh2Kg56g0DCtR5Frz+HCaj6iusV0hcYFa\n8zgsmEJRCoDcmMHG2cDC+8+GToUGodbylN+8kxP9Vu6RaKotAOVeqBqtWCSY\nA/1e\r\n=ECtC\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.5":{"name":"engine.io-client","version":"4.0.5","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.2.1","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"^0.0.4","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-1lkn0QdekHQPMTcxUh8LqIuxQHNtKV5GvqkQzmZ1rYKAvB6puMm13U7K1ps3OQZ4joE46asQiAKrcdL9weNEVw==","shasum":"e12b05a11a7a3cccec6d69f9af8435146e3d507e","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.5.tgz","fileCount":20,"unpackedSize":227884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzf8rCRA9TVsSAnZWagAARJEQAJoXlpuLsQRzE8VXGKvY\nx4PVcUB50z+hKUU6XHgPYS9uqH13f1t9FP1VWoCRrYx7VwgWYucRhpX34S+e\nc9DPYzd+Wddp3v1i8BE1QaE325UKcTD1x/rXUA1MihSebxceljjACl46oJo6\nA7Zwav7iA+wNVardzZkb7jrRdru/dgzBjaDTOkjxRR7Rk5097EMzH+cVAbx/\nE8kzxgrAPbiXTHDTb+R9L5GGwM9ay4hAOtV63YbO1/9v/wkk9V7bvPZ52WDV\nJiXJ0PsMoqlQ48+wgIt2/tC3v+l2Ps8D4OaIspFoNWLN8TnSF75OKOrfgjko\nV9tDBw7J7fL14esOcW5OdhnwfRngNgCKSBX3oiXjiD9e9Opg+axj/YdjcMGu\nB+Z9kMSATDaRRzghMzW8pKlLuiyJVDpJgxXrHpuwCp0jIwhCX7UQlfIQbYER\n3BCUUDT92VutDwDkDhuH+tCmtLLSjq5ETVLKYnNuHh1HfW7JCULV81qjec7c\n6EMwqEB8pHShoQbV0g7AeoMFDqiywAHFSsO61GcXGmtNTYdpKRIhMwvEywo7\nYFv7VyCwlCB0Lk7Ioh8yqcmNYnfTLifSXmRe6F2h/u38xWJuO4l7RMCARONd\nuDZj2HRDk9juI80BPqQ+sv5yGz5PVdPT59osjajjXYB/JXPpp6m2NE54liYM\nXYzj\r\n=pssg\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.0":{"name":"engine.io-client","version":"3.5.0","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==","shasum":"fc1b4d9616288ce4f2daf06dcf612413dec941c7","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz","fileCount":16,"unpackedSize":179519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7DvMCRA9TVsSAnZWagAAWuwQAI/lsuQVtEGB/UpffmO0\nApHyCNy7W8eDUnpMF7n5wle/oMo/gfkRJaKOccq/aj1uRSyzs1vznXANck01\nUWiX5PsbGCOjSEo+kBG5AtxsFz9mNb/TVC+JE/Ky5odXb0cy/NmkAkX37SIx\nYG6jWg5XzZoc8y6fD5OVLf+VTXlRHiDJurluhr1k9n4hjnMsWIfoegmqq/KA\n95RSQanqgW4OP2n/TWwxaTF+/Jvqel9nU597j2URNi6aUzEhBq5fD5gE0Sn+\nDUlzPMqEbkjmb4z0zUGjuB8PbBTghgONv9NIRxWxfxZgR541TwaWO77+UoPh\nzPdrpfDoix9IC/goFGj+OH+LVui+ZxJnG7lpsERSbLhrVawh1VdFl58FzwmL\nP1C7hEfkTcS2QRrFtKeSKw+uxpIPeVNIdqGyc1qaqrVjZt1040xtvGevHi4Z\niT2ptRP82Fa9FU1Pafspv3Y0kZYTklunKTEv6eWP6+yyE61BcrofX15j9mas\nQ7RyfaLVlZzPqMHeL9aaJTg3W+Ns0Pduwg7FgOETbLHrKcVGVRImGZ7PlIsM\niBYTU8r45xRfWpujOmgtAq3GyAtuDi/KOR26oKU3siVjT8i1FEBPbwe5KgTn\n+JTRTfS/BFKxCD0AV6zwPbF/SFKhbgVrkHbUx3bpOoYzP4qSZmqadOkw46A4\nAPyD\r\n=/U6L\r\n-----END PGP SIGNATURE-----\r\n"}},"4.0.6":{"name":"engine.io-client","version":"4.0.6","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"^0.0.4","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-5lPh8rrhxIruo5ZlgFt31KM626o5OCXrCHBweieWWuVicDtnYdz/iR93k6N9k0Xs61WrYxZKIWXzeSaJF6fpNA==","shasum":"ba6f97033dc2179dea79b982d516d13b50ab4d3b","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.6.tgz","fileCount":20,"unpackedSize":228102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf85SECRA9TVsSAnZWagAAzQ0P/RDeqS+K96bMwSLlttwl\n+CMTVSTL9OuOEVnrQd2rCRpnD2DqaIJKjHUvBYK/mF2jIHQ3EcwW1o6xtW2h\nrldDeEyT9lQHXLzcKM1Aco2/JV6+MLbzYA1Lr3oumhVj6ksSbZb6PVd3ZbB+\nDv1jTLzBiySlRlCCEhCsyDY/r3gnCG85l2gkrSXJ/5Yn3BwUICHgDiwpOdae\nLPkNY0dWaoSxECye05lHh08GhDYppDGaf5jZnvJngU1DamGHrfs360z/E5hu\nyfIsjm0XkPwYmNga+tUIeCLpM1TCqKasoHBuIweHNlCkAHWrKvuMJgVK7TXN\nxu/k73FEFUTQycLy9Rd2ie7nDJKpdGGjRovwk/pxlbRYU8dYyFASBqs00Yqy\nRRcrAR9JA8gQZKYy+z1E4Ms0fbB2U2Dy0m3CwgfXSWZ0pO5hvkzVAeySprwT\n5QWCvLD134ql6ZhF1+fx56AVu969wjzaD6crjvAF3LA6RMrwIeJNlRId8cM2\nevcqB+ren1x5T3xNG7lDxzDuq+ULFhBzXxtkLtucUIDqwW4Dn9C77T7Ns5o0\neotKlBYHqnOB/DdOFypMgftvZU4VGMx4Wh482L/flxtlf/4FisJ4BtKk7S5C\n1S/gjvNs8qwT7kjk2MB9XezSK3lvR3FkBSfRFx2gQE+FDpJ79ogM3kjvOJUg\nCYzF\r\n=n8Jp\r\n-----END PGP SIGNATURE-----\r\n"}},"4.1.0":{"name":"engine.io-client","version":"4.1.0","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"^0.0.4","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-OUmn4m71/lW3ixICv4h3DuBRuh3ri0w3cDuepjsrINSbbqbni4Xw1shTFiKhl0v58lEtNpwJTpSKJJ3fondu5Q==","shasum":"dce19be6ee1ec4440c592b45f6f5cef28acb4b3f","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.0.tgz","fileCount":20,"unpackedSize":228734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/4/VCRA9TVsSAnZWagAAyN8QAIr8ixIG3vfbjoZ+j7XX\nNfkljN4MP6B9HqN6/qN34ddD8pE+IvgZj7/9YakmARNQGuXVps5xr6TJnV+Y\neOt3/Fulead0ML3yailImnWaxC6MD+mODqliSytfKd2w9h/LETystOq/u/7S\nstgOl/Rmgd7CfTEYzIV0goM17pd7SeYpRfxQUQykR1PBQGYqxynv5w6vSdvu\neiTwoOtxNUJbyrGoMSgQhzITyPMx12fOSgLjKVQzyD4K+nSqrTM9KB8INdIB\nnhg1aOjCdVBLZzlP6cA3UzQldNZTJGNu38ffvpaClpB1jJryVp1B7TiYAh/B\nTcy8vyL1YH+kQO03qdhnp3pWiR/1+dhnHWaRqY91gMjFWGMkxPtaBaeMszR0\nYpncs9emTxD6aOvsI28jbRgp6b31NEDc81xtinlhPcyqbhmnW91DsljGh9z5\na5NF50MQ0UmthN9M+6KkW4YwPEVx3SXG9irw42M5DVx/ak+lTKnNJdUTtQ76\nbMa/RqE6Kif18dft52ixN/DW7SlqhfhYD91wUxNg51s5ioEd2R2rO2F2Or3A\nS2LYQrCgV1zfse/YbhaVeY47YS9FXZHBb7H/uBhMqN5sLjG82h0joACvWZZB\nEQi7VZxWKQIig2LCF63aQRhwEzpSh63Xk6o9sS55tWwCk8ZgmEc23/QLlgMb\nYkr0\r\n=FxRD\r\n-----END PGP SIGNATURE-----\r\n"}},"4.1.1":{"name":"engine.io-client","version":"4.1.1","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-iYasV/EttP/2pLrdowe9G3zwlNIFhwny8VSIh+vPlMnYZqSzLsTzSLa9hFy015OrH1s4fzoYxeHjVkO8hSFKwg==","shasum":"109942705079f15a4fcf1090bc86d3a1341c0a61","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.1.tgz","fileCount":20,"unpackedSize":223199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGRS7CRA9TVsSAnZWagAApaMP/2xZAdlmKZmxQg/b4+dV\nVnHnsfXTL6KPm4QtWEgP/UOyXOVl2lObgduTplWmzMSJZ2L0SKCB6YGIr/cU\nU2GIVutM5Elna/7HIK8wt3GyR/jsUPnut/IN8P5rryjZm8BxS5yoe7q9iKxq\nlybONsDxryvJITXzGkVS76Ju8nP4cYJ1pm0FX9fErwZ2NDtE/HPWSCfDSFDS\nGC+OSpMGoxhjcVv4gOdNf9whRjzrvcvCS/V1isRO50B01k/EGTOVDkLGBN30\n696kZPp5MZ4EqrAdzfVGMpvxTULEpHB7MFuvta2+PtEkiADJO5dhTyma+FSy\nhdrGQgzhakUaIxfpjOLkXcfQ0h0IWq0iv2pU1fMI+LMtsQLJrXzY8IKZhH85\nDBZv0yFb9nWC0TK6aa/ebuubA6lkx3gnOGJWQKTEuAPLWp11U+TzEOyS+wa+\nket4xDqe6roam4p/q0HC1qTEKLqx1OMZN5Y4NKLKT3VHJ66uAruIyqWoRsuN\nDT9RSzslRPVeNb/cnTIP7Uib9pzi6WNUkpWhUnAEk0hQa/4sTuyEXJwLbh4Z\nAdet0Jfof/aBGfW29xsRTu6qspxVYlsAlA1lI2N29FZk7V3M05SiYdZgRn90\n4e65NJlR2Xqne2Ms1H3yGVvdXtH3Y5bihUhRQW8K5LHeWJyclP6KiFvDzv75\nqqJX\r\n=ekRt\r\n-----END PGP SIGNATURE-----\r\n"}},"4.1.2":{"name":"engine.io-client","version":"4.1.2","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-1mwvwKYMa0AaCy+sPgvJ/SnKyO5MJZ1HEeXfA3Rm/KHkHGiYD5bQVq8QzvIrkI01FuVtOdZC5lWdRw1BGXB2NQ==","shasum":"823b4f005360321c41445fc23ce8ee028ef2e36b","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.2.tgz","fileCount":20,"unpackedSize":223417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOBoxCRA9TVsSAnZWagAA0UwP/16s48pZ+G9X435GCT+v\n/mH5rFMm33glZ4hMPU4SOJkTV9rqvoo9Ox+bYqlYDiej8Az47Ng3qe7ZjW4l\nrR0c39bbtyZQPZfH9MGa3XEBdJV93uPwsV7Pd2LGiOI/85z8Q2zAVtHmwZE7\nd8tBh3tFqb7pDEurEEbTVhZ6ryyL51oLom21inLmWyQPV9gKFcbpP5QHf7lO\nx4PDl/nsX7oc7Gc/Gm/4l/gDtSG9wsUYBOqxr0D1jEU/ds+K/qPHN7Oe86nc\naOX80UW3V5VVVEz63CiLCf1sRRC0ykr/Hlte0PA/6QdBLrtSoKODFMO6am9+\nVNuB7/e4imY5fD6HlK2ACLWjoQAuIBTwy3pfy1SaOoTN0aSfjidt6gfdclbN\np3q1Z8FUEgknDsroO4Ij3Jd8dlmIV4hxk27rUkXpnjBFZQ1OePSYgUH0R2a0\n070t6zNuXWmreWLUBDFc8CiabXnvz1Zwd9DM9Ym6bGOK0HC2BGaP5zbemq87\nSLHCbIn0m3XWvy3kQCt098JgdiitufMicYl+uJ1k2MWEpfMfqguHoPfUN8cc\nvVVlX9UeFCs5EkzU0tj3T/evq3y6pzls4EMFvi3mgNs2df7OA93/KGzMR/RY\nWCUJBFv0P9Z5kkJ89dQJsEDKMLzgNCr008B7YTObUueNO2puoQR/ZW5ncx3F\nb7Ca\r\n=vv1c\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.1":{"name":"engine.io-client","version":"3.5.1","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==","shasum":"b500458a39c0cd197a921e0e759721a746d0bdb9","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz","fileCount":16,"unpackedSize":179851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPfrKCRA9TVsSAnZWagAAykcP/38dgBLC3J6uL5jwgavp\ntW2qAyejIlFYVkDE8rG2M/3iY9G2jnoDZjBhViC+zAQS0XFci2MPOEQLDnCG\ncwe7hfxVVtsRQY1XmNViRjZ1nrLyudS2LpCXhhqJYUUAzTt5NxAcjqBj1hmv\n/5MdPMfKcCec9HZ6PxS7IqY8uHJSMkPT1W0pxJjHMntnqOsnuffioL3BnbBb\nF30vTrgHL+Cy9Q2gzFSNwd4E4pzULajIQm0+HlokoM18JnNTHwmKJmot8QAL\n4Gcd9hP6ZMYzM0N16iTzdx+kYVTndvC+DWifZC6cC6bGw38V0WjtwARDNNOd\nWn8qyOClbUDdci4AsBOhsy+U0oOEnU7QhyyVCjsLgNQ0V4kRX/xoQh4WjX8l\nYoePqYFkccA72DWD2fU4x5VFeD37/bPiJnVKz9PKGTzRMDSylizGjDxRdgRD\n7XNW5ERucUCn6fT/mlxtOtNkXav2yxCvskGqScSiDUkQ2bh4vzZLUxWGE2tG\ndBvr0fV4OqHxcjS0pr5/6c1Cy2fcEH7BOhHhTMg5ZlvUsKazPUX0Fo2i1O/B\nIF2Tp15qqXxJze78evr9k2QYmOXr7WTAT2h+8TT/JdsTvL/thrUv+zTBVe6k\n2PR/akbK657peS8z56V+68EpD81dsGa62WeRcjr+J0/2sLdWEf6nYsY6A+fz\nQbaj\r\n=tNAv\r\n-----END PGP SIGNATURE-----\r\n"}},"5.0.0":{"name":"engine.io-client","version":"5.0.0","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-e6GK0Fqvq45Nu/j7YdIVqXtDPvlsggAcfml3QiEiGdJ1qeh7IQU6knxSN3+yy9BmbnXtIfjo1hK4MFyHKdc9mQ==","shasum":"65733887c8999d280e1dd7f241779a2c66e9559e","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.0.0.tgz","fileCount":21,"unpackedSize":244504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSI0VCRA9TVsSAnZWagAAYLsP/3W5JwnE4b4qBPR0+NO/\nOAl5aEm8qlFbJoc7Z/J2jf9RT8iW5w/1CjRoMMPQeNLXTUMDoUMafH7Be6wX\nEH6Cb8TLum4v8gH6s52CUg0sC6C/F7BhbnUuSvAvzroBkU8AiBPnRZj9a7aq\nSG5wnGD2irRLW1CsurNDbDbAW17uG0ATYVaYIck7Hzs8qiFdY51fAf/OAne+\nKKvWnDdTDa2M65AQ5HVE5QurLBZRGeVCZfXOUq4BeX2UeAH8tFvfuIy7AMg6\nEU1TbCUQH4n/TPmLDDeyQMQxFqwST6wGURkBxUdonFHjffgJtoMB5Vy5tdVs\nY6jXN/0gCw/iUeUjoyhfGUXKeeSn+yZVnk03Fo/DmshUl1w+6ga6f0W3ciYc\nWyMXf7O1uNFAQhx/d8kVQ1l9J19exTpcdjZ5gjtXrt9emrAa7j67pXuo/hRp\nruf1+HGlHwCw0jHVRwL0G9Kvlln3W0L2fTsmypKhYahSnyYhHWAbkpO+OCIv\nF7WsGILFtSdzhRmCN6zXUJG1wIo5GdNJ1kLCGHu5hICV9nTqliBZvcz1BqSM\nX2SNBNsgJWycHWTpgJ+7H3HMDsaXMu3eutOzhQZizB3kNaarNmc3I7WSwUdL\ngu+xJXtiH6jVngi6UrPCJN0Rty3kxZq6LMzE2GY3xV77/FwvVG8GN9RDUL9a\nz+Xf\r\n=yrFN\r\n-----END PGP SIGNATURE-----\r\n"}},"5.0.1":{"name":"engine.io-client","version":"5.0.1","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-CQtGN3YwfvbxVwpPugcsHe5rHT4KgT49CEcQppNtu9N7WxbPN0MAG27lGaem7bvtCFtGNLSL+GEqXsFSz36jTg==","shasum":"9470fc6655c9789c5c0aa1a0e7e7d9ae9753a798","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.0.1.tgz","fileCount":21,"unpackedSize":245145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZPD9CRA9TVsSAnZWagAAoR4QAJmQfIhowswMPnQADMQm\nN/WfN/5bWX8Nx92UUHPNqnBZCg4GEOZzv13cwQ43hG8sYEfVjYpy4S91s2iU\nWESrFLKz9uszJp+pQQvFTH8i7F8MomW3PdKIPGROr5ZpltUwzZkf10xKhkHs\nR4J3Qn2j9pvlEBruo6SoxI2/GJAnY1FaKGBNgsiijv1lRFyS+w2DytWWqnzD\n2PyWtSiH5OTxNdrRgm0ZqtHGEhQJsb5KXnzm9UtPHP8LY1Mxm7byF8QPQg3X\nDUk5C94Q4pI/BWBTK/yOnUi5tvpTxx60EBL3PmF4Hl1XLjylguzQKXMHzQfH\nD8iUBAwIKORpnMKdtIhvmOb4c4hFsROXBBt1XfY4r4T2gqAH6TLUS5kx0xzd\nv42OaVnbsibFxIW+AN7ybBW0FuBWSgZuzU5O2hkyzymEaLPx9dyizupDVXRf\n+oD5GSVWmasbbap7JNUATIFoN9tY9mn2AQxm/VZ6tF4i5jRMdcwhgCzgNZL9\n3X6b+h+qidF2/rzMRBz8yJdatpn4QH/Kik2m0o1SG0uzGG0WACoCq93ZFxk/\nn10uT8/691YRuNKtd54l5fnndhc9DBEJyNAPhdlNh8iMftdLu4VQCLttDM8w\nFYK36cxoS0udrVJPeHjy+RR50ZUAbuTcMNoG/TXzlKgkTNXOxMpz28ZnHO+H\n5chQ\r\n=L15s\r\n-----END PGP SIGNATURE-----\r\n"}},"4.1.3":{"name":"engine.io-client","version":"4.1.3","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-C3JYYyvna0FvSKOWGWpo0/EQ6MayO8uEKam1oedLZRpxLego9Fk6K3UH/Phieu1xPHauM7YqAygJ+6SraVc0Qg==","shasum":"e0ea88aefe76a14cf4375513b194438be3c5e238","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.3.tgz","fileCount":20,"unpackedSize":224058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZPNoCRA9TVsSAnZWagAAq60P/3oGrAo3JL+tqQocu/UP\nGgywyKbBfRDrBIRUKF5JQjnQKSMKO+cAvN3wZnf24sbHU1iyH6WaLXho+ffw\nwT2jJBXQdg93P+hbBQY/qS5iEWM7UGfozoqgiGZrKAP8x9f/pfz5EatCNpuJ\nArnFd+V5Cqic5Lsq0iTcHTBmPJsg4EAv4pCuqZogqokGdPBeKhXFRAgyGuxT\nbQ+FVeMpcfL0eTT+dywElh/vygD4cbXWzO6YWWhoHOkqK88FvHaGHodI5Sbj\n5EnU09sgpJnR753DMp+ybv2/dmWCiQESMjc5hLjPNZ1hTzrDaGOaebR+N9wU\ne+hqgIh/h44a1N1r2Axd2sez+QOC0BD9YoS+KPUPkwo3KwpcYuZePX5Jm3uq\nbvgfWT62JE0F42wdz2fFGgctCjpq4Px9nsbNjuyL4f2gjcm/sDovrl/YI2rZ\nDWASGJHgbx8XLDLd/wiwUD50voJCWpnY9wujSQyXr0u0yjvC84iIQsIHnkBP\nYy5wdJBGXkH5x9461jMPSBpO/nK/njcpy0s8DF4Dx5Vg23tnXbRQ4TY7+XY3\npm6ODLVm0DsIV24q8HGmMpcmreR3AN9aZtS/ufVhQgEfWxsge548R+8Oqa30\n8gZxk7X6UNR73S7I0cN1DQszLuOe15x7UTdrKS4w97UsEmhAJVbVeVnbDpws\nGfww\r\n=Nw5D\r\n-----END PGP SIGNATURE-----\r\n"}},"5.1.0":{"name":"engine.io-client","version":"5.1.0","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-nXE1q63uBs6GqygguQwE0q+gLVaEo8YN3tAJgADOyBu3gFV5XzAeBLlry9if6KiswzOnNUCUYqk47vC0g7WXRA==","shasum":"865fc68b33edb67f0dc72af119266fc4eae9cdb4","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.0.tgz","fileCount":21,"unpackedSize":245373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkPrDCRA9TVsSAnZWagAAHokP/3CZQmQvKi2UGP5mV7I5\nM5A6DxNmEtibgUlBoNhAc09Q6Z64srWnjEWvx3z5vaYdUzNA7HVVKFWn2fjd\nggbD0eIfrBXjoc4++TttgcYklFH/g5t0AjzvU6Od+KaZt0c7y4KI8LXJbww7\nxEv18FAuhrtwaoMw2jmD7Tqds1wTkq0mzZeJvDbhefaNpB4CpBG+1YEtDNT0\nkWm5rv7vHF0lo8mmSbppc+abXMrGGi9gHvZgyV1fvjeg3yugq6kV/2kXAv2+\nmIRr405HKJ00rAJoc55umDZ731ImrtWGD0KEdr5uymXuROJLHiFmEitg4M9U\nytKFM/hUtl+KhUddn+rdF/03oaNfUCHPrjFufbJhOF+e3aNUEHRis8AaNggy\nzVPd9n9IfAPHH63VidBaI3jcp0kTvk/KiMYG4u/OjE1iFq539aPr4z4Yw0ai\nZPpDmBHD5HWvZdZ5AOTJ6d0Sb/Ck2oGdJrYWePMutqwnRGhdCBQYGr2oueJA\n7mryzoW6uo7ac6pRS+s4UfLSl43t8dyW8er0zzKf0q2M959AcdiqIqHaFsjh\nJjMGetLdyL5TtR0RY+sqk6N858YW/bgcd+rCGLTc+kDvkwnaoRrNMAhzSZlv\nR7pN8TMwGKBpK5applPh5x0Ia9Aj1mRyiV4jH+ngvCofIXxZ34JaoKvMoX1U\nx046\r\n=B2LA\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.2":{"name":"engine.io-client","version":"3.5.2","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.6.2","yeast":"0.1.2"},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==","shasum":"0ef473621294004e9ceebe73cef0af9e36f2f5fa","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz","fileCount":16,"unpackedSize":180216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkwCyCRA9TVsSAnZWagAARrgQAIARuk9SPPlUh/tJeAWT\nyGEXNN20K5DosdLMY1gFLr/59czjl7jqP55FyFPN6ab+xuDFULAMTb3K7cxS\nX5BEIwOFaoajf6U0zVfK6dAKKz5ELwMhZIkImlLh+K4IBFH+pfSgNTUjHdj1\nLJXhYP45RyRVaadObRwUYmjQ/lev/ArARlHyF8bs8fj+g4MP62iq6OmZcu+W\nDi3JEOLW8rGYDp/7XcUuSHDscYCwVq+TanHM0HMj9f52lbefdWzbganWe1Tl\nxy1lBWoXde/PW/EHl/7ZYyIfv+XAYKuiEvB6KCpVsZxYO/lCaCyGdIkavwUd\nVtJouTTIWefxzRGOuvejRp+8WDIizRZQeqDnWwhpiDH41DgDIjoWf+b1K8q6\n1g5NZ4MYBbjWvi5e0uZrXW0JrgmuAw4VauYVFgMjRoL2p9dNlIlfogHIpPY6\nzlqeDYAR1Yk2iL0aoJyc1rGaESk78QoB7suGice4P2n58+YTQVMq02hjh0IJ\nMWwquEutUWZl4RQmxkIyDwjdpUQ1D84rpv/vcUywFy2PpdcRvksJJPWRgFdV\nX9uiIayvVuiFYlW4sSGMa9cHbkhaAtsXOkRLgvXXqR8p/P27zNLhWuTH3HGj\ndXpLRQ/uEd3JV84DYiL4ZZ2kCYwwttdE4sULc6Ww5exmIOpCSzCNmjetFpqn\nUPgY\r\n=VsKq\r\n-----END PGP SIGNATURE-----\r\n"}},"4.1.4":{"name":"engine.io-client","version":"4.1.4","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.6.2","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==","shasum":"0bda5ba4bd87bced2ad00b93c67e133d0fb981ba","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz","fileCount":20,"unpackedSize":224423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkwFLCRA9TVsSAnZWagAAsZ4P/2r5cmSHuPrIbNksOac1\njJt3/3hzsJ4CdNLREpFEd9zd5/PH13uXs9BH/FI49cEa+4VDQ6K7dU8CtIi9\nEF9WkcaUAZ2aIri+Y/n7XXOVDXYFwcs82NGNHRVOJ89Tj9Xaq62J3mQsLtdE\nJg1R+gwjnlEYPOH1raIUcmxlHqFl1PHBsqy/x7THstfV6Nn1S74vgEjaZzg/\nCumm0V4zqOw0y2SWt96aV0+hafKfkpNwlgYSN8V4PwWBooJCluiPDoL2J33g\nLYD6XFZUH8M3DCFLmGDPq3r5QIdin4vZ5hxT8HDIlshGgfFfBY93hKszv8sD\nhwGMdCHUWzw+rpBSzW6eHIl/IZ17IxtecPC9+bUeBKTuuvdX9TkPnpOwSiX/\nksjpGOYbDnn3FIZvM8cWtMYJvkw6OLbQY2AKKaOWpjSwuIWZWOimgxDY4+2u\nJ10WVCthaJSOxgBVm8sQCsRkxpgdIQnsp832iUT4PbfRYNjYX+i47qTOVMkX\nd3Jbrilxw2c3YZf3T2cfSVR1VQ1U+D3p8EmJhRE9qcJ4jAr5bCX3VaqQT/Mt\nqP86pbr6CWpxbBvz/YmUwVheUuXEbQ47VhEyOvP01PDU4FTo6QqmjqFXZCXL\nxg1N3gFPzxGMGXUFltDycQ5wF0Uu9eNyWfNEBalmn4Lq+fCqdv3SoZO4rtpt\nURPv\r\n=TNt4\r\n-----END PGP SIGNATURE-----\r\n"}},"5.1.1":{"name":"engine.io-client","version":"5.1.1","dependencies":{"base64-arraybuffer":"0.1.4","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-parser":"~4.0.1","has-cors":"1.1.0","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","yeast":"0.1.2"},"devDependencies":{"@babel/core":"^7.12.9","@babel/plugin-transform-object-assign":"^7.12.1","@babel/preset-env":"^7.12.7","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","blob":"0.0.5","engine.io":"4.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.15.0","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^3.2.0","prettier":"^1.19.1","socket.io-browsers":"~1.0.4","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-jPFpw2HLL0lhZ2KY0BpZhIJdleQcUO9W1xkIpo0h3d6s+5D6+EV/xgQw9qWOmymszv2WXef/6KUUehyxEKomlQ==","shasum":"f5c3aaaef1bdc9443aac6ffde48b3b2fb2dc56fc","tarball":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.1.tgz","fileCount":21,"unpackedSize":246343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmiWKCRA9TVsSAnZWagAAFCUQAJI5OcfL7Ap8f/nchpit\nuTImxlNc82dXpV3TmMYJn4iHxWMEUCmsz385CNNrND3Q6zY+dRF36Q6LECrr\nLnIS0vqoWDu9STzzrj0w2gVr5Dldbnn/H1OUcvZSIElN/+Pf3rZWNStIlv2B\nxnTtUti6XIKUaM58LihVM0j+Qh8Ei6MJSKLDdllOP+YosiLhh00V41seEI7R\nP683ebqjh8bHNhlOLM896QkbK9AqVdyBI5HOAnGKWXMJH2fGpy5m5a2rotGT\nmBF85ktik1p6Yr3V5UUK6SAxcsag9uC2f4QSj5gb+uU/I6wFwzs3VkPN3vm/\niVsY14nyOjp0YvhZHGHpU5JjEv7o0eJFV/+QrfsItd36gpsaY8ucqCOfFMh1\nxKuuLJ2jrPTawpwPGxzlOZFTDNkr9KhsG3+sBMxRJNzs48bbtf0KIRczZWyX\nJn9ICysfLh8uz9dvJtHPiJFLTHfeFO9Y6lgjdvAl7nBfAjOtTjt1WmaEl76h\nUJmbDaVhLVs3htlVroCWth9ygQqM5H+1WVmDlvwLWftcdfbVsOwOHSAFm0vI\nIAom4MLvZVreFzzZn8E7Npffm7ukh2HZF78qywA06848rwud3NUBjGw34shn\njcOC2e8iHl8c/59Q9KTP6X3UWvd4CGqhRamz6A3YKtGRB9Dhx4UWIBHQobOf\n7msX\r\n=ldQn\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-05-11T06:34:52.800Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/64/be/8ddce5f9b037f9152df7bcc16c0d57033e6d64e191ca07e91e24379c9d776d1f2f99f5a8fae441561c082cc7def4f4fad8657de843257c423102246a284f b/data_node_red/.npm/_cacache/content-v2/sha512/64/be/8ddce5f9b037f9152df7bcc16c0d57033e6d64e191ca07e91e24379c9d776d1f2f99f5a8fae441561c082cc7def4f4fad8657de843257c423102246a284f new file mode 100644 index 0000000..c896328 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/64/be/8ddce5f9b037f9152df7bcc16c0d57033e6d64e191ca07e91e24379c9d776d1f2f99f5a8fae441561c082cc7def4f4fad8657de843257c423102246a284f @@ -0,0 +1 @@ +{"name":"node-red-node-ui-table","dist-tags":{"latest":"0.3.11"},"versions":{"0.1.0":{"name":"node-red-node-ui-table","version":"0.1.0","dist":{"integrity":"sha512-cjhAzh1kEPorxG8Nwusk0EeIlv1154nBqbNJL56/acXAZ3x5eGrm4UKXEgW44d0x23sgFHDXr6xLoGru3QRWcA==","shasum":"46f24fa62c60c97280e318f862bfb56f1ddebd68","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.0.tgz","fileCount":15,"unpackedSize":1033025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXsL5CRA9TVsSAnZWagAAxA4QAKGt8zVrTwMB4b3zL29D\n+03utSN7dnEOCRluPExm1UqrNeNYO4gm5Y+BtGBBKHkEMomGK0EaKHQYIsj6\nP+wYbVxaF980HN2Ptsfd9pqaql28wcw5yE7zHzpyeyso/6jhOm88PiKgsjKq\nPelR3bHPJCSHr/HfVX81LcL8UtJmVefq6snPkfNk4l8BKlfFzsBrZdcIjOuJ\n9SpVljX/qzwcKvPcZRdZA68BM9MUngQmMo26jrXzx/K0NFUbz5rcGs836TK5\nayy4n1stak48I+aAEai2uxQaRJzH1OHXfgU7YAyyTdHCt4MJemzbPVzwDr0c\nqLnV5DSsf1OcUdpbMBkixszxCvtkYbYhDw3h9WkA1sGNX0j4OLtzKen2Vr1+\n7xGbwwL3oF8CXH0DxxpGLQxtlg+qPYXibE0yJ+pD/+/wAmrJeOly7f64wE5T\njKxw1AycxwtjXQ1DvNFMR4n+snCH1NKezkD0ZF+bXZkW6aGgyzphoOUl+GKJ\niosZ0UJxLio8jZ+BhdMR1q1r/txVn5dXktCBIG/uIUVUN4ztbDcUr1+FeG4I\nY5lBWysXCElgeJ6OfkpsniNDqR7Sq7A4BsV/D5MYG8djoukqpi+0IJWPmTiU\nZCaX+9ZfzljYmkx71/Kzj7a+M5/QfoYaKZYgYDI5h+8SHk/1qV+n1Fd1HxxZ\nodbq\r\n=euPP\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.1":{"name":"node-red-node-ui-table","version":"0.1.1","dist":{"integrity":"sha512-3gznbleOW03+4OrmKo2HvlYudZ/acSc4Fm2OswRAB44auLUvSzT3KSvHxX5IodY0FTfn08cLja2HzkIBR4Opwg==","shasum":"90b3114de414af34bcecc9b428de07021ac3bd3c","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.1.tgz","fileCount":15,"unpackedSize":1033025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXsOvCRA9TVsSAnZWagAAGYwQAIkF5KlYtU0LdLFwOtf9\nYa3Ry+C4F83Qv75x7ZdugJcjBTm8RAl9NLGwcmpTl8a76gVRsZhRqtRr2jHT\n96zKRM8tZ5ICxL3/87//V48lNFY01LfGYAOWx8qphcD1IeK8dtYOPLNG4eXD\nc9m65WTlHOF+DM0td24a2/ITiKAPfn/dmiqaexnb496gBIKLh66KwixlgOb8\ngPeDrwp2pKgyJ2mZI9k4H5zVC71t5HdkZ/sLo7+MHO9TZnMWGjJI0Z02JBUG\n1ByEKN6qouMQIj8552MafJVgcpxLvHf0c7FHHhoNA+MFQiwts3RpiSwfrF+O\nhVFJPyZNksOSLOLTKljKQByxNb0gY5s/VJafP/FK22riIXu69cCXeBJ0zmrI\nX0EvKECkLHO7e1Uur2+TiPTOly4V+2zn/Dq1UKJ5hVF1tO81HTG78uo7u9bi\nS0cye/SUWzm9xDCSIdHIVR6v87GMv4XlzUJPFe9ngYhZEJRRdN3ANjdaQXuu\nb2WS93aX64yzQb+2sgONPbuz54dVaO15F/ykPFSn0iZkRy6H4L/g2Ge+t2+u\nAfHg97IQeh/0YQOXLfeAsA7uCZwayhmMAoxG47xJ7S5FpyP3ihq4WLFyLmOi\nTv1Sfs/hpHmI8ZHDHivvT1n63hSYPN7PwNaiHIU7oD9xw03jJH7xAQp1TT14\nsM4P\r\n=GGBN\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.2":{"name":"node-red-node-ui-table","version":"0.1.2","dist":{"integrity":"sha512-AML221D+5KsMhNYIy7wT23//0uu/y65HdW5k1VVW0xgxS5HTTj4vUDF9Znz30TkHRus1WBG1Ks5LbMmOa5/hdQ==","shasum":"e802d6c23cef9506951cd249f3a079ee19a87daf","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.2.tgz","fileCount":15,"unpackedSize":1033107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdX6rRCRA9TVsSAnZWagAA8FcP/3C8VwDcYlqggp8aHQU/\nADOdvMj73pAwvW00KKgAJBPrAI+Lh4FFCjbOhtLmP1YV/GMo+qTg0I0ILAAn\n54znc7qUa+Ko5ZnAPLXo5sU5JVlwV/60cPkOkoQ0RwdFOTucJMpnGMHURAad\ni0L2oZi601O8SHI/OE+NUCYdcYBnmgxLPqkb5B6EVZca5NFTyguW56rC/mOg\ngMp5tKYC/aUGheLlnCoyoT0TONCSvto/U4d2SIiYvnGhjZ1bEFOXWCpgwgvQ\np8KU08saGRRzzM15Ay1QkUqY9tTzziHtXq4XaN8xPtXIG8ocZEWFmxAH7Up7\nT11T6sNjqfzTBM3f7ySR4ZfMMBuE5Bce1ixFTkW/Bd33fB0tJicg3pM9Y74j\nj9PyQSMPzfLzc3BiiJ6GOmy6xYqBaELHZXnq8dNzFCI5xNCsmjN79TDUWS8L\noxH4OGqMG+zWS7mCTOF2XdY580obQRZ9N7sj6+CYtrUgOxh9Y/USOQOTVRqN\nFw4ffQUGtGHob3Ae1z26nYyRqLNsaT7DVTalBscDsm3Z9U5hAXkQKJnCh3dV\n3FgL1xPS5FPb19ZdOr5oeRqQmC7kcJpvILrqKgoiuNY7ySSEeCq8OhKXTeGy\nL02CbU7SJj0D4a+tf4JU1TLl0WmtC7kS/GtDG5gtPb4c8HMYXMbj9EOh43x8\nkwsI\r\n=vGRT\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.3":{"name":"node-red-node-ui-table","version":"0.1.3","dist":{"integrity":"sha512-3lHIk6BxX+rhQgFRNbci6/yfi5dazfcsII+3Mlt5F+/nvYVfftjuMaHeI83UTUlSLbANmReSAeJvBttjfRYHxA==","shasum":"605c92be1d48abd3e881b86545b79062a9a0f5fa","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.3.tgz","fileCount":15,"unpackedSize":1033289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdX7UtCRA9TVsSAnZWagAARHsP/207rfFAzDjZhyRolB/l\nO+lCC+Qe2UquAmi2Bw9NJFd5pZ+a+jgybuqms1ePHSvz/iIRcNiUWisoonqX\nJR1P9wFTGHW7Kk+9JtqJZHYTsxAvaKObtEuk+1TonP1fXKEkdvwlNLi1YdU7\nP1f2pvTjRtD4eiAOi5V1/dLG3Un9A3VUCCfG/HMKHDwb3Me0Iv7f7FKkozwe\ndD3GtVU7YBQsLzHnE3VigMimzP6b/wIpP7uhngmr3gZXGEWrg8zOUcwDy85p\noZm6ghCMeIgwvTDEPkwERdFI6fpvWtzSBtoGd1I+OTHSTlXmPyRg0xaCxqO4\nq8r/teuDn+0yD7GQt0uV8/5f1uC5wiP8sMW7GpOc9/AQKQR8TD8BGys8lgGN\n4lyLUpSPVEvymsYkCwe5UthuBIitmtg15t8JnxYrHrw9FTGts8UZ25ifioeE\nrArhRzfXftwg5JRI1XLLL4H7i7f4P1S9iISLViXnwbKFtHrpF1Ox1U+YpDIb\nybgbTWFtFFb2ZP1tTJ9PBojV+yoJIEkG4P72bnZTvSVAe7P+sKvcorFt7usQ\nj6QSfPEhPkwu7073pay2T+ZjJSMlqwwH1vLXd/foMSLC1pr5AX36ALew9gJD\n1IdyVhBjIxDiZ8D9/RCcru3YTCR7p8Jxs2JTS0CXkjxnfObqNcI9/eRvsfCB\neQAq\r\n=R4j4\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.4":{"name":"node-red-node-ui-table","version":"0.1.4","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-zQSVYxAqftoPKlzeMuhjOGbGeWNmnUls7GtGEJk9Krv7o4vNtH4ffmlAdZlbEq8Ih2pWiix2YYPtxf9If57ByQ==","shasum":"fb3904bc10dda95d9b30907c6ff90c3047ee0e7b","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.4.tgz","fileCount":15,"unpackedSize":1033454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddU+oCRA9TVsSAnZWagAAu7EP+wRaKomaW3YntehnpM3d\nBp2jvvzMdvYXvNAQNfIAhHWhMnFH83idduMUdF2k2n3Gym5nVyye1T2VtWzM\nFGaSsOKqTY5Yd5aBnW/+MF0/gRu0Np0MxIf9aQd8TV1qwweE8bbCjo4KoNWu\n8IWPHG0KVHxCV5DPlW23n2tdg/QNonzaXDgV8IVzD4hZTumqOqzn7SSecbV7\n3I1rze0H500BSBwdnh2mNe+rei3VXg1Rsuw/VFqn2FI/s8MeHBNDImRiJdAS\nR4NW9+aJ8xTCUjytmy6Qu635a9uHoRlreqgEtWYosMiWmjxsLzdLemmDfFrN\nVZqZNBYRc0iHrDc+gRAGjXtuqlRn5Adsnms1QbeJ/6O3awgvlfJZM9O+h/JI\nMyeaYrXtnOX99bc//qyZReRvQ1+AvE8GSZl6+duXBOx/M5g/iFObjiYsOP47\no3bzUTXxgJfnScIwrNH44IGEpzthIifeBuJoFXiKNmON2+15tRKYVCjENXRS\nZrsAl2fEp6n8LQTOxR1F9PVNIqYnChQziDkmOzNCLXfZc+OVZypPAk6Oilc1\nilgw0lR7pUPcYorjGIfjDdL4y8b3leRqHG5FklX6PrgTbIN3lNdhihgpAK6S\ni+c+HvFUcqWJrgDg0oE0Kw34qI8cCKRysDW+VNQYFrFN1IgoCYP/koHmA3IT\nVaBQ\r\n=l+B8\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.5":{"name":"node-red-node-ui-table","version":"0.1.5","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-YhkWBxUPupm8/Cozecvipk0at4gS3rq6vV7qpsWlI/GxeW/hqXL+YEW4iIQk9aXK0anZ0KT3fbzgyspWK022hQ==","shasum":"4ec68d3e672d9893c25022b264d963e5d3c03d4a","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.1.5.tgz","fileCount":15,"unpackedSize":1033459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddgO6CRA9TVsSAnZWagAAZBIP+gJp9371JCuiDU2ZYp7S\n7xPgL7RPSc6wnA38SpkoZfgTV8BVCqohMo4/i2qftuHeONJyLbpDz5dhKPhM\nrjCxkHMNKNx7k8gETI4dyFyYrKSFnetR5GCEajQM6j1Jcl1Q2UicE+tY9H0T\nwKiBszzTtwDzAZ+ZqwmPaOpH+PDFsAjR/ae1O1RmojiITDTEU1Fp6vQki21L\nbBF39TbcuIWPMjLOkvw6pu5iEFAJTv74EzJgDVh11ZKXkECcm05dkC8sZBHm\ntYSLLLYwkZJEZYqobuqG6VkI8B7VfZ5v7bq1JbwwTb2Hr6Y727QExMN0KlvF\nj9h8twXqg3wFO3tIk8P+fPvPHlIm1T246jkDffbarYy0lr3gpw/Meti2lMeN\nW4vqkq2KgpAs6Ec3rsuRCTNC18tu/lY3XWAYC+nGs5fCcaC7gkLmGB717VML\n834UpnjNYXh8q5KiY+ue2GIOLcyVvpm/5nRYX+gq6eRGXZ8OAQQPM3NgV61v\nY1+sMFCg3A1yMvgFXwueQ8PqxsXcD6F+5t9fiZxX3JhAGciz8uTmI6WJoYsq\nQgrHWydS/TyjiG0G9cpW3Cg37DeP0lGM3hvhIijf4lD0A0Iqun0C5O2DSSZg\nNfAUnwOinnCOjb0Wi5nOwQR2mUrdoyC6sNh7UwJwi1+59y49Kcf6kE5VI7mF\nvMTo\r\n=BsYB\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.1":{"name":"node-red-node-ui-table","version":"0.2.1","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-uNpd3Q2FyFe1HbQgokZwsxsf16ZkzJvhtPl3Kc59VCMUmXMynYtlZ/jSSR5dXu6orKDJR8ViXW8/GXuMyN6ByA==","shasum":"29fbfa921c7a791b9f2c0c55dab105d47141cf19","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.2.1.tgz","fileCount":17,"unpackedSize":1087623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd57XnCRA9TVsSAnZWagAAriQQAJA6q8fp2HVDj5DRDkxZ\npzHTJv4Xa8c06FMb5cqqdmh78CHNwGGNdYo6+g5XE2DEk4aj/06az4eAKuk3\n3xIEV9bZHnvuGGNhc1kmpPxVY/fEursLZMDPTR5Z7laBcOeaymLPmorO4g+9\nU6/K2Jve0tfzKU59V84NR/Dysr/fBcdfLicSAlQolzGrsKgD9d0OTKHOWKhQ\nyvx/xJkkNSnB+qI1WiaMoUxxqTvUf4wSkWqMo8R8zPPKjh4LzO9ej/Ir/tU+\n0zje/HmCic76RmqsKKj0NQ7p7iNi8Mb7MnIoMW+vG4MGKtnQ01n1Y8N577Q2\ndX1JgbY7KFedD8mtWIKWrrQDSRoTWQy6+ovt6GvZRV1iFLRQjJKHJ+iYiPZo\nt/ZgXCXeGn7YIx3sopthsCpQ/5i48LgIIW3L3tftMeYCH3wJg6G6P50a9QXR\nl9+t7WqTJ+6oS/jiYDB3jajOY1hXv34oe+fn6d9Ml3BpYhNnDUp07mdUipSY\nQI76urM5oqUHdmHPkn37x5FiUuF+/oBmQcZtHyLyVJIXQ6ycvy25g4ZC0aX4\nXayoY7dcPumrEh2701E0EiirfA3f4GOMmtzQn6b3rhoX+ge1J+pSfkB/xDOQ\nYkZOSJcmj8Jf9ddSqmUKPx1PPxDjQBCKBId+W68mnD6AbHYcE+Umm6eySWuC\nGEto\r\n=BqHz\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.2":{"name":"node-red-node-ui-table","version":"0.2.2","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-CgmztlvyO/ssOecxHJ90Z1JoY44BCDPyVKyRVviq3fYDBNyGLjZJ4YJ9EZGBE3HtWrFN+zBCzCkjna20C6CWAw==","shasum":"53676eca0d69c780c0c2d7ac7e1b1677d69bc1e6","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.2.2.tgz","fileCount":17,"unpackedSize":1087598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTBjjCRA9TVsSAnZWagAAVy4QAI4Z1pq3VB46/WdiG+8x\np9ejSEGJF3EzkwQ0In+K+UpTma+SuDsRZE2pLnIcJ8AhGUMnpgXnaAuRCZAe\nbsDrByGvHQGi+kU0YmTVv3PyPbL8RSj3yzaiOzMWdIpgx03kx+S9CgI0j6c3\naERZqdTtNnsaXWyBvBce+neES6wgXvXHroA2ezfgepBb4RHHZaWVqMJ/C58i\nC0L7d2pUePWmxdZctNJi4pMCtqWgWHtCvdL+QTRL5GoXEq86MIVaWp7TDL//\n8opQThsaPZrTjD4LTC+yFRR72nCy2VAsmw64GvU+wWyAlBQJnq/T2X69tDWE\nSla3Pq9fQcZXFSLKO0YcHpjbYguYRu9+wxsKNfmHr1lKUgQ38hWqkQXHV+av\nf9ak2LAGGHBgAfqZ+F1YSIX5RGnOAI0VwgbXOrVWjdTJNWYMK60pQBi6ZjsJ\nP3Jb5pBaZ2/PX1K615TFj2kSMdqRbZZS2ODbh7nL2fAgyw1LQ+6xvxMLc1Pu\nF+ZQm6fGhNNaLMDtc1pJq11w4vRdwdAl9mx/mEqQ5wNWiEQI0/zKnQy4avlL\ndca8gfeTzVkgc9Hw8LDFws1rclWEh24oRF1wb0F3y5lWCGsTAJXMTyPLbu1C\n7YxqWDBxY+EpCTfbagtCXM0qvHk9Too9YmxljhUJxh0FI57vxfUPKlRJ73kt\nmOX3\r\n=28X+\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.0":{"name":"node-red-node-ui-table","version":"0.3.0","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-F4Fgr5FtLVwP6UCwNAhJuInUKWpzpDqUdpbRhFWlC1aJQ//GAtgR3aHVVBKMk9eU8M8Scqw7laI/kAQ8LfdViA==","shasum":"8e19f3e68961cd8df0b73584197336d7da3b57ac","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.0.tgz","fileCount":18,"unpackedSize":1124624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWTj8CRA9TVsSAnZWagAAmU0P/A/LgMG0ni8PAgVNvFxN\na11T6z0vTi+gxj1CRGCjHqSYZVcTTO7WqA4o4N7zLKBCJ9j1KKc1udG4LAY0\n6vBRiUu+L7SVcpRYXgfjlvWeVZ4Ak1JpuB48q9G3oM7qwJnK1DVEYisaM5QA\nCHLngbT5DC5/AwQkZKr9BUI73d2AVm3Xs0m5zD4JFhWQwYwaZuKnnRAQwffQ\njsgaKg1fNDkc5ePSRgSzKh2dFp+XV/hnFQkgWzwkHf6+BYW44CqNa9BGO/Be\nxYNwQeI1553mH0YSgmD3c3EhHdGuPm+rhIugsnis465SbwTqzzYpcasKVEsa\n8+mIT5+TV/PgeDRtlrbmRjntATZA/sKWdg2GAo+dqjoESaXlugTD8+z48BQB\n3kaGZtYIxrivIQfU1ZUOHzo4fj6UPwVeToVS3g5R/d7sEt57LD8fCTeZRiqZ\n/cElTPVRTfSkJG25WShsCCpe/iuQEVKgKCuJXfjVjCFb3dI3rE9Yxso5eQLz\nWaly/fDTWOPjgg0AkqhwIpKpjqK8EyOnqDLxVBakgQxjSgzyvKBvbddn75zI\n4jWLtE6/0d42TfsvTWvmFQ2lW8G5ccXxXjJ2aYAREsJzpoKF5XKq0ThpR9Z7\njNwhwNZ1XD/R96IL+NeC8jFWlqzGab4BNnKbuC5My7A0FOYjUU7rj6q/tWce\nN+T+\r\n=RJmh\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.1":{"name":"node-red-node-ui-table","version":"0.3.1","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-4fq5VnqIstPicTt5yhtwEVqKRvlshHh5H4vglsX4qkYeOzm7wkE/RhRy6avMG9Znb6IQKWsaz1Y9lv0Yvvnruw==","shasum":"a7dd897d245040cab8564ec31499c380f8fcfce3","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.1.tgz","fileCount":19,"unpackedSize":1131988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecy8rCRA9TVsSAnZWagAAIdQP/17Xwq1gdJ9v1+Szbg4J\nczQKvBvyZOp9qk1uwTR50YfS3kwUv1rUuNT7jzujCTZEmD09W6vuYPAQNQcw\nK5ECCGptKl0yrQhYcptgNbGPSD03FRHlN5qaNTnVAnfW/8H4IZ+rTfhTltjw\nKxzOVgY8Fj4IIIOyLUZMzYfBpqVAYZ6BAE/2MibsLHC53mu6q1NK09Dq9cKZ\n2UlDAWJVH0+z0FFvMUi0y5dxbSF7ahVXRB1qmqh8BMmOrcDu4oWZuI03zpfY\nsYK8aq1UoH4Lxcr40uxkozr/SYY05YiRHkdvP7t7/CtQSdHA6vagGtAsvtuM\noai+8Qr/a6f1v5OxoeawY8vDA3s041dZbQgRKtU93q8JKAN1rnKQb+VD/q0w\nIWvhNbo6QAwufZz9vMZc5mBqOno7wNgvXPLjCCJHku1isBU7KgezSxToa7Rf\nKVIWGb6aQvj8bGYhG1XScHem9OUlwZ2Lb+/fLLjznwvkKy+PBhkMYASD2ica\n83qqyBd2pRVC9VoDFr1V19v1zOKOWJoLGdv80u4vNFXzrUplC8rChQ4zmFQw\nTgRX1JKPZBweMLrj03qtPbe/N4aF8YsEWBTYTo9vv4fd3Zqh4A5vOJEEiwIq\nxQk/zHAn2/9VmWavHCpIwwIOLCFljvX7Rq/UYl+OHrerOwkipmdeQjgN0NxU\naoRP\r\n=c8wq\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.2":{"name":"node-red-node-ui-table","version":"0.3.2","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-qhCavYHy0/7BMGAW63h7SMRgjHLPOJQwURcUmFLU6RVnkb1rPWqXaxLyYga+AKv8mkTEMb++1l5Km+t/PoUPqA==","shasum":"009125c4bd27b1095639bca34709235ca8eeaa13","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.2.tgz","fileCount":20,"unpackedSize":1149150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEXPDCRA9TVsSAnZWagAAGzQQAIrumex+DRja3+tpv7vl\nKv5oN3l458itxobc/CAW7E9mqWqhqecsY3WsxNviPqp5npbEeX9MMXh8YkWY\na6W00A7LAoAXuYK/fBA0UkAC1oC/rcZmro0m+R8TTTgiVrRXL4d6ACc/Ajh7\nHFi+87VW+c0px+5VAhZFJuTY2nVEbr7xBtVyquOrfmObCfbvHm51H+Q0N9j4\n/+CFZ4ZjJ4MD2renWx7ar9B+oFkHu8ftzQcni0KWWshyZ16mrdckunhkleBV\n4qBPVjXha5dDJCg7tGZlW4Ew9XtV/2Loh8x8HBzba/CFq+WJnv/z/RWtbL9R\nNplg6vor3/+FxfZpRto9xVLKpwxsV+NAM7TktVSJJBXznPkqgX7pyDRUJZEG\nI1kGRAlBd7SS/WLmf0XaHQPtQC4USM622R961o5y5WlvmiagsvzAjepaR79Z\nk+qTT0FfSbK7pu8kkFesF+39yGaNC74e/XsYBcvp/7//IX9trcLmHU7I9gmK\nYROal+uqGyhNjAfSKVSNEpqIOvo6uoXawX3lmKsMBeijRkqlesJiLYz/vQH5\nxPQeuz+D3z5dEM0RpCpJ3HeybrTbkuzNzEH+vngzxJD/tgZk3f47ZCHnHOWW\n3EaxvKSTOIx5x0z/jt4dGnEbHa0kChBsKheuOVGSL+fdJoapkvYciuipjNDp\n4xah\r\n=dppV\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.3":{"name":"node-red-node-ui-table","version":"0.3.3","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-2EOMjw8waMpb1xrZrS5cL6XyfmlA704+o7Pzar4ZaHS0m3XrUpwI30XMJEyqm0PzhQdSPyVrcqU5Dg8ot4jVOw==","shasum":"d231217ad5302652b32011addfdeaceda8478b56","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.3.tgz","fileCount":21,"unpackedSize":1180816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFIG8CRA9TVsSAnZWagAAcFkP/0FISI7qVECNO9HfyixF\nr4KsnnbDtq9Is6nCaCU3o/1HHC2vBdFGJydGz6YLztSri+DpZc9jZIL8uswA\nVQgW6sbNTwq1Nk28L0+1xonUE+IeFgtU+3PgqmausPwiruXKADb84vkCXTsK\nD6oXhP+bWhLtaU8f195TCpnt2cSwKyLYeJQUt5TaVbgpLDYtMEBaQqnAwD1g\nLa7qAG0dqRmPZmgerhQbRqvWz+5jCm3n0gma5yghthgtjJjW1sBWsEDOjCY0\nKDAXdP0gmXEeg/jHvBTF4SDj0gxJO/CS398iKOXxCRO0UsT3ToamJcK4pxrQ\n+FvEOCb5Lw3MNH+Wm2xRWU32YUM5oyNZ5vy00YJN0SfbJqs7Iw7qKzCvKqQ0\nznkNaGBf1qPMamSmiVrJ4qYoEVqNpGkYQLIeTEpPfq/pS1Th90iT593jSnzB\nXbkChqHLHMOek4EDKnoZ641KQDZpVgJLxbjc5mqErlZ3FP55YFfCDmTYttn/\nM2ePa/pXcuDelbk6CT/HDveao+GxG2AiyLQmce3jSelq/wn52gUVF9Gq6+gj\nAJPUkp3yd5WedkSx07BbIqFd9oYBl+SO3H83czo+YVmNb79+JS564KzSvB9E\nH8HvFneSLwWA20gkywJQTSAxu6VNeaarYHY+mtKOihjEamqJAC11QXwdEbww\nDMTk\r\n=DO0/\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.4":{"name":"node-red-node-ui-table","version":"0.3.4","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-pjasSV5n6H8JzVjuJhX/nmAomiWiyjSjRENbEujxXUqCS6We+ceRTnBgWQqP8CxJTpaDve3y7FTFYKOauZyyHQ==","shasum":"71ef88ffe72f74092980eeadbada22d4becc6ba7","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.4.tgz","fileCount":21,"unpackedSize":1180885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHgPhCRA9TVsSAnZWagAAeLEQAJ/kpVEp9UzMveSSMcLv\nDngySdFb0e/OIx/phLh3TjToqX6euDd63/DQV0+OlxrXJAucDYaQ8X49Ntm5\nZKVypk5TlTWLTZuaRYeTs5VaRQdJLgicAsj9HI/LFbcVAPibpZISxS719Cgq\n4lkim//9psxmW4HcNLNd5AdnD+ERdeOHzUjFfnHgiv/09wVZZL4Tz18JBbhJ\nAWydzF8s+uZbPEjZjbVggr4mvcg97GkCbAqKxrn66pOOmR8xMEkOlYCG8lS+\n6t/P0aVbkQb4eJUC5MbNJQY4VZGND5LXyqYjMJK8bAvwtbpdaZkjJ+yHl++R\ndkdWu5RDak8P4OV+zfyt+ZH9t3ZEUmteWoWapaWH8064veJk0xQHKbWIlGgp\njnNR8Y3EsQU54wNUUYISDWGXrrOG66hPNlMgJd0QuxIUg0XDFRIHdXsCCsBd\n/urBzSpEA6EEIKH/gVUIPZqAvgVx6itbakYQAbOozDwhJVS1h0xpwIr47NPS\nVOrRFDPNwr5mfUImVpqmfDPlvuprgcD3asPILU4fd9/+pTblUgPUAWuJn5ch\nwdZWunNx6SJxrU6gxQ36rPPRy1dELupeELap1qtr52xnr+CNQTTCC2GJEf8/\nhuTg/ansLzT5Tx3VYTzYcb46vQM2bSwD//+O2WiXzT1R/zpv+Pz7dZQIkkD4\nSVEY\r\n=fWdu\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.5":{"name":"node-red-node-ui-table","version":"0.3.5","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-QJDL1hYVDMfAjBB4XtSoGHlEzGBJm10eLlnyq+Mm/HUb8HmEIChF7AKep0sk2jUu4A+nmPAZkPt9M1T0eENRdA==","shasum":"8d2123872d29cb473ec8f11c14ec683883eb17da","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.5.tgz","fileCount":21,"unpackedSize":1180879,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVq9HCRA9TVsSAnZWagAAAnEP/15AaakrbpewF8ZsTZb/\n19fJPQbuCMzPm82deb1G9GsFx2yxTOmBCvp6RSj/PK9I871GIKMLH9VdEVZx\nMIL7KTC0wPor8WOUWZ7AC8B4EPFxw496A10YgxpDBgPM9g2wdVeItwh4NM1q\nB0z28oC3q04u+ZGBi7N7wlw9ZidpqxYOBls0vAabmieAGjcy2dQz/KJ1WoHq\nqgvZw+uxtCMvLOpyvpWfUX1b5w4sV28Yay5dyunv7Z7nYZW7gCg/FhDTAe9J\n6AFGOPrA4f9WJGmVd/6FM0Q7wxyvMPKYqmG8A3GDYOWqUaIRzrr1XZsyJPFu\nKNGqbBaqUPxBp1/mAZWv8KMR2VcAKWOSWtJ9gTvN4u276rOnM7ZFwfDgalUu\n40QIIcviUz6ICrIUCbuFlUGOTWzGfRJFU6/SKxYQfSb7Q5M8PDwbtoc0Bn1e\npZQPY6x7GrhtndyGZqiyz1wVf1aEHk2g0pyxWoJz+tH2Ioo9bcr3GmIUz6Ff\niOANJnPerUetjOBbyu8CFdxSjHE63NAQJjZioe9xsl2q9dlzglL3TXqXlvcE\nvusJ9srhFt5GnLSluF3/dh5kqOMJaYV8PEzSkv/Sg/i3HyGhO56bHS1PSsOd\n3fszzkUc5t4G73vdRRlJV//HyRYy0uuEmjYyoIPAj4w9pDMRqFDT0vvL13YH\n1dyM\r\n=f1gw\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.6":{"name":"node-red-node-ui-table","version":"0.3.6","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-R/bnmpr/lyQjM4IzaLDMb7ZuKtL/bbUDBK5gMvdhjKCZYF64mDKLblhrjGH7xLFkh+4ltTX8wB/LoTvMLggeqg==","shasum":"341badef28a7ffaa6ca4c75b49012d40ab350af6","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.6.tgz","fileCount":21,"unpackedSize":1181558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiCr+CRA9TVsSAnZWagAAYWEQAJ1SWw+0qEW0rYDGUHNl\nW1cu6xlfYAs79Lwcnc1X+yTaPMrTxKQ0XVeXFE5VXHyNgV0eq4Bb9e5Pw1iL\n1+MSuv0q/fzl8jwXiROwumDPAsA1wiGWPk/k4uVbxWjouf2jsg1cx1Vw+JbN\nnyEyB65n+64NFqf5AxrguAeCq5QcP9Tk1uoaVEhy3qaXy7tz3tFL61MvhDEn\ny0STeP7A5lUmqVWgnTigTUI72DmaaJyNN6cID5xuxM/BPZASALELSArYybV0\nSz1iCn6aUWrMrGL7vJ5ub5Wf9pmZeULPn9KMbK8PSie1dJ90n1WoUzetQeYl\nkEuEwGrdHotjtgwDg1gjtxnv+j9PHLPoX9jMyFCxzDNHzqkcQPCMYgClD1yD\nnwTcSZmBMdF0oWUXF7Ciyh6p9eYmno6vOdOA7LsK7+4H8RjPBkeNdhsex7Ok\nLrULTIRs6wxbwPN1M9RKI7GUNpjPc1GYkgHluLLZ9MMixhwa+E0dOLv7SoLH\nQuN+OPcpbJVe8HY/gznGwe3yVIxiEUgjiVArIEp9kyC+/ego8M8zJEewzxps\n34af2Wnu8YXJC+AbhTv5RlfN7Z2Z9RVCwlyf7nvhxq6U2sJDDy7B18AFlsKq\nFg+cenwZ5jyLIYuv8KGiBSypxWwbSk0NcdGsCXiVra94h7YuqTHLjE4JEezU\nswon\r\n=+6e5\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.7":{"name":"node-red-node-ui-table","version":"0.3.7","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-sZzn21cq/LR8TjbqLeXqDept/JoUX1Jh/xHbt3sWmXlh7mG3ESOQNOKnPt3I7rpEUITp3o71DpWNAHntc8OcXg==","shasum":"8ae91a0b5360d9d1a5031563721a3d1998950f67","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.7.tgz","fileCount":21,"unpackedSize":1181493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnDjjCRA9TVsSAnZWagAAZPYP+wacKBDiR+EVEaUMcTAf\nPHaQAeXyeMpRQ66ij7xGJNehHD5vHIa9tdyXf3FXG4vi7h9PSiMstpZeZV0d\n8uxbKlO8+AXfI885BKv+0dib4oJHTgx8kY7HQUH6jo2RTRjpo5rcVIcYPdxH\nk5sr9SKPqLpeagaz/8+uQXHy0KLsGphXd4ksI+/06WYBnYakkhvaUBZvDpnd\nxux5v7nAjYdEnrRoveY0967yl+jO/0jN1EOe5EmV4rhE2Bfo6n2/fcCjq0i7\n1+oMby8VSWl3bBCVdXZl+AQ+Fn85Il835FS+RwUrfyiOQeIWbRolXtW8LvUS\n4+bGIccklaFeJwyUG0CJ22y4zg6AqRy05npTWgrH+eCPoReApDZ6nrVcxZMW\nEyMCXn8QVDokKPhh7H6lfal3o9W+wwBz+CZFNn0K+aET4TQ3mM9Ah5cTij0F\nnhe3nEOK1UHU1LbkXa/GQK5Z3Il3wx0BusZAepBh39W3lDLrFjSFQS7b1NgE\n7W1dN3Rw/OoI1AXRCPP4OHpIB32pd882Pwg0KF07t5bBMkMqINF8jS6UZfzS\nv5/jCd7AQtaQBJmyOiqOd6yPDYjWH5iJ9Oc3z1zR/P9StnJFR6tS3imh+A4t\ndl7QZyOAJozAUWPfNJmA/dWYpfQekSYG5zYoQ9EP2WfAprSp02WZlyrLBs6/\nIdxU\r\n=KY/I\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.8":{"name":"node-red-node-ui-table","version":"0.3.8","peerDependencies":{"node-red-dashboard":">2.15.0"},"dist":{"integrity":"sha512-MulaUramrQ+aUJFYYYW9CzXV6+0vy7gZYNUOCB6gVAdQBdRAlutE6xIQbNy59JuRdZ9ZH01jDy7t93LP8LYy5A==","shasum":"42bab3db11cd0bd3aec71d3ceae39e5d4caa9271","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.8.tgz","fileCount":21,"unpackedSize":1181640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftFlxCRA9TVsSAnZWagAANHgQAJ9lBZ8e3PyveHWorfyC\n30CuCUC5JE9EYLobzkLnwSawQRVY9fPPi4K85EBCi5acQHP0DXXbz8vQ7kAA\nwTNMKY45U85SieI6OGMI/TdhuUrjWUAiuI3mITrgrCB1QfUjKzKX1UjQ8OGf\nrwBz7y6ENReMxizSQZGH96398mg7wWv2Eo5ffmvt8zyCpczge92aov18LXZ2\nvaqTrU+mQEKxmHnyl5jTG0xg1He2Rs0SiJvrehIQEW14+pChMyxrukoRPxnQ\n8xjs5N/U6oP6OZy8VD55ETVRpOAlFa49M9d3rHnjCzB1CVAXRNABKK9ndpa1\nPa87M/eQhmR2xRstS10cUqkyFT0TWeOArfjJJ4Plrst15oDZS7rSHQEoLPzR\nwtmbAomZZrBMGSKjeB/grqFdm1f5EJq1mNYGKBz2hXzAEovMS43Y+2SixZiY\nxFjsr8HTYxEmqjTlDDfXLQe3lFEDPxivMRk/K2mAPBGWuM8AdGt9hZsnZhUc\nyWyPa8yiAVw1jvCJgrPbucGoyPMPKSyeDqs03PAWpqkAiNQBqQt1ADq4hsIe\n81lzOEsVTB2MOLHDm6V5HNwliYh6vQvFG5UefDCmX8AMdLYE9QlCRZMoGoo6\netDrrkqEsAaaZX6cYG2fvsyFDI4bgpKtZSpR9qYLtiw7WrOltwz/v7k9orgi\nrXRF\r\n=0LDk\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.10":{"name":"node-red-node-ui-table","version":"0.3.10","peerDependencies":{"node-red-dashboard":">2.16.0"},"dist":{"integrity":"sha512-2orp2iv52l54jhi3IPU205x7IY4gf33qdIeQ0ZlBeLYz8aWQbyb6iKUUPLVEkq+PmVfON7MZd/GxCHYrx/M2QA==","shasum":"7ec63a380143c2184e2ba4824260650c089bcb4a","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.10.tgz","fileCount":21,"unpackedSize":1181724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfygU2CRA9TVsSAnZWagAAQFgP/ih/1T1Ah+N1LZhCTRbH\n4eubfKOeZdhdCtrBxIqQh7Ijvo/OPSZ5BlaP7N3tUldb721vZD/z3gEAJciR\ngIKEUhg/KjKNo8IxbGcduRHkhzNhVuKnJZ146HZ8wLMPFwXyIimsZWYv6Ntx\n82zyRcmO2TG9H7HsIHh0Ym2qrxgqekYFJ7pFEhs57aLlBg8geK1XY2DHDW6L\ngms9yYOB4qXjtAlrHb2U8crytpeHu6oSr4/J6yxIjdoystIOw+tlpFvmMsZv\nF4HG6fWxzypG7XYkpgmA5/UEMVaDbp/XYBQt9S9SwodUtR1sgUNS9g76vOeb\n4monC3LuhVqqYk8hYoxOOZtz9AXNeEFqv1VJNmAFF/xxQ1r2jBM7gMsOorGd\n35EM/QNN+hjSKDvFNUqdDfxF5nj0tPdvHrjhQlNntpRpjTZKwhoYakaA8oaq\nx4Y02R4acOiKGlJMq9IpqrG8BB4euwjKl42j3T4u/lheoNMuUG8oxut2qOCD\nXF8H8BTHG5ZLLo7BwRQo40X/gLxUnxuvMCM6EggJ2PAn7LMInZBOfucgaHH0\nFCUaB9jlqIm9MAaQuS2g0Tw/S3oHdTDOHDURRNvW/TfIYy33eWkxzFbo1Rp7\n52u0gYU8F5RRIAt40w1rhfPVLHIyxlTNzfysxZdxBSKvbdHOkZ8q3edFQ4v9\n3Map\r\n=rhbu\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.11":{"name":"node-red-node-ui-table","version":"0.3.11","peerDependencies":{"node-red-dashboard":">2.16.0"},"dist":{"integrity":"sha512-I9WqrlHG/QZN0LVaomZNwu2vXj/2D6yvsifT8+sbHzofzQDviqEO9dEKEE2RRf6HL7bYpYKlHlx78m5r2fwksg==","shasum":"7b66ebbc4dcddd92c31e757b73b356fedcba421f","tarball":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz","fileCount":22,"unpackedSize":1195894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5qnLCRA9TVsSAnZWagAAFj0P/1/LVAXgsUMBVJlA47Y9\nTVhtOYeWSYgTnleEFWmssNtQYRejeuzZ+VXt6aHP/IZeF6+8wRM4A+z5WZjU\nT0c4+ZosP30wjx+aSxP2ns6PuwcXOKvxZ4aL1XOosjyu4eUBICcKTHnVHcQP\nZj4/Fa/YG5dk4+UkzTXoExHjYF0g2DZBOxWhuQYQaVOSF8NkvvJ2x43SI5zL\nvwIsOGBno/8xY6Fz72aQdGz6CFVMb+XOXKuZQVL1vaJJZns3A6nQuHYuaSz7\nj5SkqL/s31VWaBXr+Kofn9vTgUf195tZRcNraW1kyHWQBx59VKTjfKsbxyaG\nR4DTMIGzQW7v8wu/uL9RdP3Tgb253rGe4H1LHZWdgQtKeLxzass0+3DExYpv\nc0irjZwpIqzCIjaIJSMctGFpx2dWnI8PWQssY/jNKWE3776LNSiruBZa2Jv4\nSe5pH9yzmLHUbs30ViP9TkpExclxKYPXy9D3qvUYOELO+1mSMi0I7scPOGyR\nIq1d1UgUUkH6c5kwvq0C+CVV8+LOVGofL90mP/A3xLCoDgjmSGzC8vqfpKs/\nKIVxtNau9Kkizt51HABXjFZkhjK6weqX3haQu0eS/3ncAu6pkfOk3VV+hH6+\nvqOQfqPrsvbNrLtCsZuQtvOBc6Brh1oSoWl61FLfWtCSV95iFh8HJ7GL85+d\n75/f\r\n=WLRg\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-07-08T07:31:25.290Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/65/34/d7d0c5abb10d9902103571e8c0c032f2705b1dec8ee756d9e44f73a5d1aaa875a296fb4093643435b81bf9c21a6d0a773c7bc1de45127146cd249a6fd07f b/data_node_red/.npm/_cacache/content-v2/sha512/65/34/d7d0c5abb10d9902103571e8c0c032f2705b1dec8ee756d9e44f73a5d1aaa875a296fb4093643435b81bf9c21a6d0a773c7bc1de45127146cd249a6fd07f new file mode 100644 index 0000000..70058b4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/65/34/d7d0c5abb10d9902103571e8c0c032f2705b1dec8ee756d9e44f73a5d1aaa875a296fb4093643435b81bf9c21a6d0a773c7bc1de45127146cd249a6fd07f differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/67/0a/c5906271511dc42285ed3bec9513af446fb2a58b16da78059f05007dbd5b0d9ffa3e630ebd8015924832bcdb985035d37ec05f3310b7f7745365fe4c6450 b/data_node_red/.npm/_cacache/content-v2/sha512/67/0a/c5906271511dc42285ed3bec9513af446fb2a58b16da78059f05007dbd5b0d9ffa3e630ebd8015924832bcdb985035d37ec05f3310b7f7745365fe4c6450 new file mode 100644 index 0000000..7956cec Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/67/0a/c5906271511dc42285ed3bec9513af446fb2a58b16da78059f05007dbd5b0d9ffa3e630ebd8015924832bcdb985035d37ec05f3310b7f7745365fe4c6450 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/6a/7b/2f2ec8d34481a9400c351e85cad30f00d36d71f89a2766e2c9285290f5d3bef758a2e84d79de7dc5aa5bb32e23b39304efe55d2c734b2843b51f3e6af144 b/data_node_red/.npm/_cacache/content-v2/sha512/6a/7b/2f2ec8d34481a9400c351e85cad30f00d36d71f89a2766e2c9285290f5d3bef758a2e84d79de7dc5aa5bb32e23b39304efe55d2c734b2843b51f3e6af144 new file mode 100644 index 0000000..823233f --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/6a/7b/2f2ec8d34481a9400c351e85cad30f00d36d71f89a2766e2c9285290f5d3bef758a2e84d79de7dc5aa5bb32e23b39304efe55d2c734b2843b51f3e6af144 @@ -0,0 +1 @@ +{"name":"indexof","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"indexof","version":"0.0.1","dist":{"shasum":"82dc336d232b9062179d05ab3293a66059fd435d","tarball":"https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"}}},"modified":"2015-02-15T11:58:00.609Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/6c/2e/c496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730 b/data_node_red/.npm/_cacache/content-v2/sha512/6c/2e/c496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730 new file mode 100644 index 0000000..08520d4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/6c/2e/c496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/6e/72/7299606b5d8d87fd3bd969e9accfcc76ac31b686521fa1e00a899e77a59bfcd7654392f18c683a6d05629fefa550c6ffed8c5665d5c8f1eeda42514e3bf2 b/data_node_red/.npm/_cacache/content-v2/sha512/6e/72/7299606b5d8d87fd3bd969e9accfcc76ac31b686521fa1e00a899e77a59bfcd7654392f18c683a6d05629fefa550c6ffed8c5665d5c8f1eeda42514e3bf2 new file mode 100644 index 0000000..c94bd37 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/6e/72/7299606b5d8d87fd3bd969e9accfcc76ac31b686521fa1e00a899e77a59bfcd7654392f18c683a6d05629fefa550c6ffed8c5665d5c8f1eeda42514e3bf2 @@ -0,0 +1 @@ +{"name":"arraybuffer.slice","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"arraybuffer.slice","version":"0.0.1","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"b0fc16e318f525ff490b56c670dfb61fab53ee21","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.1.tgz"}},"0.0.2":{"name":"arraybuffer.slice","version":"0.0.2","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"42889220f34007a4d4d11c8003133fe7f2fba300","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.2.tgz"}},"0.0.3":{"name":"arraybuffer.slice","version":"0.0.3","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"36f7ebb034d27c3e64f722dc56c873a61ffb78a7","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.3.tgz"}},"0.0.4":{"name":"arraybuffer.slice","version":"0.0.4","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"4c5a32a73d6189826b1f95fb89982a09e800fce4","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.4.tgz"}},"0.0.5":{"name":"arraybuffer.slice","version":"0.0.5","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"2ea64f5da2dc45996ccf5bf690369d23ef9f25b2","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.5.tgz"}},"0.0.6":{"name":"arraybuffer.slice","version":"0.0.6","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"shasum":"f33b2159f0532a3f3107a272c0ccfbd1ad2979ca","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz"}},"0.0.7":{"name":"arraybuffer.slice","version":"0.0.7","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"dist":{"integrity":"sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==","shasum":"3bbc4275dd584cc1b10809b89d4e8b63a69e7675","tarball":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz"}}},"modified":"2017-08-29T09:20:07.781Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/75/c8/ecd443f30df3de558bb96254ce6459aaf89b01a35de866bc07280f8e6b735879e8f0941f00613a25c33257426f3b858c83cfa23ad1419a95c9ebbb0b56ab b/data_node_red/.npm/_cacache/content-v2/sha512/75/c8/ecd443f30df3de558bb96254ce6459aaf89b01a35de866bc07280f8e6b735879e8f0941f00613a25c33257426f3b858c83cfa23ad1419a95c9ebbb0b56ab new file mode 100644 index 0000000..7631d0d --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/75/c8/ecd443f30df3de558bb96254ce6459aaf89b01a35de866bc07280f8e6b735879e8f0941f00613a25c33257426f3b858c83cfa23ad1419a95c9ebbb0b56ab @@ -0,0 +1 @@ +{"name":"parseuri","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"parseuri","version":"0.0.1","bin":{"parseuri":"./bin/parseuri"},"dist":{"shasum":"1f76aaa4a04cc927f872da463608fc12108eb9be","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.1.tgz"}},"0.0.2":{"name":"parseuri","version":"0.0.2","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"db41878f2d6964718be870b3140973d8093be156","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz"}},"0.0.3":{"name":"parseuri","version":"0.0.3","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"28d442d488a8e218194f535f5040f451d4282b32","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.3.tgz"}},"0.0.4":{"name":"parseuri","version":"0.0.4","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"806582a39887e1ea18dd5e2fe0e01902268e9350","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz"}},"0.0.5":{"name":"parseuri","version":"0.0.5","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1","better-assert":"1.0.0"},"dist":{"shasum":"80204a50d4dbb779bfdc6ebe2778d90e4bce320a","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz"}},"0.0.6":{"name":"parseuri","version":"0.0.6","devDependencies":{"better-assert":"~1.0.0","mocha":"1.17.1","expect.js":"^0.3.1"},"dist":{"integrity":"sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==","shasum":"e1496e829e3ac2ff47f39a4dd044b32823c4a25a","tarball":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz","fileCount":7,"unpackedSize":5914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgk76CRA9TVsSAnZWagAAnH8QAKKlQVaYBSSLcgxCzG/I\nlaiQ7vIoQpIcdSvIzTmmzzyy6szz8uzSa/Ad/Shxbf96kAhWAmYjNtELFCrx\nGs4VEtCw1wz007GsNGu//DUGXmADC7x8J13VJh5tVX9u+N5/8cYjP7MVHBIY\nkcvzlKi5omUW81w0tOe0lGxhs6/Dg31rKdTkmB0LTMPArLbutrEHIxLekc4S\n1LdLfIetpBVK8ZqOS34OLPjAThkH4MiOxrNwoQRR1uQtvxza3zuJ9BvugKRr\n0g6kulpYrx54XxxTJx/APgq4ve3U690Y1y9aQ5XnEqTaLR/X+jMpp2r/bY1r\n4Guv1EsfqmztHcRWXGQ0p/YUJ6eLsmufkGLoUsbnFoT6AnjC13Mao588lk9L\nMWlLjTTGkgfZmY9x92NPnRaBiC8VM0Yv7/mvFIKno9BfSIS1m7++KrgreUls\npFP6uX6QsYlqPaFfrhPqZ91Jh0sXvhqDLvwYugk0EquBCu9LRyFkoICbh7rE\nmOf1r0LGmihHLhDNNcHc0ZRI7n0eUcQfgsmAxjMgW7hKY4MB7vA/mQe+eT7m\nNQ4oqcGj6G1cur5CjlMG0RfVUyxv5x73JbO0I/OMJsssS2qk/tGhJxcV8XrJ\ns2zUYj7Xnux5p2CJo+YrjHuP31Ux28RjzCN98J3VwbJt7TfytR35r1xJ5w/c\nDLdD\r\n=J2vk\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-09-18T15:36:28.705Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/7a/34/3f940c678f8c2ab2d41495bc4c4301e23b2746496e5c57b577d4189a69829c88787bc0d5a44b33b8a0ce4b08535a6ac74d6968ff4670796c5f3767c0d57f b/data_node_red/.npm/_cacache/content-v2/sha512/7a/34/3f940c678f8c2ab2d41495bc4c4301e23b2746496e5c57b577d4189a69829c88787bc0d5a44b33b8a0ce4b08535a6ac74d6968ff4670796c5f3767c0d57f new file mode 100644 index 0000000..c6fec44 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/7a/34/3f940c678f8c2ab2d41495bc4c4301e23b2746496e5c57b577d4189a69829c88787bc0d5a44b33b8a0ce4b08535a6ac74d6968ff4670796c5f3767c0d57f @@ -0,0 +1 @@ +{"name":"util-deprecate","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"util-deprecate","version":"1.0.0","dist":{"shasum":"3007af012c140eae26de05576ec22785cac3abf2","tarball":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.0.tgz"}},"1.0.1":{"name":"util-deprecate","version":"1.0.1","dist":{"shasum":"3556a3d13c4c6aa7983d7e2425478197199b7881","tarball":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz"}},"1.0.2":{"name":"util-deprecate","version":"1.0.2","dist":{"shasum":"450d4dc9fa70de732762fbd2d4a28981419a0ccf","tarball":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"}}},"modified":"2017-06-14T14:28:22.197Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/81/8e/99ad233d3e33ab287123933c59162cdda21c75a959bff1f0552b2bf552fefc4c6b2c3cb5ce46726672051b5f66b64b9fa9e59684b8961d3fd8e250115f9a b/data_node_red/.npm/_cacache/content-v2/sha512/81/8e/99ad233d3e33ab287123933c59162cdda21c75a959bff1f0552b2bf552fefc4c6b2c3cb5ce46726672051b5f66b64b9fa9e59684b8961d3fd8e250115f9a new file mode 100644 index 0000000..21e31eb --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/81/8e/99ad233d3e33ab287123933c59162cdda21c75a959bff1f0552b2bf552fefc4c6b2c3cb5ce46726672051b5f66b64b9fa9e59684b8961d3fd8e250115f9a @@ -0,0 +1 @@ +{"name":"setprototypeof","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"setprototypeof","version":"1.0.0","dist":{"shasum":"d5fafca01e1174d0079bd1bf881f09c8a339794c","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.0.tgz"}},"1.0.1":{"name":"setprototypeof","version":"1.0.1","dist":{"shasum":"52009b27888c4dc48f591949c0a8275834c1ca7e","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz"}},"1.0.2":{"name":"setprototypeof","version":"1.0.2","dist":{"shasum":"81a552141ec104b88e89ce383103ad5c66564d08","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz"}},"1.0.3":{"name":"setprototypeof","version":"1.0.3","dist":{"shasum":"66567e37043eeb4f04d91bd658c0cbefb55b8e04","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz"}},"1.1.0":{"name":"setprototypeof","version":"1.1.0","dist":{"integrity":"sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==","shasum":"d0bd85536887b6fe7c0d818cb962d9d91c54e656","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"}},"1.1.1":{"name":"setprototypeof","version":"1.1.1","devDependencies":{"mocha":"^5.2.0","standard":"^12.0.1"},"dist":{"integrity":"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==","shasum":"7e95acb24aa92f5885e0abef5ba131330d4ae683","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","fileCount":6,"unpackedSize":3913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcL6RHCRA9TVsSAnZWagAAwAwP/jcFCYLz/VPbvfeDih6A\nVTjvUfj2y2nNpkvBpHAaW5cX6Z44slEj3kRvaT7zcqaff1WAiZC5hFkxHn0X\nrRHcXffC2cSyNJ9AOSkTZG+H8GMUnhm1R/ueyzc5b3KHdLM69wCNRzsgftQJ\ndQV6/xTIdstCfNEySL8/rJcU1NaRXhnxb4TzPX2tVUk5reexYj2oyCD0b3ly\njwFZ1LK6KsrOrrm7pMf85qWtrlxR1AvQUV6VjWzD/ZhsPuyIiNtwtIWta9P/\nioMD5o5aKOF/Z0SBpk4aix9GzYZ6VjXq7RigKq4uKJfcA+RqSYaq+6KvJUFu\nGVQuAxSckvoXefySe240sE78R5aiWoc8xQJ+bU7OQBkTJ9xpljDtynQ+1P5C\nDIxhpslGtxjHB7N2oE6jsKF2X+Gx5a7gjvFsXLPQZETIBct7PKOjGScqFwfp\nD4xzXJFc5ckNXaaDLUymMno5M/61W2hc3wVaI33Dlj/c0N3wxmYOy5w5DcH3\nVRSQVJwHYm2NB565bdoHnnYyHuohrxpw5QMlF4KkL7xIDwEh+YIlsBp/JFpE\nT12NGnemKX++jXYrIjf1sbjcNWpwigjALNkKfP8i06/Ezhlxmc91oZg/ndxL\nfocbF/+cLh/ix2nt6h1J8E9cdSLKyrOqamfKXA5t9qYB17UZAJVCNS5bO2e+\nhE7g\r\n=4XiP\r\n-----END PGP SIGNATURE-----\r\n"}},"1.2.0":{"name":"setprototypeof","version":"1.2.0","devDependencies":{"mocha":"^6.1.4","standard":"^13.0.2"},"dist":{"integrity":"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==","shasum":"66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424","tarball":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz","fileCount":6,"unpackedSize":4025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdL/p1CRA9TVsSAnZWagAAKAcQAI46fu9HmRW3DoNhyrCe\nfby3f4I77mNyE8wMYbKk2u++sApIkulCZdYulwGqKsnynjTtYUSSXETjQ1WH\nlbY8o2GO71azqpQcXCiMXAD7ERUTajp8T/5BIvnqxMtJt/czDaRJ3vLJDH/P\nj0i0S5siqfEUxxZsrerc8oHV6BIrBovTi654ZMHaUQ0DRTUiWutxDZGhhqhq\n3qVixd9p1zqHMK8ZLhwGlybWsVVh8yd6BsE6LvbhmnJkisJncOGek1C02Kbl\n8jRh+juAXV9UPWXBFYClmFAXQgI1YLcp35M7iHWRYc8IlvMqKbpa78Mhqr+q\nJgA9dMwNneF+g25tZYSS+HmP8uKaRofHqQqzzG0p6IuWfdykjiJ71/BaIXKf\nNttwxZoPU6K8yAFksT4BVUGVSY+yngTcsCv/ELYCHCiXtQAJTgCBJxNRhK6B\n6PiGLN/uH7YY7u/rjMhtoMC7+xS+R1M8YX3tcz4pdjbuvvSYUjmQ6xcojBDR\nUvoz0AqLUkx+p14s+NHA4uYkDpx4JqXdn2O3ncD2QCGc0rfP9YDyDhRLtDEf\nJkyWUUwX4F9JOfar2maT4J1wr5zPfRoawjI7AnDcjrclc0E6KItycDzw48pk\nGD8qIxdqpiLqGwtnnrzjdkplaccudApC2uK0dEuCvy37KRTl2M9gB3s+5rqo\ntA+9\r\n=jU56\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-07-18T04:49:59.167Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/81/aa/9bcd03ea3a86a66b02a0d0b19577b4b32e05d2f891fad685a9ad22c7f8ff9a6d3733a896e14d1f02989daef7f6d460d9874c6271fd41269fa76802fbee8a b/data_node_red/.npm/_cacache/content-v2/sha512/81/aa/9bcd03ea3a86a66b02a0d0b19577b4b32e05d2f891fad685a9ad22c7f8ff9a6d3733a896e14d1f02989daef7f6d460d9874c6271fd41269fa76802fbee8a new file mode 100644 index 0000000..d7e39db Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/81/aa/9bcd03ea3a86a66b02a0d0b19577b4b32e05d2f891fad685a9ad22c7f8ff9a6d3733a896e14d1f02989daef7f6d460d9874c6271fd41269fa76802fbee8a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/82/a7/f393a850c744b0c060a2ffdacb1e35f4dfc91f49f7a495c2d14590cd7219e5865d77d7611968e6893103e6c0ee7b196a6cf1ec887daf4f1671e1735b1607 b/data_node_red/.npm/_cacache/content-v2/sha512/82/a7/f393a850c744b0c060a2ffdacb1e35f4dfc91f49f7a495c2d14590cd7219e5865d77d7611968e6893103e6c0ee7b196a6cf1ec887daf4f1671e1735b1607 new file mode 100644 index 0000000..4ea0264 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/82/a7/f393a850c744b0c060a2ffdacb1e35f4dfc91f49f7a495c2d14590cd7219e5865d77d7611968e6893103e6c0ee7b196a6cf1ec887daf4f1671e1735b1607 @@ -0,0 +1 @@ +{"name":"sqlstring","dist-tags":{"latest":"2.3.2"},"versions":{"0.0.1":{"name":"sqlstring","version":"0.0.1","devDependencies":{"autod":"*","blanket":"*","contributors":"*","cov":"*","coveralls":"*","mocha":"*","mocha-lcov-reporter":"*","should":"3.1.2","travis-cov":"*"},"dist":{"shasum":"0916399d7e7b80df3195c488aa66ea66c891f867","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-0.0.1.tgz"},"engines":{"node":">= 0.10.0"}},"1.0.0":{"name":"sqlstring","version":"1.0.0","devDependencies":{"autod":"*","blanket":"*","contributors":"*","cov":"*","coveralls":"*","mocha":"*","mocha-lcov-reporter":"*","should":"3.1.2","travis-cov":"*"},"dist":{"shasum":"077dd8b1cebd06d78f7eefd56b07ae5d7ccc897c","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-1.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"2.0.0":{"name":"sqlstring","version":"2.0.0","devDependencies":{"eslint":"2.11.1","istanbul":"0.4.3","mkdirp":"0.5.1","require-all":"2.0.0","rimraf":"2.2.8","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"49eab0454de451e385250b223aee8575d46721f8","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.0.0.tgz"},"engines":{"node":">= 0.6"}},"2.0.1":{"name":"sqlstring","version":"2.0.1","devDependencies":{"eslint":"2.11.1","istanbul":"0.4.3","mkdirp":"0.5.1","require-all":"2.0.0","rimraf":"2.2.8","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"bcd3c3931af1a5ab7d54a558eb3563ca3d378b98","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.0.1.tgz"},"engines":{"node":">= 0.6"}},"2.1.0":{"name":"sqlstring","version":"2.1.0","devDependencies":{"eslint":"2.11.1","istanbul":"0.4.5","mkdirp":"0.5.1","require-all":"2.0.0","rimraf":"2.2.8","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"5a3d992dbb4e2d075245725bc8044b8b4388d645","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.1.0.tgz"},"engines":{"node":">= 0.6"}},"2.2.0":{"name":"sqlstring","version":"2.2.0","devDependencies":{"eslint":"3.9.1","istanbul":"0.4.5","mkdirp":"0.5.1","require-all":"2.0.0","rimraf":"2.2.8","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"c3135c4ea8abcd7e7ee741a4966a891d86a4f191","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.2.0.tgz"},"engines":{"node":">= 0.6"}},"2.3.0":{"name":"sqlstring","version":"2.3.0","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"4.8.0","eslint-plugin-markdown":"1.0.0-beta.6","nyc":"10.3.2","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"525b8a4fd26d6f71aa61e822a6caf976d31ad2a8","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.0.tgz"},"engines":{"node":">= 0.6"}},"2.3.1":{"name":"sqlstring","version":"2.3.1","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"4.18.1","eslint-plugin-markdown":"1.0.0-beta.6","nyc":"10.3.2","urun":"0.0.8","utest":"0.0.8"},"dist":{"shasum":"475393ff9e91479aea62dcaf0ca3d14983a7fb40","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz","fileCount":6,"unpackedSize":17037},"engines":{"node":">= 0.6"}},"2.3.2":{"name":"sqlstring","version":"2.3.2","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"5.16.0","eslint-plugin-markdown":"1.0.2","nyc":"15.0.0","urun":"0.0.8","utest":"0.0.8"},"dist":{"integrity":"sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==","shasum":"cdae7169389a1375b18e885f2e60b3e460809514","tarball":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz","fileCount":6,"unpackedSize":17533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel8InCRA9TVsSAnZWagAAbFgQAIwveUjJ3Cgp9EJE/P38\nCW/KUYt6cDgzNPPGSDX1NkKk57oLPMZ8v/g6dzpKkz6TF83NvhdiZ010yh2F\n3wlkC/0gJq143fJNwyY6ZFMXJpKHXbAUIojzknzJJRi+venzEHlDezgjoX8z\nSx9OOpp6CWsTa7xBmK4Wxx8JoNRW226qwt+INiHA/pRijCzLKSp7WHMeyFjX\n2HZ1xltXmOh60gOum8gvLzSsW3luEmzOjQn4l7Kupt7Nr6CeRn1XMWIWkBoS\nGh3a5rnhVgiRzOzK/AOt9LvpKkiOr21iyXKS56A7cpKhQ4epefuAlRniQ8Id\nfmL+sFs7cGHoeAnmLVPXETh2WvEJKViZ70plY+J53HZukvm1YpTKWrMqIZoj\n1iJ19hNiOi72J2pY5Tg6wcdQVTyzvpvVYzPWMtgLxxhidjeVRMcHwo0G9XV9\nZPStU/bguRwZaom/8DUdyGsgqR7JxqSL4alXgTkV0BRKClES563GhiGZyWhr\nkMa2IKT/Ag9l74ozy6Zh4n8SgfDUlrRH2vSY5B9AoZK/JHECqz79hqQdSwO/\ns/hXecMzb8oIOZ+pdfDDvyo9WkJZcjl0d7tFc5vhdXl0+rj7cceZ5l24CqmR\nZP0y6tFf4btT88M7LHU5oL2CK5bo1/DQ/av8+0v5zicHyj7JQaoWVNbCZ0br\nKY5b\r\n=FTiz\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2020-04-16T02:25:45.940Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/83/60/da62ee356b6c518685bb95b646d6da17a9ae76c8f6ceb61d68a4ef245b713ba0855b196587db17ee9c2a39c362de13f10857f9173ee118e3e78bc5a86af8 b/data_node_red/.npm/_cacache/content-v2/sha512/83/60/da62ee356b6c518685bb95b646d6da17a9ae76c8f6ceb61d68a4ef245b713ba0855b196587db17ee9c2a39c362de13f10857f9173ee118e3e78bc5a86af8 new file mode 100644 index 0000000..230ed07 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/83/60/da62ee356b6c518685bb95b646d6da17a9ae76c8f6ceb61d68a4ef245b713ba0855b196587db17ee9c2a39c362de13f10857f9173ee118e3e78bc5a86af8 @@ -0,0 +1 @@ +{"name":"node-red-node-mysql","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.3":{"name":"node-red-node-mysql","version":"0.0.3","dependencies":{"mysql":"2.3.*"},"dist":{"shasum":"1e90cf2d15743ab2eb6d80d9bef258b368886138","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.3.tgz"}},"0.0.4":{"name":"node-red-node-mysql","version":"0.0.4","dependencies":{"mysql":"2.3.*"},"dist":{"shasum":"9a40457237f5b534497f9620f79f40da479029f1","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.4.tgz"}},"0.0.5":{"name":"node-red-node-mysql","version":"0.0.5","dependencies":{"mysql":"2.5.*"},"dist":{"shasum":"97740612b720078cdce26c674d4891af12903ad1","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.5.tgz"}},"0.0.6":{"name":"node-red-node-mysql","version":"0.0.6","dependencies":{"mysql":"2.7.*"},"dist":{"shasum":"a2418e2f7e5179988da4ae05ede6801b78134061","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.6.tgz"}},"0.0.7":{"name":"node-red-node-mysql","version":"0.0.7","dependencies":{"mysql":"2.9.*"},"dist":{"shasum":"03d9805b94b8e28fdfb286e78d245374d145861e","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.7.tgz"}},"0.0.8":{"name":"node-red-node-mysql","version":"0.0.8","dependencies":{"mysql":"2.9.*"},"dist":{"shasum":"ed768b38722623ea9ac23a0f5fdbf7f3cedaf2ba","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.8.tgz"}},"0.0.9":{"name":"node-red-node-mysql","version":"0.0.9","dependencies":{"mysql":"2.11.1"},"dist":{"shasum":"2f1ec11c342d19cf5b73375ba20d6ddb00fa76ef","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.9.tgz"}},"0.0.10":{"name":"node-red-node-mysql","version":"0.0.10","dependencies":{"mysql":"2.11.1"},"dist":{"shasum":"ef21a8356991749c5ee5594e2daf291e6fce57af","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.10.tgz"}},"0.0.11":{"name":"node-red-node-mysql","version":"0.0.11","dependencies":{"mysql":"2.11.1"},"dist":{"shasum":"40833b36705c10ed8ae8f45ed0dc52ad8cb09278","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.11.tgz"}},"0.0.12":{"name":"node-red-node-mysql","version":"0.0.12","dependencies":{"mysql":"2.12.0"},"dist":{"shasum":"741f44252b1748c07b63213111291f42c47b6b3f","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.12.tgz"}},"0.0.14":{"name":"node-red-node-mysql","version":"0.0.14","dependencies":{"mysql":"^2.13.0"},"dist":{"shasum":"0b94fe20fbcb3b6583ac9e91eed20bd5d6a306f8","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.14.tgz"}},"0.0.15":{"name":"node-red-node-mysql","version":"0.0.15","dependencies":{"mysql":"^2.13.0"},"dist":{"shasum":"e58846762831cf0919172f098297d60b2d2b2c87","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.15.tgz"}},"0.0.16":{"name":"node-red-node-mysql","version":"0.0.16","dependencies":{"mysql":"^2.13.0"},"dist":{"shasum":"484ebc72d70f205189149dac39f06ed82c087ddd","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.16.tgz"}},"0.0.17":{"name":"node-red-node-mysql","version":"0.0.17","dependencies":{"mysql":"^2.16.0"},"dist":{"integrity":"sha512-xl0bW8kCoz3S2ZaDk6Z4hMg0raYH4KKRG+/juUk1QOQuJjwF6XqmLZCrj3soGVfT9WTWn6OgOdstHaai0kmjtg==","shasum":"d1aba56d007e3b5307caf185fede5f9ae64f5000","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.17.tgz","fileCount":5,"unpackedSize":11612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcWvQCRA9TVsSAnZWagAAtQYQAJHcpkMuMD7VUAVYwf03\nOmrJKs98TnBFUpvE9IJiMGvY4vVRUhEpws1pYDVAzSygFvJKdddgBk/3fa/z\nuAdOIItiI5MJkG+BGC+YvrdIeoVfZ+o7SGGFOVUPFdkVBYz5SYow3+gBTiT7\n83IXKPAd0mOURzIieCLGxnbKfbxIl8UArG9QV/1jF41Wrgik1AEXPz49CPSb\namMPbzn6Ob9cNso1/wfAxs1lHdpigvnGSRm2J30rFpScQviqrcxhrqjdIcSa\nb/S5S/khsWgeUOekwfS7/9s2WJfmisv0abYhre9vzkjeJZYSwVJZlMvNHZYl\n1AqVtBkuJj7y/bfCA6CbnXVrEDGSLqBxYw1q+esKAa0XEIM+fRkBXkEYJ4np\nxzInfnMu8TF+7KNpmefbzXgJdHnkK7+kZGW8j7IlzIwDjct6+aymGF7xwhaJ\nUdf9K/rWZLyOUbeHEreD48xk9NnEXssMda+jWt1tJGbqkE90QRNTovV7jZjk\nhc/6pprPg7G0dkd8PgdOwEfA2XYouqk4S/u7wXH4AtLQtpXsqVLAvUDhKO5Z\n9ddvUXDu/D1fYS3P5QoFYQEZVsRD/3FO4bt5gTE7EZoQpxJAHGVvd8t+r7hG\nGrISJRa7rE8Dy++lqU3HyMJ0Zf1B9RCX06D0rId8XFhAkReeWnzxfnDcaLum\nNzvA\r\n=xiFb\r\n-----END PGP SIGNATURE-----\r\n"}},"0.0.18":{"name":"node-red-node-mysql","version":"0.0.18","dependencies":{"mysql":"^2.16.0"},"dist":{"integrity":"sha512-GNSZvcmqel2jsrpW8GvI1v8+Va4gZCB1V7Iyx5+sZiaww2+YowgI3mM/bNGQjUg46GzhRu0A5KRMa4fn2oAx9Q==","shasum":"a263d5ca23925ecaad7b1655b276e4679352172e","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.18.tgz","fileCount":5,"unpackedSize":11939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVMUKCRA9TVsSAnZWagAARqcQAJgbbrTNZPT4U2gzueCx\nnaTZYgR4oVFo9kFpRFGQBXRd8XprYG3S5VA9c9+lk2adD4+tUx+dHBeViGxo\nR7Yn6lkIVUmSNmo5m4BRe74agY7kzO5ictYTlNDdROChsdHVe3s08wcS3/u1\nC1wbH8bkJO0QCZDCNvIglVrxQ+0qR6TDBgOxMlZCvzisBxmqi+iHymkHNlXw\njLh4cC8oTM17Auy7xpT1Hr6qgEjU29971/w/eKp3Rr6FZTR9NpaeDA01i4f1\nU/jy0WoZh10IDlqC9MFrpnZFHcPyrZWY+KieXN/D0zn8syoCsa/8DVBIHpMx\nFtPOykwYlphhKuLEVWwKrkb+ctQdH5rvbRWMafPxwDYNTKwCRk4NFQWWJ5bv\nAnctcpYFGVa3Tykkx7QUPDfyafpntmSnHupPUtEsFZMABXhTpAnCitS5iQAK\n1uisAiG8nCUqz2GbLqT3rGZTHDZeMIOsv8NITnCck1xzdHz2w0DcXlL/u3gU\nd2Y+lxopC5z8gtH7fsnKh9iky47fLgm8K6aEjlXKXiYi85iMS0GJtrO0yJNd\nDyF/wzOIZ5qvRSf5youjQrxGZpYNeCUKDZpnPw74z3yg5OaN4TMCnqiLSvog\nwXQ48b4+nsqq9/lXLV8BQGZsuVyAj357RiFrIiGjZ+80V8/Xady2FzXHqs0V\n/5mB\r\n=w5c5\r\n-----END PGP SIGNATURE-----\r\n"}},"0.0.19":{"name":"node-red-node-mysql","version":"0.0.19","dependencies":{"mysql":"^2.17.1"},"dist":{"integrity":"sha512-zWcn2rdKVCvZ7BVMIohVJf9/y2P+M6QZCVfcyl5Kg0aGcYOQ03X/MPANFlNwu3VwZgHEVJNGu3acFb27Jckh1g==","shasum":"bf35d0596160566e12c4ef42a6b84d19544a6dfc","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.19.tgz","fileCount":5,"unpackedSize":12068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpu+kCRA9TVsSAnZWagAAP9cQAKKOq2n3ZRgeMmEl4VVv\nQQvHVzDTv8el+5XOQBkkigTAG5esVAG+4VwFg1egOI/nTEPIv7DIg5l7un05\nfvsuKe01Jm39xjBimthwhuboy60XzsP9JeCaBnix+7tpLmUzfNx+IBl5E5ef\nybz0ovoMnySr/hIEKhDwWlyC9XMtajEibDxVhWuIqclp3Wd8f4+s/VfE4WVc\nvLDi/MgCUFinu4T7ZHzS07dDUbXicnLQyQkpPBrITGH4WLwaLLW5dpFHqg0+\nIviZ3EO4mSieAhdUge8pyyk3r76cZb8sOLVr1EtQY/Ntn5i/RPMGYMYGPTQ3\n9ssSCUpeDq+T+V7fJZOcH2kf0LFX5mMynSWX6hVI1sHnyeIRrVL1jWfYUV2e\nA4dxG4y+oIRCFxyWhF5PbW9sLa6QHu5SIfmlI6QovuNcus4u5nnywfgeaX6P\n8daAhCmP+K4p5OhhUh8vT5NUPKDMpZaqEtXRs5OJ/d4gq2QqDej+vWXwBzlz\nwd6DPXIU8039AJbT2txXg/vwcBoyttHBpAD7jc2hv8rAA5HnybZEK1UG61SS\nwpdn3B1eHssNJ++66Dj5Ld8Kw2vLBFVhdn5mLVARCBRVyXURfpTgRX5znu2m\ntoZPVjnm3A1CeDDcF7lxqqrxscmmtMkIU5u3RPIrnJmVlVi33VunnzGt10s8\nQHej\r\n=SMOt\r\n-----END PGP SIGNATURE-----\r\n"}},"0.0.20":{"name":"node-red-node-mysql","version":"0.0.20","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-YFcYrAAjHCk4HXQU/ofcDR1101nSJmIjcCEgWvF9ZrH06417hy/CxzGJEL2lk2W28FE7u5oEb82v3FSX6r18Uw==","shasum":"8684b6dd936c16b706e652e9d09465dc54577d3f","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.20.tgz","fileCount":5,"unpackedSize":12355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedNy7CRA9TVsSAnZWagAAtVoP/2/n/J2FVqH0PoHanbxW\nJ+9WNOyxe4oixeCjq1ZXH7BBr2YXOF2BsqCrfVlXCe/B18a/HT36+Tze60W1\nOGMPIOdnm2USsR3K4sH4DYMcRP2kee3L1DlFxN7PoqZj1TBGvUSutyPJ5b4C\nChPcz/eSLFqpFtyfk3FUnANtJRvd8R/iNe/gItSRF+EekLE13WLW+1e/9gnO\n3STkRKdo6B4NEvrdYxM9ioHYYJ6AaNXLj1fNgIaKdQeCVWbwPMaEDUMR7CuA\nryYqGuLjkvjXH0ul3xBLhVFhClzO6eboOvmTL6iI+59vZT8ijN11DOZC0YR6\nnDCt9/Yfzh5k/iRgMB5+KRNlcXdtxlLYFBtxZMfsDkvxUrkzunKR+SNmJT0v\nVrgaFXbZpNxK/dxZxpJ3Icn5GlyNxh+0C7BJ6iJ5rg7j9hbXtd7Wn3NTepS3\nyZpemdPQRIkURWZvXSDaVwS2j/EYdP+L2Tcgwq1YQ6IlYZNrj0DMChHP3QAq\nCaEPBBaBQpCyv+I64ZWVk/0gzxT76Y3BVbSJZlf0GOd8y+RN05Z4y/+7cJpT\nNDkctBeaWSKzLBV76zcKcik2+54ZAKwwLGvdXsYOA0e5wPS1xdctivg3RAAH\nHJGmSe2eO9ALLbYcmkss+cB/jH8V9+7QXC0g4PhuChWuOwW2kQNuca/steVP\njPcb\r\n=xXyV\r\n-----END PGP SIGNATURE-----\r\n"}},"0.0.21":{"name":"node-red-node-mysql","version":"0.0.21","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-nV6p+uMuoUh9SRR9WzdV5yyVVYtkVX5xXkp3XeaZ1FS3a/Suj4vmhiQgF9TnkxUiyArjoSQJj+ilDkXmYe5YbQ==","shasum":"e1d48afdf41e57a2d58c57417e2ede3aa0f3c368","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.21.tgz","fileCount":5,"unpackedSize":12507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeibaUCRA9TVsSAnZWagAAYXEP+wdKpv8CfNjLKjBJEt1c\nNI1tiW+GlyrTQZvERgDnbiseyPrhgOOYBPb61clnw6+pe6rw4tuO0ASb866v\nKwbmuZV7t1R9QAunp+2J4c7mXxpQiis603iHWyt5PDOJHR0bhzAtjHb38SvO\ndk/NQaA+vqqlQEvae1iZpizl+lx6fKzw7VusA+0TH8f8alge6h1TjkdxpE7d\ntMIuXK5739Zjy+yKdPhGXPOBMBXTCkq6siv+ZmVx4JFVuf7rFq5BkO55yUC1\nNbD4gVN9zr0ys15GDGcmE9eF+b83suv9kthveMqplEFBqN+aqFiQURdMdOHH\nbcCZEcc3s7/4HuXbMn1szngEvs5PyVIzgbfJ4MpFcQ+DxOqbA0FqBb/M02AP\nTN7EdN6Gqk5Acz8yuuj97B6VKQS+AyAIv5qnrtYh1/2Newfs4mhzI52Iqycu\n86BoExlXDLld+DyUc8sP5qZ0VVXqT2yUKr6riwjU4tshvn1gBWFMGq4v9B27\nuNlIrYMDU7D38mG9EGPlGnbTwk0AeGzHEo5hogghXTv/tfRyHHQqeDW7qXS7\nzppQXbtap0ICJ9XoN78V0XFRhgYUyDpgMdMeWAJomj+Vjy+lF2U4nYMbkABE\nBJTdBlWAU8dQTjDybPPHI+qUO3AEqHYtqi+V45QGLIx/CsLGUdMDui+nxmQF\nN7ue\r\n=Uyql\r\n-----END PGP SIGNATURE-----\r\n"}},"0.0.22":{"name":"node-red-node-mysql","version":"0.0.22","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-W938un0GfCPv0xxY9Egq5rp/W/wZRnEuaeszwapGsp9x2QwrngYGhRZlKWFjK+LPnK0hMIxxzZEGBXdDXIdGBg==","shasum":"f0c5afb5eaf8e1e0a4b773024c3bc5fd7aee70ca","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.0.22.tgz","fileCount":5,"unpackedSize":12536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeicJ9CRA9TVsSAnZWagAAsKkP/izW6Ld+urRN86CDx9gq\nYemoORvE/pEaEI8Icf/uTD5WA5v3OIkuk9ec0z7X3FkZ705CBz673gOxPzgJ\nvpqhnnxw9sm236NLY84INX5uVVjr394ED2RjTy8d0HsTTbL1ar68NnOOz3z0\ngoT9pTql9vjvSmjbtunl4YhJ4V6P6eHzzP1CLnBfpoSGo5C1et59iHui9ko6\nifz2Gj58MadcybjFHGFM6O+eA3y1B2RGlxg6QYE9RgELXlG8b5xzA2K3ZMCT\n10aVLpaqm2q6yYCDzDFjunqE+czJd/IK9liGeOxUj+F3qB9dHpIEtWj9oXf8\niGR+DBCPcYYqXXvLTZjoR9ywL2pYCvhSlGYeZrN4I7hh3DaFQTEKtommQfpu\nT1bk1BCYH7UJM4c8FvrHG87TU41cm1a6+X1lrAjVbQ/VfHlIRVmlmymH/MvH\nVj2Lq3HBteNH7tl+/B6dsfPGwoC+91b6X6f09yB7dIzwDLxEcICT9LwHcKmd\n0fnxlMw7Vx56TnA4vOtfCCDbXEASCUaZyf3zonLE/BC7BqIgC2ET2IMMK0md\nr8reSMTBL1Wxd7AA56oIAJ4JbfmNL/fk5Rmqo2e5xOH2gRC5a2Ge7ZIKoNRM\nZpkFSU6w7iZ9XNQEX896zJs9VyuSZewZi1FF0ywMfJ6LOl4JEWUA9ES40lgr\nf7FE\r\n=EHU4\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.0":{"name":"node-red-node-mysql","version":"0.1.0","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-R3kmd1WTxPO4K+0y5Hb1ylvWu01ZXzwULRoofUTn8j0JEa/lEJQQ0E0pdi6tee66duOak2p+z6zE0AGIgoSf3w==","shasum":"4367c61ad64fc4073f36c77545a400989d7de909","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.0.tgz","fileCount":5,"unpackedSize":13999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekOtzCRA9TVsSAnZWagAAh0MP/25I0DrUU9H5n1OdBDmT\ntur07S477NzdG8KHY1K2AF83QDR+h50Knk2po7DsjFLOvlnk84VD1qEvdsCK\nH3afoErAXl3t8CAsKwjo6JKiFKRn2xPEfdx3YxFncCCt3OIcbtmSFUJmD0/Q\ncLyQUPmTiPEv9cWtypyuv9Ptt+GQTNJrQ91yUbq00TT3S6qS0FS4W2rvDSOY\nHqraA2/it8oVmzaJAqQmc6aHv1j0LmWIK2UD7AEyluNMfGUaPU2GtrVq3lZc\nHFoiLAUT0Vsn/a7Fq+LQ0TPkVc4JrejN00OM9Pqixsxf6t+f1taOkzfv+NgT\nKGALubHd5OCLkAhKWKfLdeV1sELMVLAMYsHS8j8ah4EwqLGfmckzEsKMP+8V\n+w3hSgQ61mJn0U3HnOR4FJs2jlCr0fV1lEZZ610bZOlQXS4BuPIWwwyW8ks2\nhzIks8SquRBmUuuveJ8s7R/OvpS/sbkQEkCKFiQjq04K2nNjc8Lmt5DADfmQ\n28y5dVpc8SQMqmjtzu4IlZ+Rd/Aj4t113YSpYv10bv+GjPOC7TZPH7S079nO\n7nRRc2ozBM9q7OYxek5FDfrQDcc1rI4wOSTnluaG130u5j9Fj8wKl3a7lA/V\nmA2GTjq6zMHvD5ydpyvGx3FlCLXWvqO5jcJgQpLq/z1iUDM/Y+CoPfNQxwXk\n+0NC\r\n=Qo9S\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.1":{"name":"node-red-node-mysql","version":"0.1.1","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-5wikY8cN8grrbvRT9RCo1mhcWacCS6iZhD3jqXVpQfFo5Bo5VRooQ1HifZBR4QEzynk3HHu9owLmgsxJ0Vo++g==","shasum":"a70b1fee755af2a958c819e30a7adb76e0e01a05","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.1.tgz","fileCount":5,"unpackedSize":14698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenCTtCRA9TVsSAnZWagAAj2YQAIpyyxiR6SpdTYkzg4+l\nw5jO5WN/ZxStctK0OJ2X2+zIcvGWBprZY3W2AkbrA9Wq+w8leRmtV9Y36wxY\nLAePOb5j5CX4Et/D3H9ctLA3Suh1Pb0+R+KXI1xkl1dGmaE4McM3qkEGbp8q\nQv8hFL5PznEH/PzyFvk9fEh8+cJ39KtbyrkLlDfPAdn4LBp2qB7uMnVHaAIv\nRzO4nSCq0iOK2DacZlTnzTBhgnaMP/PS/rV5+Gmjcx1LJE3Ku+sBIzaZw/4l\nvyudOYpcEkXHcm9+B+xZDNGppX/E9wTZDiGzbU8x0KX7V4hmQkPOckdeEiJS\nSujATBfSfZcMbaXMzUGi8b4H73DXc147nbD+sO2KuQVG4rWNCOzx61riST0h\nhzte+IH/ImgfYgi7al7x5m7NshginelHjIGdJGGudg90+Kf3zVRGGYwIkILn\nSOwTnV7yRv8Yauwwxs7v9ggSc2W4zEfKCjVUXtD/ruYy54aebaGkCkEFuQgf\n7D4CkaY1t4LqwLS6n71r+NICUdeGTMsMZ0DhXD2oMX7lgjWRXcq9bFT/Hnql\nLEECkXOr+v8xU+o37+DhDcknTL+zfPVk/GT5qGYIjwhSulpprDKgEchwqkRL\ncLN1esuH1oJPpmf8Rl9m4N4omf37CEnxrN0A4tawHU2qiukZ87qs7+8PoGIK\nZdEi\r\n=gwMO\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.2":{"name":"node-red-node-mysql","version":"0.1.2","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-4ZAbnQwwsUaMBwdksl0VSFl4rczo96MTJ903YuOcErNqJ0MgTtNMn6JCgQq9/fH+PjoBP8IRfVm//oMJdyKUNw==","shasum":"e0a656bb1e49eb34174ef437b0376ca30364e347","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.2.tgz","fileCount":7,"unpackedSize":18975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTMk6CRA9TVsSAnZWagAAkbUQAKKiTEcUQklg4eXvV/Ro\ncq1Mh/GvwwMSB+ZfNOD9S4cS+d5DqI7NxNdrtki3jC0lCbxpzGSHUlIzB4ZJ\nf3QSqu5aB//RT+PrN2iCqDlOneBLPGIQOerfz9mxKjJ/mAcTz2DLcZrsLx0X\n5ZMgSlozJgHkWHY6yywNbzekhhE55z+6F0HFdvuf8MIUhV9cisGJOHSWBc4Q\nt+nSkiBI21QHxyj1vZjnmktHA8VIEY7nkt2ihfnNDW4VSKL4+3sCt/4+6zax\nrNvt5ai+rhKhzmgk9avLcWubSJiHJnLAehnHF1Tk1RS4SrE2mVd8WOj3cEvQ\nTZvEw7Uh/8ZVKppJ1lSsJBLtcrVzHgxUy8POzbuHqWqGHgMjSvNPmvwCMwlR\nBy9avDvfUeKMDNIYMqRPtpel7f7VnMJJN0CR/EBfybwXaFwCpd/ocnxJbnEy\neAEqEaKw+H6IcsJKgmEIKVd+2F5MgseKtG41LxvnPH29qoUaB4KWLg+j0Zs/\nyAR3KnrV7bOV7QGt/Rl2pROety86ClqorBGHfFK6fnfjLXx+E4B4IuoXrJCe\nKb3YT+I6rEgVkTj1DCHDTv/KoSrgmRGb4WTJMlSoDkVTC76k/dQ9egZp32LU\nSkOV96fYDXg15/BZwk2BURYPDlywxqjS4R2uzoEBDJxqKUo/S2aSOa6BsXTA\nXSKf\r\n=2YXc\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.3":{"name":"node-red-node-mysql","version":"0.1.3","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-cG3tztcYbamb3MCmjrCOrsJCAkyWTOYSKxXEQz8aqH+eNx+wpj20QxZkRNgT/UlvnRuYywAn0qEkKvds9nskyg==","shasum":"34286b49d470191d4bf543afa80187da2e2bbca6","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.3.tgz","fileCount":6,"unpackedSize":14899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTdGwCRA9TVsSAnZWagAAZFgP/j/evTiofIEvarp9n0Rx\nmis/RUhZdIn+veDx19x9bgcnf8YX3B1Iz8CWIYbQVyj0D7D6um1vBydAFmbL\ng0gvTWEVhSnBnDeUUmielBZCCE9ln1Mi4mzBiSiGYCVM0WXBjNsjoq8RhEgI\nBchkAbjotPyVQkFa0WIIIUoElCqNLF710M4Issg9ueXPL+WxcdOtn6CNVliT\n+GXEQmj/K+H4hHzfkEOzgcgSXh+OmcM9fPMUrCNLNl28ZNRqmFbh2EhOtIgo\nSC5P9FDd1ItC62i7Gzgepl/OgLdZu5etMVUwRj0Ov1z3+AnHMtzogsc8nEw9\nwM2Mm9pZk3CWJr8LDkE+bnt3DhdWHYJNgYUTXQtem7f1T0o0P6v6SOr4VXCy\nFUfrAhqQ0M/mxJHm23RmuCmL19Dqx76zyp14MbTrvkX+zgatYdP2GTzeXgfl\n22on1cVfLdEqoh+KztAUW+D/oG8xs0AlOkJRxP8XcnqJUSUz3HOuTkQV7ecP\nh97Lh3wwRPLIfkRE6LbByvO1H3W9Q+tCOd+uegX2FJNcieYaFXh9WI8ZsRPU\nBRiKK5qG1j8znQ9ryMHWyt/y8BQeubsHp1sKk9otAxIninpqwtMt8qfQfS/R\nHgtr34uLiGrJLbe0TnEL1n4wRoPvsvqbAgCW4+39E2+/6uIKC239oKipl1XN\n0189\r\n=tjon\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.4":{"name":"node-red-node-mysql","version":"0.1.4","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-2isPWdi0yfU84LQ2ygOkxeOd93j0uD130B6iysmqcE3CYQyxBB6K1UMTdPst6ubPdRKpSAl3+s3Vtc0InXNYxg==","shasum":"7b92f551bafddd2142150706df2bed11595a86ea","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.4.tgz","fileCount":6,"unpackedSize":14910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTk1qCRA9TVsSAnZWagAAplIP/11hBqRxqQHwAewijk7+\n9+jUI8aYm7yWJvgJkXeezP7QXOQh6T+D2GLDZwpFQUy0xUwMMEnWQDEQV5DD\ngh7URTPHG3e9S6A6b/1oRZOl+4JioRNMbcCKGhJmxHHVbTHWHjCw8GEoXRHT\nAFA5gmkOtLjr5UBdHcxF1PrMxudeOAfkVEqpckMfBpbhg5AO3cWh3Vr1GGig\n9ua5ZxMVplZ3Z9zBNyMsDS6EK3ws5wQ9wP/abxslMsKbi5rn/LK3iauuk+1/\nOQyllq4RJhvt6PoVgqjrn7UANZbeT1BL3l4p/9SLn9zyGGTUNxaHyor9fEcW\n7AmopR4l9guSS1YPOX5ZQXOfmV66gZWenLhK1BjTyQCkwRocBTX1UfvZL+5J\nxkcg3NeegO6bw0/HZb/ceQN+ocepLOmxY72MJm4P9053yZd4vWq8wRzOophJ\n6hooPgB9GGYxJzc4o8JlHG5qSqLRWv336DJVYA6pGPNuyRI86niVyxgZLziD\n9b+JWonBr2Cvm+7TcUWbH/2jk38NY4LPv4iUG+IQ14L/AtvE5UuM1df/aOOe\ndAN96AEtP/0FDoiRgEcojaJj/2Fm9FNl+o3Kdr+GqM4XmPyLgU1EntPjojrr\nPR26KgBvsNhv+jRycJ6CTCuEREea218JlpQDQ4b0L4qN7sgWlZaihXW2XFa5\ny6pl\r\n=eX/2\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.5":{"name":"node-red-node-mysql","version":"0.1.5","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-MnernCkaRfHh8ctc6eM9hseqjnXn14P85tmRyx07Krb7m4wCHY1SYabG9KSo9Dd6jElvIjQq5NBfOj8qXRG3cg==","shasum":"1d5736453d0b64c28590ab431c3cf6ce5a226cfa","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.5.tgz","fileCount":7,"unpackedSize":19540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVxjBCRA9TVsSAnZWagAADs8P/2oL7+1miA+KXh3wsSm7\n2FlBjlbvgQwHtTjgV5HzM+ANNmXABIKnIYxlyCXkKV1greJJdQ4AdjmUk1BV\n6zgyqZgWHs9tXHDQVLdISeUNpfTfHzX5Rf3iWdL7YCwo36vOeuKygLp2fwNb\nW+SqAyGGay1QfE+lzCL8l534r66EFCgTYRMmOpktdsgpneDrdpV/EpsesWTg\nYwDZR5lZwr6gwuGBKl12Rp9823uQ2EZBNkNENsaEEm35q0GFpC/xOMsCQSYg\nUfXFDIC+DyVZ+6o9o8iLxOwjF+co3D3GKLTZYdWzHK0FlROAty6WOVDQgtep\n5vz26CX3vUXuMtffmEue4bkE+ezRHDWq47upMpaxg1RcDGeG/Nq5CYxR43K5\nlssrRId9r7ptPixbGaYZTGPrIclh5Vs5g2uqyrERttEHVEczsZK3NH40Pg9T\nyatgWugUzuwF09c+eImgTyNqkMr5SnUOWafAwDO3JXbHLdLoeT28LQPnZB2q\nx4DRM/36TK9prL4M4lb0VTQq3rtoMXw0H2c+5axEzRpcMDPMPGH7FLxY/ogv\nH/qOdcnpfvbdCJoDjCfQri+DAlxGynBVPuoOZA0DWXVBoYr/BlqLHN6kJfjh\np7I9xB9qIF6ZNxSw9il/xLjsP4ZAl2N16lr23s1ruTCfKCJuAvnYZKv2Ym7z\nvUYw\r\n=WFlb\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.6":{"name":"node-red-node-mysql","version":"0.1.6","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-4ByJAiNS/QmzguOx91MzAN3yS+2V1BkJzGIY2gsOwfnYrUQZrkMcct4hRhsEp7sjUrwfPwPg/6BPXrxcruVfnQ==","shasum":"476e893950d442b6191f3aae3a7887d69502ba16","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.6.tgz","fileCount":7,"unpackedSize":19455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgV4LaCRA9TVsSAnZWagAApS8P/3y19P09FI4vVH9WSCMb\n8ikudLs/S7oZtcAP0DsmNuXt61i5yb2e8R8b2L9SmUoHD9UQVs0uwKZ9IP5k\neOrN0eXppFXpj3ZkTDcv4dICQC+qTinmYqDJILEyTPFrNqQ1NJeaDPzPSiZ3\nEyTBr/ipZRosHZp29egGukNP4GAW3doah31pd6eujn8lZFBfhvRp3K7YGqhf\nHMzieLbjTMDNGldqbtRAAqvcSpgGIj8M0QVY2Grj98aISAVNZWpaubfb79B4\nSnxGVr+KcLOkYkPKU41GlnEKm7J2SQV41J+Tc/glGILcGFuZoQr8eZclDB1t\nB+Au/tLrcCyh8l9V6ije/k14DrSQgZeSa+DX8nKBEJU+9db4tSgVGpetW5VB\nC+JkO1QdFu083dgyNxT7/VfOcQhHdDXN4wm7f41Vi4jZ3oZnXT44jpfs7yjL\nPSJhr66f7DBsPGyRLzOwSkuUx9uwwQ1wr6xfynfYiANYC2YzlURW+PVDWan4\ntQ/nbhjVB+kVWk4Rf0srwoPTsFSGsmWVfU5sPpn4KjhRhkOpAb/wInT/PbaZ\nIYAm8HAaURyICp014TfgMD3dXNhlmEGxtjgCXVIG3O8+NYz1KQUqk1pZzhe4\nYAQ6NHEgluPPuX8PIQXlrBCfkgm2pgmSAAE6xjNrBqMxjONjxQOWHpVgIIFz\nIbL9\r\n=+rUE\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.7":{"name":"node-red-node-mysql","version":"0.1.7","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-+IDCOxk6isAg/VAYEVMbWps67EHPIRnk8T/ePGx5gwc/wLJqrWbBtvgYxAI0z7qm4qvXOz+AXnOYLcE1wwp3iw==","shasum":"c34c6f269d8220130fa755d67223131b109e3a68","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.7.tgz","fileCount":6,"unpackedSize":15304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbypoCRA9TVsSAnZWagAAF3QP+wVkstnUbvjVjpczVWQo\npNOu8vGML5kEBesG/fEIT2Q5JvJtl5jSNM3qFcL36FG9BCwthdDNfzY+ji69\nS3YufrCeIjzWorGZpw9uKfei7VkEkBQNGyAOY8sB6UlJboY6PXJgeVqD9H8r\nH6eIyDa4KWveBC1WshNyvCqGFkHzbqGXld032VUp8l9KHx6aWqb4Rl/iSu1/\nEaYUpuH9xlgTgU/24IIP1rsYGNuWhwiXVMGEr0HA/PuroY0xthRpHPwf8wdY\n8rSiHL1Lt44E1v9HmVfhcrDkdRwonXD7M6J6lLmKpNRSekdScilt7GgiLRSa\nTshbtE4zLw5X0+CJXu9+9lJs42IZcx32OF1bhRbqc8qx3YvRhlLf4oNtgdKL\nWVLGlmBjustZfaxEeTDM3Z9Pw2JZ8VsvHTauu+wl5xjlGVNhtsOw4DBGVwhH\n0Eh24DNcnzefAaT0D7WnAhakhI5lqkHiMveR7adOcL9tfrkuVCtvgnnv73z0\nrdba6DiDtT+wgK1Hcs5s28Khxk6387Erl+eKC+ggJCgI0/GZoCstyZgB8s31\n1NjIrPCCztxtfOw1DUKzlCNnl3H9BvouGKeJXa7vcLFokzwRvL9/V5mV2JC8\n/pVLG6oyRN4qRnS0rak1lirV0CjG94xKmtBY0iuyjHmNzwUvFrfZ6sDdIWSi\nZxqS\r\n=9uQT\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.8":{"name":"node-red-node-mysql","version":"0.1.8","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-xaWtedt2Zv2Vq/L1JNpQiw4TkTUXWSWATvoHkOwWKqKnE9PGR9AyDE93EgweuFvdyoRmdr1tR6O+satX4X5i+A==","shasum":"532a3b4d8a462f691809ccfb2d7a7ccd254f8870","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.8.tgz","fileCount":6,"unpackedSize":15972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggzrQCRA9TVsSAnZWagAA83gP/1qRI0V8VO2C62uon8ET\nRQHRczBAbpsMq5vVVtI4uaLpfUSc1xzUjCX/27r2dBstt6aW8/g7TkLjiPzp\n174QabCtXSGayJQcVtBzQXWnHrclK3r0vMKtpCg1vgRSlU+kbLzkJqk29MPE\n8lRUClctbKovQIaM8PUsqv7cvDHd8ZseJv40S2+0oobN6P2uUtYzsR3GWYwo\naIXazoCAJYywmAcWiBEaWVNvAw5d2FC9LUItlDAgumdcySnOGGiGvQ6r/jls\n+Opg7h2UKmEJNpev3MA8kZBaW0ed6aBhzeggQbSf2GISn39siHCEhFw4JMUK\nVvE1iOXLvrHh09IxlqNeM2CruVwQU6csn6WlOIgU7X5LCJPLCGxuAR1mTj8i\n2Dfe3TxoE15fweVvXemduN7K+Af5+FoAQr5rZCVUqb9Z5dlhRGQ5FyNUyzuW\n2zCgbJpO9XX7JPrfBcoiCoc7URMjQbh02F/DTLlRytmWUZ/BC0DjONq9G9VH\nGQ0x6NYaTNcp7NQytaD0MeLc0S+dluuxLs+ehViE/b9ns/NQeAsaqkraMCB0\n09q7a4Y5JSNdO/XOOqLqdBMb51dVExZetIS+kIvDYKVNUin5yVmt2qq2x0n6\nkHMyoFieG9cuXw6PwkiZSf+C5KGnGGPD/RphVAhGmm9KoppYo92DZjvl9j7P\nY577\r\n=6qCO\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.9":{"name":"node-red-node-mysql","version":"0.1.9","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-+h4av8LpGxxqVIGwv97kUvra8A/KqT6kIpZD0fEI7tjmgYujUABiAMh+QKCJRkqgT/kSB76B1M6g69kcMAEMnA==","shasum":"9e267dd9bc1c3c0cbf14b6e0f21f54b7150da437","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz","fileCount":6,"unpackedSize":16160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmE3lCRA9TVsSAnZWagAAbykP/1W6bFAElTpN8rI1tEkq\nPBXlM4J7dpdlhNY2NxAjmzUZdPWc183wa1tHTYZGFzS5ByiWsItSq9nfmzm+\n4meYAAaQx8yrDcMnb445Ja6ZEgoiYrcecpu6FiTkBIrmTXMnFb310iWnGk8L\nHw2cEUT3WbZp8bbLyYdmxs3htLWg7CcllCTK2s0vkCseFsG1I+CcC0HRhERF\nP7cCo9SILzmQRWAt4XxFm8Jy4sr1MyWeu/iSNisLdxM6YkkrluxuVnAzUlK+\nBEl5LAr/kgfXYJ8WGPtmhDLa+e8jLaZymvK+IRgOIEfFaAOlRBpm44ewRmT0\nNfV2Gu19FuKn2ZefJYuwz9wKl5FMymWKpuRHA4hB4oTYFPMvqObAZWY2OZZ8\nwB2g/w0BoNnD2+jeNv1m/NigDEB7EhnHV+m5qJcEHxjkEfKEGVTLyFi9mo85\nHreA2USvlArxvJrSdwt+PdXjRWKgLyAasT9IHrg7GRo5pK99EYoF71iRXZsk\n5ADsisiPpe/P7z2qLMXdjP5cu17yLDbaKY2yaUBQaq6ikxHV5yOVRm9neWmx\nHqZp3xjFKqtWh5Mfqw/qow/3sh7bWmE35HLktJlyX1H2K+CaXqSNWRUAUZ/m\n/0ouek4O+MqRePLrfvb8sCatsK+SdNVBeMLIl6tM8G0A54GK0Mzm8Gu9vPxk\njLkS\r\n=5dhs\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.10":{"name":"node-red-node-mysql","version":"0.1.10","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-Rw5V2ZszMcgpvIrhEk6LsM1P86s989skSGMvYAGvERDQZFSDieFtbxGHOGUIFpJYZJZ+gMT6Ahh2s7dT87rV1w==","shasum":"97a56fb1bda1ea8f75c0a572ae2af399cb0f970d","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.10.tgz","fileCount":6,"unpackedSize":16270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmOZtCRA9TVsSAnZWagAAkdcP/A1Ir9zgnIoQdQI29XL+\nhkWH9gbKI32Ixdm0jn6+yEAA3NhbVKTZN0lDpfRO6R9E7jScAjqEhGAIxY1q\nIo9v/ZMIjmfYTTIDBXdLx4jyVHt9kNcE2LFcXh1zLCbATD5CSAdmgoRe482q\n5gRiqja6F3Afy/RRahF3y03z+PnpK2r+o6zcn+SG2Qjjfefw8YVwH+4ZqXVN\n1K5T6mEn1gbrfKfwDA53fVYj1tl8v2HabUqVS0NtrH5i2BbaDTZK67Berf4W\nuEcxv/m6CnntU4D9QBsX1ut1KbNQ9XtszaoOw5A+1dvBp80SNv8lhFXau9KV\nmHKakTDfBGmEpyX23xA5NY1wORRAtSkmF7fDIbMZbqQJuCvtvkVmScNnEkZJ\nhP1gJFwYK6TxXQPGwedaS6xVVxlvjVuYzYmvpZPZhUDXJFiOCcpBgkmz1AEo\ns0xxvDfY0g1uaGrAUrqH/uX59aped79XFjcCZjMP3NZVpNRVumnHs21PAU5R\noSS606v7d2qIz/2a6dOofXBKu5Qz8jn4a+TUeD8DTTFuf1jivQ3enad/w6cW\nJEw6vCg6dBYUh/VodWMcYNczqdMbK5WyZJ9KluwYcuVZC20eTrwfYIsUSttP\nZBW0T+eguEbFaWrdVVQHu6S2Pr+uRFhazubodmBPgGJo+7L+Cx1fTomdegj7\n6h6/\r\n=bNMl\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.0":{"name":"node-red-node-mysql","version":"0.2.0","dependencies":{"mysql":"^2.18.1"},"dist":{"integrity":"sha512-LOtAZ/wTCavsostSuEihF7osYmB5FzRrzCKMFZCwmCNHcf2uuOzB3DARps90Yow6w58sdhUwUx8q0UfwWEM2HQ==","shasum":"33c66cbd64c9a5263c1f52c179471b4f2d6d024d","tarball":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.2.0.tgz","fileCount":6,"unpackedSize":15502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo3bFCRA9TVsSAnZWagAAbWMP/A2fGjsqfwL1CVqs3IVV\n6o6s+ujHRxAwTdH0rPAbC//WPDWNB3d4e2Dtnk6/QGqt930fx24ePJjQJAPZ\nSYfFRC9rFgp2eWx2BuYpBViaOKqYTmNbWvVMNqEt6uNZexsKzHUSH5gh2meo\nkie9UC5z0xLlKBGcu6M30bKxUpOwxcMINSU9TUu8a8iVluylkQtZjpn41Xd6\nIqYhTWJTDNUbXBGWolAudnPRc5ukmBIEkwA1kOUH6nbIttpjS1gxcVlo3kOj\ne8wVjHbXSE8KheEO4Sq+6YuUfVTzbkbnCcUgjpNSoAxEejIoGewpTLSmDgP7\nuqmn1GjvajBQSku3FqXgDwUJ2QLWlZafT+KO8NgZliJ9Dfp1n9RkbjjoVcz1\nty1q1OLhTZFIGdT1cma2Mxbh8h95icSBZWMHZtr24vOZt5U5Uggtf10sBUHf\ncXZj27hc9Xb8t/rnX/CgvWfvJwEEz+3Vxkuhi96GHI4+AdFPIS7cncCMoXXb\nHOTd3KNP+Kqo/LUP5jxFO0qPupYGxXQMJ8o4OF4nH0yV3tUaXRSXkW6qrR93\nqKw9FEGsAEc6wSYg0ei5wSTZT2TEw/tQnTkuiS+/l5A7s5SNUvuuXMKee0bp\ni/CyEjIszxLXGqIoDh9PZyZ9FPhlXBuXd96vXY7hgLfZ/VdcG3F3G5GL80vk\n8zKO\r\n=9YSZ\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-05-18T08:11:55.359Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/85/95/dcecad9ef8f81e23578305eff5d00adde1e91b7ebaea1bc129fbc2667f82480f66cd83b36f08f39937e91f179ef8a45408ee6ba6d8052a0e27682aa7133b b/data_node_red/.npm/_cacache/content-v2/sha512/85/95/dcecad9ef8f81e23578305eff5d00adde1e91b7ebaea1bc129fbc2667f82480f66cd83b36f08f39937e91f179ef8a45408ee6ba6d8052a0e27682aa7133b new file mode 100644 index 0000000..b9dbe10 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/85/95/dcecad9ef8f81e23578305eff5d00adde1e91b7ebaea1bc129fbc2667f82480f66cd83b36f08f39937e91f179ef8a45408ee6ba6d8052a0e27682aa7133b differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/8d/a4/880f33fda59552e197d0f93cefb625a17691611364431f3f10264a57f522292eaf3c56e785e63270eadfba09441c02803ab7ec7cf4c2eb580aa97c313c89 b/data_node_red/.npm/_cacache/content-v2/sha512/8d/a4/880f33fda59552e197d0f93cefb625a17691611364431f3f10264a57f522292eaf3c56e785e63270eadfba09441c02803ab7ec7cf4c2eb580aa97c313c89 new file mode 100644 index 0000000..f4a246d Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/8d/a4/880f33fda59552e197d0f93cefb625a17691611364431f3f10264a57f522292eaf3c56e785e63270eadfba09441c02803ab7ec7cf4c2eb580aa97c313c89 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/8d/e0/06ccc0db7d21c7034f7586bd2bdf57987d38a0fb6f60dc628a13f3cf6c443ae57d2598cc25128aa6873bb48b3b480f9b89a59b059543c33fc4e13cbeccf3 b/data_node_red/.npm/_cacache/content-v2/sha512/8d/e0/06ccc0db7d21c7034f7586bd2bdf57987d38a0fb6f60dc628a13f3cf6c443ae57d2598cc25128aa6873bb48b3b480f9b89a59b059543c33fc4e13cbeccf3 new file mode 100644 index 0000000..19cbb36 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/8d/e0/06ccc0db7d21c7034f7586bd2bdf57987d38a0fb6f60dc628a13f3cf6c443ae57d2598cc25128aa6873bb48b3b480f9b89a59b059543c33fc4e13cbeccf3 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/8d/ef/356ce0dcbeeab8f8c49e0389b32bf5303075f7f3c9528e432e9ac414fb34baad8f295e565132f631745991a39e3e88fc4b7c1ce409be379345bbe42690f3 b/data_node_red/.npm/_cacache/content-v2/sha512/8d/ef/356ce0dcbeeab8f8c49e0389b32bf5303075f7f3c9528e432e9ac414fb34baad8f295e565132f631745991a39e3e88fc4b7c1ce409be379345bbe42690f3 new file mode 100644 index 0000000..bfb7efd --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/8d/ef/356ce0dcbeeab8f8c49e0389b32bf5303075f7f3c9528e432e9ac414fb34baad8f295e565132f631745991a39e3e88fc4b7c1ce409be379345bbe42690f3 @@ -0,0 +1 @@ +{"name":"base64id","dist-tags":{"latest":"2.0.0"},"versions":{"0.1.0":{"name":"base64id","version":"0.1.0","dist":{"shasum":"02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f","tarball":"https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz"},"engines":{"node":">= 0.4.0"}},"1.0.0":{"name":"base64id","version":"1.0.0","dist":{"shasum":"47688cb99bb6804f0e06d3e763b1c32e57d8e6b6","tarball":"https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz"},"engines":{"node":">= 0.4.0"}},"2.0.0":{"name":"base64id","version":"2.0.0","dist":{"integrity":"sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==","shasum":"2770ac6bc47d312af97a8bf9a634342e0cd25cb6","tarball":"https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz","fileCount":5,"unpackedSize":4692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc68YtCRA9TVsSAnZWagAAl+sP/inZ6NZbmHRztjT0W428\nQcUCY3Czu2LU3IF2iXmtGLdzHwU9Kbblm2l1n2iABoWYL1bhV679bIaW4L1F\nnNXQARSk80MoAcuggybnxzwX0aH+Vlqv0yhUUZMTMi6hm12wl90H1r5Q5yYj\npKD/XKcuEedwO5tkr4iF0kR+a9fxIHhtfcKXpIwkHy9PT9NTsgFXN429p11L\n+CShcPhB9ChV/LYnsivy+goK/2uCp/OOvOIcX1REemU71Ivg/7g/q+yJo8YF\n9DwsOvv1yCqVd9WhmshPJxUxem4E6Hm7B6BgLytDFWHFUU25G3t6pIPiINIq\n7aLHlFJsse65HHUg6Lk8mCQlppbU/k//L4dVIkuLxKd96sktl9Y47pWJhWAZ\nQFieq5GXw9y7cRr9wWo9I+an36AFjsyP3b3j2gfSPikAMQ4tmBT/o6vX9MJf\nAXej6QgwVIoktWf736rKy3ieJZpRLOloO7zSc1vg9XNoqIh4OVz70kgXf8iH\nUIt/9fWe6RLG/UivRitdAt3clzg1zxQ8TyxLYGnWwW2CJHPrHM3I68vCfJXz\n0EeoDysxR4cvp4IfVEJ+DZQSi+Sjx5vl+etujVmrbbrz1lTkmcHIegAxlAly\nVJGvfj1Dp4c7dasA5yJezSfLz/hFe/LrzjNrh8wdjk6mE4G3/hvJWsSltB1o\ntyf+\r\n=HpsK\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":"^4.5.0 || >= 5.9"}}},"modified":"2019-05-27T11:12:47.197Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/93/fb/c6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1 b/data_node_red/.npm/_cacache/content-v2/sha512/93/fb/c6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1 new file mode 100644 index 0000000..4120623 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/93/fb/c6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/94/67/b7e28e841e3f72dcab6cf51e1962cfc6afee8decc09a3252050371754763b9fe6ecad3a0317d278ee79df43c411113afd6c8483796cbb2c3818794f647a2 b/data_node_red/.npm/_cacache/content-v2/sha512/94/67/b7e28e841e3f72dcab6cf51e1962cfc6afee8decc09a3252050371754763b9fe6ecad3a0317d278ee79df43c411113afd6c8483796cbb2c3818794f647a2 new file mode 100644 index 0000000..be1e124 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/94/67/b7e28e841e3f72dcab6cf51e1962cfc6afee8decc09a3252050371754763b9fe6ecad3a0317d278ee79df43c411113afd6c8483796cbb2c3818794f647a2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/9b/1b/c9d535deeba549b364a2e6b75312581eaf775c4a030b860dffbfd287730a4274acfb47dc34feadfa4247a249aa60597f43273ae69e85c002900dcfe2233d b/data_node_red/.npm/_cacache/content-v2/sha512/9b/1b/c9d535deeba549b364a2e6b75312581eaf775c4a030b860dffbfd287730a4274acfb47dc34feadfa4247a249aa60597f43273ae69e85c002900dcfe2233d new file mode 100644 index 0000000..316edfd --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/9b/1b/c9d535deeba549b364a2e6b75312581eaf775c4a030b860dffbfd287730a4274acfb47dc34feadfa4247a249aa60597f43273ae69e85c002900dcfe2233d @@ -0,0 +1 @@ +{"name":"socket.io","dist-tags":{"latest":"4.1.2","beta":"3.0.0-rc4","v2-latest":"2.4.1"},"versions":{"0.3.8":{"name":"socket.io","version":"0.3.8","directories":{"lib":"./lib/socket.io"},"dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.3.8.tgz","shasum":"eefbe1c6db4341f59515f4196b437deaa90757a2"},"engines":{"node":"*"}},"0.4.0":{"name":"socket.io","version":"0.4.0","directories":{"lib":"./lib/socket.io"},"dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.4.0.tgz","shasum":"07f02c84695c8c0c80095ef8902d9ebf855a7ed6"},"engines":{"node":"*"}},"0.4.1":{"name":"socket.io","version":"0.4.1","directories":{"lib":"./lib"},"dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.4.1.tgz","shasum":"90d24a42561614b739eefdaa46a7fd743a4babf2"},"engines":{"node":"*"}},"0.5.1":{"name":"socket.io","version":"0.5.1","dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.5.1.tgz","shasum":"aee7740b360650d221d8c50824db7c5557a8c5dd"},"engines":{"node":"*"}},"0.5.3":{"name":"socket.io","version":"0.5.3","dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.5.3.tgz","shasum":"7cbbcbf1fcd67ff51141eaef5e3f88484704c55b"},"engines":{"node":"*"}},"0.6.0":{"name":"socket.io","version":"0.6.0","dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.0.tgz","shasum":"dcb2774894ca58d9f17cff8f5ef6b38fb83fd492"},"engines":{"node":"*"}},"0.6.1":{"name":"socket.io","version":"0.6.1","dist":{"tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.1.tgz","shasum":"d9b8283977a7327f0ac956b37172f9f5c1b39f47"},"engines":{"node":"*"}},"0.6.3":{"name":"socket.io","version":"0.6.3","dist":{"shasum":"eb4c98fdaa69d7da6e901e23b8d82f58a79624cf","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.3.tgz"},"engines":{"node":"*"}},"0.6.4":{"name":"socket.io","version":"0.6.4","dist":{"shasum":"2f2a3b2e39b228067f0fed87517f894620fac6eb","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.4.tgz"},"engines":{"node":"*"}},"0.6.5":{"name":"socket.io","version":"0.6.5","dist":{"shasum":"bbaacc301960c2542bc2c050e53ae096149e3c9f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.5.tgz"},"engines":{"node":"*"}},"0.6.6":{"name":"socket.io","version":"0.6.6","dist":{"shasum":"47142c3afb665c737ffd3fb7cae3d39775590f62","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.6.tgz"},"engines":{"node":"*"}},"0.6.7":{"name":"socket.io","version":"0.6.7","dist":{"shasum":"5061b461e4a2334982d053ffe35adb7712c8513f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.7.tgz"},"engines":{"node":"*"}},"0.6.8":{"name":"socket.io","version":"0.6.8","dist":{"shasum":"868352e60fdb7aeb757cce564a72c8af58a0e14d","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.8.tgz"},"engines":{"node":"*"}},"0.6.9":{"name":"socket.io","version":"0.6.9","directories":{"lib":"./lib"},"dist":{"shasum":"f83f2943ddab8a91087cecd4ef3a8a93e42f21c6","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.9.tgz"},"engines":{"node":"*"}},"0.6.10":{"name":"socket.io","version":"0.6.10","directories":{"lib":"./lib"},"dist":{"shasum":"90ca370b5fe14c7810420664a1dc9c5883dc8731","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.10.tgz"},"engines":{"node":"*"}},"0.6.11":{"name":"socket.io","version":"0.6.11","directories":{"lib":"./lib"},"dist":{"shasum":"77afe3106dc77e99abf67e7974626adc77716ba5","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.11.tgz"},"engines":{"node":"*"}},"0.6.12":{"name":"socket.io","version":"0.6.12","directories":{"lib":"./lib"},"dist":{"shasum":"cb5092255e64e8ffed07a3aef0da5353f14e5c4d","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.12.tgz"},"engines":{"node":"*"}},"0.6.14":{"name":"socket.io","version":"0.6.14","directories":{"lib":"./lib"},"dist":{"shasum":"73651a3c152b94fb0b353dee31364e6a0b58738b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.14.tgz"},"engines":{"node":"*"}},"0.6.15":{"name":"socket.io","version":"0.6.15","directories":{"lib":"./lib"},"dist":{"shasum":"d5eb26ebdba5811bf448e8e6db935527aa4f1bf9","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.15.tgz"},"engines":{"node":"*"}},"0.6.16":{"name":"socket.io","version":"0.6.16","directories":{"lib":"./lib"},"dist":{"shasum":"fb4d8e053f6d7376e4561d46949fd21dc210a894","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.16.tgz"},"engines":{"node":"*"}},"0.6.17":{"name":"socket.io","version":"0.6.17","directories":{"lib":"./lib"},"dist":{"shasum":"ca9a480df1e61d84d555e98e299ab51674ced90a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.17.tgz"},"engines":{"node":"*"}},"0.6.18":{"name":"socket.io","version":"0.6.18","directories":{"lib":"./lib"},"dist":{"shasum":"066dce544eebd9536a61fe08ff44e2e3bbfd8211","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.6.18.tgz"},"engines":{"node":"*"}},"0.7.0":{"name":"socket.io","version":"0.7.0","dependencies":{"socket.io-client":"0.7.0","policyfile":">= 0.0.3"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"b1b4cff4efce41f909892c580ea4c8c89a0dd0ad","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.1":{"name":"socket.io","version":"0.7.1","dependencies":{"socket.io-client":"0.7.0","policyfile":">= 0.0.3"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"fad218869c04b56e345693ac975bf8381e1b603d","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.2":{"name":"socket.io","version":"0.7.2","dependencies":{"socket.io-client":"0.7.2","policyfile":">= 0.0.3"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"4e86f1de0e9c5107a487d9350dd4b598647ed907","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.3":{"name":"socket.io","version":"0.7.3","dependencies":{"socket.io-client":"0.7.3","policyfile":"0.0.3","redis":"0.6.0"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"c1dea6c8830067fcf604db670472ce31011ae69d","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.4":{"name":"socket.io","version":"0.7.4","dependencies":{"socket.io-client":"0.7.3","policyfile":"0.0.3","redis":"0.6.0"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"7432632a02cba5c79934a6026070e43785fe7ccf","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.5":{"name":"socket.io","version":"0.7.5","dependencies":{"socket.io-client":"0.7.3","policyfile":"0.0.3","redis":"0.6.0"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"878895677715b9979dc9527816475f223182fce0","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.6":{"name":"socket.io","version":"0.7.6","dependencies":{"socket.io-client":"0.7.3","policyfile":"0.0.3","redis":"0.6.0"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"fef3bfd02951b2b06950f7c8e6912641abb2834f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.6.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.7":{"name":"socket.io","version":"0.7.7","dependencies":{"socket.io-client":"0.7.4","policyfile":"0.0.3","redis":"0.6.0"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4"},"dist":{"shasum":"88124c9a5c26236de770c64fad6db9e12ba41bd8","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.7.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.8":{"name":"socket.io","version":"0.7.8","dependencies":{"socket.io-client":"0.7.5","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"b7a2bf272a99c6d11249c925e0f726fb29240f37","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.8.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.9":{"name":"socket.io","version":"0.7.9","dependencies":{"socket.io-client":"0.7.9","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"8e703e5bd59e1e4c27fd78595d0ef4704e5051a3","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.9.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.10":{"name":"socket.io","version":"0.7.10","dependencies":{"socket.io-client":"0.7.10","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"92453fa656d791667a3f5c5da1c233383ec45479","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.10.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.11":{"name":"socket.io","version":"0.7.11","dependencies":{"socket.io-client":"0.7.11","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"d01c6f23545d0f6e2c3c2c9b3aeeca4e15f6a612","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.7.11.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.0":{"name":"socket.io","version":"0.8.0","dependencies":{"socket.io-client":"0.8.0","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"d858d732ecade3eda8429a61dcfbdbe78a462a3f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.1":{"name":"socket.io","version":"0.8.1","dependencies":{"socket.io-client":"0.8.1","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"803e01701dc9c122ac5ec625a2f5e453747408f9","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.2":{"name":"socket.io","version":"0.8.2","dependencies":{"socket.io-client":"0.8.2","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"25197b1c0881d02f8dead965a3c3a24c992c7b9f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.3":{"name":"socket.io","version":"0.8.3","dependencies":{"socket.io-client":"0.8.3","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"fd52783044324b3a01e5edc0b7392c6d5b58c404","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.4":{"name":"socket.io","version":"0.8.4","dependencies":{"socket.io-client":"0.8.4","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"946caabdef2f604c673e9172a6bbf9039c9f0f1c","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.5":{"name":"socket.io","version":"0.8.5","dependencies":{"socket.io-client":"0.8.5","policyfile":"0.0.4","redis":"0.6.6"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1"},"dist":{"shasum":"f9cfe2307e42c494e027aa40d448bc6d321b07b9","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.6":{"name":"socket.io","version":"0.8.6","dependencies":{"socket.io-client":"0.8.6","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.7.7","should":"0.0.4","assertvanish":"0.0.3-1","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"f4a219c810ed39cdf3baa126f7dc3b3f079f29b1","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.6.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.7":{"name":"socket.io","version":"0.8.7","dependencies":{"socket.io-client":"0.8.7","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","assertvanish":"0.0.3-1","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"98419cb68859a6fc5ec8d49f50dcdbbe2ffd4466","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.8.7.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.0":{"name":"socket.io","version":"0.9.0","dependencies":{"socket.io-client":"0.9.0","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"1392d336fd3c8e5f7011f633360e85450965e832","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.1":{"name":"socket.io","version":"0.9.1","dependencies":{"socket.io-client":"0.9.1","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"715574ad82cf051353b4be2bc160eaf465d593d8","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.1-1":{"name":"socket.io","version":"0.9.1-1","dependencies":{"socket.io-client":"0.9.1-1","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"0ed3a720b0d567b1ba7b9aee4e60abd7c9bbea84","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.1-1.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.2":{"name":"socket.io","version":"0.9.2","dependencies":{"socket.io-client":"0.9.2","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"b6e0ba1e42e8b0d02b63bbb05fc1c297c88186c3","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.3":{"name":"socket.io","version":"0.9.3","dependencies":{"socket.io-client":"0.9.3","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"30bd0f705e21bf9b44c4fc5f94f2691144656ce4","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.4":{"name":"socket.io","version":"0.9.4","dependencies":{"socket.io-client":"0.9.4","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"6e6105306bc831cc896b6b6caaf12dc74ec7fa0f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.5":{"name":"socket.io","version":"0.9.5","dependencies":{"socket.io-client":"0.9.5","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"2ed64d70e5f70abcb8191a76601116c3511e1414","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.6":{"name":"socket.io","version":"0.9.6","dependencies":{"socket.io-client":"0.9.6","policyfile":"0.0.4","redis":"0.6.7"},"devDependencies":{"expresso":"0.9.2","should":"0.0.4","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"6f76255c64f8a471995a1b624f6f16ccae0471e3","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.6.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.7":{"name":"socket.io","version":"0.9.7","dependencies":{"socket.io-client":"0.9.7","policyfile":"0.0.4","redis":"0.7.2"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"b7ff586251e5d0eeb174a264eeb36796ea29ba6b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.7.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.8":{"name":"socket.io","version":"0.9.8","dependencies":{"socket.io-client":"0.9.8","policyfile":"0.0.4","redis":"0.7.2"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"f085fe0957c85cccdae062bf2d3ddc19a37e7643","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.8.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.9":{"name":"socket.io","version":"0.9.9","dependencies":{"socket.io-client":"0.9.9","policyfile":"0.0.4","redis":"0.7.2"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"9f1dc1bb22fb03a6dbd5e94a50cf5d6c168823d8","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.9.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.10":{"name":"socket.io","version":"0.9.10","dependencies":{"socket.io-client":"0.9.10","policyfile":"0.0.4","redis":"0.7.2"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"20aff51bdfd33066aacdd5df7a44f244e7d2cc6a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.10.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.11":{"name":"socket.io","version":"0.9.11","dependencies":{"socket.io-client":"0.9.11","policyfile":"0.0.4","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"18957f802cf463945881a0179156168743cf3d35","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.11.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.12":{"name":"socket.io","version":"0.9.12","dependencies":{"socket.io-client":"0.9.11","policyfile":"0.0.4","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"d3cdd97cbd04f6d21618d967a0f9d4c12479a6c2","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.12.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.13":{"name":"socket.io","version":"0.9.13","dependencies":{"socket.io-client":"0.9.11","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"3e2a5e71ee47978cb18be4bb90217ad7a5d4f2fb","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.13.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.14":{"name":"socket.io","version":"0.9.14","dependencies":{"socket.io-client":"0.9.11","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"81af80ebf3ee8f7f6e71b1495db91f8fa53ff667","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.14.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.15":{"name":"socket.io","version":"0.9.15","dependencies":{"socket.io-client":"0.9.15","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"93b0b6954e1e8e7ace47fdb031bcbdfe9794b6a4","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.15.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.16":{"name":"socket.io","version":"0.9.16","dependencies":{"socket.io-client":"0.9.16","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"3bab0444e49b55fbbc157424dbd41aa375a51a76","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.16.tgz"},"engines":{"node":">= 0.4.0"}},"1.0.0-pre":{"name":"socket.io","version":"1.0.0-pre","dependencies":{"engine.io":"1.0.4","socket.io-parser":"2.1.1","socket.io-client":"1.0.0-pre","socket.io-adapter":"0.2.0","has-binary-data":"0.1.0","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.2.1","supertest":"0.8.2","istanbul":"0.2.3"},"dist":{"shasum":"58350abfb41baa95b05fbe20189e683ca90e60ff","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0-pre.tgz"}},"1.0.0-pre2":{"name":"socket.io","version":"1.0.0-pre2","dependencies":{"engine.io":"1.1.0","socket.io-parser":"2.1.3","socket.io-client":"1.0.0-pre2","socket.io-adapter":"0.2.0","has-binary-data":"0.1.0","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"2a38b37bce127237818794aa59400809a9c31c44","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0-pre2.tgz"}},"1.0.0-pre3":{"name":"socket.io","version":"1.0.0-pre3","dependencies":{"engine.io":"1.1.1","socket.io-parser":"2.1.4","socket.io-client":"1.0.0-pre3","socket.io-adapter":"0.2.0","has-binary-data":"0.1.0","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"5c947093e5b7d224dc0830ee8c1cc9253ebc0288","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0-pre3.tgz"}},"1.0.0-pre4":{"name":"socket.io","version":"1.0.0-pre4","dependencies":{"engine.io":"1.1.1","socket.io-parser":"2.1.4","socket.io-client":"1.0.0-pre4","socket.io-adapter":"0.2.0","has-binary-data":"0.1.0","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"8768d2788635870b208ae5e3e6c7dc2e39397489","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0-pre4.tgz"}},"1.0.0-pre5":{"name":"socket.io","version":"1.0.0-pre5","dependencies":{"engine.io":"1.2.1","socket.io-parser":"2.1.4","socket.io-client":"1.0.0-pre5","socket.io-adapter":"0.2.0","has-binary-data":"0.1.0","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"602604bc42489de854f38ff1648d5951ebd98064","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0-pre5.tgz"}},"0.9.17":{"name":"socket.io","version":"0.9.17","dependencies":{"socket.io-client":"0.9.16","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"0.1.3-1","colors":"0.5.1"},"dist":{"shasum":"ca389268fb2cd5df4b59218490a08c907581c9ec","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.17.tgz"},"engines":{"node":">= 0.4.0"}},"1.0.0":{"name":"socket.io","version":"1.0.0","dependencies":{"engine.io":"1.2.1","socket.io-parser":"2.1.4","socket.io-client":"1.0.0","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"d1862186f31f9bf284ccb83cee224d4c07a480fc","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.0.tgz"}},"1.0.1":{"name":"socket.io","version":"1.0.1","dependencies":{"engine.io":"1.2.1","socket.io-parser":"2.1.4","socket.io-client":"1.0.1","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"bb76327b69c419192421fcea7da02255daf4d397","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.1.tgz"}},"1.0.2":{"name":"socket.io","version":"1.0.2","dependencies":{"engine.io":"1.2.1","socket.io-parser":"2.1.5","socket.io-client":"1.0.2","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"a8ddb0654210329017b8b1781126f4e6a3095088","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.2.tgz"}},"1.0.3":{"name":"socket.io","version":"1.0.3","dependencies":{"engine.io":"1.2.2","socket.io-parser":"2.2.0","socket.io-client":"1.0.3","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"f397709fe78a06afcf2fc4b8ce1c39348bef19d3","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.3.tgz"}},"1.0.4":{"name":"socket.io","version":"1.0.4","dependencies":{"engine.io":"1.2.2","socket.io-parser":"2.2.0","socket.io-client":"1.0.4","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"103cb555e2c730f4447ed93a22d915d4f45b149a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.4.tgz"}},"1.0.5":{"name":"socket.io","version":"1.0.5","dependencies":{"engine.io":"1.3.0","socket.io-parser":"2.2.0","socket.io-client":"1.0.5","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"d9c47380015939c9c9622abfdaf6b8208da2b4c2","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.5.tgz"}},"1.0.6":{"name":"socket.io","version":"1.0.6","dependencies":{"engine.io":"1.3.1","socket.io-parser":"2.2.0","socket.io-client":"1.0.6","socket.io-adapter":"0.2.0","has-binary-data":"0.1.1","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"b566532888dae3ac9058a12f294015ebdfa8084a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.0.6.tgz"}},"1.1.0":{"name":"socket.io","version":"1.1.0","dependencies":{"engine.io":"1.4.0","socket.io-parser":"2.2.1","socket.io-client":"1.1.0","socket.io-adapter":"0.2.0","has-binary-data":"0.1.3","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"0825ecb5740f34c2319a40087c537a348010dbb6","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.1.0.tgz"}},"1.2.0":{"name":"socket.io","version":"1.2.0","dependencies":{"engine.io":"1.4.2","socket.io-parser":"2.2.2","socket.io-client":"1.2.0","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"02f00ffc24626294f46924d4c25ce35a9b940789","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.2.0.tgz"}},"1.2.1":{"name":"socket.io","version":"1.2.1","dependencies":{"engine.io":"1.4.3","socket.io-parser":"2.2.2","socket.io-client":"1.2.1","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"0.7.4"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"84400af534c0d32baa9ac88937eedb5b8465ee92","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.2.1.tgz"}},"1.3.0":{"name":"socket.io","version":"1.3.0","dependencies":{"engine.io":"1.5.0","socket.io-parser":"2.2.2","socket.io-client":"1.3.0","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"e6c1741d2a7eb539982465fac6e4779757403698","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.0.tgz"}},"1.3.1":{"name":"socket.io","version":"1.3.1","dependencies":{"engine.io":"1.5.1","socket.io-parser":"2.2.2","socket.io-client":"1.3.1","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"48a629c30e91f2f9c227fde4eb0bdb8d6e547caa","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.1.tgz"}},"1.3.2":{"name":"socket.io","version":"1.3.2","dependencies":{"engine.io":"1.5.1","socket.io-parser":"2.2.2","socket.io-client":"1.3.2","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"b8c1ffc63b3341d9609ee55e06560a6ca1f185e5","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.2.tgz"}},"1.3.3":{"name":"socket.io","version":"1.3.3","dependencies":{"engine.io":"1.5.1","socket.io-parser":"2.2.3","socket.io-client":"1.3.3","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"2a1b62bf3a0205488d3a19573b53648262770f2b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.3.tgz"}},"1.3.4":{"name":"socket.io","version":"1.3.4","dependencies":{"engine.io":"1.5.1","socket.io-parser":"2.2.3","socket.io-client":"1.3.4","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"3aa3bec59c75792cedeba1c52825c9aa6802f027","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.4.tgz"}},"1.3.5":{"name":"socket.io","version":"1.3.5","dependencies":{"engine.io":"1.5.1","socket.io-parser":"2.2.4","socket.io-client":"1.3.5","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"bfd609f37626889e94df9d3526db79a84255f1d8","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.5.tgz"}},"1.3.6":{"name":"socket.io","version":"1.3.6","dependencies":{"engine.io":"1.5.2","socket.io-parser":"2.2.4","socket.io-client":"1.3.6","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"1ef8ec4d8edea6499c8febd2a16b6d15b4dc15bd","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.6.tgz"}},"1.3.7":{"name":"socket.io","version":"1.3.7","dependencies":{"engine.io":"1.5.4","socket.io-parser":"2.2.4","socket.io-client":"1.3.7","socket.io-adapter":"0.3.1","has-binary-data":"0.1.3","debug":"2.1.0"},"devDependencies":{"mocha":"1.16.2","expect.js":"0.3.1","supertest":"0.8.2","superagent":"0.17.0","istanbul":"0.2.3"},"dist":{"shasum":"93747a29bcab6266f0fbe19112cca5e1388cf7ad","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.3.7.tgz"}},"1.4.0":{"name":"socket.io","version":"1.4.0","dependencies":{"engine.io":"1.6.5","socket.io-parser":"2.2.6","socket.io-client":"1.4.0","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.2.3","mocha":"2.3.4","superagent":"0.17.0","supertest":"0.8.2","zuul-ngrok":"3.1.0"},"dist":{"shasum":"d3009f29c088b56873414693c1cb7d9eed62db26","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.0.tgz"}},"1.4.1":{"name":"socket.io","version":"1.4.1","dependencies":{"engine.io":"1.6.5","socket.io-parser":"2.2.6","socket.io-client":"1.4.1","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.2.3","mocha":"2.3.4","superagent":"0.17.0","supertest":"0.8.2","zuul-ngrok":"3.1.0"},"dist":{"shasum":"441c9ca6ad209af7534e5ae846e3b1edd679609a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.1.tgz"}},"1.4.2":{"name":"socket.io","version":"1.4.2","dependencies":{"engine.io":"1.6.6","socket.io-parser":"2.2.6","socket.io-client":"1.4.2","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.2.3","mocha":"2.3.4","superagent":"0.17.0","supertest":"0.8.2","zuul-ngrok":"3.1.0"},"dist":{"shasum":"f414058c7ba4ac23b33e34b666b5f51500020efd","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.2.tgz"}},"1.4.3":{"name":"socket.io","version":"1.4.3","dependencies":{"engine.io":"1.6.6","socket.io-parser":"2.2.6","socket.io-client":"1.4.3","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.2.3","mocha":"2.3.4","superagent":"0.17.0","supertest":"0.8.2","zuul-ngrok":"3.1.0"},"dist":{"shasum":"16be5e24f40338e5df01261aeebc472d219572b0","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.3.tgz"}},"1.4.4":{"name":"socket.io","version":"1.4.4","dependencies":{"engine.io":"1.6.7","socket.io-parser":"2.2.6","socket.io-client":"1.4.4","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.2.3","mocha":"2.3.4","superagent":"0.17.0","supertest":"0.8.2","zuul-ngrok":"3.1.0"},"dist":{"shasum":"24b3e19ca15ee21cb7d9203d831f9b65a9f14bbd","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.4.tgz"}},"1.4.5":{"name":"socket.io","version":"1.4.5","dependencies":{"engine.io":"1.6.8","socket.io-parser":"2.2.6","socket.io-client":"1.4.5","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"f202f49eeb9cf7cf6c0971ad75d8d96d451ea4f7","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.5.tgz"}},"1.4.6":{"name":"socket.io","version":"1.4.6","dependencies":{"engine.io":"1.6.9","socket.io-parser":"2.2.6","socket.io-client":"1.4.6","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"0dddc2cb8fb9b66fc928604f13f6aa910254cc1c","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.6.tgz"}},"1.4.7":{"name":"socket.io","version":"1.4.7","dependencies":{"engine.io":"1.6.10","socket.io-parser":"2.2.6","socket.io-client":"1.4.6","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz"}},"1.4.8":{"name":"socket.io","version":"1.4.8","dependencies":{"engine.io":"1.6.11","socket.io-parser":"2.2.6","socket.io-client":"1.4.8","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"expect.js":"0.3.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"e576f330cd0bed64e55b3fd26df991141884867b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.4.8.tgz"}},"1.5.0":{"name":"socket.io","version":"1.5.0","dependencies":{"engine.io":"1.7.0","socket.io-parser":"2.2.6","socket.io-client":"1.5.0","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"024dd9719d9267d6a6984eebe2ab5ceb9a0b8a98","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.5.0.tgz"}},"1.5.1":{"name":"socket.io","version":"1.5.1","dependencies":{"engine.io":"1.7.2","socket.io-parser":"2.3.1","socket.io-client":"1.5.1","socket.io-adapter":"0.4.0","has-binary":"0.1.7","debug":"2.2.0"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"c3ea8c4ed4164436bc56adef60e31ad366518ca9","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.5.1.tgz"}},"1.6.0":{"name":"socket.io","version":"1.6.0","dependencies":{"debug":"2.3.3","engine.io":"1.8.0","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.6.0","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"3e40d932637e6bd923981b25caf7c53e83b6e2e1","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz"}},"1.7.0":{"name":"socket.io","version":"1.7.0","dependencies":{"debug":"2.3.3","engine.io":"1.8.1","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.7.0","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"812790768e9eb43f4842f98606fb63b4dd13e343","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.7.0.tgz"}},"1.7.1":{"name":"socket.io","version":"1.7.1","dependencies":{"debug":"2.3.3","engine.io":"1.8.1","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.7.1","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"a34d763fd22cd975643c2f0c7c5f14ba6da80aaf","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.7.1.tgz"}},"1.7.2":{"name":"socket.io","version":"1.7.2","dependencies":{"debug":"2.3.3","engine.io":"1.8.2","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.7.2","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"83bbbdf2e79263b378900da403e7843e05dc3b71","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.7.2.tgz"}},"1.7.3":{"name":"socket.io","version":"1.7.3","dependencies":{"debug":"2.3.3","engine.io":"1.8.3","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.7.3","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"b8af9caba00949e568e369f1327ea9be9ea2461b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz"}},"0.9.18":{"name":"socket.io","version":"0.9.18","dependencies":{"socket.io-client":"0.9.16","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"2.1.3","colors":"0.5.1"},"dist":{"shasum":"e5c8b749628b103bad05dedf5de4dac6b2cbf579","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.18.tgz"},"engines":{"node":">= 0.4.0"}},"1.7.4":{"name":"socket.io","version":"1.7.4","dependencies":{"debug":"2.3.3","engine.io":"~1.8.4","has-binary":"0.1.7","object-assign":"4.1.0","socket.io-adapter":"0.5.0","socket.io-client":"1.7.4","socket.io-parser":"2.3.1"},"devDependencies":{"babel-preset-es2015":"6.3.13","del":"2.2.0","expect.js":"0.3.1","gulp":"3.9.0","gulp-babel":"6.1.1","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","istanbul":"0.4.1","mocha":"2.3.4","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz"}},"2.0.0":{"name":"socket.io","version":"2.0.0","dependencies":{"debug":"~2.6.6","engine.io":"~3.1.0","object-assign":"~4.1.1","socket.io-adapter":"~1.1.0","socket.io-client":"2.0.0","socket.io-parser":"~3.1.1"},"devDependencies":{"babel-preset-es2015":"^6.24.1","del":"^2.2.2","expect.js":"0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.3.0","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"fef1966ee750001b20943983a057dc31807b1efa","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.0.0.tgz"}},"2.0.1":{"name":"socket.io","version":"2.0.1","dependencies":{"debug":"~2.6.6","engine.io":"~3.1.0","object-assign":"~4.1.1","socket.io-adapter":"~1.1.0","socket.io-client":"2.0.1","socket.io-parser":"~3.1.1"},"devDependencies":{"babel-preset-es2015":"^6.24.1","del":"^2.2.2","expect.js":"0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.3.0","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"064c125178462e477a6df23d2fdad18dd1c5914f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.0.1.tgz"}},"0.9.19":{"name":"socket.io","version":"0.9.19","dependencies":{"socket.io-client":"0.9.16","policyfile":"0.0.4","base64id":"0.1.0","redis":"0.7.3"},"optionalDependencies":{"redis":"0.7.3"},"devDependencies":{"expresso":"0.9.2","should":"*","benchmark":"0.2.2","microtime":"2.1.3","colors":"0.5.1"},"dist":{"shasum":"490bb5fd0dc54cf002ee04e67fadfc43b848a38f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-0.9.19.tgz"},"engines":{"node":">= 0.4.0"}},"2.0.2":{"name":"socket.io","version":"2.0.2","dependencies":{"debug":"~2.6.6","engine.io":"~3.1.0","object-assign":"~4.1.1","socket.io-adapter":"~1.1.0","socket.io-client":"~2.0.2","socket.io-parser":"~3.1.1"},"devDependencies":{"babel-preset-es2015":"^6.24.1","del":"^2.2.2","expect.js":"0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.3.0","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"133bf3a1b67d02f2ac65103c11f78e6f2c4f3b3a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.0.2.tgz"}},"2.0.3":{"name":"socket.io","version":"2.0.3","dependencies":{"debug":"~2.6.6","engine.io":"~3.1.0","object-assign":"~4.1.1","socket.io-adapter":"~1.1.0","socket.io-client":"~2.0.2","socket.io-parser":"~3.1.1"},"devDependencies":{"babel-preset-es2015":"^6.24.1","del":"^2.2.2","expect.js":"0.3.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.3.0","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"4359f06a24933ae6bd087798af78c680eae345e3","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.0.3.tgz"}},"2.0.4":{"name":"socket.io","version":"2.0.4","dependencies":{"debug":"~2.6.6","engine.io":"~3.1.0","socket.io-adapter":"~1.1.0","socket.io-client":"2.0.4","socket.io-parser":"~3.1.1"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"1.6.1","supertest":"1.1.0"},"dist":{"shasum":"c1a4590ceff87ecf13c72652f046f716b29e6014","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz"}},"2.1.0":{"name":"socket.io","version":"2.1.0","dependencies":{"debug":"~3.1.0","engine.io":"~3.2.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.1.0","socket.io-parser":"~3.2.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-KS+3CNWWNtLbVN5j0/B+1hjxRzey+oTK6ejpAOoxMZis6aXeB8cUtfuvjHl97tuZx+t/qD/VyqFMjuzu2Js6uQ==","shasum":"de77161795b6303e7aefc982ea04acb0cec17395","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.1.0.tgz","fileCount":8,"unpackedSize":55696}},"2.1.1":{"name":"socket.io","version":"2.1.1","dependencies":{"debug":"~3.1.0","engine.io":"~3.2.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.1.1","socket.io-parser":"~3.2.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==","shasum":"a069c5feabee3e6b214a75b40ce0652e1cfb9980","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz","fileCount":8,"unpackedSize":55707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/fLYCRA9TVsSAnZWagAAsZgP/2ctk5qNxaMU9HFuuQel\nuNr0dhBk/F6JRAhvj81OvkDUwvvnOIB3aYddo27bJY3a9mfW+4KevI/FDE0X\n+cPn9TbX/ZAM87cMBsIifH4cNkziUyvWgBZk6pRY68qvIzWatWA1xajoLCPn\nKh170VeKbAePryQs1WXHDVScb6ZtJuMuXppjn7hwsKBbpGADRvPijgl10Sta\nulAwB/1jKELiPbmWB9nCFU3aDAkPg7oZCk7Xj1KcswcPZO7RLz6cggBzANs/\nxdedZOWb/SBn2DlZvUpB9paZJFPaoxIRSS3hp38r+fyr6wNXCJgizP5UoYWO\nX3hOuJ2/UfBV4hEEpdUlVGckSy6Z7v1jjUKvTDn3DY1et8nFkBI7AVCzJs0K\nd1YaR+Lythy1wmkzu1lJGkFD4u10qZrLF1luIvqPLu648W7KnL95LpOkz8K3\ncVa5cDsd2yBqF7iQKs1wRRiuK+HseHUOBGMDq81P3BG5ZN0b4RlRcD7XIXbD\nNV8lBYvNKXxoeuwoLaxQ68hZQ4nRMTb+F7swpgvVaNrwOcX/HfXjtq+3TGol\ndCmxxIpFHwe5kGCoidi9PuRWxcsOLLq22a6LFCLBcShZ0dvbTdnxl4v4DiT/\nJp9Xctvitvix0KlK/8fYs94hbumHy2RNQKyEyNg95C6i5b7Cn3GBSGw7jWsi\nziDQ\r\n=Vn/N\r\n-----END PGP SIGNATURE-----\r\n"}},"2.2.0":{"name":"socket.io","version":"2.2.0","dependencies":{"debug":"~4.1.0","engine.io":"~3.3.1","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.2.0","socket.io-parser":"~3.3.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==","shasum":"f0f633161ef6712c972b307598ecd08c9b1b4d5b","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz","fileCount":8,"unpackedSize":55917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/yG9CRA9TVsSAnZWagAAmb8P/iRNrZ3/eWRD6myZ19Iq\nJvqMUhEasgCr60lVe+rAlsSNylULbdX8MiMIDBbPLuXF9POfV/yBEFo4MdXO\nst+kza5SfKoNj6spx3LECqpOC6+J60w1kkNt7xQYZINj2YNiX6b1UkSiKJyT\nkKqLGiY9RhYGJW7RcmxVS/sslBtPT9fwgUvW2TBnMk83B48AnLacdlvsdb3T\nCIlUxosgGaSGyb1wmJbrz8kdvZCO68UKeLdIBmEvfYHcyDMfUkPIwFT2CYB4\nHYRdUVfC3t1ift077x+BifsOrqbLMCyRJSV/hQ85C4RDZTIO7KuinETwIWf/\n10gasdSGL0PtR+D/MNJIoIiLKSTz3iRnQ3I0i46mNMbNsN0sLPF92oCEQyTW\nUQYitVIIDCfP48L9dXgV61qaNwuGiMMcniF9CepYfheHxd93KUIY1AYuQCg+\nGgjxs2Bh8gsYyljrSvTUC8VZ51RvRde9Di+2RCsZUPDrtjHqBF56Uyd9j/em\n9mAJIZgRJ1KvGZicdgItlcK+PkSRvsD6M4azX0H3RMZEpX4o8sCRQj5Wi86d\nLwUA9c3StxzL3TMJDEgjTB77oM3IuvvEIkKPcrGQ21mbJAmpzzMs9r3QLgHl\nZ5pnmCgQt1Rnptkg+HksFPhwKHYczvdMk1F7An4gEySaGl40CPpVt4K9KNkG\nHZsP\r\n=SPlh\r\n-----END PGP SIGNATURE-----\r\n"}},"2.3.0":{"name":"socket.io","version":"2.3.0","dependencies":{"debug":"~4.1.0","engine.io":"~3.4.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.3.0","socket.io-parser":"~3.4.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==","shasum":"cd762ed6a4faeca59bc1f3e243c0969311eb73fb","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz","fileCount":8,"unpackedSize":55917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhKjHCRA9TVsSAnZWagAAFOQP/1Jul+JJAOV5PFjCctZq\nuyMkLeTN9z+dqxKwKIk+Ekx1mvAdBL9xQ8ShqHMSKP8mqjoNd+mxhGqMaBvd\nvrMciXGvyN1F2d7ghJOTSZMKnSrlfToNxUNo3l/yDJAqw4S3Fg9vRWcNODF2\ndqmDAr56FCKPQGjXn5noF47soDUEwJgg7Rua5mTLFcYhNzkr+8gfjWFfQWNj\n7RuAWTi3E5kSIf2keUGNALA9HAcpmemQKMdjYjxqT6JAIOFnFYUEi/jmW65U\n3aQK3+AtZtF7B5pwGLwZtKA9Q6SRsJy1ghfANpn4aeMsiUJPEWiTsYaHXSUk\ndsTaJcZ2ZrlYAkpXdLGXPU5dR021ooo/Xw2dqotwBrjsrNZthsUPucsGXM6P\nyfxg/m7rMc00/DaF7NLfvRVmZeb2M06IUoYKkxcEF68HOKpm0Bfc1b2naYCi\nr/XemTGU8o1urqrlWQ3E/L3FDStPj8W1oZWCp8CXyoM7uqcM6bOwuTU75yEY\nGZ/3Yluf4Fudwceg0Aok9N+hsKVoyILwJjzIZVnqQCNazK2JRDQXX1dDuhHg\nWb+OFX5GXOj4nKr/KFCP2EXgTK9fhSLbcPmKrnhqKPLmJ/BYX8JYzbZmn0sD\ni8hpI4lqckQLNDuwSaNHtbMXmh34tqak2emyPza9SqaaVhJN1ikM5KE1WX97\noEex\r\n=czYC\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0-rc1":{"name":"socket.io","version":"3.0.0-rc1","dependencies":{"base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","has-binary2":"~1.0.2","socket.io-adapter":"~2.0.1","socket.io-client":"3.0.0-rc1","socket.io-parser":"4.0.1-rc1"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-K+1GQRweWGgO363FxtYBM8CFwHiWLF4LpB0bHjYndiArSKNiyy/FaFQktnBLd8A53CRVgikyd+M6x4fRZlgkIA==","shasum":"276d418c5a1f4e1a71cec9417d272f5b3fb43c49","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.0-rc1.tgz","fileCount":14,"unpackedSize":87003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhh6KCRA9TVsSAnZWagAAQSIP/jNKuTs5SolxYe2bdQt4\ntkCqbHtEsOMUTv1RnRlDFO7SBCsCtsiba9+eZUeBQiu778kYS9JPEUwU+bkJ\nIoqSFd2plKz2pBeYfOgHBd6fmEkfT1NGcyQivHXx0Hth3UtBR4H1iTa2dMNI\nzk24nRvEYvhjSvYlx6ZgyMzq4/Op9ZPX74/JkrFF7MCTUNdnZTwIZpoB2Uso\npwbTv/NuQThHi7xuS1tEAejwskQVFdM+IQs+DVwK9KChQ/yrKJNNyGTAKpBZ\nDXaY4NRi2Ln/M6uutZA+ScoZAKUwCODKjFtxEB0HfzKLe+L8E7P0eq4kL76B\nkWxaW5Iap8eEIeWMXFR6JisBYq7davj3s0Lz2C4T1d7+RK0qszhDbTG5YV3Y\nGmneUQfwx8Kld6a26A/QQZ3YEVXPHwTKnqhtCkXRMZCajVYPSVyzyl2rv+wN\n9QarpC+XY6yCpWLd5Qo0j0yH8fWTPytYLe/DanGl3i2O3nBE2bpFVGPQPpch\ng+MMi2PtbTmsZT+BGj4Cf0kCy8IoQLDiVMq871bCejmrGGGUiVEyPQjfsnHx\ni40/YAamt/U5bd4CBIyMAMPAy39dA3VfAtfIfVJmJJFjInde4O3xGEbPcvrq\nUsrLZ4QajCwubjcgprto07Qz1FmAivMvkJQ/sKoljha7i1BlE4wM/qqfhWNn\nl8An\r\n=KlMy\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc2":{"name":"socket.io","version":"3.0.0-rc2","dependencies":{"base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"2.0.3-rc1","socket.io-client":"3.0.0-rc2","socket.io-parser":"4.0.1-rc2"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-viH824jjAF+tCN6zfFgZR9wsgXWZ6zuVZ46ZQDsThyXdkv6+RihAZ/xz6LqsP8vFK83MVtRztMAIc56eyeKX0g==","shasum":"6e3eca5282f38f4eec24490c0a320bd7c4729a6e","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.0-rc2.tgz","fileCount":15,"unpackedSize":89016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiCyOCRA9TVsSAnZWagAAnLMP/i2yYB8rx4hc3zj/+bnT\nUU2ybPqeJr/Arx/QqQX9ht0RhYN7xfTXoPZr6A+giy8EjNMU+fVniokVx2zK\nF7nYdy+uL2uX7GIWf/RF1xwYFoGq8wivOzFZcBHRVktT6ksfpLG0N5ZfdNVa\n2Q7MY+ti98rlVN55c9EXn6K7dJ1u50Br+41VtSe5AuV05FD7yQ5ON+J/f2C6\njfc4t0vzA0AHY3Hgu1NHRafcKVXdjpn9Y5ttuvVPUsxugQzjsjqSZF8gYTha\nAPBIRKRLEfsXaPBVNBn+FOAopE+8JFFgX4aqUgpNs5IZZ2XIaVTaU4u72tbW\nPBE9s9SnkrtnfOX6DMfxtzaIwARgBBLfkbvKCBqjtoL/Cg7K09ZN9YD9e+SI\nnI/fIudMc+xSAVDEw7q0HgoAca2I1xSX3EX8savMhz8AAObRiw7jBGN6dCUT\n48A9wCsHotUBcwFPl7FxFMHPtYaerot9AAAOJgajsTjpOxKaj1DXRfXxhm5t\nM1T/PnLXPh9VXHK/7INLHaXhyEYtYTfFAAwfRA5EqVkdahprX4xJc610BdcV\n8CIQ1DRb+7XZt4dYxgU2bVtvKTJ/9XV/WkOLukf5woQO9VoDAP5TWOHAYeqg\noaorOaxZj3WK8WQBZcwuHP1Pnfl6qtFFs8lYEmvqtNXddj9r7qG8i71Lk5wz\nfQvt\r\n=eC2N\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc3":{"name":"socket.io","version":"3.0.0-rc3","dependencies":{"accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"2.0.3-rc2","socket.io-parser":"4.0.1-rc3"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","socket.io-client":"3.0.0-rc3","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-AVIpRd7OTyhCgg5muz0AqeF06csptsnP8UP10ubLrnL7XKplJFDadUB9fEbwB3iLMpf1NT+YfqTBCVKHhpMlZA==","shasum":"9a19da058466879c04c593ac2ce92e4a25800078","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.0-rc3.tgz","fileCount":15,"unpackedSize":90817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfl1/sCRA9TVsSAnZWagAAdXgP/1rzgPTpOl+o9HEVut8l\n5lCsb2I3VqeaDhWxsC5PVsXXZCOoKa/nkVYiKn/nlMZefjoVPk2OtTW71V/l\nf87TvdVj7QYui6lma/TiLwuPGhy0w9jbZX/3O0BcGt3zDQDvIBeDhIzEyXGr\nqPGMDjF50BAz/T6fvOfaRdSVC0F5LtO91s0PzOG1sdZVoKcGc26fajKB7sil\nYMeBNnkmdDnNHr8r7B9o/LIt1E0SXLRBuca9aZFbMdQH3G7Uve/TxnXX0+Yb\n9QLnII4gqht0hqPbcedHtqSR9pUyrOrXXlKF6JPfVSvrOkdICTK3/WmIdljG\nLievZJLEb4/mu6McSfmrjdRYTyOxQmqK7JTTB1drgW1lWd4BHUrrt6RC4Lpu\nrV61hkeAka4bP6XJBEA/GScLKcv+c5oG/OhXnomq+zLZkkye+c2EifPpUYSs\n9eqwzzUOYY81lbWAK0FAU2eGoxkdU7TfXX2GqBwCoBh9ov5QOEzOIZiy3Gwa\nrHApvttfJIHjWQ27IyKHSVKOWIDuN3z2YFV2F61bWGNCKjzFahhvA/K3hNGO\nto5K7mPybFGuyegZgDrFVRVDoejtDsvabKuYyW2y5yg+nJnFycjadwp/oi0D\nRBGi4Rw8789mWj6UZNUd317mAiQZmE8Taaexp8gzEhUiRaCkwPF+ZTBHBAlr\nDewf\r\n=M164\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc4":{"name":"socket.io","version":"3.0.0-rc4","dependencies":{"accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"2.0.3-rc2","socket.io-parser":"4.0.1-rc3"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","socket.io-client":"3.0.0-rc4","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-LTO0PGxUl2Dl1wVXylivwBzsbEtC0gDM7efxDNfq1YQoEK98LQMfoyiLNfzzF7wwxzY9MI81Dy3c19iL4kX//A==","shasum":"6e9ea1194f2ba11c806c7e53847569ac30d2daaa","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.0-rc4.tgz","fileCount":21,"unpackedSize":985713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnI3hCRA9TVsSAnZWagAAWsMP/1ZKlZ6WGI5Cun1SXwpD\nTZLuDp+Ba2otasqc1lE+ekRe3Rt1QNN5v7t4gwLw3w+SuOTXZiS0sOCrvbzT\nrXZ1Rbu7q3Nd8Z4neZahbAp34Rrdk/vQRnT0m67mTW2gNmDsSLtglWK1qKsq\nmiKy7IzIOHYx32Y0g3MJBA38zMiph55ANW53IurA64iChlQ0+hJe2iRjmlpT\nVwVD9cOWJKn0YWvxDlr68Eviu2UPkvbfCwf+XQK4G3D+oAOx4l/zENbAVbh8\n22ilBjQyavahPCG3L2ScgMz+bTinj+7U+HhMqyXLCu/3bEJwSmeifDjMr5Lt\nK0tcXqUbYvo/sKp/JtDExYlDdhOibT8YTDge5g1Qdj9uBkfKqqEWsU4/eMaP\na+sZXIPT11pnInRZKUbIEoJVlYVZrOW53v0WF/AXSeh4lVhUCNhKJmhzyBEW\nAy3T74Hc1Fvc5VKaFfHFlBdR3eNLCPV1Vde4Pxxg99Wm9keNHg9FDpfBxlmU\naCug5qrvvJm1ZRkYui3BQhth8qSI/JN/DB/DTp6/nQLqFcaSj4YBWP5834AX\nISZ4v8vnByLf46soBDh0vwdeHMRtRHS4qrA8viltS8ShxOsfyJpBtA4xxudF\noV7B6yS2IYB+X7y3gbMLN+NfuSE8P4NonBMR1hrhadT6P5Bw7R4flUbusgvR\ny3QF\r\n=fVCP\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0":{"name":"socket.io","version":"3.0.0","dependencies":{"accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.1"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","socket.io-client":"3.0.0","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-arLQtd+UoJ08NXBRBGUJDyQ9B+cc9WwD67hc5s1WQcs2DyAkYzI5HWg4U0CrFtK00kjyAWxBGhLwVbfOeMqz1A==","shasum":"4be7276bcf8cc46b1d78f78cd9eab86cea93138f","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.0.tgz","fileCount":21,"unpackedSize":989560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpGncCRA9TVsSAnZWagAA34QP/iRYrAQSzDXtDDmKzv/y\nHRo0y28boM3UDO1A6OiL4HeSr20WKzUmhw3V8Kd3EUNxVaC/nqw2t1lVf29Y\nBaGQxEDLD2GuFYt4/Yk8CeiMqIIuJPEZKIuW1JgxA827hifuLVf6MMFUmBAN\n6s8kEfGijdSmes8g7g4YomP8IGaj0uGYqM1bfDlaXXCMM4t1CPfVI2phkyni\ndgKCWAGjF/zwEjxlMAN0/gwfXusm40IbQ9h2wIW4auHJ72RYzDPnD4runSFT\ngoByGDU7Su04kwpqDpnBZCRZ2FcnYgZCXuDKE7m3GYAEEyzg05YpkXgINyAo\nbIEjRmPCaXhwkzSBmNh6CitmP70jqr3n1VK+WPfNd7ta+Y8lNj7r70Stm2Kl\nIGptcBIawLbWOwPS1SRsvc9ZjP/DeYDXUjXJ4QEMCnCPJs6dQ6uNVqH6uchn\nJp4nqX1Tgh/n1nmYCMNb+zMcPKdu9OqZd6VGVDv4T0o8ST/CaPL05i7i98qp\npNYi9L5+NqDeSfi/lDh4bUpSyuG3ZVEmdvYrNNu7GA2X6obueftAhDzYczYc\nFvULbdNqhczajh5TBh7nf9fXcMZwR9t+sDKY3M/UgmSoprs4k1jLh6eLxPcd\nQzLCoDthwWerBdDdKLe5GPOHSuzEVT5fSCyaxhe+0lpXgEiSeAd7oxA635lG\nsj1S\r\n=9M5Q\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.1":{"name":"socket.io","version":"3.0.1","dependencies":{"accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.1"},"devDependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.7","@types/mocha":"^8.0.3","@types/node":"^14.11.2","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","socket.io-client":"3.0.0","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-oVYbCQ4sCwm4wVi+f1bsE3YFXcvd6b4JjVP8D7IZnQqBeJOKX9XrdgJWSbXqBEqUXPY3jdTqb1M3s4KFTa/IHg==","shasum":"7e60375f9154968cdae45363a4d7c0570bcfd653","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.1.tgz","fileCount":21,"unpackedSize":988598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqQv3CRA9TVsSAnZWagAAilgP/AgmRaXw4VHu16LXhJaj\n9u1b3tvURISnRnzmSTurHwXg9P1oiDsKjBkQT/NfJTUuBcqakgzxyxs5OBdj\n6d8gau0EEMXZnxrozkIBaHkZt1Q1pvCEPNXpG9B55Hxqd0s48wjx7ZX/U/+w\n/7zK0NUHOOrxWnd2VqphAZ4rnNiNw4thCyGZ3rG1qD2ApS0lzwgp9HQ3DtS5\nSRP3nt5nqSMVfm2kXziTDW4DkZf9u0pWg3VGufUCMpS5FTuznPHTWXK++dlQ\nonTZqOpzOg2Wnhe/vyWFyYe7gW9T4wz3qi43crG0lR6eVlNQ/9J5erpj2NQo\noebVdOz9fYD4GOIscIv4cRSulMMGzdNQb+L7T7ZxwFBRDKz8fWX+2s6zjMIK\nJzqGDX//InUvldy6GwVQqYSv8k9y6X4cVsEQMMG33AsaQyrRUGFzXno4NznD\nIUUWhP4fevVOjr0hCu0uvi8bEu1HFTLhyLuJRqNaneOa+BLf+D/BOtWUNGOd\nMpuGXKsZSiWEJujO0z2wFwD2v+oYCXBs6eXyQyZj4AyMuhdE/16DObF9XuAB\nTQ7Q+o+gFOOUebH4Lvs6QCUz72Kh3fU2BplDL2CgXkpO/eFa/HZAxeSiFT+M\noLfJVhxUQsA/8Lk0GjtrrpESAKIaTlwPHgsesyB0ACYPM+3Xa/kTjFTsK1C3\n7CTI\r\n=wMfm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.2":{"name":"socket.io","version":"3.0.2","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.7","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.1"},"devDependencies":{"@types/mocha":"^8.0.3","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","socket.io-client":"3.0.2","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-CFnVFhzOy6eHOnZhElG5dtacsEC3jO45KfIWwDSoKavBuWmuK4k4j1eSMj0RymrTA9WuXG5+yD+sxxtMK8rCIA==","shasum":"8a749c82520beb3b0b58bd2f577cf1d164607156","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.2.tgz","fileCount":27,"unpackedSize":1006417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftGLlCRA9TVsSAnZWagAAyxsP/ibZH7W1szsBHh9hw0w4\nejzBKtj1OytnDYB6ykdPVMB1mxMF2laiOjgPdWfNCMwk+mbfoQ+q84hKnItU\nP7hMawBccSN9nxYtBzVsm9o8/r1H3u5JcOnf504UGtQ8SAFlpwGLVY2UyWu7\n8drw6W6t9M5erlF6iiyEFV2VPZVo+DSszPtOfytDybUfq62O6DBBWO2ECTGS\nNeVvIQrKp+P7pOx09DcQB9Kuz5dv6Ydqd7C/kOBmCVE0j/QuiKF91GeVwOV3\nzh4X8HB3tWevvIIz0IDgXkLwpXj3YyvKK1lCTSw7iowQYu5HIu0/hK04vASI\nTR6yg/jyTT7WLuyG4yODfeeUanMsIeAL6HqYSmpnnMdzcPGskelwFQZdLMLM\nN7JIV1QjX/7SWeuwmmmuJtK5+qpvTUHWo3vNr3YfLGn3yzrO9x7JWfyXjyMA\nO++fSeiYoBdLFAo+2tMHr43/xwvRuOkV8e9D3sCoKu2323TnaQfmcd4kGN7q\nw9g/oDY0pMKgSzzfXq3X5etqbSTvrspCWnupn41EnCkY70gv4ORVE5b6UdPz\na2gCD3gBGAO2kOo22oaW9QZHkNV/bDY9MMgZIJolKnlWqQxiCWzdbXxcmFw+\nUrrTg0dWNduZxo474oCUxWXK4/G4dKRB6KdrMFtVNNZj0VXzRuDHctB0D1kF\nFCJ7\r\n=FJlV\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.3":{"name":"socket.io","version":"3.0.3","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.7","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.1"},"devDependencies":{"@types/mocha":"^8.0.3","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","prettier":"^1.19.1","rimraf":"^3.0.2","socket.io-client":"3.0.3","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-TC1GnSXhDVmd3bHji5aG7AgWB8UL7E6quACbKra8uFXBqlMwEDbrJFK+tjuIY5Pe9N0L+MAPPDv3pycnn0000A==","shasum":"f296e95b14077d30e77e695849621514191a59f5","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.3.tgz","fileCount":21,"unpackedSize":982979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftb0wCRA9TVsSAnZWagAARLYP/iU01N1UM1/QAUYhGLfz\nIWICFQS/Vcf4aWQpkCGcH+2QensAXqCyoQXQkLtIvWteYARKblwE4pmiCMAz\nUXoD0/no3i506OJThMromixjWxySjQQlI3/uZQ7DdIuSoeFVRlSLpBW2pG6n\npoELT9buk2zfJ2W4bNOda5mXtkWt6vV5TeBiCehxQsTjqajHcsRzC8YbFHUB\neGtWvKD4dbATiF0SP6TqXEfO7T/MV7hHJ6Uwb+lxKCy5yo3iVcYlRZMQrOeY\n19DQb6Txba9TIlosAEm23tEK/oMXkN4QaQd+TfvPWzRw1lYSWTiJL4gXTUFL\nL0N+09wTjLeiBwaUe6QlpuFWCVjCgQa7InYctydJ/cvMjMPxcs4HpiY/eiSq\nPfmZxJtdbTalaVWYvsSRncjtAFV5dBwsyMYzhRe8tBHhKGu6eVMxRFDfV3S4\nkaeITe2zc5j9cIej6TiLJS4st/dakrynsHTrLQdxAhWknALy/+UCXNUMUaWA\nYRwkbbbszAvat4o8fpAi/B0mXNCUp04rP0Zaw/nGlHjMcJkKXlD4kgTG1CJ/\nkhw3XiXHWEu8hcMgK0mZ5IuL/EByJ6R8lhdLncRwiEKocBHq5GbnYF/HqvL/\nKBmsG9QVuUVnQe7R/E7yNYNl9hWrhkzKiO5zFsINVZDQDvTKTZlMZzblmBko\nHOer\r\n=RFvq\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.4":{"name":"socket.io","version":"3.0.4","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.7","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.1.0","engine.io":"~4.0.0","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.1"},"devDependencies":{"@types/mocha":"^8.0.3","babel-eslint":"^10.1.0","eslint":"^7.9.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^1.19.1","rimraf":"^3.0.2","socket.io-client":"3.0.4","superagent":"^3.8.2","supertest":"^3.0.0","ts-node":"^9.0.0","typescript":"^4.0.3"},"dist":{"integrity":"sha512-Vj1jUoO75WGc9txWd311ZJJqS9Dr8QtNJJ7gk2r7dcM/yGe9sit7qOijQl3GAwhpBOz/W8CwkD7R6yob07nLbA==","shasum":"20130a80b57e48dadb671f22e3776047cc7f9d53","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.4.tgz","fileCount":21,"unpackedSize":982875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzguhCRA9TVsSAnZWagAA1DYP/iVMfohKMlTF1PJje6wR\n46uv+QbbvFy4eNMesKw3lQHEvDYEYKPb+9FMAd6Xg6CybCGuJTvlBaBbFQEt\nwbQtseKgYuRs9IDzg9y2pHiHyaxbjn8E57ep2tj7JB7EFnrDjJUT88mr8SsX\nj/jnTubWhPyGU9A4n/fQfDv1VZecKvdW9nOXmX6cKgO36RXhiKWz0/lnS0Id\nbBVwVD0jLVK9hpjuR48/XRB8Bhqcr7CU64Xqp33v0p4HCHeHOEqos7j31ENY\nPEFVysx/2SWmKfKIwmV/mTdX9jsanC1F0CeZySb3v6o+5UYL51KwhEuNWDtF\n+wB0njHL9e27b98WTIgUCpDKOiw///y5+JEjDqaAQ/xtq9C/GR1qNATpgDut\nPAqCBIojB8NUzMW+paQeckKVkcY/wlZYAyjtUx7uCZJ+2Oo/GcWr2POce1tN\nt7hKD4Ru5Ek7Wi4C6eTHb/Rhq1cQLwJB/WVgngshuRCYEIlOZsYPTuqkqkje\nki239WZ1tUHWdAU3q3LMOBanRYXNe8UjnknzMYyIajTAGgic8uwu4cHYbDXj\nf8Z33KGsVydHOkUqnLBA0q/LkVoaVE5CN2XMhrTz+5BXGq7dndXkD4kPs4gh\nXVhuHLecVJYYi5uyuIa6LlyjrY2lZahlKuS90iY9aAsrW3PhX6W5JzNkGbwy\nKtW2\r\n=keY/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"2.4.0":{"name":"socket.io","version":"2.4.0","dependencies":{"debug":"~4.1.0","engine.io":"~3.5.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.4.0","socket.io-parser":"~3.4.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==","shasum":"01030a2727bd8eb2e85ea96d69f03692ee53d47e","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz","fileCount":9,"unpackedSize":55652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf86SPCRA9TVsSAnZWagAA4RYP/2x4ns1b5MXrT8xqPtjJ\nO2RB8Fa8L66Y/++e1YjD9vC7nCCKER9RS7fzKM74GRe5Zg9qaqhfvVuzrmUP\nwYG2N/obhb48p/Tq+tqxwSQPPpgcgpU4ZJL72fi87FTA2PnBZKQMb97XUQLT\nAUxzpJSqVD9x7sJRaB0UELdNrms6ly4aIaD9/EdPHh6rwjM7Tb5ayrRk8m/e\nfR5mDisRfFE2LM9rN3hEehy3bXNFzKztv7NzKHxQqxZBRRUjyCEBTY2o03IC\n8asq8e12qJLxDLYwbzeSXqlg+1D3XF+wFY3YzyrdErU2ErKKMBr/MFdPRYKn\nV6IVpqwkwmG4C70SZ4NZ2PfmaXyw1dH6lQGAL056Xxp2peE6qW45uMfDQ0Wv\nhpY3tVQUReQbWFO6siGBvnGhfCco1qiZF4LYa2imi7uBC+5Kf+WGRx9+5dbR\nfbTIP1j1qVqJ5Vur32iESpmuoXmpIEBElxns6ug02WWYqw1HS/zmLeLtCvhe\nc7gUUBxrxgd6aCOT96O7wytSBkjMuurTjhInYV3OB3ThwOQqmdYQ5O0NUp8c\nCFpj45fpWxxcrLbJz8IRwJO9/Fe13Za1RXqgimQS0nUqJMcxOBQ2SyQQ2rZ0\nJ4aXDisvWF9BU94UAZ49S+SM1rGKDtOhGWAUF3n3NnwPLiWYhvaUam0VOVKu\nAsA+\r\n=Negt\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.5":{"name":"socket.io","version":"3.0.5","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.10","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~4.0.6","socket.io-adapter":"~2.0.3","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"3.0.5","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-5yWQ43P/4IttmPCGKDQ3CVocBiJWGpibyhYJxgUhf69EHMzmK8XW0DkmHIoYdLmZaVZJyiEkUqpeC7rSCIqekw==","shasum":"b4328116b6b34f76270725a4e35b75e2348d2264","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.0.5.tgz","fileCount":21,"unpackedSize":1077744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9EjMCRA9TVsSAnZWagAA8AEP/ROP/0HdfN7IdhYGjI2P\nPSdvjwUqzN4QoH6ttb6IxCsorE3xZZih0Glb9AsJ7zryLea2tMLVS5p/U8NO\n43EKR8zJmW1OG04wNq5Ugfw8IqaSTebLYtTjJbEU9mznKap2x1clIuvc3ak7\nNeZ+dbWHHF5AYO1uxey8W92LxQ4nLOOp2q1EdJtbFJm/Z3AtdPU3LA4YNrvb\nOqhc1HjgV7GfXKEuCWUc6TLn3chbEHDEKb5Ppu4BQuzZ/+KjzHnjPREsrL5A\nOx1G3JKQ2sI/a/vjv0kvfcz5nYfpsrMOhDaq9PXwcoKCVoi8dmgbWiFfo9uH\nGGoPBB13L7zpe9t7WOQl7txKmJIjW+0wwnGCJlRhNDFmMSn+4DXuRWhYfym6\nCjhmVNYgti2jFBELKhXarWLNPAfXDf3PK4nloLJaKVlDh1vbdzL98qIvIS/h\nOMMmKL3P3+33Id4fYXXmExfY4iVkbLCmvPzcr676ap9Z0wuSK6enmBjaf/cF\nrb3MfbtAPZkyS+2tF8iSEC1aDc6m6b9X5M7CB99Iz4Y29woqr09uDxlO6iai\nnsQPgY9GuijfNCco0wmP6/S593kdmrbevA1+g2z2oS99CSku43yZ6+Gw5/aY\nfI2k8LYnaMu1ouafSOGBpxfyh7Av4MdEEG5FpUk0rKe88H5K+AohNuJUvKRy\nrxLu\r\n=Bki1\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"2.4.1":{"name":"socket.io","version":"2.4.1","dependencies":{"debug":"~4.1.0","engine.io":"~3.5.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.4.0","socket.io-parser":"~3.4.0"},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"dist":{"integrity":"sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==","shasum":"95ad861c9a52369d7f1a68acf0d4a1b16da451d2","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz","fileCount":9,"unpackedSize":56575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9tu5CRA9TVsSAnZWagAAEFIP/jDcsCbtC4pzLbJ4RF4e\nHVpAw5jnIf9p/55AOAWsuZJh2bohjFbvmW0mtj/g7euZ6Ip1NaV7rxKiGOA3\n36snknct/BiPUCZae3Ky/HM5k+mkSv1hRzO9uQjZ04L1Yn/TarmXILZmitHt\n6BgSDDucWyzTMsv3PFjiD6nvYRMIoMepWckCMfxN9sH37OPGkgpXyMCJh7vM\n+EUIy7zKAoZC4tamziFrqjO9onwJklqLxtwjs/pSHri1zn20AGI6Pu8JIzkR\nf4cTQObfChjLMJ3jKKIv6iDbuYAfF7gsxOrFkVeurhjk1HmKgSE2NjDQiN6m\nklD2wfGXdkJ0yU5yauMuqSsjU+6KrarrfcPZfOI9h1E0Zu066lrUKSPsVWf7\nBr+akoGmTyUB9JdfMgW/fr0FoLtQ/JVeGzLuWOS4AgKgO9YUVAVunw6/Iq9F\nPielFIjC+yV7UPYItnoAgoX04hZtAS9ObwtEQo9OLH5FVducdxtHwAssGui+\noly8t6+JEZBjVPR9eR2B6Uej5BiEmsMqWHkkyWz94fLabClYgGP4CX7Ee4Iw\nClJRDAdHABOtJLvca9kpSZZrSYYGhllH/aRsT93pQUoh1Yn2V0GERvFal6AH\ngTbIQCK28jyborA3gtuzru1uz5FVPyPH2XhyF+gFO8cT6RK29gaOfX7NZe5d\nqDym\r\n=T3b9\r\n-----END PGP SIGNATURE-----\r\n"}},"3.1.0":{"name":"socket.io","version":"3.1.0","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.10","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~4.1.0","socket.io-adapter":"~2.1.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"3.1.0","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-Aqg2dlRh6xSJvRYK31ksG65q4kmBOqU4g+1ukhPcoT6wNGYoIwSYPlCPuRwOO9pgLUajojGFztl6+V2opmKcww==","shasum":"4f3accda31e95893f618090c9cb5e85d345421fb","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.1.0.tgz","fileCount":21,"unpackedSize":981803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAO5tCRA9TVsSAnZWagAAFqUP/04NzVVp9Z/JrbjDHCtc\nyJuUXL5ygxdWRuxO7poE5fjq/+vDiajm/Ov9J2JhqZPQxLKXu8LDZdGQvytZ\nsYzkYdeX/TAWQLL9XqhY38J8O0MdO8q3pb/RPFOXFzy4dZ6Zx+m2lZ1wywTr\nFFKF8Jdx25w6+ekp1r4ZeJr8woVGiUpp7YMIpUaPr10azFLHUuaOTV5ceL4p\ncMHrbTor19aKQVk0XMWaX5KuwLPE0uyVDoaF2sEcsqGjS/NezIiWFWUycrPv\nedlVGu+dCvoRUXSkZjuhlT/JE8d5IKbGk3uoRdIFsw7TfJXfei9y53HF8/O4\nFGvTqQ0JiqD9gbKSPNMazpt21fJKF+hterjzbpt/kGT9+wkI7qHUYNavZttt\n7p5AcMhUljXNG2JJefnO7uyzRn3p3AIVswLu/4H9QoXLLgZ2o5+v/Tl/v1sS\nquhF7LVaYhkLRklM58zTwBGXqLrN6wJGxfwGyUMC+6rQ/fNRHwEo0hn2A/TV\nHbuHLhbVuBuUYRa0LENLG2ja53bztvmijJ2ZBCNLfRvsGqEHkX8Mj9ap8Ctz\nO8XJPXy37+TvT0qxLw92g3xbhFE0PmF73NMtqEZRgOZuuIgOToDAAU3MJhg6\njfIg+vlI8/hVoJTD8eqb5LPIBWVwwIHZVMaXvANeJJSYpOCk/8HWL2hENbD7\n7Fpe\r\n=VHh9\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.1":{"name":"socket.io","version":"3.1.1","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":"^14.14.10","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~4.1.0","socket.io-adapter":"~2.1.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"3.1.1","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA==","shasum":"905e3d4a3b37d8e7970e67a4a6eb81110a5778ba","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.1.1.tgz","fileCount":21,"unpackedSize":967419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGxyRCRA9TVsSAnZWagAAvvgQAKK5126fC/8gEV1p2H6U\nsWxZmMn3f0Wn+wFX7jHTm6NGpf68JQ6LpmGhMg72xx7dxs5V8PUpXJ1nPcuq\nu5imR80HW8iiq5uEvVpj6fsCnrUU+giNu87IZjNnLHvWE/waSV42kmfnr/lB\noUcmb/j4Dp3CHjkcCiaBXxCvw5Td9yBzD17f+oaj8AWcFt6Q36PmV0N3bc6B\nLw7F7sWcW0GLMpYzn4gC58Pp65r5/FTOTTa9U/QGdt+av1WeZrNM9rDhY3qL\nDzmpDUfwCfj6KfGRFzZb60q/2B/uwoe+QimQ0GsCcrjvz93SiiYvNlzIHrey\ndjHXFNcJTzElgVY8sTOHCz1e6smeypfJYZm/DuPT7RQTUAMqIyN50f4W0mCZ\nbEV2AuKDSzXJpGc3b+1/6ejq6F8weiqt4LDoGiFcs0AARZpH4eEp2SwXop1K\nWNkUe1A4LbcN1zHYOU7OLu7U/rkIPFVxNLo51T31szfQ71HagWn70tqOJ4D3\nRoJcWCrgRYiTVBORIU1rvTola9IGyjp2a8sdEUfCRSbWGcUuupdaPGNLupEA\nC8yyq8sWwJdZdCprS5v16mkYZQJEr6tSeXAKZTAXF9S6ygSBbxtx8+5do1tM\n9eN2b1oMIDjrnCnADiywInAUlKwz5NZfecu4xAuFWHgeT1FD7dqoohG8hj1H\nErHX\r\n=ltA5\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.2":{"name":"socket.io","version":"3.1.2","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~4.1.0","socket.io-adapter":"~2.1.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"3.1.2","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==","shasum":"06e27caa1c4fc9617547acfbb5da9bc1747da39a","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz","fileCount":21,"unpackedSize":969036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOD6ICRA9TVsSAnZWagAAwCYQAI/SjtsQWfJ9BkxNrYyJ\n3Hms6W3esvNeQtLX/Zbo7LFhykYkO/P9ZVidxwyOCGjzNhdsXE5d+aVS8CpX\nBdiL2/2VUTkh6Hh6+nmdhharWHUhVF1Bwstak+jFwsT9AWGye0nBDzJCTWg3\nNTe2QQvysnQhgIertTDWE/ZR+4gCOPtgVyO9cmZxZjXdAAvkoEcTONtYRUIT\neuXUHzINpYwKOO+yJBrKGCEdtA7N0lYH/qM1qTXoQ4zCM06LBQwZQ3Kx+Eut\nLTRSEyF/M1vSfyos+BujDgImbBgCtCVUrloRlxEfGVnBb6Ufha07wpsFvNTZ\nk5s8CpugSR1zij0aG5uiKYWZtxH+N7f5wqkCgXPpIHMkgHlCAPMdl6o9vY7v\nr5VnD6qF3GekQcTv5ZJgAbJli1VrHifrjYzohAN6yTqJKGgk4xgHPCb/1Joj\nLPCkWJ0U+NV0EgCoB8kXBBBMa0UFtCyohH81Gz0klboJYcA5EqNkSLbEYKGT\nDUzAlmSVoMEQF1Ew6DcPAiz97X+Bmg+GQWDPsRAp8HArsKEBe7JWgFqBoogE\n8/3K5WCCI5Ktypk8Mww10kGNQlJmmB25tSCNq9b0NBXPvcgErRt4hwIp9wD0\nm4jGLiFOdz5mHNIopTRidkh2fOpqcDtzvIeijhLNEKAiqLg75lTUi97zK7mZ\nupSh\r\n=xDNC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.0":{"name":"socket.io","version":"4.0.0","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.0.0","socket.io-adapter":"~2.2.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.0.0","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-/c1riZMV/4yz7KEpaMhDQbwhJDIoO55whXaRKgyEBQrLU9zUHXo9rzeTMvTOqwL9mbKfHKdrXcMoCeQ/1YtMsg==","shasum":"ee484a95dc6a38698491aaf63b6ec1f3ceeac0a8","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.0.0.tgz","fileCount":25,"unpackedSize":1020211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSLE+CRA9TVsSAnZWagAAhAAP/iU78QUFvwfFDqvEDnti\nR4Zz9B62Xnq+Uq6jBD3gZxwCZh5hDY9de1wD2ZqOLxUH2upIRM67sMwzNx+z\ny/CQnuWAjMT24nG+kEWqhsoJ2LWV2BY5kSHfoalUb0fg5JkcqQ2DPI/Z8KXO\nQwju8Tp0mpYoT+asWTNhNhjqfhhkatz6L11a4K8HOzw9UsIxY8vttbidSZfP\nGdb8WiTCZ8juNjEqa7XVunNOHVITECy36Ef8Cy1nd7IOSQ+VSU/Re8sjvr66\nDMW4g/dO/r8Y9RGVK6krtgynWk5CFG5GWxl7dx44Ir55SmgukE1I3GUmmZU3\nYW0yPwG87bW1ZCgQBoydWhtx4+ysmYO/o2AlA7TXm9bIT8i8nsPoQmEMidjl\ntrzymLQsSXKGg2sTNAqpZHheE6ktKFHzahVzb/9+5ws5v3awCYulwBcW/3N/\nQD7nNsU/9ycMtsIk51CdQ4uWRVvYJNji/uoD3HjUMssSAwN+KejgXvxE1tSY\neOph/F94RAt2F4bB8omkzNLhMeeKXmIP32Q/+MtvkMw67hBMXTnK6awAc/nY\ntjyknv3+gexyymKSoYkoI4aVtfbR4axJkWLjR2yH2+i1a3RkJJWlzNPuPBil\nbX+gmOW+rEA3J0MqtQ/HGx12sRfrHfS06TkKb1eF81uV1QPxLTsMwfn3587q\nbKsH\r\n=mhzk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1":{"name":"socket.io","version":"4.0.1","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.0.0","socket.io-adapter":"~2.2.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.0.1","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==","shasum":"d2e01cf3780d810b66182b3fbef08a04a4ccf924","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz","fileCount":25,"unpackedSize":1021776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZQUbCRA9TVsSAnZWagAAhIAP/1mrBwg2SCB9PNcaEGPs\nsQhwXLiY7K7hapE9YY+vpVNYnpvQRFtupauLoZ4mgZmmUJwj907XF58o9/km\n4z83NIK5+ikQd6rU0ENokCLxvGCAEhhEcXXuUunsv1SrV7fAF1e+5GD0p0Pd\nWO1z2gKWk0BOObQ9Fh+Odekwh03zdE+O4u5Uk0DTfpNJKZTNf9fOgEeAHC97\n3hbdEL1iTPqfvmO7jsIuhj8VQiRwZDY9TujjlCffrixQruaqtA5BTSbjD/R6\nV7Gf1DMPK5vQL9PhmGZd14O5TgKhqI2iKlKc0JsKLL219ZW2585sOFLpNHwC\nF+/AYBeM1VWo5/QnT20naBtFUjbyH5pFysir//CaQQS+hg4JpjCMMJo1EzGs\nVc9TAh/WPfSGknxm819qHz11AuL2keje2DPjMe0m+j4ULdE+MaUoOgQj3QWA\nAfYftJLqUIT91NGhvipHRiCwOBLHd2OU308DqtSvhxOJ0n0GfNg4TXnxEfOS\ntY4z5y4fS/YJjKaE2pNRhfkvup5BMIZyoXvRyatYo49AVLFHQ/4ghMiZJDVU\nmJkIRVhfkA/f0XGNbhsBCqU/rRDFyrMYWF26PZUGi5GdKt+j9UP44yt+zwgQ\npCsu1nvW4LE3zQWgkSnDNsnkPuBvUNXWnkTXgOyJjhIWC2qif2H1wHLOSfMs\n1SHI\r\n=EEvm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.2":{"name":"socket.io","version":"4.0.2","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.0.0","socket.io-adapter":"~2.2.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.0.2","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-1sVnsumrYTshhH2LWUtmzNvuZqkEOAG5PxcHpKu1r/sIDhzACTdo9XbvonVB2M90Y2CkTZnCWT6hlaKEkdBu5Q==","shasum":"90224ac83542b74ca7a45f8fb68dbc374b82e39d","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.0.2.tgz","fileCount":25,"unpackedSize":1022562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk+NxCRA9TVsSAnZWagAAd3UP/iz5BbORdGlYnlOr3cC8\nMkukp/lBDQNzblcut093vdC9QCGOZUTE0xZhVkS0wTlXaBJI1krzQPovON0F\nXVzSsWBI6kOnkhapFzkh7q/xHKCUieDOOUgQzP0uG3df6toTDa7Sv0veDfkq\n1NCKliLsjeFVXyEPozD/hTbsuBJk2JDVqLH+tE7FeNWZHL8WzQSZC9znvhRO\nOZ6qQswnc6B1Eg2HgN6LilRIYREne3UcKKeiHdVYbVMrQgA18IxKkpxWPvIc\nT2FpXfG1ztjjL6mUPWc70J6j3D5x5eg5afa8CT6UjN//ZY0M8GszFLaV/9Rf\ndQqIRQ4ot4M9VaV+piyiRRM6DoKrHktl7NkKrlyTlKoYo8IHAcBXu/R/53AI\nkXde6oE/FEhLpN2xP2L6wagq1E5k99cbTRQGstYHhlS2q3oxQdTAAtixTrMW\nkl5XhvGpokHH5MdP7PI9MlQvsyAdR1n99Wksqd65LPiHvySX+GpPMmbq4prQ\nr9RcZ3GnHrgPMblPr9AJDyWxcIddljvQ7WCkuUYQE0Yxdb2RF0ttxjGGzVp1\nNUk1kcyKG0r3pDu6lqar0SlFkQh3C/mArTk+OpXlGhtReMuik7pSjNYv+ebR\noO7S6sP+ds3+K9OGi3ypgx/4IOcW4OawKdNLPPeEKK4FCgTsTqFzC56LSwfC\nUT1z\r\n=UlgU\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.0":{"name":"socket.io","version":"4.1.0","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.1.0","socket.io-adapter":"~2.3.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.1.0","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-f6+1m0Y32ThoUOMa8ZUojq3vEkCXl33GXFnye6OXjFG3QtOl59AAp5IhDr0SR3bMedKkfqo6IdxAXCmgiYB4Ug==","shasum":"ad0067eb90a69fb7c5926188fcf3b62a375a8601","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.1.0.tgz","fileCount":25,"unpackedSize":1024138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmjJDCRA9TVsSAnZWagAAlt0P/32omTZ3NrXGrSLDP0eA\nytE0Gbn4NHZ8PfbuW4keE52Enuun5mWHHZach05KzrlURxFnQqfmRr/V+Ptw\nkSKYRp15s71zeY24T8/GUCzeo2uJaVcpMIhgsXQ4cqKahADA7L4Hu3FW37Wm\nefAde5fKTFsl+t0FwTDzAVf5YIEiurXCaudsovMWmqZw0aqKnDMC0MFt9BUB\nwLRYUuD9MPDKIYknzhfZXi5RujgiHA+MVI9gKtbRdOIqYQtttxtBQ7OXV7Zo\nRqU3yP6S/+Dl/oJ6RYDN4stOAc43CGlfittm0kLOzeJU0XZ9RVnNboLPRG7w\nMuzw/Up3qbpfQB/Hj5cw3wkyCjz5ZFdDqBYZyF0sOwKX0LQyuxXtwsBtyL8Q\nWSW1Nkq/IAI190rxEQrE+pNrqcQaaTDEQaQJfHKQjs0qBm2BOJkegcUo8kBi\nZ2RsdMRVEuwlTqlaF9lQnv0rpe5RFHQ+7jsCC8efGIJP6ewj7SQTLEtDpgI+\n3D0gKfwxoEohCUihw+cTo6X2PcT+x8utr0pUfRhHN7cqyLsxcksTfMTkzZQR\nWvVL+MNQJJ0rA8uKjupjUZi0CDXGU3RUv6Fmzhf53SNxU5poq2GHcNuIY7ze\na4Wst3n9RF8H2c0amlimCbOdL169DJxqwhVZmiouWaq7Dqn5vr/zxoY2NGTV\nztDv\r\n=7bar\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.1":{"name":"socket.io","version":"4.1.1","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.1.0","socket.io-adapter":"~2.3.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.1.1","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-YKPdhaYRGEXjP+VqoKlfOEPgDjm0aMq1YWonjHg4rBU1xJCmgceNh2XL1vO4czWupH+WX1+d9Wqb768h7BC5kw==","shasum":"aa3e4d93142fec6ba2053091601b55c835864b54","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.1.1.tgz","fileCount":25,"unpackedSize":1024654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmwAxCRA9TVsSAnZWagAA+uIP/jqwN99lmqc+t9EUi3rD\n7oWZGwRt7xMIG9sdNXN1XTJOQXWDXhwT17KxGYBZdDMkJ0OUvnX+ClgDLMxh\nZYmhwZ9wJ+rCfou+yEUOGyaoBgKYA+5jgoj1fsc6f7sT6z2q/ZoHn7RwoE+f\nSQThOWwy2T+2WzhUkHGwpgI3ES1vEXeyARZ+4djCv0TsD4VVGthPyVBE7F71\nNZ6y4R3IbDwhUC4z3YLReZ01UnLGeO0e8zwaDQ+8QdY0nPy9vI4XUMtNJE99\nYcJEqDGNNLEb+5aU9F0QxzIzkZh4xMtGS8u53ZDzMI511hdTnh80suHXhL0Z\nNuuoLzaNkB08NXKyosyhZQJueFCZyz6GvJH636bCuqVdvlGe5bhJhU064onK\nhxD/tUlXlhO6Zm4/zADxKjBU+NFfnslerRXn/kH9ZF+lj6Luwmn7zkl82FHC\nvFWGG922EL3ewQzDMXI/4Etkpclfug+r5KyHGLqmcVq0zbYwGpI1o+YdFMMr\nq7C4JJvifxk/ILLKZcpGqhm2R/M2fIh2yBjxbOlHnb1D+Kdpf4Vuq8kJySGu\ndFCmrvUPoS5TieFFw7MMhzEP4JFXab22ETVV5igbQDHVsjB1enFrMWf9LksX\ngP1KLlKy96nAk4Al/dHgVYIqv72FT2oFHSXnxKn6dFc6uNTTdxJJqJnlqaWp\njQje\r\n=OMso\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.2":{"name":"socket.io","version":"4.1.2","dependencies":{"@types/cookie":"^0.4.0","@types/cors":"^2.8.8","@types/node":">=10.0.0","accepts":"~1.3.4","base64id":"~2.0.0","debug":"~4.3.1","engine.io":"~5.1.0","socket.io-adapter":"~2.3.0","socket.io-parser":"~4.0.3"},"devDependencies":{"@types/mocha":"^8.0.4","babel-eslint":"^10.1.0","eslint":"^7.14.0","eslint-config-prettier":"^6.11.0","expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^15.1.0","prettier":"^2.2.0","rimraf":"^3.0.2","socket.io-client":"4.1.2","socket.io-client-v2":"npm:socket.io-client@^2.4.0","superagent":"^6.1.0","supertest":"^6.0.1","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.1.2"},"directories":{"doc":"docs/","example":"example/","lib":"lib/","test":"test/"},"dist":{"integrity":"sha512-xK0SD1C7hFrh9+bYoYCdVt+ncixkSLKtNLCax5aEy1o3r5PaO5yQhVb97exIe67cE7lAK+EpyMytXWTWmyZY8w==","shasum":"f90f9002a8d550efe2aa1d320deebb9a45b83233","tarball":"https://registry.npmjs.org/socket.io/-/socket.io-4.1.2.tgz","fileCount":25,"unpackedSize":1025237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgot2+CRA9TVsSAnZWagAAsoMP/04+RzbVmO21haoptQ+c\nvBaFeV9AMtUhZGdekquIjNsuLkDj8tpF4KplTTId/AnGp/bn/QSE+KQ3Wrzg\nUZOZPkmmAiHRYMC+BZgD5M9L5ITd0u07YoKPn7FNtuMQ6rtrTfJQ7to0kfQU\n/KSLoRuwpMS6iLzryA7byYO9YAhyeDQfELuxTBh5Csvmpm8pELPi4q/RjnE1\n110z0Wo+lekU0h8ZsvrkHCRJl4mlC6KjhgJpchcj6lH0ydl6yneH5mcks1Cj\ng9RHl14mCqVNyfRVD3WmIBbjTBEfcdkXD/5fShEt4f5QZtNKfzHqs7BW89dU\nlKsMm4tbA597lmZkqtzw7+DwbL4/XyF3fPjFyjmkMpKfzeE01ojI11Yhl3uv\nGlK69VzCHuiTvkFTCzWx4vpDF6jcpJbJ7WIQBA91Ow2YaZy7EejlTux/voW6\nk5Z1JJ5X6iIlBm23cOpxSq5aax3TJDb01+6UmNlKrUZvqQ5EQ0R7V4gloHGn\n8iZ0d6I3dKOsnstbYFo2L/dZV5UIxntT5514+gRJOgsK1kECKFAPgllsNpdC\nRvBJOUHs4BDEl+JWfxQOzZvYun11TWvL8MapfVvrDjKtY0s4KmdTFHXWIuOE\nwOUsFFmJBfy+YajIGosye81Nwt57U7EGklpuep+ru5TUYbaOCp+lL3nOPapy\nz6Ax\r\n=ywgr\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}}},"modified":"2021-05-17T21:18:56.321Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/9f/f4/a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2 b/data_node_red/.npm/_cacache/content-v2/sha512/9f/f4/a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2 new file mode 100644 index 0000000..787ea26 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/9f/f4/a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a1/a0/290c6057ca95c8449f1383db8b58697105aa830f914305d8cb2bda058ccb8db7b2d0aac9d064b78d73ccc722ef383de94b74e5a70cb0f55d851dee1f31c2 b/data_node_red/.npm/_cacache/content-v2/sha512/a1/a0/290c6057ca95c8449f1383db8b58697105aa830f914305d8cb2bda058ccb8db7b2d0aac9d064b78d73ccc722ef383de94b74e5a70cb0f55d851dee1f31c2 new file mode 100644 index 0000000..ceaa861 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/a1/a0/290c6057ca95c8449f1383db8b58697105aa830f914305d8cb2bda058ccb8db7b2d0aac9d064b78d73ccc722ef383de94b74e5a70cb0f55d851dee1f31c2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a3/8b/1bb0807dad671b2dd8bec38d2cdb91e2755db8500a37632a4e1d635c2119fbbfdbaedcfde96b2865dcc0aa231b1501c38649bebe932cbad77e20e729c406 b/data_node_red/.npm/_cacache/content-v2/sha512/a3/8b/1bb0807dad671b2dd8bec38d2cdb91e2755db8500a37632a4e1d635c2119fbbfdbaedcfde96b2865dcc0aa231b1501c38649bebe932cbad77e20e729c406 new file mode 100644 index 0000000..50d116b --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a3/8b/1bb0807dad671b2dd8bec38d2cdb91e2755db8500a37632a4e1d635c2119fbbfdbaedcfde96b2865dcc0aa231b1501c38649bebe932cbad77e20e729c406 @@ -0,0 +1 @@ +{"name":"compressible","dist-tags":{"latest":"2.0.18"},"versions":{"0.1.0":{"name":"compressible","version":"0.1.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"87c187cb37ef9f028f7486ef9b0fc3ef02f3eb85","tarball":"https://registry.npmjs.org/compressible/-/compressible-0.1.0.tgz"}},"0.1.1":{"name":"compressible","version":"0.1.1","devDependencies":{"mocha":"*"},"dist":{"shasum":"8e0003ef366d1d52a0300ab351f79df79e574b9f","tarball":"https://registry.npmjs.org/compressible/-/compressible-0.1.1.tgz"}},"0.2.0":{"name":"compressible","version":"0.2.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"1c03ada271f3f4a6cd6306490b0ce3efe47997b5","tarball":"https://registry.npmjs.org/compressible/-/compressible-0.2.0.tgz"}},"1.0.0":{"name":"compressible","version":"1.0.0","devDependencies":{"mocha":"*","benchmark":"*","beautify-benchmark":"~0.2.4","mime":"*"},"dist":{"shasum":"f83e49c1cb61421753545125a8011d68b492427d","tarball":"https://registry.npmjs.org/compressible/-/compressible-1.0.0.tgz"}},"1.0.1":{"name":"compressible","version":"1.0.1","devDependencies":{"mocha":"*","benchmark":"*","beautify-benchmark":"~0.2.4","mime":"*"},"dist":{"shasum":"8ed8224822c60c3c8dabcad34e913ed2952ad170","tarball":"https://registry.npmjs.org/compressible/-/compressible-1.0.1.tgz"}},"1.1.0":{"name":"compressible","version":"1.1.0","devDependencies":{"mocha":"~1.20.1"},"dist":{"shasum":"124d8a7bba18a05a410a2f25bad413b1b94aff67","tarball":"https://registry.npmjs.org/compressible/-/compressible-1.1.0.tgz"}},"1.1.1":{"name":"compressible","version":"1.1.1","devDependencies":{"mocha":"~1.20.1"},"dist":{"shasum":"23b71ea90ea6c6a66289701a918182c24d0729ef","tarball":"https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz"}},"2.0.0":{"name":"compressible","version":"2.0.0","dependencies":{"mime-db":"~1.0.1"},"devDependencies":{"istanbul":"0","mocha":"~1.20.1"},"dist":{"shasum":"90086ce57102e9e2427ee945a5fb2a98dd51dfb4","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.0.tgz"},"engines":{"node":">= 0.6.0"}},"2.0.1":{"name":"compressible","version":"2.0.1","dependencies":{"mime-db":"1.x"},"devDependencies":{"istanbul":"0","mocha":"~1.20.1"},"dist":{"shasum":"3550115793eb3435f7eb16775afe05df1a333ebc","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.1.tgz"},"engines":{"node":">= 0.6.0"}},"2.0.2":{"name":"compressible","version":"2.0.2","dependencies":{"mime-db":">= 1.1.2 < 2"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"d0474a6ba6590a43d39c2ce9a6cfbb6479be76a5","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.2.tgz"},"engines":{"node":">= 0.6.0"}},"2.0.3":{"name":"compressible","version":"2.0.3","dependencies":{"mime-db":">= 1.13.0 < 2"},"devDependencies":{"istanbul":"0.3.14","mocha":"~1.21.5"},"dist":{"shasum":"046fe398c1c32ae5af1f4a601cf9ae4632bf2b78","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.3.tgz"},"engines":{"node":">= 0.6"}},"2.0.4":{"name":"compressible","version":"2.0.4","dependencies":{"mime-db":">= 1.14.0 < 2"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"4d8099e88afd0ffbf7c78fd16991d9ac060a94f6","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.4.tgz"},"engines":{"node":">= 0.6"}},"2.0.5":{"name":"compressible","version":"2.0.5","dependencies":{"mime-db":">= 1.16.0 < 2"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"c7dd0514a7a90c02a3ec9ee0ce14d8650bde9b6f","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.5.tgz"},"engines":{"node":">= 0.6"}},"2.0.6":{"name":"compressible","version":"2.0.6","dependencies":{"mime-db":">= 1.19.0 < 2"},"devDependencies":{"istanbul":"0.3.21","mocha":"~1.21.5"},"dist":{"shasum":"9e4aa9321ffcf9cc4d81954f7aafa9f35767d5ea","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.6.tgz"},"engines":{"node":">= 0.6"}},"2.0.7":{"name":"compressible","version":"2.0.7","dependencies":{"mime-db":">= 1.21.0 < 2"},"devDependencies":{"istanbul":"0.4.2","mocha":"~1.21.5"},"dist":{"shasum":"2058c52722fd3f1538a4f22ab14d0635904d19ae","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.7.tgz"},"engines":{"node":">= 0.6"}},"2.0.8":{"name":"compressible","version":"2.0.8","dependencies":{"mime-db":">= 1.23.0 < 2"},"devDependencies":{"eslint":"2.9.0","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"~1.21.5"},"dist":{"shasum":"7162e6c46d3b9d200ffb45cb4e4a0f7832732503","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.8.tgz"},"engines":{"node":">= 0.6"}},"2.0.9":{"name":"compressible","version":"2.0.9","dependencies":{"mime-db":">= 1.24.0 < 2"},"devDependencies":{"eslint":"3.9.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"6daab4e2b599c2770dd9e21e7a891b1c5a755425","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz"},"engines":{"node":">= 0.6"}},"2.0.10":{"name":"compressible","version":"2.0.10","dependencies":{"mime-db":">= 1.27.0 < 2"},"devDependencies":{"eslint":"3.18.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"feda1c7f7617912732b29bf8cf26252a20b9eecd","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz"},"engines":{"node":">= 0.6"}},"2.0.11":{"name":"compressible","version":"2.0.11","dependencies":{"mime-db":">= 1.29.0 < 2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","mocha":"~1.21.5","nyc":"11.0.3"},"dist":{"shasum":"16718a75de283ed8e604041625a2064586797d8a","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz"},"engines":{"node":">= 0.6"}},"2.0.12":{"name":"compressible","version":"2.0.12","dependencies":{"mime-db":">= 1.30.0 < 2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.0","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","mocha":"~1.21.5","nyc":"11.2.1"},"dist":{"shasum":"c59a5c99db76767e9876500e271ef63b3493bd66","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz"},"engines":{"node":">= 0.6"}},"2.0.13":{"name":"compressible","version":"2.0.13","dependencies":{"mime-db":">= 1.33.0 < 2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","mocha":"~1.21.5","nyc":"11.3.0"},"dist":{"shasum":"0d1020ab924b2fdb4d6279875c7d6daba6baa7a9","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz","fileCount":5,"unpackedSize":6804},"engines":{"node":">= 0.6"}},"2.0.14":{"name":"compressible","version":"2.0.14","dependencies":{"mime-db":">= 1.34.0 < 2"},"devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.12.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","mocha":"~1.21.5","nyc":"11.9.0"},"dist":{"shasum":"326c5f507fbb055f54116782b969a81b67a29da7","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz","fileCount":5,"unpackedSize":6930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFsybCRA9TVsSAnZWagAAQWIP/ixIs4z3dX20ZVCcl7C1\niXgJsGVTZ6X4JHJpwAhdPav6Aqdo2rPM45Rbbah8MnGteMc7UUIJMySa8B8r\nyBnBOqjVE76TNY7AM6CXrY2Gci6S9vLe0exKeEbbSfy927hdmXxHwczAcPB9\nzJ9WfJgSLZorlfqSWv66Fafc4VKcfwnKpNAso70IG1wNDcj5RYgcHgPQU2uA\nEaPBwbv4b3/Tnq8m0NUKdYNDo9+7dqklgAFB0H5rCMegUDQmHfqiGy5CtN7B\nFBex3vpDq6OkJyd9Sr64c7PlI1kR8UdKtoIUqXAG1U5ewbYNtisYb662C3xA\nYmBK0/9UfHGlsFIJMDdHLAIRArwaQtevKABZ4QdQJeWhfeC//giQejoYeUjV\nnC6nGyP6TCXS+WlM201gKncvbA0WKQ41V9dNGWFMpH4N5bEXgn+au9ulRiCN\nTyWDRUTzJtx/AGk8es0Nz5N9HnQmSDq8g/pT7RyU3XZr7qNIPHzOSYXy8Ce4\naUnbYZVW1qYBfWv1IMrkYPbOQpW8KtMipc6DxxTbtn3l5iEVSAvku5+aHNnF\nyxedqQKFGAVFpEx89R/L0pdBPSASmaeTmgz+iJz6BSGfOKUKZjdoba09oIAn\nobUZD82I5bruxoHQvrcKAoR4OHDjY1USZFG7X/0c/uXRxSWdIAZw5ixO0SBa\nB8qj\r\n=rPuR\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.0.15":{"name":"compressible","version":"2.0.15","dependencies":{"mime-db":">= 1.36.0 < 2"},"devDependencies":{"eslint":"5.5.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","mocha":"5.2.0","nyc":"13.1.0"},"dist":{"integrity":"sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==","shasum":"857a9ab0a7e5a07d8d837ed43fe2defff64fe212","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz","fileCount":5,"unpackedSize":7003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn7wsCRA9TVsSAnZWagAA3BkP/12uh13r/9IQ/9Fbp73u\nWZepalH9mXEabZWsGu54MNyauzR4H3HqosgUbfATwG3zpDvxPXZ0F7EBaYMS\n6jJQboQxf/rnSywh3Ut3QRkjfT5VmkPYifA1IxLxocSnN00IK8b/VLzwTmHl\nQsZ9EgZsWRp2vul0wb/Nxixl535V2RTGbS7LwyMZN+KvAYoEJmagTIDX46Wh\nrKmfFSvjJ7HaJU4X6euMQ9AQERo0NUFOTUXGJg4/npE5m/wwAqihTu0vot3Q\n98aEdb0xXPMnehGR/UMJ32DyaiHZ7GLBs+nJU4OYj2T6tpwDBTUwvz841l9T\nllrOnXxoH7QfQiqyUTRjejPbZtDQLruYOnPBUBlQSxOVEhz0itBxJuZ8hKle\nukjRlD6gKFTKA+AjIAG3nCGR25pQuJP/ZAOVI3shhvNmWhbWKPY0qALvexNd\n0zBRwYC7RjKrm4/wAKCeBS3VsydtxK/Yh31z5zHJTGrqDX515+MRCcpYWlHE\nA1R62HqrGfYCDczmBgsLJh3KXV1k4ebWFy/aeivovuCnT72c1DROPBrGSQC5\n663Ax7OjmPH9bufpV/ONuUhrxrgjb5HuLbQg+fM22WUOchQnqPS9i+pTFgDC\nru9FY+k/+CG6X9l9xjwlFBSaLuIXvZ6Ee4TtkzfC501rKOA8tYOc1JsVirwF\nAfPF\r\n=6Sz4\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.0.16":{"name":"compressible","version":"2.0.16","dependencies":{"mime-db":">= 1.38.0 < 2"},"devDependencies":{"eslint":"5.14.1","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","mocha":"5.2.0","nyc":"13.3.0"},"dist":{"integrity":"sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==","shasum":"a49bf9858f3821b64ce1be0296afc7380466a77f","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz","fileCount":5,"unpackedSize":7116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcav9vCRA9TVsSAnZWagAAqWIP/2PS0cVG2KMSYi8NnART\nSDCsVF+LNer2Z4/2ILPI/sTmAmiUFvTeo0G2PkAp6TTunWYlAdy23sI4qys6\nWSNPNBobOv2Kj6iDFk3Yv+OxIplzVaxDUw5tyikFw02SJPvXxueo32w7VX9s\nx9o3Q9zhiAfNdp2Az+rFFdHnEu8w5kK0ruvMf7kKyZt6gwrqBVd4JSiKwwKo\nMAEOVR0uEJXA9rlI7EyPwogtqyZTX8Yy4uH7PAOrfbzk+ZaVxilnOvmEtQmL\nkfQkW/ZD/ZIdgeu2s60oJVKPdQEeJ7s6noe9L/8mXewpRihCAwZ1NE0kYVxO\nyAMfMwt7nopz8fuJ0haD0dS5+uybkXpwfeetPY991uHKMIk1WxyPpy74edMF\nnXHzuJO4o8nWnBmW471BB6A4IEIvZJSNio49aLx3douHrd9dZuvhKj+uj3Al\nyrqGG/P4So0CbBODLVhTwHLECy4q/emuRbvExnrjg9cZ82e0Qe3D1fUIfnCn\nm0p3x5qfGO9wzUths/Xnn8ZFK3PZFLDSEIBHt3hJE32z8Bq5t4HCm+zDvkS+\nXO5obVlrR9Ixr6RWA+SuPNyfe/FtT7t6/2z2JJ1aIztfAOhxDNg4aHy7DBso\n3SqOZyjgEzpdUbBrszpNRVm0n9vlQ7rVvPGa0fJ4+4PdNj7Q0VKD95+jyh7U\n2urj\r\n=t9LW\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.0.17":{"name":"compressible","version":"2.0.17","dependencies":{"mime-db":">= 1.40.0 < 2"},"devDependencies":{"eslint":"5.15.2","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.0.0"},"dist":{"integrity":"sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==","shasum":"6e8c108a16ad58384a977f3a482ca20bff2f38c1","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz","fileCount":5,"unpackedSize":7192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwOKwCRA9TVsSAnZWagAAL78P/2lEciMjw1wyutzAX3dx\nxblDJFTALdONTTC8GslxhL5AGEy5MwqiJnU7isb5e0L9st6ixwtnR+LYCVcX\nURWwM8AQqQl+uR9yXfQw/ctyije2uAs4205TpY0aSKW9mZ0tRVL3IiPz0el9\nGKhBfYrw8TPVaX5L06L1IBR4OzU0KI0+1AAucC+miX27BXlORKX1jvAuky4h\n1w5y4sB2DQvQ00Bzn/aKZj+VlmFZaCEAxbcpdzO/4wJmZUnAh6XSBNaGGoi7\npRRh7IFMhWancon/XC9LcbcfZhuApqPCXBE9wn4vqFQTkNcPwdUSd+5PTRYm\n9+sQQXRiuDtGszrdYz01YI9W+jlQT7Ibi+Qe2HeS9bXSxdre9Y9JZ4urDKGV\n994vVI0EtZEBMQhoH0AN4YyuAOxSC/2VkCFXijZDGeJ4LR/WJQS+2AwTkp6L\nI+a7+ySb0i8CAiq9YcUB51XjIcaj//MkuZWOwmYG1qjnIAKyCUOR+HdopIlI\nX1WkAVFsTfxXIM9Ep35173umIUmY3ijdHBJrVQxndNRKf4hTBB2FCHj1EFqv\n3BtQjL0ghP2pSSror3gbf1rL/UshhMqqzRUGAF9nqv+BRUKpAM9QfCW1rXZD\n2QHul4xqvGtLojV2Kq6yNAfd89KCunxe2r9ISWyrIPtot8JwzP5hzDzWT8lI\n2QsC\r\n=XUus\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.0.18":{"name":"compressible","version":"2.0.18","dependencies":{"mime-db":">= 1.43.0 < 2"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.19.1","eslint-plugin-markdown":"1.0.1","eslint-plugin-node":"11.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.0.0","nyc":"15.0.0"},"dist":{"integrity":"sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==","shasum":"af53cca6b070d4c3c0750fbd77286a6d7cc46fba","tarball":"https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz","fileCount":5,"unpackedSize":7355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEryBCRA9TVsSAnZWagAAJ+oQAKCAszvCKZ9xyxyd5R9j\nMwZYPmN071vz6z3MXQxmFaFvYsE/U1HW9JU8dvgfuOdT/0mXVuRN+l94HcxJ\nbInW6GgsvwTZ+owcWQhG88jbEegcwaTh3wi4Us+aJTOb781ITaedr7spEll7\nakccNmpOS9Mk+oy52A0EC7N8/+xy9WEBTdWii3MsbyDWmsD+0qWl/SeKYboQ\n4/0JX9YHg3wDoiIlRJHXp4VXBRyp6Wscl38xWkZn5DRHhPLSzkDdYtvZkwcv\n9VD9UNma+OxDAEZdmFavvL964QrhPPrjiI77fIOP/S7LFdepDWlIgpSduhdZ\nN2KhBJtRWNZywCKzFGBSRJuAa/ZTUqIv9cSBWTidqNOHucVJf+00dQBqYFuY\nkbqVPks/LC54An6loFaqkj4U+C0a/PFHVgdH4C2eBldz3W6bwFEQ0kLmICCi\ns53uKWv5+4ULBXiOIpGa0LtH6fM6GfHKS02BScI7cMpengBNM4bTvAkz8s6g\ntu8wG0b+mxuu7rCGzdUaLHLvBjuuQsQRa96NH+L3omSMSmDeZhGWVuK9ObiA\nXcGJnVWsGQ1vuuRht8Npx/aq4YOZ05jh5MvYCh9hgDbLQOnvUCxpB7i9UjSY\nPl1liyYKzmxyQ91ZGXkIQC6qCGWPgmz1XhvAUkLgPmFLOCbwBIEfrcwcBSqj\n/v94\r\n=4fyH\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2020-01-06T04:50:11.898Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a3/9f/4f054e1f68e0e047049a8ee2abaf7a0f11401af05cbc285445b80d2e90483f938d5aae2ce38abbeae0094d0c03e898a0286ecf830e27923bb03f10004f93 b/data_node_red/.npm/_cacache/content-v2/sha512/a3/9f/4f054e1f68e0e047049a8ee2abaf7a0f11401af05cbc285445b80d2e90483f938d5aae2ce38abbeae0094d0c03e898a0286ecf830e27923bb03f10004f93 new file mode 100644 index 0000000..3826989 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a3/9f/4f054e1f68e0e047049a8ee2abaf7a0f11401af05cbc285445b80d2e90483f938d5aae2ce38abbeae0094d0c03e898a0286ecf830e27923bb03f10004f93 @@ -0,0 +1 @@ +{"name":"string_decoder","dist-tags":{"latest":"1.3.0"},"versions":{"0.0.0":{"name":"string_decoder","version":"0.0.0","devDependencies":{"tape":"~1.0.4"},"dist":{"shasum":"e185bd651285845d5599d23cf7bff58dd4ad7c18","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.0.0.tgz"}},"0.0.1":{"name":"string_decoder","version":"0.0.1","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"f5472d0a8d1650ec823752d24e6fd627b39bf141","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.0.1.tgz"}},"0.10.24":{"name":"string_decoder","version":"0.10.24","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"6902abf7be76f35e9c92292583328ba4c07e86c3","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.24.tgz"}},"0.11.10":{"name":"string_decoder","version":"0.11.10","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"f0a31205d59b2f1f2e90fdd5032d670a5f9ecf4a","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.11.10.tgz"}},"0.10.25":{"name":"string_decoder","version":"0.10.25","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"668c9da4f8efbdc937a4a6b6bf1cfbec4e9a82e2","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25.tgz"}},"0.11.10-1":{"name":"string_decoder","version":"0.11.10-1","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"eb35282cf4612b6e5662fb411b7deeabaa757468","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.11.10-1.tgz"}},"0.10.25-1":{"name":"string_decoder","version":"0.10.25-1","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"f387babd95d23a2bb73b1fbf2cb3efab6f78baab","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz"}},"0.10.31":{"name":"string_decoder","version":"0.10.31","devDependencies":{"tap":"~0.4.8"},"dist":{"shasum":"62e203bc41766c6c28c9fc84301dab1c5310fa94","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"}},"1.0.0":{"name":"string_decoder","version":"1.0.0","dependencies":{"buffer-shims":"~1.0.0"},"devDependencies":{"babel-polyfill":"^6.23.0","tap":"~0.4.8"},"dist":{"shasum":"f06f41157b664d86069f84bdbdc9b0d8ab281667","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz"}},"1.0.1":{"name":"string_decoder","version":"1.0.1","dependencies":{"safe-buffer":"^5.0.1"},"devDependencies":{"babel-polyfill":"^6.23.0","tap":"~0.4.8"},"dist":{"shasum":"62e200f039955a6810d8df0a33ffc0f013662d98","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz"}},"1.0.2":{"name":"string_decoder","version":"1.0.2","dependencies":{"safe-buffer":"~5.0.1"},"devDependencies":{"babel-polyfill":"^6.23.0","tap":"~0.4.8"},"dist":{"shasum":"b29e1f4e1125fa97a10382b8a533737b7491e179","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz"}},"1.0.3":{"name":"string_decoder","version":"1.0.3","dependencies":{"safe-buffer":"~5.1.0"},"devDependencies":{"babel-polyfill":"^6.23.0","tap":"~0.4.8"},"dist":{"integrity":"sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==","shasum":"0fc67d7c141825de94282dd536bec6b9bce860ab","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"}},"1.1.0":{"name":"string_decoder","version":"1.1.0","dependencies":{"safe-buffer":"~5.1.0"},"devDependencies":{"babel-polyfill":"^6.23.0","core-util-is":"^1.0.2","inherits":"^2.0.3","tap":"~0.4.8"},"dist":{"integrity":"sha512-8zQpRF6juocE69ae7CSPmYEGJe4VCXwP6S6dxUWI7i53Gwv54/ec41fiUA+X7BPGGv7fRSQJjBQVa0gomGaOgg==","shasum":"384f322ee8a848e500effde99901bba849c5d403","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.0.tgz","fileCount":5,"unpackedSize":15296}},"1.1.1":{"name":"string_decoder","version":"1.1.1","dependencies":{"safe-buffer":"~5.1.0"},"devDependencies":{"babel-polyfill":"^6.23.0","core-util-is":"^1.0.2","inherits":"^2.0.3","tap":"~0.4.8"},"dist":{"integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","shasum":"9cf1611ba62685d7030ae9e4ba34149c3af03fc8","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","fileCount":5,"unpackedSize":15298}},"1.2.0":{"name":"string_decoder","version":"1.2.0","dependencies":{"safe-buffer":"~5.1.0"},"devDependencies":{"babel-polyfill":"^6.23.0","core-util-is":"^1.0.2","inherits":"^2.0.3","tap":"~0.4.8"},"dist":{"integrity":"sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==","shasum":"fe86e738b19544afe70469243b2a1ee9240eae8d","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz","fileCount":4,"unpackedSize":14427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/WTYCRA9TVsSAnZWagAA7zkP/RGoxWSapn/m8DNEJZVQ\ncZWpaB+5n/df+kgEGP94vYLyDdf7VWCM/B1MRyviERBcv1B0b9E7lH1Vn9fU\nhLb2REa5C4wGbIVqblTON5etuTRWr+gVspUH6riBMMydaLlscGxdv6vgXmrA\nXe4Ykz1xKUudq4hVMf/Uf8wSUn7/CgmqjopCl+14iTDMSH1Sovwc9WnbxJDW\niGEDfLp5xttPQtatrgQ4nxl/fWB4U6HE0nN7MwSQ5nhtSU3SOdbIKHH6fUNO\niTM+mv/FRASkefg53w1V2yLOXlpIGsY5yZE6lxgCQXrzoOKvHgWpO5wqHomp\n2Hk5FdPEvb8LAEWd9hDSQjTuHVchgCUWcnIcVUrpO334a1GXZwZ66OiEmSjw\nq37VjMTN6jToBcDE3LLrc80EFBPaLkZBD7+AP26jwjzlHGAXSmaGSnixj3Kx\nSCKgC31V+reocHzxcUk8gXZtMStn4wwAb1V+da4S70WCwaMH2XBlwLhUKHg4\nvHtkjl1ALRseBoWcA8sbnuXTlXx0q5ckoZpZyBigDJfaFlBZ2Mm8jPr5/d+Q\nt4biwiNeZbqeyOf6YTsBYk6QyIvepoCpzQdxP5c4OJWuq5y4CLkAIHq2oOp1\nQ6Bthb+7uAhYAH+GgAYul8RERpyBb8aYmc/UzSh9LwLTlp+k949EbqcrCStN\nk53W\r\n=fSP/\r\n-----END PGP SIGNATURE-----\r\n"}},"1.3.0":{"name":"string_decoder","version":"1.3.0","dependencies":{"safe-buffer":"~5.2.0"},"devDependencies":{"babel-polyfill":"^6.23.0","core-util-is":"^1.0.2","inherits":"^2.0.3","tap":"~0.4.8"},"dist":{"integrity":"sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==","shasum":"42f114594a46cf1a8e30b0a84f56c78c3edac21e","tarball":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz","fileCount":4,"unpackedSize":14427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSpflCRA9TVsSAnZWagAAVE8QAIBhyQ4HL/C719h6NHEm\noaNdOGDpxw0zyapxhztRy+YPAEGVOAnS5L/VMQINojzPQQ8YTZDM5jQ5+NyC\naVBB9KtQpCXftizA0DX5NbowL/k9s1ko+PFf0/hOPA4NWhZ9H5Vym+fNNMQJ\n+p0leE2ovcz0PVT8t8/IrntVTYRnhkDnkTJa9byWGZFiumoR4J/y0k/UfuR4\nqKF9NGgDURJrAvdkbaBEc4xs4ZM2Eqfevxki/Ia6cV2eWO/ssWzZXdS0oLfN\ncPieD7D80jTnrZNnh6iEdYFU6GQDgu8ovDURIVnI3qowB/aDBpMAMpKliY32\nMyB1VSAWPADAYwHaW6ldS23Bd1fFA9LJZtL4/2YmR5lTri14j6szJdXQZOCE\n26kivguwcdEsbsDkE4ayRJ6DNC18lvcmJCyBUpHPBzEFP8HvC+En3Cxd4wAE\n+6laaHp7x+Af3KV4cnBsKHsDpugmzi6SWKMjt9ymySNfefvzll7pI5p8mQD1\niFM92XvnHY1RjXtuSwSHo/U8F9B/EogCC4kRSXSyq1xSDvZ530BaWsX27iv4\n2kbmRndn4pImKpIzFsUNaG8IAs90bw3mjc+dmMi7y/mbid5+xesX5RCztajK\nfFWZhV46ePff4+YFJVtCKR/m2LCu6dbSLHxTxpdFVfcjU83qnzpWGYdbHWwG\nxT/z\r\n=TD7t\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2019-08-07T09:20:39.359Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a4/85/7c67ed52ce70925e9673bfe3ca5dc2dcd93e2a6b8a3d4552a148b97df7ca8e6a715768024e1712262ec853ac54e6366f73c590b8b56fb7048ca91afab594 b/data_node_red/.npm/_cacache/content-v2/sha512/a4/85/7c67ed52ce70925e9673bfe3ca5dc2dcd93e2a6b8a3d4552a148b97df7ca8e6a715768024e1712262ec853ac54e6366f73c590b8b56fb7048ca91afab594 new file mode 100644 index 0000000..e31f557 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a4/85/7c67ed52ce70925e9673bfe3ca5dc2dcd93e2a6b8a3d4552a148b97df7ca8e6a715768024e1712262ec853ac54e6366f73c590b8b56fb7048ca91afab594 @@ -0,0 +1 @@ +{"name":"debug","dist-tags":{"latest":"4.3.1","beta":"4.3.2"},"versions":{"0.0.1":{"name":"debug","version":"0.0.1","devDependencies":{"mocha":"*"},"dist":{"shasum":"0faa51ad6dec7587159b532cdf18d74261376417","tarball":"https://registry.npmjs.org/debug/-/debug-0.0.1.tgz"},"engines":{"node":"*"}},"0.1.0":{"name":"debug","version":"0.1.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"3026f197b98b823cb51209f3758eb1498a66442c","tarball":"https://registry.npmjs.org/debug/-/debug-0.1.0.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"debug","version":"0.2.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"b6bbca5a6b41f6d3f3ba6604e2737a9ea3329e7f","tarball":"https://registry.npmjs.org/debug/-/debug-0.2.0.tgz"},"engines":{"node":"*"}},"0.3.0":{"name":"debug","version":"0.3.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"7818fac891b38d81bb7dd97e3d969992e654e835","tarball":"https://registry.npmjs.org/debug/-/debug-0.3.0.tgz"},"engines":{"node":"*"}},"0.4.0":{"name":"debug","version":"0.4.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"c7e8c63eb391820133869d3cc43aa9992fea288f","tarball":"https://registry.npmjs.org/debug/-/debug-0.4.0.tgz"},"engines":{"node":"*"}},"0.4.1":{"name":"debug","version":"0.4.1","devDependencies":{"mocha":"*"},"dist":{"shasum":"33a47f028daa312d885be4db8649fa1b4280125d","tarball":"https://registry.npmjs.org/debug/-/debug-0.4.1.tgz"},"engines":{"node":"*"}},"0.5.0":{"name":"debug","version":"0.5.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"9d48c946fb7d7d59807ffe07822f515fd76d7a9e","tarball":"https://registry.npmjs.org/debug/-/debug-0.5.0.tgz"},"engines":{"node":"*"}},"0.6.0":{"name":"debug","version":"0.6.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"ce9d5d025d5294b3f0748a494bebaf3c9fd8734f","tarball":"https://registry.npmjs.org/debug/-/debug-0.6.0.tgz"},"engines":{"node":"*"}},"0.7.0":{"name":"debug","version":"0.7.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"f5be05ec0434c992d79940e50b2695cfb2e01b08","tarball":"https://registry.npmjs.org/debug/-/debug-0.7.0.tgz"},"engines":{"node":"*"}},"0.7.1":{"name":"debug","version":"0.7.1","devDependencies":{"mocha":"*"},"dist":{"shasum":"d2253d37f2da6618f95c353a55fe0ab28c1c1e96","tarball":"https://registry.npmjs.org/debug/-/debug-0.7.1.tgz"},"engines":{"node":"*"}},"0.7.2":{"name":"debug","version":"0.7.2","devDependencies":{"mocha":"*"},"dist":{"shasum":"056692c86670977f115de82917918b8e8b9a10f0","tarball":"https://registry.npmjs.org/debug/-/debug-0.7.2.tgz"},"engines":{"node":"*"}},"0.7.3":{"name":"debug","version":"0.7.3","devDependencies":{"mocha":"*"},"dist":{"shasum":"ba7ae369799066a28d234fb8dad6f05837839da8","tarball":"https://registry.npmjs.org/debug/-/debug-0.7.3.tgz"},"engines":{"node":"*"}},"0.7.4":{"name":"debug","version":"0.7.4","devDependencies":{"mocha":"*"},"dist":{"shasum":"06e1ea8082c2cb14e39806e22e2f6f757f92af39","tarball":"https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"},"engines":{"node":"*"}},"0.8.0":{"name":"debug","version":"0.8.0","devDependencies":{"mocha":"*"},"dist":{"shasum":"0541ea91f0e503fdf0c5eed418a32550234967f0","tarball":"https://registry.npmjs.org/debug/-/debug-0.8.0.tgz"},"engines":{"node":"*"}},"0.8.1":{"name":"debug","version":"0.8.1","devDependencies":{"mocha":"*"},"dist":{"shasum":"20ff4d26f5e422cb68a1bacbbb61039ad8c1c130","tarball":"https://registry.npmjs.org/debug/-/debug-0.8.1.tgz"},"engines":{"node":"*"}},"1.0.0":{"name":"debug","version":"1.0.0","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"553678b67494cacc2d5330c24dfb2f275b1ceb5a","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.0.tgz"}},"1.0.1":{"name":"debug","version":"1.0.1","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"3c03d40462f0be20468e4f77dd3f2bf7a722cfb7","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.1.tgz"}},"1.0.2":{"name":"debug","version":"1.0.2","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"3849591c10cce648476c3c7c2e2e3416db5963c4","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.2.tgz"}},"1.0.3":{"name":"debug","version":"1.0.3","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"fc8c6b2d6002804b4081c0208e0f6460ba1fa3e4","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.3.tgz"}},"1.0.4":{"name":"debug","version":"1.0.4","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"5b9c256bd54b6ec02283176fa8a0ede6d154cbf8","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.4.tgz"}},"2.0.0":{"name":"debug","version":"2.0.0","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"5.11.0","mocha":"*"},"dist":{"shasum":"89bd9df6732b51256bc6705342bba02ed12131ef","tarball":"https://registry.npmjs.org/debug/-/debug-2.0.0.tgz"}},"2.1.0":{"name":"debug","version":"2.1.0","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"6.1.0","mocha":"*"},"dist":{"shasum":"33ab915659d8c2cc8a41443d94d6ebd37697ed21","tarball":"https://registry.npmjs.org/debug/-/debug-2.1.0.tgz"}},"2.1.1":{"name":"debug","version":"2.1.1","dependencies":{"ms":"0.6.2"},"devDependencies":{"browserify":"6.1.0","mocha":"*"},"dist":{"shasum":"e0c548cc607adc22b537540dc3639c4236fdf90c","tarball":"https://registry.npmjs.org/debug/-/debug-2.1.1.tgz"}},"2.1.2":{"name":"debug","version":"2.1.2","dependencies":{"ms":"0.7.0"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"d5853ec48011eafd9ec80a5c4733332c1e767a43","tarball":"https://registry.npmjs.org/debug/-/debug-2.1.2.tgz"}},"2.1.3":{"name":"debug","version":"2.1.3","dependencies":{"ms":"0.7.0"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e","tarball":"https://registry.npmjs.org/debug/-/debug-2.1.3.tgz"}},"2.2.0":{"name":"debug","version":"2.2.0","dependencies":{"ms":"0.7.1"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"f87057e995b1a1f6ae6a4960664137bc56f039da","tarball":"https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"}},"2.3.0":{"name":"debug","version":"2.3.0","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"3912dc55d7167fc3af17d2b85c13f93deaedaa43","tarball":"https://registry.npmjs.org/debug/-/debug-2.3.0.tgz"}},"2.3.1":{"name":"debug","version":"2.3.1","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"4b206c092eb4e5b090e429a15d1d89083737ab2b","tarball":"https://registry.npmjs.org/debug/-/debug-2.3.1.tgz"}},"2.3.2":{"name":"debug","version":"2.3.2","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30","tarball":"https://registry.npmjs.org/debug/-/debug-2.3.2.tgz"}},"2.3.3":{"name":"debug","version":"2.3.3","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"40c453e67e6e13c901ddec317af8986cda9eff8c","tarball":"https://registry.npmjs.org/debug/-/debug-2.3.3.tgz"}},"2.4.0":{"name":"debug","version":"2.4.0","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"80db5e490a43bff63958e712ba88ba4e4121840f","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.0.tgz"},"deprecated":"critical bug fixed in 2.4.1"},"2.4.1":{"name":"debug","version":"2.4.1","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","mocha":"*"},"dist":{"shasum":"ef2532d2753d282045c13c82ce47a09e56b91d53","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.1.tgz"}},"2.4.2":{"name":"debug","version":"2.4.2","dependencies":{"ms":"0.7.2"},"devDependencies":{"babel":"^6.5.2","babel-eslint":"^7.1.1","babel-polyfill":"^6.20.0","babel-preset-es2015":"^6.18.0","babel-register":"^6.18.0","babel-runtime":"^6.20.0","browserify":"9.0.3","chai":"^3.5.0","eslint":"^3.12.1","eslint-plugin-babel":"^4.0.0","mocha":"^3.2.0","sinon":"^1.17.6"},"dist":{"shasum":"a255d4489f58a2d7b6aaaddb9b7c60828f6ba27a","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.2.tgz"}},"2.4.3":{"name":"debug","version":"2.4.3","dependencies":{"ms":"0.7.2"},"devDependencies":{"babel":"^6.5.2","babel-eslint":"^7.1.1","babel-polyfill":"^6.20.0","babel-preset-es2015":"^6.18.0","babel-register":"^6.18.0","babel-runtime":"^6.20.0","browserify":"9.0.3","chai":"^3.5.0","eslint":"^3.12.1","eslint-plugin-babel":"^4.0.0","mocha":"^3.2.0","sinon":"^1.17.6"},"dist":{"shasum":"3fe67c5588e724d0f5d9e48c8f08ff69b4b20643","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.3.tgz"}},"2.4.4":{"name":"debug","version":"2.4.4","dependencies":{"ms":"0.7.2"},"devDependencies":{"babel":"^6.5.2","babel-eslint":"^7.1.1","babel-polyfill":"^6.20.0","babel-preset-es2015":"^6.18.0","babel-register":"^6.18.0","babel-runtime":"^6.20.0","browserify":"9.0.3","chai":"^3.5.0","eslint":"^3.12.1","eslint-plugin-babel":"^4.0.0","mocha":"^3.2.0","sinon":"^1.17.6"},"dist":{"shasum":"c04d17a654e9202464803f096153f70a6f31f4be","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.4.tgz"}},"2.4.5":{"name":"debug","version":"2.4.5","dependencies":{"ms":"0.7.2"},"devDependencies":{"babel":"^6.5.2","babel-eslint":"^7.1.1","babel-polyfill":"^6.20.0","babel-preset-es2015":"^6.18.0","babel-register":"^6.18.0","babel-runtime":"^6.20.0","browserify":"9.0.3","chai":"^3.5.0","eslint":"^3.12.1","eslint-plugin-babel":"^4.0.0","mocha":"^3.2.0","sinon":"^1.17.6"},"dist":{"shasum":"34c7b12a1ca96674428f41fe92c49b4ce7cd0607","tarball":"https://registry.npmjs.org/debug/-/debug-2.4.5.tgz"}},"2.5.0":{"name":"debug","version":"2.5.0","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"94434a384a615a75db92fa734d2c994ec75c7b55","tarball":"https://registry.npmjs.org/debug/-/debug-2.5.0.tgz"},"deprecated":"incompatible with babel-core"},"2.5.1":{"name":"debug","version":"2.5.1","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"9107bb4a506052ec2a02314bc606313ed2b921c1","tarball":"https://registry.npmjs.org/debug/-/debug-2.5.1.tgz"}},"2.5.2":{"name":"debug","version":"2.5.2","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"50c295a53dbf1657146e0c1b21307275e90d49cb","tarball":"https://registry.npmjs.org/debug/-/debug-2.5.2.tgz"}},"2.6.0":{"name":"debug","version":"2.6.0","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"bc596bcabe7617f11d9fa15361eded5608b8499b","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.0.tgz"}},"2.6.1":{"name":"debug","version":"2.6.1","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"79855090ba2c4e3115cc7d8769491d58f0491351","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.1.tgz"}},"2.6.2":{"name":"debug","version":"2.6.2","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"dfa96a861ee9b8c2f29349b3bcc41aa599a71e0f","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.2.tgz"}},"2.6.3":{"name":"debug","version":"2.6.3","dependencies":{"ms":"0.7.2"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"0f7eb8c30965ec08c72accfa0130c8b79984141d","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"}},"2.6.4":{"name":"debug","version":"2.6.4","dependencies":{"ms":"0.7.3"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"7586a9b3c39741c0282ae33445c4e8ac74734fe0","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.4.tgz"}},"2.6.5":{"name":"debug","version":"2.6.5","dependencies":{"ms":"0.7.3"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"7a76247781acd4ef2a85f0fb8abf763cd1af249e","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.5.tgz"},"deprecated":"critical regression for web workers"},"2.6.6":{"name":"debug","version":"2.6.6","dependencies":{"ms":"0.7.3"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.6.tgz"},"deprecated":"invalid release"},"2.6.7":{"name":"debug","version":"2.6.7","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"92bad1f6d05bbb6bba22cca88bcd0ec894c2861e","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.7.tgz"}},"2.6.8":{"name":"debug","version":"2.6.8","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"shasum":"e731531ca2ede27d188222427da17821d68ff4fc","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"}},"1.0.5":{"name":"debug","version":"1.0.5","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"4.1.6","mocha":"*"},"dist":{"shasum":"f7241217430f99dec4c2b473eab92228e874c2ac","tarball":"https://registry.npmjs.org/debug/-/debug-1.0.5.tgz"}},"3.0.0":{"name":"debug","version":"3.0.0","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"integrity":"sha512-XQkHxxqbsCb+zFurCHbotmJZl5jXsxvkRt952pT6Hpo7LmjWAJF12d9/kqBg5owjbLADbBDli1olravjSiSg8g==","shasum":"1d2feae53349047b08b264ec41906ba17a8516e4","tarball":"https://registry.npmjs.org/debug/-/debug-3.0.0.tgz"}},"3.0.1":{"name":"debug","version":"3.0.1","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"integrity":"sha512-6nVc6S36qbt/mutyt+UGMnawAMrPDZUPQjRZI3FS9tCtDRhvxJbK79unYBLPi+z5SLXQ3ftoVBFCblQtNSls8w==","shasum":"0564c612b521dc92d9f2988f0549e34f9c98db64","tarball":"https://registry.npmjs.org/debug/-/debug-3.0.1.tgz"}},"2.6.9":{"name":"debug","version":"2.6.9","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","shasum":"5d128515df134ff327e90a4c93f4e077a536341f","tarball":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"}},"3.1.0":{"name":"debug","version":"3.1.0","dependencies":{"ms":"2.0.0"},"devDependencies":{"browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"dist":{"integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","shasum":"5bb5a0672628b64149566ba16819e61518c67261","tarball":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"}},"3.2.0":{"name":"debug","version":"3.2.0","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-Ii8hOmyHANEZ4wnsj5ZKeWUQRLt+ZD6WSb1e+/RK0BNIrVaZQrN0r2qxl8ZvnFgb4TQpd9nsjGUxdPIUXo6Snw==","shasum":"cfba3c774175ee0f59a51cf8e0849aca9bfd8a9c","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.0.tgz","fileCount":9,"unpackedSize":78567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl15jCRA9TVsSAnZWagAAsAcP/1CgyRvxCKQpPCU26k3n\nDgy2TMSVi2EDvkxsIVx3hqQzzfuAwIcxSiK95YceW3SzjpxzUaIGuUjFfHe7\nlZHw3bJBCp5N9ZJOxz79CxF5SAcGUHL0rKKgti77ljKGQeG4xBoL4jSxJXqe\nZNFReUWucQI2PlaZAo5g0ybkZ86l6DRlhupOTWGfwKY8Y2qDBad4SOFz4sd5\nQckokjEuZ0//f/aoLfQfcjTKNdIDPvYZCt7SVFVgbgyYkA09c5runQ5LVQ6u\neC+/aAXNY7CJsd9DMnFO8ea5NMDloTU6UYBsr1LAzWgPGRoriFqRgRlMkBk1\n4yZK3fAbP7BzXc6ZmmfDaZE8Xcrqmn8HEbEkUxUr1g6d8n3SIkO5Mz5iplH7\nSZl7lYChtB9bdfuz6egMUhKG7eD5W3Ov4Or3JmJO7/7OTI0KCHQhinVb2Z4U\nmq82aqHdZRrS9zxp2EuIge3pHFNrzch3UKI3RVRx3f0PSGxSXcPJyNdsrvmZ\n71YzQaK7FKfB9VX7FYtqNK9NOd+hYFI3QZM0ZNLYudGFbWc5BauV7pDzma0i\ndx0MNp29DvWQUhjfy/i7ob8SWpas59zHpvRV3Fgz4aAwYqNe7qlSrPrdHZ9J\nZA9OpMmanYMJnhXiSYAHJh+5ZBe0EbXH5G+grIJLSvx2AqJMQSFN1ghG7if5\nm+EF\r\n=diB2\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.1":{"name":"debug","version":"3.2.1","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-P5CJ6AGKlnMM3Rd1V4xmQ1SNn5VQ/4UoIiVmDzJxliKCeG1ANIj6ThcWWsefqZ4WdzGdmhG3WdeKrcjx9eNUYA==","shasum":"30b2d86ecc0f169034c260a84b295fcb51eb88ec","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.1.tgz","fileCount":9,"unpackedSize":78566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl2CmCRA9TVsSAnZWagAAsuQP/3F/T64Gvm9t2NPQcUlO\nuW5FB9KuyGDRmUNA7NCprDtalNQfa/ShZevjK9MjB4jp5sEuUDAa9uisovhn\nSF4SoNgWEr/wwN64/utAK9v64QazpGaGRYgJXqvcAi+SPQUhSMAGQiUFPLu9\nW9hkKJLRqUR26FenZQTpjoL7DBFhMzchXsrmmwZxsXU1okF5dXH3wUCKmmJv\nhmEAYW3qbiX4R/ORDFBZGwdn4uWN6fZOxQF9oFMmALRTOW6CGUhIfAZEqpiL\nhpMTgtbjNkQU/yIfcYj2FSb6WvqGwVXxSCo78ExQJa6rh09kvmpClapaUOOy\n3nWUosKPyF9GPUIsbgneXObinn+nCXOgRoHHdwYlmluk2xC3+9Tr2PsjblIt\nXH8SrgScxnnCs1YajPMHatHj9oGQhfWrS0Czj7UhF6ir5kpwseG4GSpsy4C+\nXJgLBj4n+VOZImvs9PO3z2Sbkgeo3HunIY4Yj1cwq+vjaraBCTUw5x5m+Cao\nMYdP2lzCI7NovH35/zw70HUVubLCpIe9hXu+YhYVOjrdh4POhCB4V4VGpj8Y\nV1odXjGN/Kp/AecfC9I1KkSFtlg65hwOHLy5pAjGvgnopbdcpewJYDMIRK6H\nEuBESkCEqegcVXfNn95SlLhO5DlVYwkERh0YP0wkUZCKbFRYsbYGOyVqb2X4\nqzaP\r\n=Sk51\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.2":{"name":"debug","version":"3.2.2","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-VDxmXLtYzTDjwoB/XfDYCgN5RaHUEAknclvDu17QVvkID8mpWUt2+I3zAc98xu1XOSCQY9yl072oHFXDhY9gxg==","shasum":"1e7ad4d9714bb51e6745c0f15559ee82c0236010","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.2.tgz","fileCount":9,"unpackedSize":79439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl3PGCRA9TVsSAnZWagAAfw4P/0AbS4UO0xtHtNKXS/Ig\n0LBe4TZuRT3frlo4gCVIGplfK1sqsBWS1jkNEH7MZIb52GiB6CDZadrrMjBI\nZ12azSvVoJD83fnakr8/9VnsT5VdF29B8SLrmaeMPVozKd/TkigQAfEw0HBo\nTkPvfE8Ole1nLaikPySf6qReLi8Fe90FTGFWuLlk3jqMeXwmbSD+LMyBIf3B\n9JWvcVYXsxwrw42hxz9cjBvXnTBSd2H1r2XT7ToboI76y5TCL5iY3AQC+23A\nIZ6EufJA+FoicsiPtxuQpx9TK3l9xyr87Wf4tzzmyWhhJh0SHQkIs8LA+fIf\nrBS52zg1MoXBrxsrXLgYmwx1Saf6oXabY4YizdVQiQx8ngTqksa7LDzCtILz\neAHcRS+RF4MARNYJW5n9NbAPS5eocnG/uAp/fqweZ1Djw/9tSCr4D+pYhHPs\nBaNk+HDRbG+Wr2APVgLayI8nWtM3OCt8zHIYUfw4HwsBraSTh3/tprdX8+j0\nrp+bGBdUoSHQrLZo5wcBQdYMA1VcWle35Um1p7wF/aDXtBeVy7fr8dsF/2/v\nZ3jG9h5TJlclxYlE4Kr8XlplAPhVWIrf9r8mas4g5VuEx0Gpe12f4dCNbPSH\n3XUrEhWLSsRmG75+6Kw8QHA0igD15DGQ6UeDPCFrvKUjcn5R0FZuSCZGaKE6\ntZId\r\n=aiGX\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.3":{"name":"debug","version":"3.2.3","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-4J+rux2EAUIbVjYOvNx/6tQxCSrKDAFm4qUDNTnflVPCj/jgCb5xbt7jfAkMC2iGmie1i/+ViS/QpAziYe+rPQ==","shasum":"3f2a4bf7afb0a73a960fed83a197692dba736b83","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.3.tgz","fileCount":9,"unpackedSize":79967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl30vCRA9TVsSAnZWagAAm1EP/3Sf15V6tTlS1qfZkaLu\nPbhyI30yiXGR8IWc9SsygjqQYdrmFbDbKAafvkqK6SMf+mmxhVpA840kobzD\n3xdbDKDNloU6hNJybwVp47nmtNGJiqh1fWtuRKZgTMf6QrT0bMN/faoUYY39\nUqZqOVypEKAuga8IVkAaYtVcN1xMQo0fK2tFvNwYc/YY2EwRvvddULnOBeqY\nFMhUXZ/LX2aNXPCuLPX1YNDUntJgm+Me46rAf1ZismNgBDuorTBi4BD2Z1KP\n8OAB2uYOurruiwCwC/QtcY4CXZoMuWzVob3BgMopVppMc+uCmxmYG+mwxklY\nZ6P5RYv40/FQ3lgWtrpbEMagcXBivUnolaCJP5yckVESAd6mQdfQ1eyMH6RL\n275UhYhQIg2c8wZlTdv+v06Nr/JARiz1G2cl18NPB6xk7wEkv9gLsSv2aTi4\nCkNTrW+Mwc869Efil+cWc1J/sghjNHU3t/Dmf0VSMVGpdsWmjLZzPzhSHTZ0\nHEEyCImFTWNBj0yjK+rm+RlSpFFZeT1Yd8D1xYvph8Xjrom4sGWcOawROriX\nvLMaywIcOKfXMCgyKhA8pDDzKumKec+VmjYO8ozqDtZ3GorS3Cs2mGqEVA8h\n2aogV2TzNDUAVI8ePS4v7BSk9eqV7vP9f3DQIP+nHJJSNafg/BFLQ+rf/WDN\navyG\r\n=npte\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"4.0.0":{"name":"debug","version":"4.0.0","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-PlYAp+yaKUjcs6FIDv1G2kU9jh4+OOD7AniwnWEvdoeHSsi5X6vRNuI9MDZCl8YcF/aNsvuF5EDOjY/v90zdrg==","shasum":"ef7592a30b1c5e05a78e96926df2e6b36b5544e7","tarball":"https://registry.npmjs.org/debug/-/debug-4.0.0.tgz","fileCount":9,"unpackedSize":78566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl4OnCRA9TVsSAnZWagAAKc4P/2AiTrAEAvKdytHEYJOo\ntJMZ5ssVvEdfTFxZFFlvVtB75s2hLB38Ux2MyBNVZHZQY/KPpg5kJLFJMa+W\nBBbYhaZl33N/1O31clRbL1ePUL+/7F1rlLzoNuTFy4uJkh0kG9HfXluQC7v6\nhPd5svIhLu9crBbt9ChZui9tbeGzXK9Se4mzqjBY0VqTGZMXJhqkRo7p3fIW\nvnLHB2ZaGtpJap3x6bzCJC/Ev03PbTIHEyuDQ8v8bJkchPUTKNn1vqRRvrHm\nPNDZOL321V414JZggjESVHogh7ppF/cqsb6i0U0cVhw3n4I4ptuL5CyNNTtd\n7QpNz7O+r10cFsiVqw/E9qByfxNx3HEjOwxco/DGfYzcTXSgDChDvdf66/cw\nWtCtZ6kV0GrIk9vLWysaUo316k3OA0Gn8QHrIDZafPM3f34k0jGC+LGh5bg0\nCJYlguqw5lhEIE8m78pHRwlqtbug+RjeLQbgPNC3XEXNSJFY3rWXTwHacCll\nv8RX+H/4O6IH13P6F9mNI2LBOzqQyEqh0AxYUZcRFhp3HYedHDCLGMT45OJT\nNo+Cl76HD7Km4v18My+NyovmBdYPv+obKasS4bqi0SecCLyEfzKv4IKs+81d\nAG7SZn2alKK8HEW5qttB1ojWTfv9O2yR6KnUlbPmX3PVQkDsmCtq0ItIC+gU\nnCAV\r\n=pi46\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.4":{"name":"debug","version":"3.2.4","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-fCEG5fOr7m/fhgOD3KurdAov706JbXZJYXAsAOEJ7GgasGr0GO4N+1NsIcrjlIUcyvJ9oZlnelTzN3Ix8z1ecw==","shasum":"82123737c51afbe9609a2b5dfe9664e7487171f0","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.4.tgz","fileCount":10,"unpackedSize":79494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl4b+CRA9TVsSAnZWagAAKPEQAI/m2QBy4BI6dKRonUC5\nJzDLv1jphFcp3ziXqxFRr1BGxa04vHk5ZNa9KJjNcnFJ+lgwI7cCz/5g5DEO\nnv0pwKWlNpsHycviVUaa618WkZ7OtzdTPrmORKgFDP39O6lzBwinWtJlGgAn\nUKH1MQwOvQZkbYMgz5G8pjzDkaij8gDRDpCV9/Xdk/LWLykxO3ymJhFIFJIM\n58WilADFonalQDGDJLh+1Hhi1Hb1WbBdASUDhpWH3QqZgzrxVTVPB2ajYYaO\nsgad00GbigiCtRASLzQRg99OlCepmtsR4rFhu0V/XE3YZ4XSViuRNwrW1HBE\nRH2RjRxVGgfmcZd0N0Q1DzthxwIP4z5FJW4P16ODYgaTHdqCSUa4iIWc6WfW\ng8xlYDU3RgFQBcdIBq2jKxmsKU7W9KC5Fz7o8ldVW1NLbN/rPWi/qC2XKn0s\nwpl/oxroAW8enbpG3K4+kU8cizBvL3QQv3lWwEV0O5BMLmNFBZUufCYiARS1\nsYeyVEj2U+KvHWTSd/e0jB+995DbNsUbyvnfmP+O6VmsfxbrbDItBuTFUEZi\nmqN58fZ+rttNr2rqamRVq/Q0QmUHifH2+KQDm3wPzdooTHDRpWULW2ncg4dp\ngE8XRJu6L+QzCiXcVOgTv7UPhDs0erbPDYR3M+eweEUOaWQD5s8Rf5tjkOif\nQeQf\r\n=ybCb\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.5":{"name":"debug","version":"3.2.5","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==","shasum":"c2418fbfd7a29f4d4f70ff4cea604d4b64c46407","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.5.tgz","fileCount":10,"unpackedSize":79525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmEvWCRA9TVsSAnZWagAAtKYP/iHj/bV5z85g7wFJ/ses\nINfZRQk3gqPOpVyzb6GKr4YPQyzGCgDwo1luliwFVJ5iyOcFjYoDI0PyFqTs\ng8ZfY9t3fTl4rE6dnwsBMgslPxVrGFvBKcVuZoHVquUTH7cN+wDsU1bHGFXU\nzjKDGpSrMmC287HrBIlYPXuOy+J6jCtJa3mnJrjl20zTkHrxodQu1xol+1kC\ncNr455c99Adb1n/h7LlnYAjfLCsVBNXiPRREdhGHHf637v6fx410hnvTtxUf\nspr20o42bhvQxietxMnDmKAKRb6Buq1k8hLki7xPHfj1/PgrEMtdONYYFytG\n9QDFALnHKhCfh23qUA3+KmJtAYdcgz10+bcYbdx7ytULnQk0mldYaBe9NAFZ\n8YJ0ohZ7RL7Awt+Kf1aNM2A9uDZfgns7q6V96Gcl//+hsOt9MpMdYciJP39F\nynl7b0R8vxB1lSxq8v7rZ+Nm3I1OF7m6lFhkecEAzze7txTPlCNpfKYX2sNt\nj5SOIpXU6Mem9cve1RdzeYvGBqx9qHbpNCY33HP9p/Jvb/XfaB+E+FuOFc9T\nrc6VemaJB9uDO78sDDVQk28OliLy3cAFdFlUMrLe55Jbq2phIx+/KTN/3acH\ns50bpPpqido2tWSsTCZb4pPvMValF57ODUybu70XNxhuCznpApSNZuqRfC4Y\nOxHe\r\n=dcBJ\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"4.0.1":{"name":"debug","version":"4.0.1","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==","shasum":"f9bb36d439b8d1f0dd52d8fb6b46e4ebb8c1cd5b","tarball":"https://registry.npmjs.org/debug/-/debug-4.0.1.tgz","fileCount":9,"unpackedSize":78597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmEzQCRA9TVsSAnZWagAA5pYP/22BYzFRtIegg2BuM1G1\nkV8O9zlERv0EsFnNEyVpWKIt1wmMsPHNKJJuIpf1utE2LCyp5RC1bmrXz9LH\nPrKcmAVrsJbnXMmxahJhFbY8Wa8Vn8TCj3tAjVXKIiEIT6Np9gAb8z7ZIKXe\nxG8Su/gT4Mnm3o3KQF0FEsNHzVThP8ZUK4m9kUe4PKE5TLbsynUBW35wgW23\nQgqvM0z6gosQbnIKxeXkG/C25cRLfrGMKIU26YmAWxqpkTDGk1QvD0mPXlsd\n8UP4r1UR1eNMuRwsQOxY99kmoQ/zAoLkwqG16bl/97NkVQEOkGmmQSts8xer\nn3Ma8nsHUyTTcHafn7rBU/WUDf2uY5CdJZbjivoYVJ0weZFBw2VSOs4OGdck\nFgFtXK6nCZTWf7RL2C/75eFZoUUcjk0jK8XIrO1DK0dMojEG9gku3FqrMxk1\nCgPCZyRQV9PwcdHuZtbSBtngiKgyYmd7njibjphsjiav7ItSOx9H3YvneQbM\nSCxx+ONzX7bpIrnDqBm8htOCNUffSicZrNbgfLU8rfDjqRKNMVkiN61QKkp4\nV5V74Dlieg1nvF2jBeYU0qydeLnkzl6sa/5X8Te8Hs8juYLYPUVuO7bHEc99\nQWGYfnKrTCss21JfvPEj9qmCccyoLIscgHSmaltXQEE0dVFGlKQ20gbBmaQO\nfgDb\r\n=9EFN\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"4.1.0":{"name":"debug","version":"4.1.0","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==","shasum":"373687bffa678b38b1cd91f861b63850035ddc87","tarball":"https://registry.npmjs.org/debug/-/debug-4.1.0.tgz","fileCount":9,"unpackedSize":80172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbu5kwCRA9TVsSAnZWagAADmsP/0nsKNUuT8Lrrhhn3JhQ\nRMCsVRRyKtHE3W9Rspr7TtK2EJCB2ql1Olf74KwAeqfhmrgkrxw7cPjlyzK/\nQPhAdjVF3kaKzjD5h8WdP5671EvZ8W/Jkb13keh8AggdY3pQ2QGjzXblAOnQ\n5gpHrTvbrVqW7sXeqJMAIarIA/6w+u2dWyoSPm+xM00IEW6kjV6W2gmNI1Hw\nlxLXujYghkDjJLocu9/CKpw/YJlUcxA3pL70cLwNRN/np70d5YreTaX4w2ck\nTcoWFGU3VZYsFSSDiSGJmx5WkssqQIG/i0EK6YcdWIfw80mBWroXVPuZ8N8Y\n4dvfYTtobDUqVOd/t8+y+/wRH8xxlRvdkZlayHv6R6wlTtFaY0OF1XSrpdQE\nuXjv4ze4PXHvbvnu2ZfGD5LsjNM+yEzwowUB/hSYb6DYs+piHejPH0uSmD29\ncA4PDa08spTRAcpo0eso9tXZyLHDZyBrWqqErvzH8N+HqSUUFcVJJp6K6g7T\nMzpNDBaffVrY+1U/U176lBCgDsJClqZQFqB8bYYZHCP0na6AMWsIGNF2yX6M\npYyx9RpMJLU69cBtpCvQb5dE6MRBlCPdkoE0jiF7b/IyU9WNNwESUI/C4p86\nDhhuitPmoQRvLC0CvF810ecR8I3E+JSlbOTgyYK4b5NER4KJiJk5iFtoccSQ\n0TI3\r\n=XCSo\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"3.2.6":{"name":"debug","version":"3.2.6","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==","shasum":"e83d17de16d8a7efb7717edbe5fb10135eee629b","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.6.tgz","fileCount":10,"unpackedSize":79525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvaCgCRA9TVsSAnZWagAAhucQAJjxFVneDDxkspue4yaR\nlpOoIrP8ms/Oek53bmD1y/qlwsfpS/Y/KnS1yL/qSQkEAL2qYAETIMie3Op5\niP03s2xTTrVwCUDCEtTO7oMnl6kApMiexgUkop4eznA+AfEdz/jInFiN/yDU\ntHoR1UV0bIOSccVhrjH2aTt/96AETu8B7x8J722gjPUGDni2luYM+r2V8XYh\nN/9/kNn6HN1FjfOUl662iZTLE8OAVbrnmfVS6etTiG2SSLI898s+goyOD32K\nduwANgqjKrlvSxlMxKFr46G8GR+Otk9rOwsFO7yiufJ62dYefJIw6sfWYGXa\n8joI2StGT6p9T6iTN9959Y6naoSrN0cb3DocOjGQMrxUoBugoBWKd4fD+ACU\nMN3VA2PN8cZIh5eLu5IsJAECy4frUKpzbPYR129/Rtx0K7syhcvSwBqRE4Pb\nPNDHdddx1bix8m+xyT6sAiaWym9x+WX7GPuQAlCM5xZ4lFzjNpu5LgxpIbHo\njtRF6SLdMDBSImhH6NyPcw374QT+zwOc8l2G506RfBA5bB2fsYUBLrIXLkxm\n/CzEphFk++bPvYDiCy2EFUJW5MjnschBV65QUZBdBSg2YJnl3yGS8QHC8AR0\nM1IcRqI8NUlpTByPVoc7GoevruOjXxk+B+dflYRvBNwBMDatSA0eYT9aILK0\nJp/G\r\n=QKY3\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"4.1.1":{"name":"debug","version":"4.1.1","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","shasum":"3b72260255109c6b589cee050f1d516139664791","tarball":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","fileCount":9,"unpackedSize":81476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHmj3CRA9TVsSAnZWagAAXQIP/RgGgdDQtTyIZha6xfTv\nN2WoeoMBONJYjsPPd/2uxClRNtMBRC2jUZawva5LoMkBhhsFExLCF68Di8jq\n4l1tKfSnQsCDZzprFSVJIcAEHryGPU7ZVTZC+h/HQa/QU8m+AnSCFjGtsDyy\np4I7DOsLSpBireRfB6BCZgk00ftuM+dOkof+dTKg4GVQDbYLbzMzhIRzpvjv\n2QtIickzjgRjwp8QuiEBIhf8/p4WnXrubOz4Y6LewqAbAKEHzEHXSxgiDCnY\n+vhuojGVLSdrfBS/+bYUCJxGpyCfcFivdRKJW8GG40RCKltOQhpUBIWfbfbJ\nVJ8gwfl6/A6/7RbdfRHRBwoyrpi03D5EFr0htHqrQIkeEmeU73szxti2Sag/\n3tpk2+Evcoed5tz2Vb9ZSCV7AOd3N0L5pUlZH4lrCtiIQWRnVetKwZ+mdZuE\nHWFJK6CNLyHoHw6HS+bBCUk/iLu+384UFgPb/GThxwosLpo2GXRUBncFHtTA\ngFNkRXtKJtG+MOHozkzWsmKNhsn8q4J26zpgI3snwfOqUx63sPvHkP3gcMl2\n60ZU9mCxDAtK5xmpXpzmV/ac+c3Wp2azRglbhSdfAB/RWji+KS5192bTb0nk\n+zvu6AJ2KGREgbxosEEZLVkbBvf3XtIRN1Ts3mIVLrx4rSDsDbJYqZ0IrJKl\nYAHO\r\n=bQum\r\n-----END PGP SIGNATURE-----\r\n"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"},"4.2.0":{"name":"debug","version":"4.2.0","dependencies":{"ms":"2.1.2"},"devDependencies":{"brfs":"^2.0.1","browserify":"^16.2.3","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.1.4","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","xo":"^0.23.0"},"dist":{"integrity":"sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==","shasum":"7f150f93920e94c58f5574c2fd01a3110effe7f1","tarball":"https://registry.npmjs.org/debug/-/debug-4.2.0.tgz","fileCount":7,"unpackedSize":40443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew6wfCRA9TVsSAnZWagAAEHMP/AjhPmRTEPdXCjOUZItS\nDIIrO1B0F6jnHx8QWlqxAQGIYvbYDbAvBRYrqQ3VGpY3nLWA/B93wZ0BHDV4\n4bxDUfQT1xarF5wy3NeqAU+dOrwm/5whlcpGpqPevjnpYEWXzE1YNU4Fpp+c\nJ9pJR3uLzmUpdVAFoNW44bwNRs6I0AWo/HRcR5XEo3aTI0NjAilrpTW+aWDd\n4SArxWLBZ3JZyyn3DiOMGfn9fpXWXywvD1Z4zXJ0K4BKsGN7PrmwJpQijkt5\n/kK5dGAdpzuC9+4eMV/gWD5AaNwkASRx4uTLCZLRZWIKo4FUrFl1zu0VC+Xa\nHNx439MiRA0C6fP4NLy0GGWPEum/0DC07oxICw/RbJqwCV9dGiwFNzGR+Go9\nrBBr2tC2o6ZkBG1aK34IGh6uZskGSqwD3war6H8mYqownbmZx7u+QB8fxXkS\nocdz86u4hW7w9Yhwbcs12ES/mKhQyJlwhfXBVqWL1gkHxLmH7VKMqwbZ+dZ1\nofWhSGtkvjpUTgEFe0Z9cNkVhlZ+GpunrRVDH7STtkX5m6X3rHRNAYUC/Wvr\nCT52lMahJZy8uCew+/R3P5smzvbEHBjJRb1u7JCBPhtP7hEsD1VeRlaJQWtK\nGNA6T4TV8FdrnJ9iuRjeQ+Zz6aFahkyuLezqtW+lqQpmMKll3NO4OV/4sqff\ntXxb\r\n=puc/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=6.0"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)","peerDependenciesMeta":{"supports-color":{"optional":true}}},"4.3.0":{"name":"debug","version":"4.3.0","dependencies":{"ms":"2.1.2"},"devDependencies":{"brfs":"^2.0.1","browserify":"^16.2.3","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.1.4","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","xo":"^0.23.0"},"dist":{"integrity":"sha512-jjO6JD2rKfiZQnBoRzhRTbXjHLGLfH+UtGkWLc/UXAh/rzZMyjbgn0NcfFpqT8nd1kTtFnDiJcrIFkq4UKeJVg==","shasum":"efa41cbf14fc9448075367fdaaddf82376da211e","tarball":"https://registry.npmjs.org/debug/-/debug-4.3.0.tgz","fileCount":7,"unpackedSize":41047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZcMNCRA9TVsSAnZWagAAca0P/0uEMRazUGSIRnfEa4kU\npiVvI22IM6VpAb961QfclCfHQtFi/MN7Ejx8Sr7moQkA4tDgqoYcQI0Vp0iI\nmp0n8MGnMZBE5Dzlg1jBjXZUXu/DNbNMEN4y9o3GQ5l1NDprQh3Q+2uLsqrU\nk5eunsfydEs9/O8kW+2W3a5vw/u0rw3YBMOvhD3kGhAs9tK1szf22Kl66MXb\n/uKhPylOnpwL08bAPoj6pVZ3yF8XTT4gRaDwMH6kykeioV518dU36SCMZSXC\njJW8WKzsIawZt3hPm0XKUJrnexDEs9/4ixkwyCDW1aAtncYLZaw3K3AXvQnX\nxTZQ3KJ7JqdQRmnfhaWPBVCHN0tZuzuNqSoNtYWRxPWjC4upgmNMQLSvAORY\nPf5nPv4m+A50UyXT5/szOmZySjZ+5CmGWWGlymM+qGV8d6u/7E8cB4+sjeSq\nRGLlHZi1yglJ8GJoSVzkE85Tqm6klZ4GO58sc60u03uouBT1njdedCCvY9A6\nEWVgv+p4aTMwjDt8A/0/TyM25958YAvzgURWKJLGIAv++vsMUsaK9SAO+9D/\ne8MBPcmZFEohHq2n30HUUAhBPVIglId+q5YsKGXgrsziEFr8mLs5HKIZQGyH\nkhXGn0HmoIQDvtVwbEQyhlXfG8ERr0Jmg/NDZ/BuIj7AvoPn/GN9GYv6S7Lb\nYETR\r\n=W19k\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=6.0"},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)","peerDependenciesMeta":{"supports-color":{"optional":true}}},"4.3.1":{"name":"debug","version":"4.3.1","dependencies":{"ms":"2.1.2"},"devDependencies":{"brfs":"^2.0.1","browserify":"^16.2.3","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.1.4","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","xo":"^0.23.0"},"dist":{"integrity":"sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==","shasum":"f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee","tarball":"https://registry.npmjs.org/debug/-/debug-4.3.1.tgz","fileCount":7,"unpackedSize":41072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftmOtCRA9TVsSAnZWagAAj+UQAI46jfq9jCyyTtvPRNi6\ntJev81EWBZqIXCAegu23mYMeO53xpUS01hd8D6oL76LuJU/Tx0crXt4EAF7h\nLqS1JaKE2mLRY/+lMUbLlWtazs3wNSVZXAZRWw0j3xd9IIJieFjH9XGg0C55\nxA3iZJFC82udvs0N5/t+oLeZl/NLSXoYuvReD7CCDFJ15kjnMFXGtTyorjdc\nyoM9reoNDDb6tyPu4fCStQYNoWCNbgzI+aWMT8BEpGbTQccJyfgeF91knj8Z\na1HTcH45a/ObH9qikU7oEYJGUzDlSXkQPwOGL+qNzgBrO3fNFXwaj/f+/gL/\nTlCTQT7B1NELVdFOaLDH0xM7K7ClBgu3UAsigkkQwD2A3XoV7gohVVwN6EoE\nhc2mkQ3PZtAEJdHQQO8k6r5QrGDUmg+NPH/lfzftgOS0NyI3P6VUp0J7eRqV\nfr2me/gvppOyhlOf0QKQd7zNnmoS93GbkYgknZt3lwKosuIaLiFjFxjmmHcH\nfwzJqJyNQprWF8WTnB9v5EDk2FtaSUNFfwKF8hPYP+qMbLoAEwpfbpgMPeTu\ndt98b+rHXtvg8TOyRlhSdNeQzjSOi81nRD4C1crkQHmwQzMBQR4KBjvmOlA4\nkX+Hpfcu/phrL8PJTWdztxHfnizlc0ou00j6EkTZtiAkSDl9WQ5T0+MpoOLv\no8Bb\r\n=0Meu\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=6.0"},"peerDependenciesMeta":{"supports-color":{"optional":true}}},"3.2.7":{"name":"debug","version":"3.2.7","dependencies":{"ms":"^2.1.1"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"dist":{"integrity":"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==","shasum":"72580b7e9145fb39b6676f9c5e5fb100b934179a","tarball":"https://registry.npmjs.org/debug/-/debug-3.2.7.tgz","fileCount":9,"unpackedSize":53255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftmutCRA9TVsSAnZWagAA/CYQAJTJhsuwdX+jkmmJEglO\nuw+gVkh8mJU3SymbhfVU8HMQUN5N926iDLVwTMt4YrNNKmR7g8wkcOd9wdXh\ns7Nl4EYX5JvNp+HLxQz2yECVN1Xu80BczImTdU5BVRHuvngPZvdsCqSfSiJ1\nGLx1HgVwBXKOv9UpVUy9251MsEGt5g+1j6RGFoSn6KB4EYuLBidrga7BdXa1\nqkZ4FzCCczQB7hvN63hvPw1Y9YS9pXY6BAdGzt90qoAE7dbKCM87F2FucNXc\nClRLWxJWSaMdeSiC31cMhcj3SrVPj0V4MXqj0A86kN3hejL4WEsu/cAlySET\n6PmAWkSKdqYYnHyZEzEeQW2QoV1I5D8DLXvtgqnyRyRps9JQvfdq6ruXGyV1\nS7EWaoaCEAAg0gbO3YK5rnMza1j5hvx/2aoL7Sq8ANq8KgGbiSoYyGXCzu0y\n3Hi7HMj0q/WnDV8gYHMws11ywl9CAofYYl0KU38Aj+WtEHH0G+YlbhWzVULD\n51AJk/QZ23oyh9+/j0JwvztPJfr/caI2uP8lzZ1VPyopWSdG34oNs6oKcbWh\nWPJcbhgNzlgxcHmQdI4Wntu3vk9eey1CiHLOO7UnZXmZi8m7tGE9YS72PvEU\nmyQ1ZRatc0LnkBXTSZoR6mgjU5x07N8xgYs7KnjXYXsjO681ttYSxcvU52LF\naEE6\r\n=6xjz\r\n-----END PGP SIGNATURE-----\r\n"}},"4.3.2":{"name":"debug","version":"4.3.2","dependencies":{"ms":"2.1.2"},"devDependencies":{"brfs":"^2.0.1","browserify":"^16.2.3","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.1.4","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","xo":"^0.23.0"},"dist":{"integrity":"sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==","shasum":"f0a49c18ac8779e31d4a0c6029dfb76873c7428b","tarball":"https://registry.npmjs.org/debug/-/debug-4.3.2.tgz","fileCount":7,"unpackedSize":41341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0O71CRA9TVsSAnZWagAA2VIP/jFd5mnKJhac3h0hU+3g\ngtEQ6wE2z+CO505w07KCt3x5zbWFXWgat9CrpA0rdePv6c42NrBNAqsLxeIM\nghlzPJjEu5sca1vuhIuog5PHjbWlpEP9w4LOiuajXmGr0K9dbuR965MGOnlj\nw/6rPxeLgxlMOutMOAeKGbvhulJrVYWG6A6PVQ4R1oAYVoNCjrvnGmKAtcRH\nAoRHHCGDAuySLkDL8j/GoCn+t2DrzNt+tqXlP4hCBUyG16FcR7pqlfEiAgbG\nkoB65zO29uBSxAoC+z82/cJySqQYFmwGGASv9t+VbNtQpmEGKOQuY6nTrCVN\nDpLVKoBwX1oKWX4TnB6bU86nyAsdVIXvE2KsKY6zq3EYpjglIsRHX4VVcWeE\nSyJ20JJRoiMFpta0fZ6r09XnswB/dvMzYtyzmvS6yLbB+OFQJNh7stMlj5rV\n4vR5ld8q6+7zLSXGji8jrViWzFPtpgDPVigDXuZsvw/g2suWkNlwTfBCHiH4\nq1sMyZBXCkd7Od7IkImXD7ImHTohCpW8K0A6zxrSaaOhSUcvMPgm7DcOrCxv\ngbUSZimviyzgaPEj82WihJBkNUrGvCT/ysB95vuSI1vVipViPkr9+TTjIQfk\nKxmNCGfjnPSvgKBqsPn50uG9zdx5btHDlVEG8z+JGayJvqPhkQBztdSor/aq\nwc6A\r\n=GyIi\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=6.0"},"peerDependenciesMeta":{"supports-color":{"optional":true}}}},"modified":"2021-04-16T13:52:44.591Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a5/80/08cde468f09e8a3c4689d1558e8793f391bc3f45eb6ecde84633b411457e617b87cf1f1dab74a301db9e9e8490a45fe5d1426d7a7992ea2cd4bc45265767 b/data_node_red/.npm/_cacache/content-v2/sha512/a5/80/08cde468f09e8a3c4689d1558e8793f391bc3f45eb6ecde84633b411457e617b87cf1f1dab74a301db9e9e8490a45fe5d1426d7a7992ea2cd4bc45265767 new file mode 100644 index 0000000..d24e67a Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/a5/80/08cde468f09e8a3c4689d1558e8793f391bc3f45eb6ecde84633b411457e617b87cf1f1dab74a301db9e9e8490a45fe5d1426d7a7992ea2cd4bc45265767 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a5/90/04f8524ba32213cad76a2b4539b3e148a6337424fdcecc58bfbbc471f84579fd6f894d61971bcc45cdebc4ec08c17c3a87bfff2f2fca90b088479ea464ac b/data_node_red/.npm/_cacache/content-v2/sha512/a5/90/04f8524ba32213cad76a2b4539b3e148a6337424fdcecc58bfbbc471f84579fd6f894d61971bcc45cdebc4ec08c17c3a87bfff2f2fca90b088479ea464ac new file mode 100644 index 0000000..16d1903 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/a5/90/04f8524ba32213cad76a2b4539b3e148a6337424fdcecc58bfbbc471f84579fd6f894d61971bcc45cdebc4ec08c17c3a87bfff2f2fca90b088479ea464ac differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a6/3e/bee3d4c744827e0d4ac89f600f5b6af1af463a552fe4101f47a78518a7337dd4df7d4c3cc4d8e3d34fc84d3554dbc13fa79b4016b392ef2b5e4f06273ef1 b/data_node_red/.npm/_cacache/content-v2/sha512/a6/3e/bee3d4c744827e0d4ac89f600f5b6af1af463a552fe4101f47a78518a7337dd4df7d4c3cc4d8e3d34fc84d3554dbc13fa79b4016b392ef2b5e4f06273ef1 new file mode 100644 index 0000000..899e073 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a6/3e/bee3d4c744827e0d4ac89f600f5b6af1af463a552fe4101f47a78518a7337dd4df7d4c3cc4d8e3d34fc84d3554dbc13fa79b4016b392ef2b5e4f06273ef1 @@ -0,0 +1 @@ +{"name":"jquery","dist-tags":{"beta":"3.6.0","latest":"3.6.0"},"versions":{"1.5.1":{"name":"jquery","version":"1.5.1","dependencies":{"jsdom":"=0.1.20","htmlparser":">= 1.7.3"},"directories":{"lib":"./lib"},"dist":{"shasum":"2ae2d661e906c1a01e044a71bb5b2743942183e5","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz"},"engines":{"node":"*"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.6.2":{"name":"jquery","version":"1.6.2","dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"dist":{"shasum":"01757a4c5beea29e8ae697527c3131abbe997a28","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz"},"engines":{"node":"*"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.6.3":{"name":"jquery","version":"1.6.3","dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"dist":{"shasum":"e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz"},"engines":{"node":"*"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.7.2":{"name":"jquery","version":"1.7.2","dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.3.0"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"dist":{"shasum":"a93746763aca75a34df4c16395b0826310d0eaf2","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz"},"engines":{"node":"0.6"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.7.3":{"name":"jquery","version":"1.7.3","dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"dist":{"shasum":"e3d00a71612ac7e9b554b438e0987d0272ddba94","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz"},"engines":{"node":">=0.6"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.8.2":{"name":"jquery","version":"1.8.2","dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"dist":{"shasum":"46790ae07c6de38124eda90bbf7336b43df93305","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz"},"engines":{"node":">=0.6"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"1.8.3":{"name":"jquery","version":"1.8.3","dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1","contextify":"~0.1.3"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"dist":{"shasum":"cfa2941c05a83d966f21347f759a6d15281c60cc","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz"},"engines":{"node":">=0.6"},"deprecated":"Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."},"2.1.0-beta2":{"name":"jquery","version":"2.1.0-beta2","devDependencies":{"archiver":"~0.4.10","grunt":"~0.4.1","grunt-bower-task":"~0.3.2","grunt-cli":"~0.1.11","grunt-compare-size":"~0.4.0","grunt-contrib-jshint":"~0.7.0","grunt-contrib-uglify":"~0.2.7","grunt-contrib-watch":"~0.5.3","grunt-git-authors":"~1.2.0","grunt-jscs-checker":"~0.2.3","grunt-jsonlint":"~1.0.1","gzip-js":"0.3.2","load-grunt-tasks":"~0.2.0","testswarm":"~1.1.0","requirejs":"~2.1.9","which":"~1.0.5"},"dist":{"shasum":"e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz"}},"2.1.0-beta3":{"name":"jquery","version":"2.1.0-beta3","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz"}},"1.11.0-beta3":{"name":"jquery","version":"1.11.0-beta3","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"0464a6aba9f35f6c83a203caa23ab420909ce852","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz"}},"1.11.0-rc1":{"name":"jquery","version":"1.11.0-rc1","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"c2f6a4877374647b20b080c478d8dbcdfb4960ee","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz"}},"2.1.0-rc1":{"name":"jquery","version":"2.1.0-rc1","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"8c9f5d9a055c2fedb3f5269617ae649497d6a3b0","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz"}},"1.11.0":{"name":"jquery","version":"1.11.0","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"c67ceee19b403650d682adcf39d5c9009814d949","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz"}},"2.1.0":{"name":"jquery","version":"2.1.0","devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"dist":{"shasum":"1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz"}},"2.1.1-beta1":{"name":"jquery","version":"2.1.1-beta1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"6306c8ea1d104775f3ef8f5c26f0a32acd710a11","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz"}},"1.11.1-beta1":{"name":"jquery","version":"1.11.1-beta1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"c7eacde5e1ae06e029f1cd1b2dd444953a33e843","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz"}},"2.1.1-rc1":{"name":"jquery","version":"2.1.1-rc1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"95c494fdbbd0cefc305260e11ad46ae49a387c3d","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz"}},"1.11.1-rc1":{"name":"jquery","version":"1.11.1-rc1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"666a7df02488b48732d96e8ab9bdd34f61dd4238","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz"}},"2.1.1-rc2":{"name":"jquery","version":"2.1.1-rc2","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"99833e415efa7ac8a4efecc5df6894b2f938a598","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz"}},"1.11.1-rc2":{"name":"jquery","version":"1.11.1-rc2","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"a4ef3edde0864d8524c5e72f59c459fd7a9ebd17","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz"}},"2.1.1":{"name":"jquery","version":"2.1.1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"828fc60f50f7ee5983363ef4eb01c5f70af4bd5b","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz"}},"1.11.1":{"name":"jquery","version":"1.11.1","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"b6ec928590112ebed69e1e49cbfd0025ccd60ddb","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz"}},"1.9.1":{"name":"jquery","version":"1.9.1","devDependencies":{"grunt-compare-size":"~0.3.0","grunt-git-authors":"~1.1.0","grunt-update-submodules":"~0.2.0","grunt-contrib-watch":"~0.1.1","grunt-contrib-jshint":"~0.1.1","grunt-contrib-uglify":"~0.1.1","grunt":"~0.4.0","testswarm":"0.2.2"},"dist":{"shasum":"e4cd4835faaefbade535857613c0fc3ff2adaf34","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz"}},"2.1.2":{"name":"jquery","version":"2.1.2","devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"b68f154cb2ea4731924883e9fe20ec199d1dc1e2","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz"}},"1.11.2":{"name":"jquery","version":"1.11.2","devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"30ab26857211c37caa83da0f6903155fe49bb72d","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz"}},"2.1.3":{"name":"jquery","version":"2.1.3","devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"6ec55204673d505d39432c5bf5cfad10e1dbad2e","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz"}},"2.1.4":{"name":"jquery","version":"2.1.4","devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"228bde698a0c61431dc2630a6a154f15890d2317","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"}},"1.11.3":{"name":"jquery","version":"1.11.3","devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"dist":{"shasum":"dd8b74278b27102d29df63eae28308a8cfa1b583","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz"}},"3.0.0-alpha1":{"name":"jquery","version":"3.0.0-alpha1","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.7.0","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs-checker":"0.8.1","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","load-grunt-tasks":"1.0.0","native-promise-only":"0.7.8-a","promises-aplus-tests":"2.1.0","q":"1.1.2","qunitjs":"1.17.1","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.0","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"3493d672266e21c2dffb2714f935448edebe3c62","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz"}},"1.12.0":{"name":"jquery","version":"1.12.0","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","npm":"2.1.12","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.12.2","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"44653be4e3e4628b106bf2141dfd10fbca6021ef","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz"}},"2.2.0":{"name":"jquery","version":"2.2.0","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"d0e84ebbf199da51bf7ec39307f19b35754e9cba","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz"}},"3.0.0-beta1":{"name":"jquery","version":"3.0.0-beta1","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","native-promise-only":"0.7.8-a","promises-aplus-tests":"2.1.0","q":"1.1.2","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.3.0","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"d2a4e368e2eed7050bf66abbbb54db2ea345349d","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz"}},"1.12.1":{"name":"jquery","version":"1.12.1","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","npm":"2.1.12","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.12.2","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"9cc34ce4780d4ceb90c44328f071064f01960c18","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz"}},"2.2.1":{"name":"jquery","version":"2.2.1","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"3c3e16854ad3d2ac44ac65021b17426d22ad803f","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz"}},"1.12.2":{"name":"jquery","version":"1.12.2","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","npm":"2.1.12","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.12.2","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"b8a8b45937312a19eebbcf5a0589b0311c8220bb","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz"}},"2.2.2":{"name":"jquery","version":"2.2.2","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"3e302dc61eb329a21e9efac937d731f061134c59","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz"}},"1.12.3":{"name":"jquery","version":"1.12.3","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","npm":"2.1.12","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.12.2","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"1298b88b908e7c7f7501eb8c1a61f1ac8337b531","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz"}},"2.2.3":{"name":"jquery","version":"2.2.3","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"45e07e4190334de36c9e1a64b43b1f1373d91758","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz"}},"1.12.4":{"name":"jquery","version":"1.12.4","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","npm":"2.1.12","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.12.2","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c","tarball":"https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz"}},"2.2.4":{"name":"jquery","version":"2.2.4","devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.9.2","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs":"2.1.0","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","jsdom":"5.6.1","load-grunt-tasks":"1.0.0","qunitjs":"1.17.1","qunit-assert-step":"1.0.3","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.1","strip-json-comments":"1.0.3","testswarm":"1.1.0","win-spawn":"2.0.0"},"dist":{"shasum":"2c89d6889b5eac522a7eea32c14521559c6cbf02","tarball":"https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz"}},"3.0.0-rc1":{"name":"jquery","version":"3.0.0-rc1","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.3.1","core-js":"2.2.2","cross-spawn":"2.2.3","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-jshint":"1.0.0","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-git-authors":"3.2.0","grunt-jscs":"2.8.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.1","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.0","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"d69fc540b0a56be13e8aecde5a8766ade7a44f8e","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz"}},"3.0.0":{"name":"jquery","version":"3.0.0","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.3.1","core-js":"2.2.2","cross-spawn":"2.2.3","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-jshint":"1.0.0","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-git-authors":"3.2.0","grunt-jscs":"2.8.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.1","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.0","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"95a2a9541291a9f819e016f85ba247116d03e4ab","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz"}},"3.1.0":{"name":"jquery","version":"3.1.0","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.3.1","core-js":"2.2.2","cross-spawn":"2.2.3","eslint-config-jquery":"0.1.6","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"18.1.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.1","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.0","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"129f6f1ae94b18f09010b008d0d6011e40613d7f","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz"}},"3.1.1":{"name":"jquery","version":"3.1.1","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.6.1","core-js":"2.2.2","cross-spawn":"2.2.3","eslint-config-jquery":"1.0.0","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"19.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.3","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"347c1c21c7e004115e0a4da32cece041fad3c8a3","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz"}},"3.2.0":{"name":"jquery","version":"3.2.0","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.6.1","core-js":"2.2.2","cross-spawn":"2.2.3","eslint-config-jquery":"1.0.0","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"19.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.3","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"3bdbba66e1eee0785532dddadb0e0d2521ca584b","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz"}},"3.2.1":{"name":"jquery","version":"3.2.1","devDependencies":{"babel-preset-es2015":"6.6.0","commitplease":"2.6.1","core-js":"2.2.2","cross-spawn":"2.2.3","eslint-config-jquery":"1.0.0","grunt":"1.0.1","grunt-babel":"6.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"1.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"19.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.0.7","grunt-newer":"1.2.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.11.4","insight":"0.8.1","jsdom":"5.6.1","load-grunt-tasks":"3.5.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.4.1","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","requirejs":"2.2.0","sinon":"1.17.3","sizzle":"2.3.3","strip-json-comments":"2.0.1","testswarm":"1.1.0"},"dist":{"shasum":"5c4d9de652af6cd0a770154a631bba12b015c787","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz"}},"3.3.0":{"name":"jquery","version":"3.3.0","dependencies":{"archiver":"1.3.0","chalk":"1.1.3","npm":"4.4.1","shelljs":"0.7.7"},"devDependencies":{"babel-core":"7.0.0-beta.0","babel-plugin-transform-es2015-for-of":"7.0.0-beta.0","commitplease":"2.7.10","core-js":"2.4.1","eslint-config-jquery":"1.0.1","grunt":"1.0.1","grunt-babel":"7.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"20.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"2.0.0","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.14.3","insight":"0.8.4","jsdom":"5.6.1","karma":"1.7.0","karma-browserstack-launcher":"1.3.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.0.1","karma-qunit":"1.2.1","load-grunt-tasks":"3.5.2","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.0","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","raw-body":"2.2.0","requirejs":"2.3.3","sinon":"2.3.7","sizzle":"2.3.3","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.3.4"},"dist":{"integrity":"sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==","shasum":"06004bc2d0204ce92822a794ee8efb50283bb9ff","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz"}},"3.3.1":{"name":"jquery","version":"3.3.1","devDependencies":{"babel-core":"7.0.0-beta.0","babel-plugin-transform-es2015-for-of":"7.0.0-beta.0","commitplease":"2.7.10","core-js":"2.4.1","eslint-config-jquery":"1.0.1","grunt":"1.0.1","grunt-babel":"7.0.0","grunt-cli":"1.2.0","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.0.1","grunt-contrib-watch":"1.0.0","grunt-eslint":"20.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"2.0.0","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"0.14.3","insight":"0.8.4","jsdom":"5.6.1","karma":"1.7.0","karma-browserstack-launcher":"1.3.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.0.1","karma-qunit":"1.2.1","load-grunt-tasks":"3.5.2","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.0","qunit-assert-step":"1.0.3","qunitjs":"1.23.1","raw-body":"2.2.0","requirejs":"2.3.3","sinon":"2.3.7","sizzle":"2.3.3","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.3.4"},"dist":{"integrity":"sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==","shasum":"958ce29e81c9790f31be7792df5d4d95fc57fbca","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz"}},"3.4.0":{"name":"jquery","version":"3.4.0","devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"1.0.1","grunt":"1.0.3","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"21.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"3.0.1","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"4.0.1","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"7.1.0","karma-qunit":"3.0.0","load-grunt-tasks":"4.0.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.4","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.4.7"},"dist":{"integrity":"sha512-ggRCXln9zEqv6OqAGXFEcshF5dSBvCkzj6Gm2gzuR5fWawaX8t7cxKVkkygKODrDAzKdoYw3l/e3pm3vlT4IbQ==","shasum":"8de513fa0fa4b2c7d2e48a530e26f0596936efdf","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.4.0.tgz","fileCount":125,"unpackedSize":1293692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrkmiCRA9TVsSAnZWagAA0FYP/3PRUJ9bvMXsEo01m0m0\n4/24H91hGidu20i5V2JNBhtlNttTH3NLlPYKGHO3wHFEA8iAKuiYyo/V5UlQ\nv4jUKqcFCtaz2pgdBICbAt0cNc1ZbRxXTL1ZI1HublxTkyx/d0kP0l001vYA\nIeLarSNrx4749LDHOeprO6TPoFeB+aCusWbLexcNs/Tel9Frn0oufEiDTjCI\nHAJHfjGDW8IZBw0fQaem7CxaUPiVFRUZghxYpM5ThGbGtxIsAiN9EQDpDmVC\nq855FOu7FsLviN20mJpJmq9ZuiGF9DoUA5QJIQ9INZBfd/uQ6TWRcqBqVtwH\nIgdfAVAACPBF+Zax3dy4cAOU+UHGqs/nStZ7wmewexsDdXb3PzkDvUxluzmL\nocg6y7gpp39Ev7qV+SNg7ZccgW/2rWHfy/l/Aofb0TFV53FCc3DEc9avzUkS\nPZE2jCTu3mUR1vpqr31R+AVo2ZMhTfcrGw2WwP1IDqc+Nt+7ySBiWVQHnT4a\nIjHALqztNKEkqFvxgm4VUkPgqqpFF4msCg5a8jwjJPiGKJgllv1clVwlFk77\nKQHztESClmebfruOidrX0qmBpixrraC2T401gZT9bV4qfqu6Td3q00TBkZjI\nKsiBfs6hq3Py3MOJt3S2xwx8smuhB7Q05e5TMficC0QMURF14U4Yi6WGJ5or\nBJa5\r\n=w1RE\r\n-----END PGP SIGNATURE-----\r\n"}},"3.4.1":{"name":"jquery","version":"3.4.1","devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"1.0.1","grunt":"1.0.3","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"21.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"3.0.1","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"4.0.1","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"7.1.0","karma-qunit":"3.0.0","load-grunt-tasks":"4.0.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.4","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.4.7"},"dist":{"integrity":"sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==","shasum":"714f1f8d9dde4bdfa55764ba37ef214630d80ef2","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz","fileCount":125,"unpackedSize":1295318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyg1rCRA9TVsSAnZWagAAeOEP/2+ykv0pLlPLU8YLeOoS\nUTBRx0TwY8fcGwZfsxB2JERZfrQQM7l1l3aS7Rb5XYmL4rlHrnGq571H2ogF\ntuEPsLjSGbM+3eM6Y1MRCTXn4cp3KXVKU+oBuFrA6gSQkhPB9nYjaf0jUl5L\nVYMjB6CiqB5Pxy0j3hCrT7iMkoxY6b+V/3rN7HqRj1pL1N71QLrVyYv9AiHU\nuXaKlsI4xWg1RDrt4+Ef8xe4n5bwfWxn8hNIBwlldvexknA+FGz/LY42FOl7\n9alWTyfJMmK15ggMD02W8iCLTaUxC4Hz16ZeoGnnOZkPaZCSZEpAHCJSh5BV\n9J7GGhpiEtlQRQQbhRYl2nAb5Z02APUIJ7tQt1JYAtb1WJNJgOjDITvFqpxj\nbOc47BP+7pcWF4rqWviIjWts4mU3w0Yl+ZUaTSB6lOjBSH/ONC4CspyfKlQg\nu1Kcrk8skTT4fDNQcXLTDdXXCssqrU8nRtzKarLjuBvd0Cs0ZPSZqEJQG6OA\nJ7zdqnqwzfRrfbQwWi7OozkjSrnS2mLwFTxiuAsO86AgzwKYZQrMwEV89LXQ\n8cRPhH1jvPgh2RcLraKTuQsSZ2o/h+mrq8lhIDNBVJXmUZKNRSW9GNoD8QEY\na52Ygcu8lCFbtJ1gUvHwOzHaRmNqZb7dwMGV5zbTMSFViGSN1qabM8jNOwl4\nCp1s\r\n=n88a\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.0":{"name":"jquery","version":"3.5.0","devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"2.0.0","grunt":"1.0.3","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"22.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"3.0.1","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"4.0.1","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"7.1.0","karma-qunit":"3.0.0","load-grunt-tasks":"4.0.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.5","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.4.7"},"dist":{"integrity":"sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==","shasum":"9980b97d9e4194611c36530e7dc46a58d7340fc9","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz","fileCount":123,"unpackedSize":1315634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekJO8CRA9TVsSAnZWagAA1VwP+gPgHR/8IXclArWJPyPw\nI44aJFffRpyaddibT6bkwAyqELi/oZiso5hmW7QaJv9S1Moq7m1c1aIcMCDi\nPbEJ6jop+F3eNgtULVIwk6OzF1DlC9AkRW/j0LQUlgun1kmlID2ToRPVt8sL\noO/B3Bcm0Qw6E6qPS8kIfxQJ+7b+cTr02BFX9nTm3JgXz/bNJIAYUbnQEt8l\nQPIosesCk1cYr8RxY31dNUAn80g9mpOTmTcV1ZhKqMwsMu7YVfOVUOH0rcWb\nu+AkZ+VgXTvjWE6rHpUwePU0xny/Ssf2RkklHTa4ljQXCp1wWNkRbNK4bZkb\nbCJlYZU1bcxfHUYXm/n1X8HmG+ZO/ZCd55A9/URm+Pd7PdZVxgj/lHGDDvV6\nadjrlgTPjT+qGqVDJBXfEQfzliDbleMG5/dm2go3wGUIvJphJAFyVd7aZPaL\n9WKxwh7Ul2vceZNCpZ8W3x3dXZ203OkX1s8Qk9F8j2eZcsmK6QtFyWVupNUK\nRw/1jNiHkcM0Ugr0jro+04WuU6nocad6Yex8Yih0pMkS1XnM0SSZ+pNr0SxF\nk37NffltL0RgfwMKEHBeTW6LJ1m9ty8Xpja1PxQTU1Qt821y1mzqExq9Arvk\n5sPiXVtu9sP5E7RRqDnA1vGutvDG7r+awFDcAM8upINhzDiWFittI9FUFJgz\no/vp\r\n=n9GM\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.1":{"name":"jquery","version":"3.5.1","devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"2.0.0","grunt":"1.0.3","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"22.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"3.0.1","grunt-newer":"1.3.0","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"4.0.1","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"7.1.0","karma-qunit":"3.0.0","load-grunt-tasks":"4.0.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.5","strip-json-comments":"2.0.1","testswarm":"1.1.0","uglify-js":"3.4.7"},"dist":{"integrity":"sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==","shasum":"d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz","fileCount":123,"unpackedSize":1315593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesJwhCRA9TVsSAnZWagAA+SIQAI9RCw96kNZnbA/ONf5x\n9JqCbsyBPH8ZV76Q/lq/OOJgTQqSWirb2iK2BCrPbcEdzQ9WUKrmmiFSGOLH\ne1yQW4gi4+MzL+prjipb/GKZJINgr0I4/Rd0TAMuVapqNFWc01phXOWH9zk6\n9t0lYWlpa9RA07Dn+2lTvU3sGkzEfAoamBhRIL3L9LVMTDXFyQXU2FqNKqCG\nLyEyomvO7juax8kQaRsl6pWZ9VAkXIvRMNI3fvWqFaGMaShK0hP0woymcZER\nlk6mW+TsYeU4cEBYWLNo2ei+NkLYAT7mo4Yt6PudZ7hCWLZV0OHHs5K9m5m5\nS6ppOPUCPAGi0G2ubxi8fw6vbhlLD7JWmzWksF0dE6+qQv+e9VHEhwchjUXR\n+RFLqZOEjevhf/RE0wbmjYurw8QIxgnUjXzKbgHdcTrOutBcW5Kv3xavq0v2\nJNnnuvDolqAbWBBUg0vNKsedduudLgzXXS2OnpLNGn3ctKoEIVV79G6OWBJB\noX1lFAimK9uT/CF4YSeUMY7ghZR4RRLrY0XcNRCLAMh17NThNpIyZk+hCEbQ\nHO9FOD+yhtz4sF5tz/RrSdHkt5hl5J/g9H6eTiPmbKydchdKd/V8RpAObVs/\nTg2LEk7UHh/l5UXK2IJfk+WLwd86g1rwxsJ48MLoGutTroR8MRrQ/78Htoij\nk+WY\r\n=XCQe\r\n-----END PGP SIGNATURE-----\r\n"}},"3.6.0":{"name":"jquery","version":"3.6.0","devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"3.0.0","grunt":"1.3.0","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"22.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"4.0.0","grunt-newer":"1.3.0","grunt-npmcopy":"0.2.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"5.2.3","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"8.0.2","karma-qunit":"3.0.0","load-grunt-tasks":"5.1.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.6","strip-json-comments":"2.0.1","testswarm":"1.1.2","uglify-js":"3.4.7"},"dist":{"integrity":"sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==","shasum":"c72a09f15c1bdce142f49dbf1170bdf8adac2470","tarball":"https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz","fileCount":123,"unpackedSize":1318507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPnHsCRA9TVsSAnZWagAA3tQP/i738n4AHT4QJxYnLamb\nvQEB9yjcsipiGgV2nY/eNbXtljhGZ+vARJk1Sa4j3vGWmGSKgMRW+k2chtsZ\nnDJ91MXzjP4uJwgTTTn+bWWWmINwYqnLIxbYEpsBt1ugmFcv1AsyZQUCTu/G\naPzwsJWdxzDCRige0PC3NTT8ImeUonXnM6OBZ65ICXfi+BzZMWm50DSzzkA2\n/jdURwOiLNHtrJgilWfLqVVW6WWxfCOXcaTPD4K8J+1twLdrTAaA9/ECsX/c\nrb+pp7JLbqdAHFIHjl5R4nlsF2CsJmLI+dYSDCPql9ivkWcWXX+b0EHUOtBZ\nHDP4NjtYCIP11xdtmKqhTkC0JkOvUUI+nhCOOLWitH9W5AhJQAWrbroOptuv\nEKzc4Cvh2yEZvGX92zcFnbZlGDw7jRNgME8xyxbgK/zOPyoKBciqT2aFn9xI\nuDKj6hDonMSwqhoOuYcAFY2YfbR45uuJLKBC04oxjbrIF7o+WxbmAehjFxDH\nfiECruH9aCr7loRHOKcoo9Xp1y90B1JXiSJBARI/Jfq+6g2crZFvlBvFIX5P\nhSxvTdlb1/kBjxjcRtfgSmaUBUBQqKJEkB5YCh6FZ9XoGHRdcc0PocXFbXHh\nvyE63iiqk1rQYnDf/lPAp+Om8RSzyUCGCajGrCWsSzpt3EHapnqVY8OfT90p\nofL1\r\n=b8nm\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-03-02T17:12:18.209Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a7/f5/4876ee0effc1e14b618487e40350fe873381a646c830e09bdd34093d5be109facfc9a4fad286a78f126e6bb4af54d1b8c3ce3402d2d1dd5c38d40d501aff b/data_node_red/.npm/_cacache/content-v2/sha512/a7/f5/4876ee0effc1e14b618487e40350fe873381a646c830e09bdd34093d5be109facfc9a4fad286a78f126e6bb4af54d1b8c3ce3402d2d1dd5c38d40d501aff new file mode 100644 index 0000000..cbb4813 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a7/f5/4876ee0effc1e14b618487e40350fe873381a646c830e09bdd34093d5be109facfc9a4fad286a78f126e6bb4af54d1b8c3ce3402d2d1dd5c38d40d501aff @@ -0,0 +1 @@ +{"name":"parseqs","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"parseqs","version":"0.0.1","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"95b2723bec422ff16df5a543d68c6a2244273688","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.1.tgz"}},"0.0.2":{"name":"parseqs","version":"0.0.2","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"9dfe70b2cddac388bde4f35b1f240fa58adbe6c7","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz"}},"0.0.3":{"name":"parseqs","version":"0.0.3","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1"},"dist":{"shasum":"9d930f32d2407301cf3afef9111e346b86d345d3","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.3.tgz"}},"0.0.4":{"name":"parseqs","version":"0.0.4","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1","better-assert":"~1.0.0"},"dist":{"shasum":"ed5758fbcefe51ed5dc0c1f6f12469fc8601e237","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.4.tgz"}},"0.0.5":{"name":"parseqs","version":"0.0.5","dependencies":{"better-assert":"~1.0.0"},"devDependencies":{"mocha":"1.17.1","better-assert":"~1.0.0"},"dist":{"shasum":"d5208a3738e46766e291ba2ea173684921a8b89d","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz"}},"0.0.6":{"name":"parseqs","version":"0.0.6","devDependencies":{"mocha":"1.17.1","better-assert":"~1.0.0"},"dist":{"integrity":"sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==","shasum":"8e4bb5a19d1cdc844a08ac974d34e273afa670d5","tarball":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz","fileCount":6,"unpackedSize":3295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVTNcCRA9TVsSAnZWagAAKFgP/0uz3s9dZRECyOB47kOs\nx2N6i1TDTu3wuw2zS0Ja5gy/VWXVAQML2O1td2UZ9LNntFvyRS/dk+E2UySm\n2ZW2iNYGiWrJF2z8PF2I/+xYAiZJp9VnzLS8jzwDHGl4jVPv0HDNkK6R1ZLI\ntqDORjyR7etWKqzZF5jMB1eoV/0qP99Kw0FKXJMoNaMhhhfzHC3su+pcTaLi\nBL9sibssZHD0Kspxkj+Ok+ucTRqkgiA4Rsjs6YgOYdVptHZfdYkgcsRAqvKE\nMvmFi1uvQ5i25MU/24MlW7TXb9/MrdAiuHZXXHlTvMBn0fYh3FJz/vwNEHsl\n+6CR8rSk9m4vRnEJGRzqXskXDUV4p42sNqnU+B0oTju15tfosiBTkbgG69q0\nbw5gl66Vuli96/ZwczrunRiq/wbANVZ+5U7vxn1WcBzOAUXhclxV8Gr0MQGF\ns+ctKAODyAyLv6R5BislrVcrTXVqzRmUECAzK1XZl39gTmnvrFwGX+5op6aq\n/QdRaumJZRNX+IS3eKn6uK+2At9XIM2RTFnUlITHBiQ/qHh57WDLYamKj2YT\nyF0ZsKVkM0W5Aurkmx4gZJZwcnLc21RPsdLCUvP+OBqbvrUHo0vNHmCjNl+R\n3DreUtD7m25SRP8huwrPRd3ktg7pLzIniCNCf6UuNZPKr11YJdqRyFtw5jXR\nHFAA\r\n=gu+y\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2020-09-06T19:07:10.454Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a9/b8/5e794d5ef1260f08b9664e8582551766b61142c24cdd54106e7edc5c21c17fa03518cdf4dafb9d8eb3e3fed5173467a77d0b1e37a9ba491dea43703ca031 b/data_node_red/.npm/_cacache/content-v2/sha512/a9/b8/5e794d5ef1260f08b9664e8582551766b61142c24cdd54106e7edc5c21c17fa03518cdf4dafb9d8eb3e3fed5173467a77d0b1e37a9ba491dea43703ca031 new file mode 100644 index 0000000..ba493fb --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a9/b8/5e794d5ef1260f08b9664e8582551766b61142c24cdd54106e7edc5c21c17fa03518cdf4dafb9d8eb3e3fed5173467a77d0b1e37a9ba491dea43703ca031 @@ -0,0 +1 @@ +{"name":"yeast","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.0":{"name":"yeast","version":"0.0.0","devDependencies":{"assume":"0.0.9","mocha":"2.0.1","pre-commit":"0.0.9"},"dist":{"shasum":"4664805b39282223e7e00d2e55b60ad9c85bce7d","tarball":"https://registry.npmjs.org/yeast/-/yeast-0.0.0.tgz"}},"0.1.1":{"name":"yeast","version":"0.1.1","devDependencies":{"assume":"1.2.x","istanbul":"0.3.x","mocha":"2.2.x","pre-commit":"1.1.x"},"dist":{"shasum":"ba5a7c801d76fa8fffcf33cba8d4237051682f96","tarball":"https://registry.npmjs.org/yeast/-/yeast-0.1.1.tgz"}},"0.1.2":{"name":"yeast","version":"0.1.2","devDependencies":{"assume":"1.3.x","istanbul":"0.3.x","mocha":"2.3.x","pre-commit":"1.1.x","zuul":"3.4.x"},"dist":{"shasum":"008e06d8094320c372dbc2f8ed76a0ca6c8ac419","tarball":"https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz"}}},"modified":"2021-05-12T19:27:36.276Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/a9/f2/f6abd3641851f673d952ed20e093ef7b67f21340d4548735a915cd3af4754c8a200fa8d5043addb17e9e1bb4b8e7dda74d521e4bf35a8c5d31e26c938750 b/data_node_red/.npm/_cacache/content-v2/sha512/a9/f2/f6abd3641851f673d952ed20e093ef7b67f21340d4548735a915cd3af4754c8a200fa8d5043addb17e9e1bb4b8e7dda74d521e4bf35a8c5d31e26c938750 new file mode 100644 index 0000000..45823cb --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/a9/f2/f6abd3641851f673d952ed20e093ef7b67f21340d4548735a915cd3af4754c8a200fa8d5043addb17e9e1bb4b8e7dda74d521e4bf35a8c5d31e26c938750 @@ -0,0 +1 @@ +{"name":"ms","dist-tags":{"latest":"2.1.3"},"versions":{"0.1.0":{"name":"ms","version":"0.1.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"f21fac490daf1d7667fd180fe9077389cc9442b2","tarball":"https://registry.npmjs.org/ms/-/ms-0.1.0.tgz"},"engines":{"node":"*"}},"0.2.0":{"name":"ms","version":"0.2.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"6edfc5a063471f7bfd35a5831831c24275ce9dc5","tarball":"https://registry.npmjs.org/ms/-/ms-0.2.0.tgz"}},"0.3.0":{"name":"ms","version":"0.3.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"03edc348d613e66a56486cfdac53bcbe899cbd61","tarball":"https://registry.npmjs.org/ms/-/ms-0.3.0.tgz"}},"0.4.0":{"name":"ms","version":"0.4.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"77ade5470b099bb2d83e232c25763c18cd6963f1","tarball":"https://registry.npmjs.org/ms/-/ms-0.4.0.tgz"}},"0.5.0":{"name":"ms","version":"0.5.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"8e52e7e1bf521f9cea30f726de958822eab0ee27","tarball":"https://registry.npmjs.org/ms/-/ms-0.5.0.tgz"}},"0.5.1":{"name":"ms","version":"0.5.1","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"98058c8f9c64854d1703ab92bf3f1dcc8e713b4c","tarball":"https://registry.npmjs.org/ms/-/ms-0.5.1.tgz"}},"0.6.0":{"name":"ms","version":"0.6.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"21dc16a7d1dc2d8ed244dc0e6a71a5c2612b623b","tarball":"https://registry.npmjs.org/ms/-/ms-0.6.0.tgz"}},"0.6.1":{"name":"ms","version":"0.6.1","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"ed57e5f3fc736e09afc85017c5c912a47bc59ab9","tarball":"https://registry.npmjs.org/ms/-/ms-0.6.1.tgz"}},"0.6.2":{"name":"ms","version":"0.6.2","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"d89c2124c6fdc1353d65a8b77bf1aac4b193708c","tarball":"https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"}},"0.7.0":{"name":"ms","version":"0.7.0","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"865be94c2e7397ad8a57da6a633a6e2f30798b83","tarball":"https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"}},"0.7.1":{"name":"ms","version":"0.7.1","devDependencies":{"mocha":"*","expect.js":"*","serve":"*"},"dist":{"shasum":"9cd13c03adbff25b65effde7ce864ee952017098","tarball":"https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"}},"0.7.2":{"name":"ms","version":"0.7.2","devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2","serve":"^1.4.0","xo":"^0.17.0"},"dist":{"shasum":"ae25cf2512b3885a1d95d7f037868d8431124765","tarball":"https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"}},"0.7.3":{"name":"ms","version":"0.7.3","devDependencies":{"expect.js":"0.3.1","mocha":"3.0.2","serve":"5.0.1","xo":"0.17.0"},"dist":{"shasum":"708155a5e44e33f5fd0fc53e81d0d40a91be1fff","tarball":"https://registry.npmjs.org/ms/-/ms-0.7.3.tgz"}},"1.0.0":{"name":"ms","version":"1.0.0","devDependencies":{"eslint":"3.18.0","expect.js":"0.3.1","husky":"0.13.2","lint-staged":"3.4.0","mocha":"3.0.2"},"dist":{"shasum":"59adcd22edc543f7b5381862d31387b1f4bc9473","tarball":"https://registry.npmjs.org/ms/-/ms-1.0.0.tgz"}},"2.0.0":{"name":"ms","version":"2.0.0","devDependencies":{"eslint":"3.19.0","expect.js":"0.3.1","husky":"0.13.3","lint-staged":"3.4.1","mocha":"3.4.1"},"dist":{"shasum":"5608aeadfc00be6c2901df5f9861788de0d597c8","tarball":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"}},"2.1.0":{"name":"ms","version":"2.1.0","devDependencies":{"eslint":"4.12.1","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1"},"dist":{"integrity":"sha512-gVZHb22Z7YDyiiaoGld9LD4tUuDDxdkDJUEfTIej9LFePFqiE9JxI0qTFfu6tD7Wu03lg7skmVwTmA6XkeMlPQ==","shasum":"9a345be8f6a4aadc6686d74d88a23c1b84720549","tarball":"https://registry.npmjs.org/ms/-/ms-2.1.0.tgz"}},"2.1.1":{"name":"ms","version":"2.1.1","devDependencies":{"eslint":"4.12.1","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1"},"dist":{"integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==","shasum":"30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a","tarball":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"}},"2.1.2":{"name":"ms","version":"2.1.2","devDependencies":{"eslint":"4.12.1","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1"},"dist":{"integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==","shasum":"d09d1f357b443f493382a8eb3ccd183872ae6009","tarball":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","fileCount":4,"unpackedSize":6842,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+U4MCRA9TVsSAnZWagAA71AP/2rpu0zYdK5Z/BXrrKNW\nljsVOs4oHNJ2jeZrzpcV8eZUZ6zAi78plyxcnMCbbG+TrpjXrPcb8qFq630G\nS6+srbEF0lCGCc+ktJrNJPTeXkDxukQXVrepgZ2kxZ4m3q/QIAVoK4t9ebuH\nNYa+39wwET9oPuPsk+YY0Z7fQ1vadyuzHYOrRmtudV3ZtyT0k74Ec3IhKamW\nlLDJtCklD7IGcwirrvPssxmYu8WP+PAyFnrVaOW+iior1o07oWO2mk7sk3Fx\nwBSBFf7vZqFJP6Qg1m3TVBAiipL+Pf+b3Dy8fhmn4NhTGj/9Wl7f/LcqogOV\nV9l77qsZldCERBwmwLsHlMyCSSl/b2qaz28ZBTRwHtHdo19QT6MqX8Yvomy4\n+gyPBBAHC6bqqLZ0veRKzSNFfJYoFw8tQzyjSjpmYcdxaB5w4z4QPZAkZCku\ns+sooI5Xo33E9rcEDWmyqxdUud+Au/fTttg0dReYe8NVrUgzyk4T1W+D7I4k\nu3XV7O9bOaJiBTNsb22lGIC6E/HtjfoqW7iwl0cdZ8iZcPTBClkzsy9Hz6a4\nmNKDARFL0wjzWF/CoXyKcI6t9ruOepTQRfbAtZDAo4LEYj/bGiqm2kbX5AP6\nicCOlufTNip74l2bXv2sJNwtjGzEYF/S79Oyc49IP/ovIua4quXXtSjAh8Bg\nLrV/\r\n=GrYx\r\n-----END PGP SIGNATURE-----\r\n"}},"2.1.3":{"name":"ms","version":"2.1.3","devDependencies":{"eslint":"4.18.2","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1","prettier":"2.0.5"},"dist":{"integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","shasum":"574c8138ce1d2b5861f0b44579dbadd60c6615b2","tarball":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","fileCount":4,"unpackedSize":6721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfz4WbCRA9TVsSAnZWagAA5A8P/jNowbVOl1ORENKivAXb\nQ3NncrkWHdRjUGeUhX89Ih3N+woNugnSTOEKACswARtqXMf5M1Iy8GODorDp\noz+pqU0HGU+KjLO/sL+TGxJJJAMfX3vhRZTHk5ZzKDi9s6iAM3nMeE5rwNUS\n7wprOzbKNE9hev82zLgfY8kF7UhxY09BH/GBS+kWGD3ViM8R5vl49JEfrvN9\nSKris0FTSP/YL1QrRNjvMMfGh9WhMOC/FLkJnIErcw2I8g/XmBOApjqM9KhG\n42/ls4gXuaUinNXC68wAbntxhHtJo2403NVmU7UJDDdulEBbTXZ18cKHt520\nUkRZp8piQb1m3QR8XPjvpnShlOutYdQJfjltY5z12Wfwj5OBVsurWeFtJRme\nBxn9pdrKW45doypT1Lc7LXoIftLBtToVtWRThEVihq4I9f4zpR9Uzc3qp1jU\nlEo9ndqf9rg9oVV8fSK+dIDuUUyp7NrI5uCfcUMfKEgwWortapNKNvMuHp7r\noZhuGRekRc1kG8YmsYfLKv3kRS8uiXa/jbwD4PkNGbev7KhEptCnGZm78z9k\nV0KOdaCU3Igo6rK23kgsAFhxDvMANHby3dLYQMbZOoqkZLv4qiPS/7raPOLc\n5q/ezwT2JZLWZlTbZnigAVuZ5aHmLb6QEuMLcIQaelDkH7XWCNpED8cM2pFX\nTllW\r\n=eZCP\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-06-11T15:28:51.445Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/aa/f5/5a0b843f405f5d27e9c503cec761bf2e6c0a3e717a836396047e73cfc5a787c7e725a15e8b08ec744f64afa7236f0cf65e3eeabd07270cbec6ad439f8832 b/data_node_red/.npm/_cacache/content-v2/sha512/aa/f5/5a0b843f405f5d27e9c503cec761bf2e6c0a3e717a836396047e73cfc5a787c7e725a15e8b08ec744f64afa7236f0cf65e3eeabd07270cbec6ad439f8832 new file mode 100644 index 0000000..62a6c74 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/aa/f5/5a0b843f405f5d27e9c503cec761bf2e6c0a3e717a836396047e73cfc5a787c7e725a15e8b08ec744f64afa7236f0cf65e3eeabd07270cbec6ad439f8832 @@ -0,0 +1 @@ +{"name":"socket.io-adapter","dist-tags":{"latest":"2.3.1","beta":"2.0.3-rc2"},"versions":{"0.1.0":{"name":"socket.io-adapter","version":"0.1.0","dependencies":{"debug":"0.7.4","socket.io-parser":"2.1.1"},"dist":{"shasum":"3b1dcb3ed45b304bb39ff08134a4998c9fbb5f4c","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.1.0.tgz"}},"0.2.0":{"name":"socket.io-adapter","version":"0.2.0","dependencies":{"debug":"0.7.4","socket.io-parser":"2.1.2"},"dist":{"shasum":"bd39329b8961371787e24f345b074ec9cf000e33","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.2.0.tgz"}},"0.3.0":{"name":"socket.io-adapter","version":"0.3.0","dependencies":{"debug":"0.7.4","socket.io-parser":"2.2.0"},"dist":{"shasum":"38f441d8cdd5593bff990e50a4db131aa75b55ec","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.3.0.tgz"}},"0.3.1":{"name":"socket.io-adapter","version":"0.3.1","dependencies":{"debug":"1.0.2","socket.io-parser":"2.2.2","object-keys":"1.0.1"},"dist":{"shasum":"df81f970b4df6493902d93e519c7b72755c3a958","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.3.1.tgz"}},"0.4.0":{"name":"socket.io-adapter","version":"0.4.0","dependencies":{"debug":"2.2.0","socket.io-parser":"2.2.2"},"dist":{"shasum":"fb9f82ab1aa65290bf72c3657955b930a991a24f","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz"}},"0.5.0":{"name":"socket.io-adapter","version":"0.5.0","dependencies":{"debug":"2.3.3","socket.io-parser":"2.3.1"},"dist":{"shasum":"cb6d4bb8bec81e1078b99677f9ced0046066bb8b","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz"}},"1.0.0":{"name":"socket.io-adapter","version":"1.0.0","dependencies":{"debug":"2.3.3"},"dist":{"shasum":"b6ec656720ff1e79b2a715be0ce1c4bf3be44acc","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.0.0.tgz"}},"1.1.0":{"name":"socket.io-adapter","version":"1.1.0","dependencies":{"debug":"2.3.3"},"dist":{"shasum":"c7aa46501dd556c2cb8a28af8ff95c0b5e1daa4c","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.0.tgz"}},"1.1.1":{"name":"socket.io-adapter","version":"1.1.1","dist":{"shasum":"2a805e8a14d6372124dd9159ad4502f8cb07f06b","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz"}},"1.1.2":{"name":"socket.io-adapter","version":"1.1.2","dist":{"integrity":"sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==","shasum":"ab3f0d6f66b8fc7fca3959ab5991f82221789be9","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz","fileCount":11,"unpackedSize":11778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd28b5CRA9TVsSAnZWagAA3KsQAIBLuWWfHwrbyO4uBsMD\nlMYLLeSmwU/LhkrOddmlo2Cx3S35SM3KQHI76ti5t1lzBcAKZ8eDgCM2+2lS\nZ1QwMjopIvSn37tAP3m6nYumHs4TnUpGFyArjaE8JpqUjH0BSiaYZgF/js0C\nnzny0FG73dZ5XXMLK+4mJ2BwqFxSdkXU3BYKrQPoQ+Rx0mYGYk48ci63z3Iy\nVrCqzoiheBZkCoiC5UuyNirCi+PFnGlPLRpZas86XFvyXZJGZDJBZw4BiGnE\n6JGfkFiTJC/1kX9qgJUOPd9sd5luO9Zv73nCVBnTnVWwqQ3VhzqFYqgzpwTn\ne0/22+MdhHDf6hayLnVZVpzV54ExxOHhvVNzlh3df2TnVcF56CgepQFh9+Rg\nAF4MUWkDkW+sT65335HTChgCEVwqqZpjVTcBh0Tjgzl2OkycxkREygQ3wyvy\nScsBYpT3vupSiBfRZ65V5EMqqW6HWTryz+WWHo4ZSlEo+2e1j/X+kd+lrg5s\nrdcts9KGp0Bv0WJi7XABzCYLspwPgLkHsTXmt6aChNZW/YDdLdTlVIWGm120\ncCTmj4VUjHEhDEaCo/u8axZlM1m8r0sOs8gXz2dxnRKVYYLThutnqNvMH2Fz\nBhg6M4iYtTmbDj/iTU/J2yR9SR+vS65y3LjHOmiOinsqxs+fpxuHPT11f5ia\nZ63s\r\n=2QIg\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0":{"name":"socket.io-adapter","version":"2.0.0","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-DDM5a+4FAzl7XGdek2SBGgKxKWnj6o4eapm1OqYB2F3AieEvptFLnSRqVdKjQy9FfPUsYdHVVKy+veL1xFuYPQ==","shasum":"a42979488f559461906a0e68bea2e2b75972212f","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.0.tgz","fileCount":6,"unpackedSize":9181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbl4ACRA9TVsSAnZWagAAldMQAI3zCswZCVliHgGef1UU\nUWot382aNYK20i56vIgxG93MJ6fK47o36eRwwT5OxJD9uAmKuXupvyU6pGeM\nmtTEOMONCXStZouqzfI+f36p61jf9U/8eWzkY8KKD/kSLb/Tea4ACClAB3up\ngL9P19zUkdn76lRClaCHviK1M69dzXdUE2kbOaBIuP2R65z0ygWy9PQFXERc\nomLYt7c3QV/bT8pFLFaHimGgDKDy9WcxfVOhwOoU2nnVCtJwhE9MzNaY5wqN\n7H7POAvLzI1NL+6P38vUCnsebdDTjaQiZb3fFGsn3lwcA4Mvj8uH3BRuOqdL\nXOqiVv8OWh7bQBOcPBNEi1HwVfHbZpNKUolLERxAtN+tI1/lTvHPkk6G3udS\nLKSBm/LmhGoCMuwovgYabuOibauib5UV1Yjn+rXxuqcs1yzxedSIkdB8LNQJ\nQrB1XmX2CKyZZEf/R/huhlhvbzcGnfQcTyso5EFJzf+a5h2ou9rRA1Gkhau5\nn/OTweK6bQO1Oi+RYiYGW7VEfPoqhpYD6qO5YtgaICfRSFfWk4mxqnodWaQh\noW/slHxu/eBz9UM8a2U4/lW5TO0VL+cCDdc6lFF8kvWkJB3Wz0wQBiimQfq5\ntuaHzbbqO/sOajsTTn7UyQQ/yFFhlj5v/8qZGwVfITt/k5azWiSE4l/lZx6h\ngq1V\r\n=UH73\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.1":{"name":"socket.io-adapter","version":"2.0.1","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-Q5Xakktk8mbwzAXD1Q8EnLDfnBflU1vKbNmz0aWihqv7Mpddbaf71QkXqb6wk0w1ofJLfIsc4IFPLcf8/MZiSA==","shasum":"aea3b5bae0abb72082919e7b5cf5e3de4cac2739","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.1.tgz","fileCount":6,"unpackedSize":9335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfceIMCRA9TVsSAnZWagAAA0AP/3zFdUNIe8NeK7AV4h0l\noIBynhrRT39+6fimjQ/n8i4aC7QtcRd6ia9F13UsLu2wicoLFlmuacLHJhzU\nJPHGfbxZ54IBSz0f3lMIWuisziOy4ZztKkTi2E1w1Tt6G+92ePM7N+5T8Bxl\nagmgoovYaxSLu5iGHR6NYXWEsw/bDu8vkUaZ3zSb7x9dkQRHYR9BjyySAZED\ncWQ7UoX4MqgZwk9XFBhgtZj2kVfhJuCwQihy0CLxW3RKzWS3Ylb1u3m4T+d3\n/awxQ5Bc8cmKH5LD4W+6tIPF51rVm0SpLoWzWuAloLlAaNGgUJJUeNd0UBfJ\nB8DHxAgQoevOVrEMHhoTrIY6dix8HHoLjJbecKhmtRsNgfv1JzP3IcmtapQI\nvCZVeSIbX5j9S+EUC8z1cksJR5SnBDzDkCn7taEHvzADgTeOdj1v9b6g1wZt\nBzorFiPRzvxzrWmxIbyxDWLRVKpkEfjOCJKbIhWaKMT0VS8RcV6kMGUCxnAf\n6bZep/Gx1TuBlxafIVdVcLQdGSst3It906U57QFCKZooFBp90TWLq+Kk0S56\nZ0qdsGdxk4NyqswdQhA9x4NvWnpPJfpq5yKcWnNYY7sYQoik/gx+civAQwLk\nqnv+e77Sws7n4ljCipaPZFkw5gM5U5xdBaZ/IcB6W4F47xZPbfg89xNasZfi\nygWN\r\n=oeJQ\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.2":{"name":"socket.io-adapter","version":"2.0.2","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-9Eh0FKuZPY3/bQlA3ounhVRv0EWbuYj4ycv/kyvtWldba1YQ60pgB2WWg0bF4aJJlEWqdoM8Xk2MeeUWG7THCw==","shasum":"7f5d1a5976ac1dcfb2754cebe81b5a7b7877829d","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.2.tgz","fileCount":6,"unpackedSize":9533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfceYfCRA9TVsSAnZWagAAJkUP+wcn17L8qgR+K2DMoDdk\nfEzZ988Udfhz0x5J0kdL+mzKu4VdVWFqFvxVwup4jDxoJVJ/1U2ig4WChrWm\nkF/n2Ortsr4lpa3EfdwK33nJlAu9XKPuR15HlC+KGpyaP876EdWVktqkWovy\n9+lO3k6WQSClu/49fxVMEnsTix7yNCMBTcgLWZ+Aj3rtpsS1fSJWrrDLsbAS\n01v63SXvTsfVIl/AEcs506koFAC+TiD4UrLd8k6TP17ENaZf9geV6DT/oJu1\nkf1CnNL7YdaVLyL0hIXXXnIWdreTZf3cbKMZJvYDWeJiXfYdNs8hm+mG6MDA\n36FJk0HiJJNdIbb47j/lGPoiK6PGgNOLkcnQKzOlPelTw5UuIVlLMhTBEy0t\nkwn+hRLeXylm8PT68TUfPL9lCOnP9FjHplL85sZNw2MEt9PbEigeQVeqFqil\nyn3U0u+AT9/83kt7fci/LrJL3FZ6LX4YQjI1POAOV5zDKKxCA+qsDfPypTaV\nz+/A/FKfEzbUSnYrm6tPpsK0LlnXKOO80KTY5+ONJ1wEOIhHU6ieeXQe7vCN\nxZ7b1LTT3N/jxB+qaUA9HHzNCAp+sFtdP930llzYSUV8jpoUoIXzshiSHWPq\njnsWo/tD3FcB2Btd+zXHwQENvbbqhxiNoJeGkLys0WsD3ldbVCFn/XSVxOgI\nEWYr\r\n=5muG\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.3-rc1":{"name":"socket.io-adapter","version":"2.0.3-rc1","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-/+irxVkiriDRMt2hcYYlDOl2LUU3wkjPQ1917t/hb617/W+bnlDaqEGqtQpFE/tWys5FI1+q2JnjdwNeRHxyNw==","shasum":"59e36f2811fef261ec282fbeb40d0757908589a3","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3-rc1.tgz","fileCount":6,"unpackedSize":9633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiCKDCRA9TVsSAnZWagAA43cP/0z3ABXq/bLuWTmAlq0D\nNwIM28ZKn3vnpnUiORWc5SDADxtOa0/zAoAhcVznZMVNK6SMAK5LBRSIhcAM\nwmaWd/1FLbvOfKV/Og67a4Dk3E12QRoVoqmXZLBjBBi5fhLyw2+LumfOQhEk\nc+o3zTr6PGCWRa2I68pdAFSOZN+5EUJOn5merVCovPKTG4UBjh5QD1eZLmpx\n15OGGgLwGL6DFdsOtSHdz0EZkcGHDCerD6lcvQ+FrPKfKiHsgXW9E1SV8w4c\n/fLrGnK5mJlRUFoWG28uhtgmZ/D7rcj5A9EeOWZAoGQcE12AD2DvqR9Qe+Dc\nH+uUuvb5cEZLquGHqoCcUHlIvo4BcEOoBPhsR4Fu+i12zVRRydnYN9LchS/p\n0n/VeHQHJA6J7Cwoy4Kxs+pcgFCNI3icaIZVtOYGiFsXmOBU2hOBxdPERv9y\nZ7P0i1g2vk5ZuK3Vajl7wNTKKGVy7cpA9GBzjN0x4G6Xb4sAgXYRLb67GVAF\ns++LGSS4nrufQE8F+Q/KMfQrX6FoEYzZ6p7T30utFcnNHxh5tjOjQ/Ehp/cz\nhXyzfVpMroWKw/NV41MPDNJJWZNUGEpG0EdqeYle0ZUvSlMbT6NJLmnba1Sz\n7L2iFOD3yT390iPU/S7DuvCcJmOxSUldRgygQ3I6PKiYrFFffyaCNbNNGtAN\n3KA9\r\n=Zz/+\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.3-rc2":{"name":"socket.io-adapter","version":"2.0.3-rc2","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-ic/fttwhpQ2Ry43ou6gOIeZgpGmsIUFQZ0Ww0DIpCerTKzDdLPG2+AEomG5SGXpppvtbwwesB7O9Azq0JiSs/g==","shasum":"8d19e0c510bb690f94c5a424496c9a171ea96e64","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3-rc2.tgz","fileCount":6,"unpackedSize":10400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjtfcCRA9TVsSAnZWagAA07YP/2SFJuPHhBG0UL/334Jq\njN3mCgXUSudgs+4eHdPKMXx7nu828t4RLuP1vfk/wPVV6HbTSFmRsES5wvx0\np4LTWnIT+wQecqaJJIHnJx/QNMFZhAWk8CoMxMVtyK3o4N4JS3rhVeB12Fhk\nQr0sGqju0eequN420oCq7QphKGoyOcD890MFxC70LJ3hhNGHaVfssmCG+yho\nbgM72r2lXvYaGyYYtwSt6IdGRjsnI2uowYlxN4I0cYGeKVn+P0tj+jjFLFfc\nH4DLo4x13c5P1PPGSH5iKTV2AFL/AvsCDHpzocHTBfUUoCv7gSWgl/p6VC/5\nu6e7j8l2xFRGtIjGyboDwli2MTqS4fGcooCDuvdu2cJnKlt1FmTYURGwvIIt\nQweRIqxvDy9Weu5wOJ5NyPlGE8ETo+76ni4eLKyCLXtcxcnxCCyInatCmsb8\nKy1pDiruPy1yh3ZfUsvZh0nIiiNTZTEsPktNQggG+z6mpF6CCcfOJ4Wx5TCH\nmJD2DfIWmKj2fvVt5n/E36RYJ7uiFrUddMAh0x16J43WMBcLXQ01wo12HyFg\nk1AfGOOH622nINJYNSvVz6bgIN0mrbry7Olh9BQUeRw68pR/qkHBA+pCgyKJ\nnmC4nOSfphynRV7EpgDYl+XbwEJcwP0SiadaZkQwmGz6WKHRRnNvh+J1LXOg\nF0Ov\r\n=AJ/S\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.3":{"name":"socket.io-adapter","version":"2.0.3","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ==","shasum":"372b7cde7a535fc4f4f0d5ac7f73952a3062d438","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz","fileCount":6,"unpackedSize":10939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpBhECRA9TVsSAnZWagAAXawP/1ckkrx3hfp0+iSWQals\nlBqxNGziGOeKMjhVAQyQOkU/8WE0NgoK//beMsS1CPMZKZmUYWpB3+7XQOW/\nZrzr9g6IyOV54et4iqVnvC1QAISrZE7wNwxshGyp39yNUxBmCX6DCWdE803S\nzDmXT720T4E6GcZeYntJF86t2RwCcIgS0Al3dj3q0WgF1tibtr+/k9S5zwfb\nrWmniunpIjdBm8XavXTIxStMcJP8apIpyxNvinPC0E5oRvBfy6NRFUr8SG2H\nJNxcdFPdHcaYYmrOPPXVTJ6vYIC8J7JCe5nFkcF2VdFLd19SZTQI8WwDShxe\nldtBFaOh/AMfRw69/+le86e5zqdm1YCYjSmuAKdFAZGJupZlFl724YDfxkN1\nZSNmTxTEqOuv0geKcnSiiyWNovXTP45L6YyluOPndjeU6CVibohd/KM4o0Wz\nuTbWbmfVt7TxKLR2VM5pB3KhrBKpvujQstXJKTcGsfRv6f16l4QLJqOshP/6\nY4C0fuiqC8TEY5wUlgPi2HaSaObrmpy2mGzj86GEvlcFVvYODw98Gbwbh7Uk\nVEylIyLlrWBWBYwY6E/y0kuqjoJnxA6O6AIdeVrHuezcocI5jFMtlnsQI6VS\nq/1Fcx+nlsg44JKTBz4Ysa3oPHIBKIoCX5oQOHly/yMpnMuq0fYTZ8Vvx/92\nSu/Q\r\n=7/P4\r\n-----END PGP SIGNATURE-----\r\n"}},"2.1.0":{"name":"socket.io-adapter","version":"2.1.0","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==","shasum":"edc5dc36602f2985918d631c1399215e97a1b527","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz","fileCount":6,"unpackedSize":11521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAOKBCRA9TVsSAnZWagAAS7oP/32g4vChKNFnxNbtdilF\nqa0NA+720YBWnEYSrVHHNyVee3P5wC06HMVPtGo8IocQaRjtisSHPwp9+/bD\nictepIFHAzxM2YlWN7nl75XKzaIMQ25Aw7EBFCv4o+F4FQs8NPRedSeu2LXo\nuPm7wSMFIpMhRVzalucnfnj41K2MXRaFk131LlMo8Ij3agrruzbPPualK1lQ\n/hbrYdnuow84lHVZh3hlagTzvSWTWIzNS1nKd4p9J4IANiL8M6i1lMGqnCYb\nKdpa0m5lXkGNWCgZUV4z+UDk1i5GQJZ88pvwU5IpS3QKqIKdyKg4b0PSbXx8\n66h6fsbPrpF792J+fowpISujnvZYKUxGjmymV2UCIWoqDLd6d2rwcOy99CWm\nd7kSvebomB2ueQgjwsvhTsEfu1LAsFU55bUWLyowuFM67WudxXChWH68DV+U\nZUrjjpg2JHNhnzxaSntrwg6x8836FVZ4nB0a0WKYxBWONNULSu+MsXdgbjOX\ntALQv5BjOmmNEkao2wsfvADKlh0J1UBehqsDDanS8Wwb+PyKrZZRCarKCo/K\n0gimCilcTegrQD10tPPyj27fjPp74pQWNj4o62a5Z51ec59tyDe+eZTYt0sg\nWTiHnIX8ImHvTM2vshNsqqG3ypj0S7gDsxplr8ibQzhbXkdE2a25MBVdNq10\n8JI6\r\n=LqV/\r\n-----END PGP SIGNATURE-----\r\n"}},"2.2.0":{"name":"socket.io-adapter","version":"2.2.0","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg==","shasum":"43af9157c4609e74b8addc6867873ac7eb48fda2","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz","fileCount":6,"unpackedSize":14176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOZvjCRA9TVsSAnZWagAA7YMP/AzVQC85+3fxFcf5hxAP\n+zjEmYg+ZbKw37zfTTEC+EvmNkTKuRlF2DFyRQl369lTWXNXtHM1fV9zo50H\nBAy6oe3CxRIfDb8xgSfNG8VRrBmeUn7D6uIcqm4PvHzJuJNDqgrcUcgzUkR1\nh2CwvCIzbRfntdSM0S161/enqB/XgRBIjJk0O6tC+9siILkeO4CHmrTd9tRp\nXZOoV7yGyH5lokCUBGJe96bPpTyhdLLncT3E+GyksomMDquFswSZUs50N4//\nDW1DNJMDnUMr5IzlbeOA1fHaB+8tJTztnagytAPUu71OWxcBHxzGhYpF6rCp\nnr8E8rZOXPW/5T1WS/f6QkVNmzDkz7LMZIGw9staR7XxP56mf4P0Aw6stQVp\nmRzitA8AyyYFoKR37R5Nu7NzD6sH2uFV/BcfeBgb+6ENjs2BXztE3Hlo+2xX\nhXqWWSDkpn5BZv093jtXdXifE9/Vs9kRvVGwK5lRcbJP0saFkMXPCVr2Ts7B\nsElhrExBjEzOVm/rpegKzo+/HaVZNL6TZOFczpr0N+pbEi2kGCKRuvlFuiDg\n1psx+N/IOSw+aNgt37I+yOAUnQdXUbSrjOUT+9yNCj4Y+PbMm52xqsKee2xg\n6hpNvTBYOsgsGALAcjAkQk6kItyQ6qiLJdKANvs6kefyOwFB5dp8lOnQqM3D\nxAvo\r\n=DInT\r\n-----END PGP SIGNATURE-----\r\n"}},"2.3.0":{"name":"socket.io-adapter","version":"2.3.0","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-jdIbSFRWOkaZpo5mXy8T7rXEN6qo3bOFuq4nVeX1ZS7AtFlkbk39y153xTXEIW7W94vZfhVOux1wTU88YxcM1w==","shasum":"63090df6dd6d289b0806acff4a0b2f1952ffe37e","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.0.tgz","fileCount":6,"unpackedSize":15407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmPCsCRA9TVsSAnZWagAAFv0QAJC/msD/TcOcRmGoisJe\nQJCy13f12u6SM43rhOPpZvj7BixbQPFaLYpMeHoPYrzdzFZ7Xex46xGT1YVj\nr3FKGEDUhQS1P3Y++kTDDq0AGc23w76ZTQr882OAdubHIci0Mx+DJmkHuQS7\nyt62o7AvFVXlppkAG67yIIgJtzojbG4Em1xo4nd8H1uLLWP83e8cZxQsRYQd\n30rK36Y4/QmIZpY1mfvgrXKgb74g5MT0vQA3FYgD0qCpfL3axf61AQGxMH+B\nnyb65oXUtKckQrLX8+WwhfdaqEvAra6NN1838NL0FoEqtJ7rsmFOvzXnZ/vX\n1mAHgfaR6kv//IxaCZtBvRIfKgJ/9upXYoNrn/rJfpTGJhj0yAamm6OAGBN0\n8hiOI6QWUKFj7knfdA1hnNaapkBeZpqLg0jAEFlAB+T2MVho79ZTPyHVNJP8\nAxUIqdSU9pldM7xvzt2JY7+/k+5DMhyMwIH1kSq7IucqY7RnG8P/1WZPfe4n\nPyfG+LyE87lSFAd7jXRkaKnTMH7NE3SHRbmgmdYV3qlR8+zQ8+lhm8Bf0a3e\nyBe6yeqgAvmC7zjp0Lkjk7zwC9Ei8G6fRTK/DEkshgMRiyUztbiwocEaU4T+\n2JWx4CRE/fnUh8GOZculVjqKySFDKNpaGZNo4Ws5LiGyuqOEyXcAGtpfhWf3\nEfqS\r\n=pk83\r\n-----END PGP SIGNATURE-----\r\n"}},"2.3.1":{"name":"socket.io-adapter","version":"2.3.1","devDependencies":{"@types/node":"^14.11.2","expect.js":"^0.3.1","mocha":"^8.1.3","nyc":"^15.1.0","prettier":"^1.19.1","typescript":"^4.0.3"},"dist":{"integrity":"sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw==","shasum":"a442720cb09a4823cfb81287dda1f9b52d4ccdb2","tarball":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz","fileCount":6,"unpackedSize":15895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpZWeCRA9TVsSAnZWagAAOX8P/2Cg2O1EJlj08Z1NJ6XK\nT0V+G2SFYlm37Ui/22SKhF1/P9M4Yz2LaPKc1uTJs1Rtts3HeJ6MMKxF1nAw\nZ8yzixE8BSu6mKTmPyTgO6ONRSQk8bNek0Pprjt4UDHkQZ63seIplQWKnh7u\nAkLm3Yn4yPLiK0QsO58/Sj2v8wtZ9QaNRA5a/a0UES+zjH3rqFl+ABzXyRJ+\nKRSPU8zTqgmsYTNQKcx93+S3P0KvcdW4jJTA83LxUTpb5rUYMOV9LvQk3E1r\n9D8G/zXUfcCOMDf8QLdFWMwNZx0bgSQBihleAqFk2/juS/j9nvaEq+tns+ph\nYoXkb6Gx2oy0qcS8RtenrV6ChFnZ/AVfZbdWKgy1e/aIXOQH3JxfwwZ2Vl3i\nKEIl6TH/CMl/Mnzy/iOYEB/759FAXh5cK0y/tkbkLtIKjHGUeymuOcF/VLeh\nhfZZ0tahVt/xw8aWyV1rpja2tzH5fiyH+dCJiuhiyE7WLkvui2kE5Hz90EBm\n3WMhIbXCQRL8oDzT7wpcx3JTU20pbfYNvWD/Evyr5MC/acUN5JHjeD/9lIsE\nnVL8VbQpIEdHwknMrnR6VNDVHA7Uv4lKP+pEsMcwiuxhmts98/BwanqZYa6m\n4quzIo2xbNsXfOA1R+g70kMp9pv6jiEECuGTYrHE6lmgImK+nZ2NwQWhZ2gI\nEn3X\r\n=7s1Z\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-05-19T22:48:00.056Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/ad/2f/656b5db99fbba0984f565bb8c53e1dadb88abb9429c64fdbe56812a0a19b213caf3e4b6f37069b88ee7213e67c0c0c4f6ba791bdfde1acefda391edf0023 b/data_node_red/.npm/_cacache/content-v2/sha512/ad/2f/656b5db99fbba0984f565bb8c53e1dadb88abb9429c64fdbe56812a0a19b213caf3e4b6f37069b88ee7213e67c0c0c4f6ba791bdfde1acefda391edf0023 new file mode 100644 index 0000000..674c46c --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/ad/2f/656b5db99fbba0984f565bb8c53e1dadb88abb9429c64fdbe56812a0a19b213caf3e4b6f37069b88ee7213e67c0c0c4f6ba791bdfde1acefda391edf0023 @@ -0,0 +1 @@ +{"name":"http-errors","dist-tags":{"latest":"1.8.0"},"versions":{"0.0.1":{"name":"http-errors","version":"0.0.1","dist":{"shasum":"caa1ff00ef680ee6cef845d4dd5e23aecc2617e0","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-0.0.1.tgz"},"engines":{"node":"*"}},"1.0.0":{"name":"http-errors","version":"1.0.0","dependencies":{"statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"bd58a089bfec699480300e472e0d552211bce27c","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.0.0.tgz"}},"1.0.1":{"name":"http-errors","version":"1.0.1","dependencies":{"statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"6b770d23b04759f166b0904200aa50775ce2b4a8","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.0.1.tgz"}},"1.1.0":{"name":"http-errors","version":"1.1.0","dependencies":{"statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"fc2efe9e9ddead125e6b82023eee7eb3e7785dc1","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.1.0.tgz"}},"1.2.0":{"name":"http-errors","version":"1.2.0","dependencies":{"statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"936739e42c3e9b778d84b30bce32802fd5eb9c75","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.0.tgz"}},"1.2.1":{"name":"http-errors","version":"1.2.1","dependencies":{"inherits":"^2.0.1","statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"ad25618756c76137f6f28d6aac76224559daf7bf","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.1.tgz"}},"1.2.2":{"name":"http-errors","version":"1.2.2","dependencies":{"inherits":"^2.0.1","statuses":"~1.0.4"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"ee6fac5b7711f7d5c74c8d8e9ac3d9bb68697540","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.2.tgz"},"engines":{"node":">= 0.6"}},"1.2.3":{"name":"http-errors","version":"1.2.3","dependencies":{"inherits":"^2.0.1","statuses":"~1.1.0"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"1e08daccbebfb175edfb1a11409f9d687fee488c","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.3.tgz"},"engines":{"node":">= 0.6"}},"1.2.4":{"name":"http-errors","version":"1.2.4","dependencies":{"inherits":"~2.0.1","statuses":"~1.1.0"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"5d7d6d2d27b1917777ad1869bab742b6c53699d2","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.4.tgz"},"engines":{"node":">= 0.6"}},"1.2.5":{"name":"http-errors","version":"1.2.5","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"61da92170b47c12bd11083653e9ed44a9b7abe92","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.5.tgz"},"engines":{"node":">= 0.6"}},"1.2.6":{"name":"http-errors","version":"1.2.6","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"7dc790939e6dc6fb90917b12456a11ad8cf05af0","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.6.tgz"},"engines":{"node":">= 0.6"}},"1.2.7":{"name":"http-errors","version":"1.2.7","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"b881fa12c59b0079fd4ced456bf8dbc9610d3b78","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.7.tgz"},"engines":{"node":">= 0.6"}},"1.2.8":{"name":"http-errors","version":"1.2.8","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"8ee5fe0b51982221d796c0c4712d76f72097a4d0","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.2.8.tgz"},"engines":{"node":">= 0.6"}},"1.3.0":{"name":"http-errors","version":"1.3.0","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"239d3bf15d98ea5b3ef553020d60314a2beb2288","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.3.0.tgz"},"engines":{"node":">= 0.6"}},"1.3.1":{"name":"http-errors","version":"1.3.1","dependencies":{"inherits":"~2.0.1","statuses":"1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"197e22cdebd4198585e8694ef6786197b91ed942","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"},"engines":{"node":">= 0.6"}},"1.4.0":{"name":"http-errors","version":"1.4.0","dependencies":{"inherits":"2.0.1","statuses":">= 1.2.1 < 2"},"devDependencies":{"istanbul":"0.4.2","mocha":"1.21.5"},"dist":{"shasum":"6c0242dea6b3df7afda153c71089b31c6e82aabf","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.0":{"name":"http-errors","version":"1.5.0","dependencies":{"inherits":"2.0.1","setprototypeof":"1.0.1","statuses":">= 1.3.0 < 2"},"devDependencies":{"eslint":"2.10.2","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"b1cb3d8260fd8e2386cad3189045943372d48211","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.1":{"name":"http-errors","version":"1.5.1","dependencies":{"inherits":"2.0.3","setprototypeof":"1.0.2","statuses":">= 1.3.1 < 2"},"devDependencies":{"eslint":"3.10.2","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.3.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"788c0d2c1de2c81b9e6e8c01843b6b97eb920750","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz"},"engines":{"node":">= 0.6"}},"1.6.0":{"name":"http-errors","version":"1.6.0","dependencies":{"depd":"1.1.0","inherits":"2.0.3","setprototypeof":"1.0.2","statuses":">= 1.3.1 < 2"},"devDependencies":{"eslint":"3.15.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.3.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"113314b3973edd0984a1166e530abf5d5785f75c","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.6.0.tgz"},"engines":{"node":">= 0.6"}},"1.6.1":{"name":"http-errors","version":"1.6.1","dependencies":{"depd":"1.1.0","inherits":"2.0.3","setprototypeof":"1.0.3","statuses":">= 1.3.1 < 2"},"devDependencies":{"eslint":"3.16.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"5f8b8ed98aca545656bf572997387f904a722257","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz"},"engines":{"node":">= 0.6"}},"1.6.2":{"name":"http-errors","version":"1.6.2","dependencies":{"depd":"1.1.1","inherits":"2.0.3","setprototypeof":"1.0.3","statuses":">= 1.3.1 < 2"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"0a002cc85707192a7e7946ceedc11155f60ec736","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz"},"engines":{"node":">= 0.6"}},"1.6.3":{"name":"http-errors","version":"1.6.3","dependencies":{"depd":"~1.1.2","inherits":"2.0.3","setprototypeof":"1.1.0","statuses":">= 1.4.0 < 2"},"devDependencies":{"eslint":"4.18.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.9.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"8b55680bb4be283a0b5bf4ea2e38580be1d9320d","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz","fileCount":5,"unpackedSize":15829},"engines":{"node":">= 0.6"}},"1.7.0":{"name":"http-errors","version":"1.7.0","dependencies":{"depd":"~1.1.2","inherits":"2.0.3","setprototypeof":"1.1.0","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"integrity":"sha512-hz3BtSHB7Z6dNWzYc+gUbWqG4dIpJedwwOhe1cvGUq5tGmcTTIRkPiAbyh/JlZx+ksSJyGJlgcHo5jGahiXnKw==","shasum":"b6d36492a201c7888bdcb5dd0471140423c4ad2a","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.0.tgz","fileCount":5,"unpackedSize":16955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbX0gUCRA9TVsSAnZWagAAEfYP/i1jvg9LMStbGgVRvHX/\nKCmUlRm/7/qHjTWab9+78OKfSc58omNZcLThSY9qjTn6Ac9eVxUMwwcoTfnG\nPMNrz7utKjn8WAyaJDeFKHKdFwOW9CJjRhnp5cSgCgchl5a+KER0XsPyA2FH\n2mzoiWImToSE+2yjFgRuSYWiAs36qJHuDz9w/w4ina1AoGK16s1xHG2dfPm1\nm9vVRRMEY4R0wXaVboNvLa0CIMmgNRvjA2NOJhYg5/5zgTnDGyf7LdfSamQn\naU4prOmZw0e4xG/AVL+A81dkVURmpmwXckIPfg3BQXUWLQdcpJ4K++AjLiTU\nDljWxRsbExveGYSWiJ9D/LgXI6CGDmpnqyWUVH2eywFYBi40TxAnhDoKwZoe\nTmLFTQpFDXN+y/YA1YnWJxMy2/o6Cx3veGsPEKUVM+DPGccADg+KhDoK4u3Z\nWvh6+zQCn+g93SMhmWabJiXqdPQzgvyvF1gmqhf+EYtV15ODwBWa1dVc40hz\nSaRH62lu82aIT+zg4NADTCFggjzuhvMsyoHSEiml9J+dZs9gap1figWLtw68\nFxcc8PnE6o5ScPlu4NjmocvmbtUOn3ruX8PWU2d+cqyYmoOgDHxf58gOy8i5\ncu32x/mGqTL8MgKN5zbb107hV9Cs/yewBcq+V1FmyZbtx01k4ry6lQ9Mjk6/\nnyJ6\r\n=e9ve\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.7.1":{"name":"http-errors","version":"1.7.1","dependencies":{"depd":"~1.1.2","inherits":"2.0.3","setprototypeof":"1.1.0","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"devDependencies":{"eslint":"5.5.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"integrity":"sha512-jWEUgtZWGSMba9I1N3gc1HmvpBUaNC9vDdA46yScAdp+C5rdEuKWUBLWTQpW9FwSWSbYYs++b6SDCxf9UEJzfw==","shasum":"6a4ffe5d35188e1c39f872534690585852e1f027","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.1.tgz","fileCount":5,"unpackedSize":17054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblEpBCRA9TVsSAnZWagAArHkQAIG9Rs9Uo3u3p9nJTVYY\nNziZEMW5gOnu7oCxvSO+1iZZlgiQnhtiHWrTbnCOh3yKhBtENyDxdJ95Lnm6\nXkld0fnCntbysQCODV7eGf6qSkSLSieVFiyl6wHOxx7YIYY0n5JOr8o1NlM4\nSQh6U19IOdnz2Vjyhd4nSaszRhLwfiM2zqObqxTl9wd6S3sXP9pmAMY7EkDA\no228jIJGzYrCJyR1wDUAbKCCvwKsKCRaJobCFyqSzjF0agcy8RihbjAIMOQ+\nnhSjrM/nT+JjzpYHCUceprcx+fi31bO7V579RT4tU2FwHungVISL6KOYYyZ7\n0sr1pZ047ExXz6iy+4O5VdpUcnPmKgl2lnXJaumCS9+0j5bSiQ/cRGFPbRyd\nDu8nX6WPI4i3OMnVUYnxy8Hbw63XxgxGEwAMG1mOEIadKQdm/pyuFTYtO+Ri\nDje6i8p1BZ3SPjN3bxQgzY4xuxOS99zKUeojKNcuxwEqGEekfTe797gstYm/\ng2ePtRL+V2IuzXTISdwIJyjt3MdPBNhJ1dXf7dOCGU6JMWYyog/T/iyHVUt3\nZFfTPR+0PIU6V0ZYIRlZYeiP/RWzEvAAmk5eHwyCdSey1wErVmjS4g1k4KbB\nm5mh9e6In/IR/crze1xUQ6zACMt26W0MwOjh4IHAoa+5jimBMgTxUs+SfnWb\nMVyw\r\n=Y6c2\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.7.2":{"name":"http-errors","version":"1.7.2","dependencies":{"depd":"~1.1.2","inherits":"2.0.3","setprototypeof":"1.1.1","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"devDependencies":{"eslint":"5.13.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"5.2.0"},"dist":{"integrity":"sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==","shasum":"4f5029cf13239f31036e5b2e55292bcfbcc85c8f","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz","fileCount":5,"unpackedSize":17086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcaw02CRA9TVsSAnZWagAAM20P/RYOFi+Y8YJaNae4ZdMA\nx1cD68fmYF8nt8GgOx6MopK9YbsAxJUfpYYdIrg3IaRw7aqHwQGPmaDCa8fL\nUoDVy7ZcqlJLOBGkaJ4YaW4ZX4NFLsSBPhj7KLbmDVBhtQfHPisboMDT+LPk\nou5F2X6QqvQVq4VDlX+zI+Zm0FJmsMabdBJTadofNRoQnJrP70UxyqdoOQNT\nfs96MjO6+FQBE31ln8ZncEsI7MRlq46VnKznbsQ5ghg19MKl5+9czs/jaoaK\nWKf/pfChqFqxvibhmEU/9a09hFqWJLYQ7P6GJENBieWOpPybsOl/JcmPzaUH\nW66tvwTUJFGY3nI89Rqb8s47vj4ToUadzWuz0sZc/VVBahF4Que7riQKzDlw\nb4W92jDyILs8UOlTeHy28CVbA/fm1huLTNtDwjM4iZ9SutZMj/DoxjArGLpR\nOcdLmjlv7nL3p5Sieqsvx5pc06pgGpJH6MCE5XGd11NM5ukkocVi2Kwuu986\nuTKRcXVOXETUYcK/BlkLDwWTsgCcE9pPl4Dy6WOb0ibvcRlJWKwLVBFL40Y0\nMl4//MJidrAl4cTWXBP1e7ILNFS2MSJwSjCUF2eHBvYLvnKo6vS3uPfW35ag\nQdo0pRBwKHczPRzi7gwJSgPCQ/Oi6RQZfxyGe/oYArCQfr4SMSJVjN9LA2Br\nMXTr\r\n=XLau\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.7.3":{"name":"http-errors","version":"1.7.3","dependencies":{"depd":"~1.1.2","inherits":"2.0.4","setprototypeof":"1.1.1","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.18.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4"},"dist":{"integrity":"sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","shasum":"6c619e4f9c60308c38519498c14fbb10aacebb06","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","fileCount":5,"unpackedSize":17151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEVruCRA9TVsSAnZWagAA8wUP/Repl5BiN8sPmq7Iy7Yt\nOe1hCpAJE64L+uYRPZm8hV+Wkli7J4/4UyLf9k20JWiU89axyTQzFT/XpLYc\nsw+knAnUwzVDUQvlyNDUllLkLkdhw07VhM7TeL8yym9tem9ghsg8UJZZS3H8\nPXWIqDgVbVqVcWomSiq543tXO+5NG3sqX2pVoGKGISGn/rJhiJvDcBvjYT5i\nv5hwFDK/av11koTioT9As1FR+Pdltj2KetA/SZ7IeIzRc0FPulj2k53c4zjQ\nzazKmL6dnEf2afZuN6clQd+clO8fz1+S58DP+EJj7Cvom2ANvpOlQs3hZchB\nvQOrInn8kcebNzgkTh1n4HdIwHeMEjOgS8c0TxEd2WiQvLRyvPPeTPzEglTx\nmpEhUAWo9xs1nkqQ7/RZZHTni2jRkCUM6saG4hC/kXdx79fiiu7q6BLhF5Wi\nAqb6egAxgmHsaBbDajk/pJk8nsaq+el16Aq69M+heSDCQXV1uzsxCzdimljL\nO+dRFBLKhgSOulIjwM6OraKXh8uIKABPqgAUDMsctFI5gru9ZeXqTNvzNj0g\neFm2elBXn8yjrAOShsx/HUDysNsZ3Y8W1sx6tjFREYmWppAIYjtMOocVIwo6\n7BxMAq9+fl7mSlTBZmrFj0oCfFrGGL3ZzO8vKv1hGeKpslHohoePMiwgiDmE\n2lpi\r\n=LjKs\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"1.8.0":{"name":"http-errors","version":"1.8.0","dependencies":{"depd":"~1.1.2","inherits":"2.0.4","setprototypeof":"1.2.0","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.0","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"8.0.1","nyc":"15.1.0"},"dist":{"integrity":"sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==","shasum":"75d1bbe497e1044f51e4ee9e704a62f28d336507","tarball":"https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz","fileCount":5,"unpackedSize":18238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+X79CRA9TVsSAnZWagAAv6wP/RjIshvYJXVRbRP0mb4a\nOvN2mK7/B2nqnD8O2FzgEQ0p1Llb1K9j6TlWdq/cJInioDoR42yQgfyj4FEL\nonR3TgUlE8EjQFhH/ecYF6eaLVNaCTerd3CwdOXAXorzPcCE3g8sx46aB+9p\na/QIvOnNxt9UuDsJDDkpWvVGksr0JwWW0ZEjx0Gw8b4j1GOLXjPzFd4WqOKr\nVXG8KcAs76ZCX4eGIczwRuTpOe8mXITrtqkgyzdM98+PONQsIWEWwjt0tzm0\nMNn9cUfgB0A2UXrHQK0OFuP3TV/Ms3kTvLkvFBkiaxcpuGBlwJXSdK2/j6wA\n88Xqqxx2g70mlCgHfeHOt8GHOnYiCrsCLO5wyhJXkeSipeJM9r/8coZfZEV8\ntGXkLBxAKPInBMzGaIPT9PNsOrTy2JV1Qz2MV1OQU//LokWLLbwxsB54vXVh\nuuQSjjwUYDzA5V52/uBgfPThcM8yC0nYvU7qXV9eb3f2j3f5UJdcVkV/Cr1Z\nHtOqzHPPzY/dDubMfCoufMc3SnFV6fK5IFRmzjlRWLoKy1BZ1bLbmWxhBFeK\n88wD4p0vvSNuPNmXK4ObgxCH6NSUft+4IaHRnpBjPShoV0uyuTktOG1oLxyk\nHgG01wBJcVsUE76idV2fc4VLAMs3l1IiX4kb9+qgEYecsHA5LTuEAHl2aGPr\ngTBl\r\n=OG/P\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2020-06-29T05:41:19.475Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/ad/43/a933af7fe1e986672996fd5731e5df522088a68fbfb623477e9e288113510dbe6fa9f49b01d002c2c1fbbb93c1b3b3b1cd76cf7f4d2f19128fd2aa5db56e b/data_node_red/.npm/_cacache/content-v2/sha512/ad/43/a933af7fe1e986672996fd5731e5df522088a68fbfb623477e9e288113510dbe6fa9f49b01d002c2c1fbbb93c1b3b3b1cd76cf7f4d2f19128fd2aa5db56e new file mode 100644 index 0000000..d09eb0a --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/ad/43/a933af7fe1e986672996fd5731e5df522088a68fbfb623477e9e288113510dbe6fa9f49b01d002c2c1fbbb93c1b3b3b1cd76cf7f4d2f19128fd2aa5db56e @@ -0,0 +1 @@ +{"name":"etag","dist-tags":{"latest":"1.8.1"},"versions":{"1.0.0":{"name":"etag","version":"1.0.0","dist":{"shasum":"db9f9610cc2bf22036d713012dff4aa7e0c96162","tarball":"https://registry.npmjs.org/etag/-/etag-1.0.0.tgz"}},"1.0.1":{"name":"etag","version":"1.0.1","devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"2aa41de474ffc45669f25c9fedacd64fea4f6ff7","tarball":"https://registry.npmjs.org/etag/-/etag-1.0.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.1.0":{"name":"etag","version":"1.1.0","dependencies":{"crc":"2.1.1"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"e44af7bbabe2f998d9fc3bee00db0d34b29c13a3","tarball":"https://registry.npmjs.org/etag/-/etag-1.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.0":{"name":"etag","version":"1.2.0","dependencies":{"crc":"2.1.1"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"fa537a8e1b1e29aa53480b69cfceb906a47aca8a","tarball":"https://registry.npmjs.org/etag/-/etag-1.2.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.2.1":{"name":"etag","version":"1.2.1","dependencies":{"buffer-crc32":"0.2.3"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.0","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"74b16ea7511ce0041b944852eca2a95b9afefba3","tarball":"https://registry.npmjs.org/etag/-/etag-1.2.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.0":{"name":"etag","version":"1.3.0","dependencies":{"buffer-crc32":"0.2.3"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.0","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"c837debfbfe0baf7eb8e2f0bbb3d1d9cc3229697","tarball":"https://registry.npmjs.org/etag/-/etag-1.3.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.3.1":{"name":"etag","version":"1.3.1","dependencies":{"crc":"3.0.0"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"e51925728688a32dc4eea1cfa9ab4f734d055567","tarball":"https://registry.npmjs.org/etag/-/etag-1.3.1.tgz"},"engines":{"node":">= 0.8"}},"1.4.0":{"name":"etag","version":"1.4.0","dependencies":{"crc":"3.0.0"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"3050991615857707c04119d075ba2088e0701225","tarball":"https://registry.npmjs.org/etag/-/etag-1.4.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.0":{"name":"etag","version":"1.5.0","dependencies":{"crc":"3.0.0"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"8ca0f7a30b4b7305f034e8902fb8ec3c321491e4","tarball":"https://registry.npmjs.org/etag/-/etag-1.5.0.tgz"},"engines":{"node":">= 0.6"}},"1.5.1":{"name":"etag","version":"1.5.1","dependencies":{"crc":"3.2.1"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","seedrandom":"~2.3.6"},"dist":{"shasum":"54c50de04ee42695562925ac566588291be7e9ea","tarball":"https://registry.npmjs.org/etag/-/etag-1.5.1.tgz"},"engines":{"node":">= 0.6"}},"1.6.0":{"name":"etag","version":"1.6.0","dependencies":{"crc":"3.2.1"},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.9","mocha":"~1.21.4","seedrandom":"2.3.11"},"dist":{"shasum":"8bcb2c6af1254c481dfc8b997c906ef4e442c207","tarball":"https://registry.npmjs.org/etag/-/etag-1.6.0.tgz"},"engines":{"node":">= 0.6"}},"1.7.0":{"name":"etag","version":"1.7.0","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.14","mocha":"~1.21.4","seedrandom":"2.3.11"},"dist":{"shasum":"03d30b5f67dd6e632d2945d30d6652731a34d5d8","tarball":"https://registry.npmjs.org/etag/-/etag-1.7.0.tgz"},"engines":{"node":">= 0.6"}},"1.8.0":{"name":"etag","version":"1.8.0","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.3","eslint":"3.15.0","eslint-config-standard":"6.2.1","eslint-plugin-markdown":"1.0.0-beta.3","eslint-plugin-promise":"3.4.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5","seedrandom":"2.4.2"},"dist":{"shasum":"6f631aef336d6c46362b51764044ce216be3c051","tarball":"https://registry.npmjs.org/etag/-/etag-1.8.0.tgz"},"engines":{"node":">= 0.6"}},"1.8.1":{"name":"etag","version":"1.8.1","devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5","safe-buffer":"5.1.1","seedrandom":"2.4.3"},"dist":{"shasum":"41ae2eeb65efa62268aebfea83ac7d79299b0887","tarball":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"},"engines":{"node":">= 0.6"}}},"modified":"2019-01-09T05:26:21.676Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/b1/db/fa93a40bb116acf65fa8fafe44bd3f538b61814dbdcfcc937b5f31f6701cf730a9e3ccc188642492a6c8ef8a73d854c2e911cf6f7520fb2e52dcc022bbe3 b/data_node_red/.npm/_cacache/content-v2/sha512/b1/db/fa93a40bb116acf65fa8fafe44bd3f538b61814dbdcfcc937b5f31f6701cf730a9e3ccc188642492a6c8ef8a73d854c2e911cf6f7520fb2e52dcc022bbe3 new file mode 100644 index 0000000..3a14f52 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/b1/db/fa93a40bb116acf65fa8fafe44bd3f538b61814dbdcfcc937b5f31f6701cf730a9e3ccc188642492a6c8ef8a73d854c2e911cf6f7520fb2e52dcc022bbe3 @@ -0,0 +1 @@ +{"name":"mime-types","dist-tags":{"latest":"2.1.31"},"versions":{"0.1.0":{"name":"mime-types","version":"0.1.0","devDependencies":{"co":"3","cogent":"0","mocha":"1","should":"3"},"dist":{"shasum":"480f66fa19ef6ff039712a5393a4bc4901b5bf40","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-0.1.0.tgz"}},"1.0.0":{"name":"mime-types","version":"1.0.0","devDependencies":{"co":"3","cogent":"0","mocha":"1","should":"3"},"dist":{"shasum":"6a7b4a6af2e7d92f97afe03f047c7801e8f001d2","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz"}},"1.0.1":{"name":"mime-types","version":"1.0.1","devDependencies":{"co":"3","cogent":"0","mocha":"1","should":"3"},"dist":{"shasum":"4d9ad71bcd4cdef6be892c21b5b81645607c0b8f","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-1.0.1.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.2":{"name":"mime-types","version":"1.0.2","devDependencies":{"co":"3","cogent":"0","mocha":"1","should":"3"},"dist":{"shasum":"995ae1392ab8affcbfcb2641dd054e943c0d5dce","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"},"engines":{"node":">= 0.8.0"}},"2.0.0":{"name":"mime-types","version":"2.0.0","dependencies":{"mime-db":"~1.0.1"},"devDependencies":{"istanbul":"0","mocha":"1","should":"3"},"dist":{"shasum":"4a85688446a4d94a03909e0ae292766744a3c313","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"2.0.1":{"name":"mime-types","version":"2.0.1","dependencies":{"mime-db":"~1.0.1"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"7f5b4712592e7dd46ca733fd1c5f5d71356de615","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.1.tgz"},"engines":{"node":">= 0.6"}},"2.0.2":{"name":"mime-types","version":"2.0.2","dependencies":{"mime-db":"~1.1.0"},"devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"c74b779f2896c367888622bd537aaaad4c0a2c08","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.2.tgz"},"engines":{"node":">= 0.6"}},"2.0.3":{"name":"mime-types","version":"2.0.3","dependencies":{"mime-db":"~1.2.0"},"devDependencies":{"istanbul":"0","mocha":"~1.21.5"},"dist":{"shasum":"70b5cb5165b55dcb4972839f16d6077b0bb506f4","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.3.tgz"},"engines":{"node":">= 0.6"}},"2.0.4":{"name":"mime-types","version":"2.0.4","dependencies":{"mime-db":"~1.3.0"},"devDependencies":{"istanbul":"0","mocha":"~1.21.5"},"dist":{"shasum":"855a612979141d806ba5104294a28c731c6ea790","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.4.tgz"},"engines":{"node":">= 0.6"}},"2.0.5":{"name":"mime-types","version":"2.0.5","dependencies":{"mime-db":"~1.3.1"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"017db3ef9aff1fc7229e9babe2ac4b032baf837d","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.5.tgz"},"engines":{"node":">= 0.6"}},"2.0.6":{"name":"mime-types","version":"2.0.6","dependencies":{"mime-db":"~1.4.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"9deae929dc382665ea42e3848d1d3e3c4aef16e9","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.6.tgz"},"engines":{"node":">= 0.6"}},"2.0.7":{"name":"mime-types","version":"2.0.7","dependencies":{"mime-db":"~1.5.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"0cb58d0403aec977357db324eea67e40c32b44b2","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz"},"engines":{"node":">= 0.6"}},"2.0.8":{"name":"mime-types","version":"2.0.8","dependencies":{"mime-db":"~1.6.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"5612bf6b9ec8a1285a81184fa4237fbfdbb89a7e","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.8.tgz"},"engines":{"node":">= 0.6"}},"2.0.9":{"name":"mime-types","version":"2.0.9","dependencies":{"mime-db":"~1.7.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"e8449aff27b1245ddc6641b524439ae80c4b78a6","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz"},"engines":{"node":">= 0.6"}},"2.0.10":{"name":"mime-types","version":"2.0.10","dependencies":{"mime-db":"~1.8.0"},"devDependencies":{"istanbul":"0.3.7","mocha":"~1.21.5"},"dist":{"shasum":"eacd81bb73cab2a77447549a078d4f2018c67b4d","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz"},"engines":{"node":">= 0.6"}},"2.0.11":{"name":"mime-types","version":"2.0.11","dependencies":{"mime-db":"~1.9.1"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"bf3449042799d877c815c29929d1e74760e72007","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.11.tgz"},"engines":{"node":">= 0.6"}},"2.0.12":{"name":"mime-types","version":"2.0.12","dependencies":{"mime-db":"~1.10.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"87ae9f124e94f8e440c93d1a72d0dccecdb71135","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.12.tgz"},"engines":{"node":">= 0.6"}},"2.0.13":{"name":"mime-types","version":"2.0.13","dependencies":{"mime-db":"~1.11.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"333f5579ae6eb203fd8f30a568a869d31a8f1cac","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.13.tgz"},"engines":{"node":">= 0.6"}},"2.0.14":{"name":"mime-types","version":"2.0.14","dependencies":{"mime-db":"~1.12.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"~1.21.5"},"dist":{"shasum":"310e159db23e077f8bb22b748dabfa4957140aa6","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"},"engines":{"node":">= 0.6"}},"2.1.0":{"name":"mime-types","version":"2.1.0","dependencies":{"mime-db":"~1.13.0"},"devDependencies":{"istanbul":"0.3.14","mocha":"~1.21.5"},"dist":{"shasum":"26e401fb4ccc1fa5c8b15bac4a1aefb9af05b0b1","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.0.tgz"},"engines":{"node":">= 0.6"}},"2.1.1":{"name":"mime-types","version":"2.1.1","dependencies":{"mime-db":"~1.13.0"},"devDependencies":{"istanbul":"0.3.14","mocha":"~1.21.5"},"dist":{"shasum":"c7b692796d5166f4826d10b4675c8a916657d04e","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.1.tgz"},"engines":{"node":">= 0.6"}},"2.1.2":{"name":"mime-types","version":"2.1.2","dependencies":{"mime-db":"~1.14.0"},"devDependencies":{"istanbul":"0.3.16","mocha":"~1.21.5"},"dist":{"shasum":"6545ccd95afe77b9c655d81c2e6ceace36257227","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.2.tgz"},"engines":{"node":">= 0.6"}},"2.1.3":{"name":"mime-types","version":"2.1.3","dependencies":{"mime-db":"~1.15.0"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"f259849c7eb1f85b8f5f826187278a7f74f0c966","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.3.tgz"},"engines":{"node":">= 0.6"}},"2.1.4":{"name":"mime-types","version":"2.1.4","dependencies":{"mime-db":"~1.16.0"},"devDependencies":{"istanbul":"0.3.17","mocha":"~1.21.5"},"dist":{"shasum":"6562b328e341245cb63b14473b1d12b40dec5884","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.4.tgz"},"engines":{"node":">= 0.6"}},"2.1.5":{"name":"mime-types","version":"2.1.5","dependencies":{"mime-db":"~1.17.0"},"devDependencies":{"istanbul":"0.3.18","mocha":"~1.21.5"},"dist":{"shasum":"2355ac0e1e0c5a68d8df6474b431192743f0a3ea","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.5.tgz"},"engines":{"node":">= 0.6"}},"2.1.6":{"name":"mime-types","version":"2.1.6","dependencies":{"mime-db":"~1.18.0"},"devDependencies":{"istanbul":"0.3.19","mocha":"~1.21.5"},"dist":{"shasum":"949f8788411864ddc70948a0f21c43f29d25667c","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz"},"engines":{"node":">= 0.6"}},"2.1.7":{"name":"mime-types","version":"2.1.7","dependencies":{"mime-db":"~1.19.0"},"devDependencies":{"istanbul":"0.3.20","mocha":"~1.21.5"},"dist":{"shasum":"ff603970e3c731ef6f7f4df3c9a0f463a13c2755","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz"},"engines":{"node":">= 0.6"}},"2.1.8":{"name":"mime-types","version":"2.1.8","dependencies":{"mime-db":"~1.20.0"},"devDependencies":{"istanbul":"0.4.1","mocha":"~1.21.5"},"dist":{"shasum":"faf57823de04bc7cbff4ee82c6b63946e812ae72","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.8.tgz"},"engines":{"node":">= 0.6"}},"2.1.9":{"name":"mime-types","version":"2.1.9","dependencies":{"mime-db":"~1.21.0"},"devDependencies":{"istanbul":"0.4.1","mocha":"~1.21.5"},"dist":{"shasum":"dfb396764b5fdf75be34b1f4104bc3687fb635f8","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz"},"engines":{"node":">= 0.6"}},"2.1.10":{"name":"mime-types","version":"2.1.10","dependencies":{"mime-db":"~1.22.0"},"devDependencies":{"istanbul":"0.4.2","mocha":"1.21.5"},"dist":{"shasum":"b93c7cb4362e16d41072a7e54538fb4d43070837","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz"},"engines":{"node":">= 0.6"}},"2.1.11":{"name":"mime-types","version":"2.1.11","dependencies":{"mime-db":"~1.23.0"},"devDependencies":{"istanbul":"0.4.3","mocha":"1.21.5"},"dist":{"shasum":"c259c471bda808a85d6cd193b430a5fae4473b3c","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz"},"engines":{"node":">= 0.6"}},"2.1.12":{"name":"mime-types","version":"2.1.12","dependencies":{"mime-db":"~1.24.0"},"devDependencies":{"eslint":"3.5.0","eslint-config-standard":"6.0.1","eslint-plugin-promise":"2.0.1","eslint-plugin-standard":"2.0.0","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"152ba256777020dd4663f54c2e7bc26381e71729","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz"},"engines":{"node":">= 0.6"}},"2.1.13":{"name":"mime-types","version":"2.1.13","dependencies":{"mime-db":"~1.25.0"},"devDependencies":{"eslint":"3.10.2","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz"},"engines":{"node":">= 0.6"}},"2.1.14":{"name":"mime-types","version":"2.1.14","dependencies":{"mime-db":"~1.26.0"},"devDependencies":{"eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"},"engines":{"node":">= 0.6"}},"2.1.15":{"name":"mime-types","version":"2.1.15","dependencies":{"mime-db":"~1.27.0"},"devDependencies":{"eslint":"3.18.0","eslint-config-standard":"7.1.0","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"a4ebf5064094569237b8cf70046776d09fc92aed","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"},"engines":{"node":">= 0.6"}},"2.1.16":{"name":"mime-types","version":"2.1.16","dependencies":{"mime-db":"~1.29.0"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"2b858a52e5ecd516db897ac2be87487830698e23","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz"},"engines":{"node":">= 0.6"}},"2.1.17":{"name":"mime-types","version":"2.1.17","dependencies":{"mime-db":"~1.30.0"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"shasum":"09d7a393f03e995a79f8af857b70a9e0ab16557a","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"},"engines":{"node":">= 0.6"}},"2.1.18":{"name":"mime-types","version":"2.1.18","dependencies":{"mime-db":"~1.33.0"},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"integrity":"sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==","shasum":"6f323f60a83d11146f831ff11fd66e2fe5503bb8","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz","fileCount":5,"unpackedSize":14341},"engines":{"node":">= 0.6"}},"2.1.19":{"name":"mime-types","version":"2.1.19","dependencies":{"mime-db":"~1.35.0"},"devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"integrity":"sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==","shasum":"71e464537a7ef81c15f2db9d97e913fc0ff606f0","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz","fileCount":5,"unpackedSize":14676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTtBXCRA9TVsSAnZWagAAjF4QAJrZ4PBxWvh7l1DeYPzG\nmVMsannUqqjnDbtNJX441rdKJi8ammCnBz8lK026+cfLCwr3lzBHvuJw3Vl4\nel2wygL1+DbCiK/r53ATrRmdbD5/F/DYGE9lYN75O3vxs8t98dlBzqSH1aZx\n2tG3pwmfTGa0/TVkzpNrCvolxXYleo7orXZ5PSf2tRLkeGV18625cgYKlnTR\nUdyLQfpHtLwmARJB5xM/279rM1jXA/oK0V1IMcjpEG/+bBL8bHGkpwsqrOb9\nSLwxQiDIWNN8uh23g4VB7KjUSKmjBvM+Aq9D7UPf7x5Iqti6Fe0mTNvnkbla\n83kMaBHgMINTpTu4Lh64C/eahlo54OBRTZWopP2qrUgUZIQdLvWH2P3fKWXt\n1IcEn4sq/8r7wtq9q3dEZcrbN2wEsStFUVOJ1Stn9jDXIntwEhvno5fTPBo0\nws03MtNrL0ka17mLjAgZX8c+3c1xCVbejiwAy7YN9gutZfQJ5cmV0hRzspa/\nJTC1LVfSMhFj5PhqliXG3MGA6zUHMSACveRsBw/2AEcd+lp5WSGbbdkelskT\n7SbwxD+Fe288EPA6SAWz4C2HZBNujHi2GUbQDZYdCg2VmptzR/S6hy70ROsx\nBlDWxCNWABHd9tnp0JL2yg6FXUtRLPc7hZTl1ecb2bO/AdfIz0TjwSJW+QU/\ncWQe\r\n=Sdv/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.20":{"name":"mime-types","version":"2.1.20","dependencies":{"mime-db":"~1.36.0"},"devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.13.0","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.8.0","eslint-plugin-standard":"3.1.0","istanbul":"0.4.5","mocha":"1.21.5"},"dist":{"integrity":"sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==","shasum":"930cb719d571e903738520f8470911548ca2cc19","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz","fileCount":5,"unpackedSize":14871,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgySOCRA9TVsSAnZWagAAmgAP/0/KvhTzYKLlVNqKYS25\nm/8NWOT2ANSUzj3Z6+WuqmmeVWS7VVvmOI/2OscrQLX7nFEMicjz9DHZtCVW\nWBeLLbBEmx7cT1WOZA37jM2t+2BOz2w689YSwkasLjh9lZPZVEVvuww7248u\nQnwbxBM34ZSZFyMoaxfyotRt9KUMjsuOCTigTJscaayw+ViObrGvEK6vp6Q6\nkdTJ5oTMCo3ahS0H9VVEPU6yb3C9/5Szvp21sUOYWoJq2Rv7QXDI2R+UZzpA\n5CJetFzTXOHzyRW2eEdXpEowAaZbykn1O7Dul9nAZJLODMvNFaKXAmQNVq9Q\nqFFI0ECf77Ijg9Am5zNaeSRuujGZ351WpVzgct8gCepUgPRn1Ro302pXFKte\n/mMSFARUYA+MkdDNH8l+73byG3ipw4YN38nQd7KKyngpxirFvDvqBUg17c3+\ntBksa4PHLP0+qVHhjeL+A19bVByQHP0P+jWkpTiJSVvIgk92pPVpIjxmnuI7\nlb76ypP946/Kgrm16+o4nKCDIhGAnRYmmC8wCN8kBM7YNW7vICTOx6NwH03V\nA9zo4NCVackZxuALNrQ9p7VcMWk6Sn+NFFHov1YV6iAlA8L/rMajb19IBwnc\nSOPH2ezEd5E9wqrotB30FgPo9IDDfPJGVh55xGL69PO86m3ANZdIdSGW0RHO\ne5M2\r\n=qmfT\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.21":{"name":"mime-types","version":"2.1.21","dependencies":{"mime-db":"~1.37.0"},"devDependencies":{"eslint":"5.7.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","mocha":"5.2.0","nyc":"13.1.0"},"dist":{"integrity":"sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==","shasum":"28995aa1ecb770742fe6ae7e58f9181c744b3f96","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz","fileCount":5,"unpackedSize":14860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyqLkCRA9TVsSAnZWagAAVigP/RL9Plb3H2UFfyVhYQQx\neXr1yHPsEB46hVDaySgvX1YMFiaWibmX+gh7qLp27cjmSyM0O9dxPEt9dFc5\nMQ9aJudZ+Qy6/RFQ2KhPTwkor/rgKx83SXNLru7JT4W/3TuyglYfOdypaDeG\nYBckwRhkA28NQNlPs70nVzAnR66QDvNNcmO7ScdG4qNNCn9YziF8WoXl6xpx\n0SYHRHmiFU22rJGT/8fAm57qFKHUVnisGUrB2QNoVpZH7euxfMfHGS40k7BR\nnP2y0q14jVp+oXNH0vrCtY70/Ys95f+JzHvIJSDh49GCnlM7qN0M+cLFs1hP\ns3/9IRkehSPrb6iyPcoRTsLLYaZq307ce1wM/AJhIJe287Z4pVbmvEinppwR\nPqltP7erKXX9B+eIYPxFQKWbgjkGma9R2PMXgINjT1JW0whjANiu1N+4VcyJ\nkGmgf3Kf6C2VmtwFyyW3bUkpH1mVsTX78vC3wD1YdXjzCgdmPsOAY7JYGBfY\nAHr6/DyG/rgPKsr9lMSs6n33ONbfyHl9VzBT/+gNaj18AqF3bRnfMhWPptJI\n4wVOonYgazuC2w7zYh9m3Wu6CK/lDqlohT7cpSUyJWELbANxbJLZpyP2IJdB\nZvLOL4Cj9lkTgEonV5gN6GDFiIkJkUbtNRCxPrH7sCNrV4TpQf+3CKMcu3SV\nwQsc\r\n=EdfX\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.22":{"name":"mime-types","version":"2.1.22","dependencies":{"mime-db":"~1.38.0"},"devDependencies":{"eslint":"5.13.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","mocha":"5.2.0","nyc":"13.3.0"},"dist":{"integrity":"sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==","shasum":"fe6b355a190926ab7698c9a0556a11199b2199bd","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz","fileCount":5,"unpackedSize":15532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZfAKCRA9TVsSAnZWagAAkLQP/jW4lBe78qBJSqi0BdL3\nbvjlEBy3K8HNUwrGAPhw36ooYolZtw6mZET7Ylm0taGaWYz7IPrGwmGK3TB3\nUE+OZPGEiolp+cSybxdo3eX3/AzoCVmOk5hJ+RWVzu+wUVQ4tAn3Yrt7drit\nhnNfW4mIjVsT8R2i9XHYvYyTXaz2rtyN9x9TLIdecKgbhYj526b5ZVR3gC2d\nuZ4B4b/Cg3kdVgUt0tzOO8Isw81Kj/bYIrgwa7RqdUwZTcA11TeGBiKtVDye\nSBRYyUniD65y6aykhPxjKWsso5btbzuA0OU3TK0hT/HE+NkOq5VcupUPvPBM\nTOGjVMlQNhGqsJcmJ0UoW3CKvN6g3p1xKGtytRXhPcA4pRUKgTEGOTMxblwi\nkoEnQ4C19er4CfVBGUprXpwczPkZJ5VjhSSKOpT+YNib6vZUQCivAUHTV7eN\nNEaM1LFoKuX4wL9anYd+XtShyyVsql3vtdcHXDprh/02qQHzvELY+py04XpG\nHZcgdA3YT2Bb7jyZpDwwLr8kwmtSQZDYaS/PV+bqGHbdhuwjdbJS6AaDiks0\nq+iBL1OYv/NWK9bCHRmwQVL7tr9iyKax9LnlUIK8QWtcyFogHt3bgNWQeFYa\nJdMhgN0/FmRmPjOnTftDWHU8+TaSFfGXp796ZFPBv0h8mFJlGlVTa/otM76/\n+ijp\r\n=j8br\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.23":{"name":"mime-types","version":"2.1.23","dependencies":{"mime-db":"~1.39.0"},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.3","nyc":"14.0.0"},"dist":{"integrity":"sha512-ROk/m+gMVSrRxTkMlaQOvFmFmYDc7sZgrjjM76abqmd2Cc5fCV7jAMA5XUccEtJ3cYiYdgixUVI+fApc2LkXlw==","shasum":"d4eacd87de99348a6858fe1e479aad877388d977","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.23.tgz","fileCount":5,"unpackedSize":15698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJct//rCRA9TVsSAnZWagAADUcP/1Sx8SZMb+Y0DvqR26zd\nsX74VQgoI4cXQmf1hh/jo2EUpvSK1xxz9H2fQKeF+HPreIhbqretsWfqh4Sd\nsbKVqusZ8xWMz1+Y1whWFzpGMeAe/Fkatka+YgHOsxA9RVcxVVkLCg4PR7ve\n1OxGIUtI5Eqhb7/UTcNY2ha+GwA/RgVnrImoTwNAucLpcaR8KCwpMCd+36nH\n/Rwz6v634o9dHZhvbId/kwpYaoKp3FACuGnmaydheqfv3bm+lqTvLpCCekD6\nTnXI5YJdQWEZp23MVqHCEL3/vYvcck2drlkD8cMLm6Z/6gBGIgvXLqcVnmvQ\nMcJ/MxzGEpaf51594zBAIXcj492IVSw0WN6W+vf0cRyLCqMPGFtRkzJfx/FU\nkp7dkjkpqP41yRWO42dBfSuqRzfPhNr1UPyLjFN6ZSc/MrzijVQKFY0cNmOS\nc81ZSp2RymrE9rJbyZ3DQv9AW4uVy0Was+39+NqtQTMJ6vh7xp+9nUKtnWFy\nQiES2KNAmIOIe4nbNavnbJiFUVzxFqP+NdsKRThXafzYSWJ8URakA3k3u2SK\nHTRbCr18uu+I1ZzZySbvPpE+L6ZzsL3ozbndpei7sDl6QUuHukIjpqH6+M/2\nYmkOnvpDjvNQPbPvqBcZ4zRdpZ3Gqgbu1eZNkwSHyo+tkTaUkZqsw+VlTGwC\nvHXB\r\n=ccqn\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.24":{"name":"mime-types","version":"2.1.24","dependencies":{"mime-db":"1.40.0"},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.0.0"},"dist":{"integrity":"sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==","shasum":"b6f8d0b3e951efb77dedeca194cff6d16f676f81","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz","fileCount":5,"unpackedSize":15858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcu+enCRA9TVsSAnZWagAAZDAP/131rZIx2LnrEtxcAVE1\ntwbiuGeMaYMICmK5M+sbC810UK7KyRpukkRs+nWlvSp4CEF5it0NcnKTDgrG\nsxhl4T1TuaYVq9T3WuI+GOP6462yBna6aZXss0obI9fS1V9h8c0K77JUK3mt\n5VATHB8jtNivRIWfUue17GZ5cj0wR528iDoLQwxhnXWm8RugwysWg+IbavVF\nampKZue/RHvOTcz8cLGdj0O4PP0niH1B3oaOCSf6JHoM7N2D+ymv843YSbLE\nGbHjfHRQ+UO5Fy8FTZNVd/6uVIW/VJJTrDqZwCuIzBCPMcEB8KKd0ZjkfVsY\nivEecHoT2BUgBBXs11CcRkUjZAesmmSMr187RO/Cot9DnosRu60dX/VW2Izb\nXyHuH8V5S61SVIOkb8GHtP9pYqYLa07qR5D1vw2kGnonBuCndkOIOYV6PXgv\n4b2OXxuHAmMY9f+HhfsKbZaHdxFcSFJ3KhvpfGyB56yl6dSz1fO0OcXhu2E1\ndLlQlWvVs8i5BtVkYXb+5Js5v5Yua4UhL5Piyz6SxogH8XTtDFQktztne5xE\nhHC7NqHIivWFjCKTSp7iDf0kaqNFwVvwaPGfcMKDp7PMb6qdwUyiSwvDAOES\n1htGf6DLsG9Q7pIXpkhfwyhCk6H1RE4v7lEKWa6wK106ygBUDccVWXw7X+dN\n32yl\r\n=h9nD\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.25":{"name":"mime-types","version":"2.1.25","dependencies":{"mime-db":"1.42.0"},"devDependencies":{"eslint":"6.6.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.18.2","eslint-plugin-node":"10.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"6.2.2","nyc":"14.1.1"},"dist":{"integrity":"sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==","shasum":"39772d46621f93e2a80a856c53b86a62156a6437","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz","fileCount":5,"unpackedSize":16062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyr8pCRA9TVsSAnZWagAAQFsQAIs5oj9Qzx/oRzFtRYQ6\n994TJBdmn2s3giERKNeCoI+ZPmw11cEiOt4DLGGRZ2Q5Zd7zcCMQkJIfCcsS\nmSEgcwDh4gxn2uLM74W0TuB5Hk9Vy3150JFn0XR1T323G+4gB5Oc1TTHKEQh\nJOjEQOf7QM4raSdTEkF1YxLbaAlTHoZq54ScUJCo5mAHbEfL/D1wc5/zILJK\n2fSOcpzfRh+a3Vw8T/fM4dbsBXk82I3PFIX+yl27LK41Ft9jg5CkWNtRMjVo\nTrhYeuAJVRRObzavI7q7xbz2EBmKSr7LcofvDSmAagDYVe4pUrkP9H0sZUAR\noF/oBIRDW+UwzzrMOo0Dx6Oe5d21kNQcX5bs4fCZXfgJZ5STzV0iNtp9i4D1\noybPr2K2MMGEfptRbDytfLnRyFSq2TUxCYCzPCO3KRAX63hBNoeYyfLnU6UZ\niBf5MEcUKskhv74mRbalpg8nPl1/a2igceK0vfNnqWUjSFA1AfLOgveZgsna\nXV2iVghx4AMBL0N3jP6EUsUYrnqQnDCRcyBE/mBno8d6X14lCXZPQkE7il9X\ntRt2ZVe01UmuIPzQASmn8k/u5m+xXjbLmrio0Wjq4Tsq66Jvh54qnjiK8Gm7\nQ724kz5XoULTQXqJNLAaKNOl75ubN44aQfFbfxUhou6n+tF5gQJ9xtsdasPN\n31r5\r\n=VcRg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.26":{"name":"mime-types","version":"2.1.26","dependencies":{"mime-db":"1.43.0"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.19.1","eslint-plugin-node":"11.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.0.0","nyc":"15.0.0"},"dist":{"integrity":"sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==","shasum":"9c921fc09b7e149a65dfdc0da4d20997200b0a06","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz","fileCount":5,"unpackedSize":16332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEq3rCRA9TVsSAnZWagAAA8gP+wc64WF1FCVIqdKE+1lh\nEOIJKGWOzbGMNLFAM8ksv/d1Qr9SlOiN2yOc15gt95xrLiacgeB+Gz9V93NC\nwgmzm8kUvDmM6qaLZwfY9q3A6wn3f4fOA75Cj/Xj4k1bZuzeE8wCGMv8r99R\nmgWacq5ptU4Y0kO1/cUK+VCRFK5GL0gbCNUS3phdFfSxWAQO+Gj08eSECD+V\nuLx+0pb4UI17s4C2ZLKIJJIWQSAH/8bYI5MflHF4dC5ZS5ar3oXtPAorQ9Xe\nCIEeg1oN8p/+aWFK/uu2kUmNBAYmfSqwFVPLUgqSfvY+4EACXrR5hxa9n3Mz\nj5tbxoxjURhDeFOPgdZL34QKVpil/QyZ+V4QZ4iKfKpR3el3Gl5UBEDqP5BV\nK6MrticiP8Gg5kR17msv+4HG2bJN7RmMMhYKvBxdpIqljs3UfJEtKRHduDVb\nZ3m+F8YDpThYFcJ108wRb+HerQNY8q2xzBppxZ0ndF+icVdVrxm5ZMfrPmQJ\nwF3zuarhw+YE6Ryga8JVHn32qXubycJXopNWD3TBcT73540Wc5LIb4Zr7038\nS8mwTJA6OYiUEEplYHTqXJEj4b433djytwzLtUdgtKAuUYECphahF+/dx+/c\n35a5goj9MZ5T68or3kRgXFin+dQ6hKB5ZAxfdxFpv/ovsB3WIQC9cWFFaeLH\niaRj\r\n=EtV3\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.27":{"name":"mime-types","version":"2.1.27","dependencies":{"mime-db":"1.44.0"},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.20.2","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.1.1","nyc":"15.0.1"},"dist":{"integrity":"sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==","shasum":"47949f98e279ea53119f5722e0f34e529bec009f","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz","fileCount":5,"unpackedSize":16721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeol6sCRA9TVsSAnZWagAAb7gP/2rhSx5SYxg68mROGmpc\nK4P6pyMxslHCfxYa4EUnJ4NmZAJKoGAeqLNxf/ty5QFlczy2kATAx6Ed/Jo9\nev4jGBiHbZ3WiTCdG9iE43fP4uKRoZ0a19suEC9t4mmx0y3VaBqGNIlEZgQM\nUZKLhbMYu8PEmA4FeFVcKOzEQVmMaNPSek9iaSNgxyD8nL6O+qEhTtH/1BHV\ng59VWglcXaKsK7sQGM4Ljn+bXqDgQhNpZqF4zoONKcxb7TrYp/NESCKk+Qdi\nlEBCaXdT++/UwnRh0p+nffllnurrE7ctt76LCJP8W9ObMqKSpmT4yQmpDp/J\n8hoRyCK+Z2Ktb8ZWkM5chHAiL9hrQVKzhKB2Cbr72itq7E+5Umv0Otis2C6b\nc7vIbbMtuui4fy7ZAo1ywoMT53jyAkqesJHjIlkBMlXoSIm3eyzKuQXDsJ1C\nRjhI6ik8j7rViDQ18TCyFeSZZw6LxB0gqTRuvLz+VbDVSLNoH6+OaY0bl62s\n4iWL4xTqm8xFsyewzt8fl7H7nIEfETjcEwcaKljjyfncjLla5iXVXOAvZ6dR\ncdLA1fMFH3YNEjVgR0g5elVHQNk6+VdN5c4lZ7vRPc3NJCTcljyTegiWCK2U\ni6/aVv6I3FiCSkegYy/E02P0UW6OcmecrMY5gnenMtAG5lqlKBHOL06aegiA\nSD9R\r\n=th56\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.28":{"name":"mime-types","version":"2.1.28","dependencies":{"mime-db":"1.45.0"},"devDependencies":{"eslint":"7.17.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"1.0.2","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.1.0","mocha":"8.2.1","nyc":"15.1.0"},"dist":{"integrity":"sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==","shasum":"1160c4757eab2c5363888e005273ecf79d2a0ecd","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz","fileCount":5,"unpackedSize":17239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7/aLCRA9TVsSAnZWagAA4b8P/0hpf52i4C88kB3UA8oz\npo/u9QkTi05T9dS+KahT/EqupImZwY9PmtPHg2OPs/gEWUySbIAC6zQAgE2m\n639o96AGgIYqdqYVNJOFU/H9W5knxn3bi0des3LUpxKCyCIQbdHkHtjiAaHV\nN0HLoNjQ+lGFfB2zjdBxbxPdeqJZ/n0LpVtnUgQUAeX/+oPOoaS6gREobICc\nORfHLB+kCdXT7eHtCX3ztdrxvZF2qbyOgprXqwO8TX/25Ncx2ZzT55kMGX/0\nOUlHtJzeht0pI0vfd2MBrA3F4pd5kkGxKclwZQ2wro3c35HJja1V/wcdLJZH\nHwivDxdjrOWGwyVWj1OYBCkKn8dR5uaPygyKaSbC6TL/cMU8ixCPbeYLz6O+\nF9zJWkky52bp+3L1MmCmFRTE379zdCGVN7Pu2hnb+EawOsUFm8SghsSlXWOX\n+ep6VOVeu8c04Ztg2cVZigImdQAKcw0yh8UgkAruuZ2vwDT7oFLKzlcqaZxN\nui5EyRsfwB8gQkVyPvQ38VyE6PO0YD9UgJWgva++zgA88MrP7XIOH63zraYP\nAM5vbJfYjNbGuAsIBb1jJ+ZXD/JPMyI36155m4JpF5QcMrgjMr6yyOzNALpI\nJxFz02YU4C3YVeteQpBmFEJi+lA8WM+xkf0ksxr7I6anWC2+v3Aj6hivIGGL\nDmhi\r\n=Y1QJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.29":{"name":"mime-types","version":"2.1.29","dependencies":{"mime-db":"1.46.0"},"devDependencies":{"eslint":"7.20.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"2.0.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.3.1","eslint-plugin-standard":"4.1.0","mocha":"8.3.0","nyc":"15.1.0"},"dist":{"integrity":"sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==","shasum":"1d4ab77da64b91f5f72489df29236563754bb1b2","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz","fileCount":5,"unpackedSize":17269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLbXsCRA9TVsSAnZWagAAN8QP/0fQuVlbabyn+AqL6W9j\nlB7SUvGTIW9kblMg1EcbOhUJLPgWPr1YztDkqy4s08ajnvz/ZPTNTImaaH4J\nT+OGx/aZ5YWRFGm+Q9rJKEs0hfmsr7b7xd536VDU6vdmTVT4WXPZZxmIKLDr\nY7TgpgIvS1gGOnRInsQYAuKwJyx9o91BO1j6OKFpI/P2+LAmvBm0HXuH5W7/\nvziN3ezjuPla8SGlm3aIDILKt/l0ygf9hp5Nkfz5CjBc9t/V4dfI/uZmBgiO\n+AuVQs2szigH8dKmRAYseJg7qb9jxv8ea5MH5XyDK6PdPGEaiTvgF0f023XC\nghsN4H0g7Wab6ZTm6g2HaYZ6I/PLHeVnCF4mbDjkqD0vUt9yUva1RnRucU8B\nUz7Z88Q3I1swcD57Q6Ubn08Ay4FOtstD2R0SPBycUCaUyeoJZgP319GDZZ1p\ncCh7TFBos9NCcYm63Ot94k80hahmYvhBnPajQWs1LnRoGRGRkfKLLvxFOgmp\nhU+H6z3mGrah5A0vLMGVJFnx6+NZYDAB8wQbn3P6vTIB5EIUAB2aE1+3gebp\nLapTgJbQJ1rd1zbMwGQCGs+3Iwbm953eGsKy7bgJisZQ42wvbfm04gLlFEEH\nLwJQAPEDHnuYwxhibgWVAtgnRx2uyqqlCNvzxrbyB6TQbgofp65/m9p9jow8\ncN38\r\n=DBai\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.30":{"name":"mime-types","version":"2.1.30","dependencies":{"mime-db":"1.47.0"},"devDependencies":{"eslint":"7.23.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.22.1","eslint-plugin-markdown":"2.0.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"4.3.1","eslint-plugin-standard":"4.1.0","mocha":"8.3.2","nyc":"15.1.0"},"dist":{"integrity":"sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==","shasum":"6e7be8b4c479825f85ed6326695db73f9305d62d","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz","fileCount":5,"unpackedSize":17521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZqZUCRA9TVsSAnZWagAAs9UP/A5iuknBRjYcu8Mq+IGc\ncNK6EPRoemRc7dH1qtqpqYyMNXmRPaaysMaxccbmaQ0t5L9O/e0QFqsDHxSY\n5+/RsmiyzUlQIANV6URMRP1vdIp+H4tUHSvfAiZq09PFmBGsTgtDMsJ3mSgc\nb/LsfBu7EKr2nNdwc1wM9BJ6RT5e0j5oZeEsawJpYDabfrkEkG+LRtmLhQVt\nByP+JgMTaIFpyDh3NCbACp//gVsDebzVXAhaaDPGXbvT8Ix7qtr0MgQO8CBF\npb7x4Wz25B93SwzuE+SiasEt+xjn/t1spyjyL1SlRHbGfy6ddkPOeUd/08sQ\npkzQ63MJ7JwC5fn1MFhJiGyk0WFqBikVe6f9qJTjuEfmkiq5DNvQ7QT10r92\n9P8wpobVwnngmq00yXO88KpzAOvWo8L+Yam6A5TrwwaMUyo8Z20yQE8sSapk\n/p6Rr96hlhtOKN0Ajc5c15WTxrDfKCBPOf5XQYTbTgLuFn5X4p+uWQI+HDmV\nbqG/pJ6i0tPmfA7cJ55nkUt5+oLnkSHfp/k/Uw6pD52l9POYKTUaZmTb6kTP\nqzBsUGV9JXOZ8RS1eC2C44+VDUGYV/5n6B/aUdRSxoDNyOA55Eq6jQc/G9Ry\nOVmTYwP5uF1G1yAU0SrunshnJzhHCuXsK7hba9F9JCF+c5fD35zjSC4Yujjh\nvj5s\r\n=G7h/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}},"2.1.31":{"name":"mime-types","version":"2.1.31","dependencies":{"mime-db":"1.48.0"},"devDependencies":{"eslint":"7.27.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.23.4","eslint-plugin-markdown":"2.2.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.1.0","eslint-plugin-standard":"4.1.0","mocha":"8.4.0","nyc":"15.1.0"},"dist":{"integrity":"sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==","shasum":"a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b","tarball":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz","fileCount":5,"unpackedSize":17728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtm5kCRA9TVsSAnZWagAAqdsP/RsukuEKfoJXgXBQiB+q\nZIdiG03Vw4Frf6QHmUu39wovbuuSEor5tKyhBbdXXr3+7rCjLsBSukg3G13j\n3KXtkAOhxMQ2Wtcw2KkzmJQUDNSj38bZkaA2JqOnlH7IcPY+LPI4l53vtknb\ndKGJ6pXsZbWni+Lp4AjNHvLyqeGtHO3bMf4bAErSoXvHWC+TGtcFg+Af4BXj\nnDq2wKKGnMJSExKAg6uygAnq+o7rZ63/b1rH5rx8XzRwdv7DEVox6xlLBl3W\naXw2CXWjbtMIsCfPPbxuddjnI1689cKZP/9eL242HKOM0/7W+rxKu1+G/VnG\n0vGmIrVEzwF3XtnFxJjCvN8Ph3+i4Oti/A6hUmBq+C/GKI8Mi+beT7xF0WhD\nnPxxxzsTKGd8XWq4IreSMEca/kQAbM9RDFJ3Natl8cz0gL2g1w/ka5q+yi+O\nkM5yCvwRopqqmlNdlLqNrZ7wSpTXmYtu9d4ZGq9ESDPjrXSOvMiuUnyFyryj\nurJCWtIuIaqCSDbQH1kTIBd4CUoPqjuzhy5334S2aFGai//vDCgnKuxy6mge\nOZTLJK2diCT4w9yq+sQavNpgRBfzclMgzQh6EM58h/1HSotCH+OTqScsgUnr\nD0fpWAedc3V8sXdcVhit0JbWl3ntfjXRjJtWuuhaFnEE45kMU+gv9BABpG9w\n8EVm\r\n=ZZke\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.6"}}},"modified":"2021-06-01T17:29:10.603Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/b6/0a/7e765e5c1a4dbcbad624b41b2b16a03b1ca82b8603ec83a67f11f856238825d47c2af01fc6998ff4a1767a9c5f210d57ac4bf1699d8683fe439685842fca b/data_node_red/.npm/_cacache/content-v2/sha512/b6/0a/7e765e5c1a4dbcbad624b41b2b16a03b1ca82b8603ec83a67f11f856238825d47c2af01fc6998ff4a1767a9c5f210d57ac4bf1699d8683fe439685842fca new file mode 100644 index 0000000..acd49b6 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/b6/0a/7e765e5c1a4dbcbad624b41b2b16a03b1ca82b8603ec83a67f11f856238825d47c2af01fc6998ff4a1767a9c5f210d57ac4bf1699d8683fe439685842fca differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/b7/a2/2528257fd4a67c91eee0d37d35eb435044727dd017ce8f3244d1b7b4dee354e9e24c1a7578d5147e5276bb9aca1d0b6e14c237d08c3a7017ce78e2b3bde3 b/data_node_red/.npm/_cacache/content-v2/sha512/b7/a2/2528257fd4a67c91eee0d37d35eb435044727dd017ce8f3244d1b7b4dee354e9e24c1a7578d5147e5276bb9aca1d0b6e14c237d08c3a7017ce78e2b3bde3 new file mode 100644 index 0000000..47e4fd8 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/b7/a2/2528257fd4a67c91eee0d37d35eb435044727dd017ce8f3244d1b7b4dee354e9e24c1a7578d5147e5276bb9aca1d0b6e14c237d08c3a7017ce78e2b3bde3 @@ -0,0 +1 @@ +{"name":"to-array","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"to-array","version":"0.1.0","devDependencies":{"tap":"~0.3.1"},"dist":{"shasum":"83b3642023b066abe3807fc651d378cf9a27d98c","tarball":"https://registry.npmjs.org/to-array/-/to-array-0.1.0.tgz"}},"0.1.1":{"name":"to-array","version":"0.1.1","devDependencies":{"tap":"~0.3.1"},"dist":{"shasum":"2c1847fa0e16c63443894718aa92aff1d8973851","tarball":"https://registry.npmjs.org/to-array/-/to-array-0.1.1.tgz"}},"0.1.2":{"name":"to-array","version":"0.1.2","devDependencies":{"tap":"~0.3.1"},"dist":{"shasum":"6606bcd3c5e69cce685dd7be00127123cb1b2b6e","tarball":"https://registry.npmjs.org/to-array/-/to-array-0.1.2.tgz"}},"0.1.3":{"name":"to-array","version":"0.1.3","devDependencies":{"tap":"~0.3.1"},"dist":{"shasum":"d45dadc6363417f60f28474fea50ecddbb4f4991","tarball":"https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz"}},"0.1.4":{"name":"to-array","version":"0.1.4","devDependencies":{"tap":"~0.3.1"},"dist":{"shasum":"17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890","tarball":"https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz"}}},"modified":"2013-08-19T19:03:46.793Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/b7/f3/98861276483f9818141c8d8f06cf30c7124f5fde77abc63b5f6bab653177deedfaecfd6a3386f08da06be93343f76cd7f71aae5944c946af97f7af8fcdf0 b/data_node_red/.npm/_cacache/content-v2/sha512/b7/f3/98861276483f9818141c8d8f06cf30c7124f5fde77abc63b5f6bab653177deedfaecfd6a3386f08da06be93343f76cd7f71aae5944c946af97f7af8fcdf0 new file mode 100644 index 0000000..e4b7ddd Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/b7/f3/98861276483f9818141c8d8f06cf30c7124f5fde77abc63b5f6bab653177deedfaecfd6a3386f08da06be93343f76cd7f71aae5944c946af97f7af8fcdf0 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/c0/65/085505ee7a12f94c2a90ba7f0e5bcd631b3016c9cab3145f25169f8638ce415cb623ddb28db180b875a07b9fa5e30aac5003faa04c9fbc00d47769c8eba2 b/data_node_red/.npm/_cacache/content-v2/sha512/c0/65/085505ee7a12f94c2a90ba7f0e5bcd631b3016c9cab3145f25169f8638ce415cb623ddb28db180b875a07b9fa5e30aac5003faa04c9fbc00d47769c8eba2 new file mode 100644 index 0000000..ef6b2fb Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/c0/65/085505ee7a12f94c2a90ba7f0e5bcd631b3016c9cab3145f25169f8638ce415cb623ddb28db180b875a07b9fa5e30aac5003faa04c9fbc00d47769c8eba2 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/c7/45/67f2ca48fb0b89d4ee92ee09db69083c3f187834d1dbeca4883661162a23c4e1128ea65be28e7f8d92662699180febc99cef48f611b793151b2bb306907a b/data_node_red/.npm/_cacache/content-v2/sha512/c7/45/67f2ca48fb0b89d4ee92ee09db69083c3f187834d1dbeca4883661162a23c4e1128ea65be28e7f8d92662699180febc99cef48f611b793151b2bb306907a new file mode 100644 index 0000000..8db798a Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/c7/45/67f2ca48fb0b89d4ee92ee09db69083c3f187834d1dbeca4883661162a23c4e1128ea65be28e7f8d92662699180febc99cef48f611b793151b2bb306907a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/c7/e7/4dfdf047f11a3c4c5c09fab901d809ae570f58bb69a872447fa775bc7fc62d131c05803bc10e2d065b26f864b9296a1b4319982daf7ccba2f6a726084faa b/data_node_red/.npm/_cacache/content-v2/sha512/c7/e7/4dfdf047f11a3c4c5c09fab901d809ae570f58bb69a872447fa775bc7fc62d131c05803bc10e2d065b26f864b9296a1b4319982daf7ccba2f6a726084faa new file mode 100644 index 0000000..9a8cb7e Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/c7/e7/4dfdf047f11a3c4c5c09fab901d809ae570f58bb69a872447fa775bc7fc62d131c05803bc10e2d065b26f864b9296a1b4319982daf7ccba2f6a726084faa differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/c9/8c/f7fb7fed10c454438312682ef6a10d1e1c0a9b13891fc70195b65169eb7cbdea77e4531637d0e416316548bb140ab2f794ca327ba73ad91472832d34d6cb b/data_node_red/.npm/_cacache/content-v2/sha512/c9/8c/f7fb7fed10c454438312682ef6a10d1e1c0a9b13891fc70195b65169eb7cbdea77e4531637d0e416316548bb140ab2f794ca327ba73ad91472832d34d6cb new file mode 100644 index 0000000..901573d --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/c9/8c/f7fb7fed10c454438312682ef6a10d1e1c0a9b13891fc70195b65169eb7cbdea77e4531637d0e416316548bb140ab2f794ca327ba73ad91472832d34d6cb @@ -0,0 +1 @@ +{"name":"after","dist-tags":{"latest":"0.8.2"},"versions":{"0.1.0":{"name":"after","version":"0.1.0","devDependencies":{"vows":"0.5.9"},"dist":{"shasum":"0bf9a392e78dbf23e7f3fafa9177ddc714dc54fe","tarball":"https://registry.npmjs.org/after/-/after-0.1.0.tgz"},"engines":{"node":"0.4.x"}},"0.1.3":{"name":"after","version":"0.1.3","devDependencies":{"vows-fluent":"0.1.1"},"dist":{"shasum":"ab3d83f0513dbaac19b82434aa7bfda5813a9196","tarball":"https://registry.npmjs.org/after/-/after-0.1.3.tgz"},"engines":{"node":"0.4.x"}},"0.1.4":{"name":"after","version":"0.1.4","devDependencies":{"vows-fluent":"0.1.9"},"dist":{"shasum":"b40f2b9d172eadda53769b00dcb6369bbb1dfc03","tarball":"https://registry.npmjs.org/after/-/after-0.1.4.tgz"},"engines":{"node":"0.4.x"}},"0.1.5":{"name":"after","version":"0.1.5","devDependencies":{"vows-fluent":"0.1.9"},"dist":{"shasum":"bea01692f875c192a16cc26c17826a783912c469","tarball":"https://registry.npmjs.org/after/-/after-0.1.5.tgz"},"engines":{"node":"0.4.x"}},"0.1.6":{"name":"after","version":"0.1.6","devDependencies":{"tester":"0.0.1"},"dist":{"shasum":"9d344114fcb1f1616d583a42ba54e8ecaedcb873","tarball":"https://registry.npmjs.org/after/-/after-0.1.6.tgz"},"engines":{"node":"0.5.x"}},"0.1.7":{"name":"after","version":"0.1.7","devDependencies":{"tester":"0.0.3"},"dist":{"shasum":"e392d8756630c005e36d0554ed4bea463da7c210","tarball":"https://registry.npmjs.org/after/-/after-0.1.7.tgz"},"engines":{"node":"0.6.x"}},"0.1.8":{"name":"after","version":"0.1.8","devDependencies":{"tester":"0.0.4"},"dist":{"shasum":"27b9750e2103047b99128f306dceb16b7f0a1d81","tarball":"https://registry.npmjs.org/after/-/after-0.1.8.tgz"},"engines":{"node":"0.6.x"}},"0.2.0":{"name":"after","version":"0.2.0","devDependencies":{"tester":"0.0.4"},"dist":{"shasum":"bfdba338dbb670d6ca3f73cad6d7ff2db4acb71a","tarball":"https://registry.npmjs.org/after/-/after-0.2.0.tgz"},"engines":{"node":"0.6 || 0.4"}},"0.3.1":{"name":"after","version":"0.3.1","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"e8a1065f37c01d394d6922fc4f9c1e61a66ad46b","tarball":"https://registry.npmjs.org/after/-/after-0.3.1.tgz"},"engines":{"node":"0.6"}},"0.3.2":{"name":"after","version":"0.3.2","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"9a26de3cf3650d6cdd395a2997531de3bd687c60","tarball":"https://registry.npmjs.org/after/-/after-0.3.2.tgz"},"engines":{"node":"0.6"}},"0.3.3":{"name":"after","version":"0.3.3","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"63e3c61be2049f8d752e87cbeff70f2c90eca474","tarball":"https://registry.npmjs.org/after/-/after-0.3.3.tgz"},"engines":{"node":"0.6"}},"0.3.4":{"name":"after","version":"0.3.4","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"ecf9b46406744027fbc29e6c8c140a237938964c","tarball":"https://registry.npmjs.org/after/-/after-0.3.4.tgz"},"engines":{"node":"*"}},"0.4.0":{"name":"after","version":"0.4.0","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"0a8fbc64aae49748e5abaae9f8bd5752170a159f","tarball":"https://registry.npmjs.org/after/-/after-0.4.0.tgz"},"engines":{"node":"*"}},"0.4.1":{"name":"after","version":"0.4.1","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"a5ebed013473d4665363412e565951c196095dba","tarball":"https://registry.npmjs.org/after/-/after-0.4.1.tgz"},"engines":{"node":"*"}},"0.5.0":{"name":"after","version":"0.5.0","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"a6123f193524197bb8345c9ec19d225c0c0623aa","tarball":"https://registry.npmjs.org/after/-/after-0.5.0.tgz"},"engines":{"node":"*"}},"0.6.0":{"name":"after","version":"0.6.0","devDependencies":{"mocha":"0.10.2"},"dist":{"shasum":"0e7a62d35ffe2eedb4eb4081d3905d4081e6fc20","tarball":"https://registry.npmjs.org/after/-/after-0.6.0.tgz"}},"0.7.0":{"name":"after","version":"0.7.0","devDependencies":{"mocha":"~1.8.1"},"dist":{"shasum":"b074e121f64391ba7265cd2bbdc6a8504380946a","tarball":"https://registry.npmjs.org/after/-/after-0.7.0.tgz"}},"0.8.1":{"name":"after","version":"0.8.1","devDependencies":{"mocha":"~1.8.1"},"dist":{"shasum":"ab5d4fb883f596816d3515f8f791c0af486dd627","tarball":"https://registry.npmjs.org/after/-/after-0.8.1.tgz"}},"0.8.2":{"name":"after","version":"0.8.2","devDependencies":{"mocha":"~1.8.1"},"dist":{"shasum":"fedb394f9f0e02aa9768e702bda23b505fae7e1f","tarball":"https://registry.npmjs.org/after/-/after-0.8.2.tgz"}}},"modified":"2017-05-26T17:58:19.853Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/c9/a3/87fcf93f5448415964e5848faa5f10c55e57a30c67108a9325cb175af67b61ba56b12d950d714a85c68929d2f7189efb5e2659f914d40346bc63dd871b57 b/data_node_red/.npm/_cacache/content-v2/sha512/c9/a3/87fcf93f5448415964e5848faa5f10c55e57a30c67108a9325cb175af67b61ba56b12d950d714a85c68929d2f7189efb5e2659f914d40346bc63dd871b57 new file mode 100644 index 0000000..07c5333 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/c9/a3/87fcf93f5448415964e5848faa5f10c55e57a30c67108a9325cb175af67b61ba56b12d950d714a85c68929d2f7189efb5e2659f914d40346bc63dd871b57 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/ce/80/7e0bebae1d22208945dce25399414864eaa681c13976446d5de94786b51071f016b03070a19dc7c4dbf6410bdef99cfae6734c0f9a9a0ee3bb24d1d09113 b/data_node_red/.npm/_cacache/content-v2/sha512/ce/80/7e0bebae1d22208945dce25399414864eaa681c13976446d5de94786b51071f016b03070a19dc7c4dbf6410bdef99cfae6734c0f9a9a0ee3bb24d1d09113 new file mode 100644 index 0000000..8e1422d --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/ce/80/7e0bebae1d22208945dce25399414864eaa681c13976446d5de94786b51071f016b03070a19dc7c4dbf6410bdef99cfae6734c0f9a9a0ee3bb24d1d09113 @@ -0,0 +1 @@ +{"name":"encodeurl","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"encodeurl","version":"1.0.0","devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.2","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3"},"dist":{"shasum":"7cfb78e36a241593379e2ebad3926783dc18e058","tarball":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.0.tgz"},"engines":{"node":">= 0.8"}},"1.0.1":{"name":"encodeurl","version":"1.0.1","devDependencies":{"eslint":"2.11.1","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.2","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3"},"dist":{"shasum":"79e3d58655346909fe6f0f45a5de68103b294d20","tarball":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"},"engines":{"node":">= 0.8"}},"1.0.2":{"name":"encodeurl","version":"1.0.2","devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3"},"dist":{"shasum":"ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59","tarball":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"},"engines":{"node":">= 0.8"}}},"modified":"2019-01-03T18:58:49.700Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/d7/58/4c8332fe5822d67f5b85b4748dbe5888fbeb5c45459da1e62ec0897e031bf0cbdcf681033eee72723774938f5b4b8f92722141fcfe0a431b1cc0943762d0 b/data_node_red/.npm/_cacache/content-v2/sha512/d7/58/4c8332fe5822d67f5b85b4748dbe5888fbeb5c45459da1e62ec0897e031bf0cbdcf681033eee72723774938f5b4b8f92722141fcfe0a431b1cc0943762d0 new file mode 100644 index 0000000..5346741 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/d7/58/4c8332fe5822d67f5b85b4748dbe5888fbeb5c45459da1e62ec0897e031bf0cbdcf681033eee72723774938f5b4b8f92722141fcfe0a431b1cc0943762d0 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/d9/f3/7df920612acbac4d3b728455e53aa4940b2a5875c67eb00ec8b4c7bb2bc66aae8e1f5253a688caad44d13d9d393b011a6f5b6bcff76e5ee2c3ee56135f63 b/data_node_red/.npm/_cacache/content-v2/sha512/d9/f3/7df920612acbac4d3b728455e53aa4940b2a5875c67eb00ec8b4c7bb2bc66aae8e1f5253a688caad44d13d9d393b011a6f5b6bcff76e5ee2c3ee56135f63 new file mode 100644 index 0000000..c6b620e --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/d9/f3/7df920612acbac4d3b728455e53aa4940b2a5875c67eb00ec8b4c7bb2bc66aae8e1f5253a688caad44d13d9d393b011a6f5b6bcff76e5ee2c3ee56135f63 @@ -0,0 +1 @@ +{"name":"safe-buffer","dist-tags":{"latest":"5.2.1"},"versions":{"1.0.0":{"name":"safe-buffer","version":"1.0.0","devDependencies":{"standard":"^5.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"10ac4127f54c368becb6879dcae2a2fb96571fa3","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-1.0.0.tgz"}},"2.0.0":{"name":"safe-buffer","version":"2.0.0","devDependencies":{"standard":"^5.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"311d4a0deefdaa9f8d883fe898bdb04d12d3f14b","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-2.0.0.tgz"}},"3.0.0":{"name":"safe-buffer","version":"3.0.0","devDependencies":{"standard":"^5.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"ab7065a989e2634fb0946df00368343258a759fe","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-3.0.0.tgz"}},"4.0.0":{"name":"safe-buffer","version":"4.0.0","devDependencies":{"standard":"^7.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"b725368f0ec0e8a6faa9e657db34a3d2b332d680","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-4.0.0.tgz"}},"5.0.0":{"name":"safe-buffer","version":"5.0.0","devDependencies":{"standard":"^7.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"a59971ca637f5bcb622c47238a5e1e2c7751f354","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.0.tgz"}},"5.0.1":{"name":"safe-buffer","version":"5.0.1","devDependencies":{"standard":"^7.0.0","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"shasum":"d263ca54696cd8a306b5ca6551e92de57918fbe7","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"}},"5.1.0":{"name":"safe-buffer","version":"5.1.0","devDependencies":{"standard":"*","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"integrity":"sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ==","shasum":"fe4c8460397f9eaaaa58e73be46273408a45e223","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz"}},"5.1.1":{"name":"safe-buffer","version":"5.1.1","devDependencies":{"standard":"*","tape":"^4.0.0","zuul":"^3.0.0"},"dist":{"integrity":"sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==","shasum":"893312af69b2123def71f57889001671eeb2c853","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"}},"5.1.2":{"name":"safe-buffer","version":"5.1.2","devDependencies":{"standard":"*","tape":"^4.0.0"},"dist":{"integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==","shasum":"991ec69d296e0313747d59bdfd2b745c35f8828d","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","fileCount":5,"unpackedSize":31686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4OCyCRA9TVsSAnZWagAAwf8QAIlCcf+WlqWgpiGufGgi\n+P81J+YsGVk8haOYIgZX8FTI10RjPKiGN6R11R2B8YMJhxk3kX6O2SO/pl6A\n3tuw9/n+HBQClzobhWovJ6aymO+ozlaxxWADx0DrqKhoDOfpPLoIjaWNS2q2\nh1VxErOXagn/JP11Le89LHqcZs3s1jYyH/cAvA7ygaHvHaDhAiMMimAdz8Ze\n07VKtAM6PSnBYODducjXNTWdqotsRnzmqWEQrV2OQsk8OudJ3+YBZG8szsQ2\nVGrOLeQyj7g+q/WrjFi6I4S+Eg0dYYUg73X3PaAFzGXf7VIjDDNkFjwmtx5u\nUxQ/HczXVzHkcVOfBzbNk4rPTx9o6gr+oDIvWeAgOPYIv1YT5bnMHZ2w7M+8\n4b+SPqVeWHcNfnUhLcHmxim2TWkl0DD+oeYSucsOZ65dJdihMlNiOlVe5XXl\nIPJbfOqNcWCzkibq7pQmTSeM52l8JSekpNZGi3RQQkbrVR+cR3F53VrDzvZe\n3Jqwg7hGlGXyXl5i3TPL0oqD15n/1+wLxZEBVrqM5SeQzvD8l1iDv+3sPViP\ng3msNBtX8NH+Sf4kfCJzHRGestQb0zpVa8wvKeQBBlmpv1kqAgnuPR3k39hI\ncjpqjm2vkmAetW4XnOnCuuMk4SEqejwXh0w1TAHlFLqhywxgSZhH6SJhTbgQ\nKQZ7\r\n=EOr+\r\n-----END PGP SIGNATURE-----\r\n"}},"5.2.0":{"name":"safe-buffer","version":"5.2.0","devDependencies":{"standard":"*","tape":"^4.0.0"},"dist":{"integrity":"sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==","shasum":"b74daec49b1148f88c64b68d49b1e815c1f2f519","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz","fileCount":5,"unpackedSize":31924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdH5EyCRA9TVsSAnZWagAA1QQP/RhJdEyKhGt8CC6AjuHT\nEYn+EG8LKupNcX4D3O1Tba5pHT8t6RTi1F+pQnENjaVVqYVo1UGnLHB7mvfK\ntJt/ebqCAGZicYtz0k8OjsptrDsta+x/AkSemMmpEgfHQyEVy3W+e2KXi9z1\nY30LDvK0SXo/TW3ii5cGJqqppUMfNAAh1QfaNT4w4W3lZQkDpyWxaqThHBD2\nJIYdGzjbo0TQAEFvhLeHK+QXBAimWSKdNzlQyxobhNMuNP0im+a0UHu/mJLO\ndprty7mp2QU0/2UsHDN+h9HKD/TqaiMHj0BYNZ5eLna2ztEWHym1lTPByfiN\nqMaMC/zNY8iWL3vIfQuehWr9cQXzHtQG4CUB2SqnFhY7OhY7sgIpVcn4N+dZ\nwQ3yr3cEECuUmW0xSJvD6RwF7pIiX0bHk1mZNV6Tg2TaaMt9/yv/k2+hln9K\nEvO8aXWIOiFCrmuc9WEx263HMNG/6NOpMhR9Pxy3+LMHFkQMkHOTzRFL4fU3\nATNpNOgBxLvCsj0OiPzfaz2vAoMuOs5nZlBbTMGM1VW8Q8mxzxgjnMPC7cMg\nDxurutltjysNkP2XMkojmHpyuMQwWIMe2HpDfqgFkio7i4eGTCatgzlJkFIn\n3GraU8j6PBfTmSlA04pO8Q8fPXO9ZUMYR3RDDtE5hmP7ppMWSg56qroLsMH6\n0PVS\r\n=jfBj\r\n-----END PGP SIGNATURE-----\r\n"}},"5.2.1":{"name":"safe-buffer","version":"5.2.1","devDependencies":{"standard":"*","tape":"^5.0.0"},"dist":{"integrity":"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==","shasum":"1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6","tarball":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz","fileCount":5,"unpackedSize":32101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuC3LCRA9TVsSAnZWagAA92oP+wTbxk5kLetvO9lp2gMy\nZUYhmm7VY3AO5juqtmAesac386vdk95/HMCVAg/97R2DU0VMavfmGB9cmj8A\ntI6Y34m0ulBECS/wjfbLfJI7iL0VkSPgzjkS6fqlDS6s2jOMy2BH/YghMGKh\n8Df0WtQdcGQuJ09cJLJ4RJeT860aONJHaZ4ogcCT+VLOTFOoTSSSgwmaPQg1\n/WaX/DA8FykZkt8xuv8N/v4kA+UKMgSN/e1anbYo6VEcmkLtespr0zzB+Sxg\nokylqRPsRxSVurScbju/rWcic7PyOez40gAiuklilD88P7U3Y1t0Rl/HIioH\n5hU8e18vT5zKlSXP65jq7HCNX15USJeWx6RrcL+/nIABBs3LiJt3iwNzOcPX\nNPE5b/36ZIXnR0xTy3fC9ofdZU99od4rcGuBxiGLmE5I/0LVeW7qk5HoNdbc\nLvzeFEPUU5/iCTfDK4JyRRM2jaorfpG08fgmbpSBDKxGKam2vf933Ah8sXX5\nGLPB0V7x9fb6OC4BwNZooCnVOZvX66++JoIuUyPKKGoYuKNpiNq+AXTOmg4l\nLTkTD8FW/iSkfosNxNhVz3ToEhD32E+dMv1/pQRjZKA0o2sbtA0RcKe0TF5G\nYmSbvYmitk9Xne+dvQQtto30rxGjOJHKgVP/TtD/4zMHNhG+Zh0T+pDmP0VC\n43rI\r\n=qAuV\r\n-----END PGP SIGNATURE-----\r\n"},"funding":[{"type":"github","url":"https://github.com/sponsors/feross"},{"type":"patreon","url":"https://www.patreon.com/feross"},{"type":"consulting","url":"https://feross.org/support"}]}},"modified":"2020-05-10T16:37:33.822Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/da/39/1cbfeb58d83bff295a5c588176a5f5e41a385ac0349ed546b2bd140c00e25fb5c86952a38ef24d9961252b97bb06b28a0af69fd2510dce3b79f18e0e32f6 b/data_node_red/.npm/_cacache/content-v2/sha512/da/39/1cbfeb58d83bff295a5c588176a5f5e41a385ac0349ed546b2bd140c00e25fb5c86952a38ef24d9961252b97bb06b28a0af69fd2510dce3b79f18e0e32f6 new file mode 100644 index 0000000..7fec9b8 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/da/39/1cbfeb58d83bff295a5c588176a5f5e41a385ac0349ed546b2bd140c00e25fb5c86952a38ef24d9961252b97bb06b28a0af69fd2510dce3b79f18e0e32f6 @@ -0,0 +1 @@ +{"name":"core-util-is","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"core-util-is","version":"1.0.0","dist":{"shasum":"740c74c400e72707b95cc75d509543f8ad7f83de","tarball":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.0.tgz"}},"1.0.1":{"name":"core-util-is","version":"1.0.1","dist":{"shasum":"6b07085aef9a3ccac6ee53bf9d3df0c1521a5538","tarball":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"}},"1.0.2":{"name":"core-util-is","version":"1.0.2","devDependencies":{"tap":"^2.3.0"},"dist":{"shasum":"b5fd54220aa2bc5ab57aab7140c940754503c1a7","tarball":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"}}},"modified":"2017-05-09T07:13:14.494Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/db/51/e5bcf50a6a2b43184e065cdb50ecf2cfd12cf86962dd74c3f0d954f2173d45559aaefe466c2543bc58da4ab84fce08bee791f45a3ae8b6642265a06ce718 b/data_node_red/.npm/_cacache/content-v2/sha512/db/51/e5bcf50a6a2b43184e065cdb50ecf2cfd12cf86962dd74c3f0d954f2173d45559aaefe466c2543bc58da4ab84fce08bee791f45a3ae8b6642265a06ce718 new file mode 100644 index 0000000..1bc2bb4 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/db/51/e5bcf50a6a2b43184e065cdb50ecf2cfd12cf86962dd74c3f0d954f2173d45559aaefe466c2543bc58da4ab84fce08bee791f45a3ae8b6642265a06ce718 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/dd/3c/e09346e23b60ed12b145cd2105193bee5c5271899aaf0667a0d81dc17e9b52b43f0ea427aa42d9f818d434d760ec7babb00826eecb67e993bd6478b97a17 b/data_node_red/.npm/_cacache/content-v2/sha512/dd/3c/e09346e23b60ed12b145cd2105193bee5c5271899aaf0667a0d81dc17e9b52b43f0ea427aa42d9f818d434d760ec7babb00826eecb67e993bd6478b97a17 new file mode 100644 index 0000000..df69e29 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/dd/3c/e09346e23b60ed12b145cd2105193bee5c5271899aaf0667a0d81dc17e9b52b43f0ea427aa42d9f818d434d760ec7babb00826eecb67e993bd6478b97a17 @@ -0,0 +1 @@ +{"name":"blob","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"blob","version":"0.0.1","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.5.4","browserify":"3.30.1"},"dist":{"shasum":"2fa10bf8260aa0444818a2be04a2e4ace4d1af87","tarball":"https://registry.npmjs.org/blob/-/blob-0.0.1.tgz"}},"0.0.2":{"name":"blob","version":"0.0.2","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.5.4","browserify":"3.30.1"},"dist":{"shasum":"b89562bd6994af95ba1e812155536333aa23cf24","tarball":"https://registry.npmjs.org/blob/-/blob-0.0.2.tgz"}},"0.0.3":{"name":"blob","version":"0.0.3","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.5.4","browserify":"3.30.1"},"dist":{"shasum":"508e7fb056516e6291f957abd3020bc2fdcf42c9","tarball":"https://registry.npmjs.org/blob/-/blob-0.0.3.tgz"}},"0.0.4":{"name":"blob","version":"0.0.4","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.5.4","browserify":"3.30.1"},"dist":{"shasum":"bcf13052ca54463f30f9fc7e95b9a47630a94921","tarball":"https://registry.npmjs.org/blob/-/blob-0.0.4.tgz"}},"0.0.5":{"name":"blob","version":"0.0.5","devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.10.2","browserify":"4.2.3"},"dist":{"integrity":"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==","shasum":"d680eeef25f8cd91ad533f5b01eed48e64caf683","tarball":"https://registry.npmjs.org/blob/-/blob-0.0.5.tgz","fileCount":15,"unpackedSize":30611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2gH7CRA9TVsSAnZWagAA2+8QAIOaj9HrrWfIC+FLmbuo\nJB+vwGPeRC0erCaddsVU4q1B122bdEheKNFPPfNrXTMbHMHASoFoOahrUNiY\nPqj/xRYNgirIyFCpzc9wjk2hLJkNY1C2hftpUwWDdfv1z6ygfIAZXqWkVy42\nqgVloGzU/4WVuL5mOVv6CA8XjovnTkuetDjyR9quBGeNqHBXdXnhs9DvYL1R\npa8IBZa4yqE+MPqJcRwDVqw3knFnQwprrcseWCXg5LFh474ufRIgLIFN/vLz\nf9OgKfUcot8suI1UtRcEFDABBTacQTJGtAPji1XD48tHPKQ401ELU0ZJ6p92\nS5BH4e0bqo6HvTApAs7UoEFDVHASb8Jo1VKXf9BfcO0mJ4g+fSIDuLzxkZoO\nmehRRi07MBF3JvjXKpylgKdCdKwh4lkqBuM1TUCY5WUti/10UGfFNl+jiqDt\nH8B5h7CqXchycCfRBno5v3XzRKZDhZIaaVv7CJVUPyAuAQ6wCIwVQTLrYqci\nXcbmwcEnk1R5JCVDrMEz2Vr3qWR7ANf5tZSk+24M3Nsn23RHEb6Pnp7Bw/TC\nZBd5ftkwSuh3/Vr3BdIoS9chPzqYhXjL+5ejVhjHRT+8KEtHR/C/aFIgEmka\nbskmaWN0DQXGWFUsmBrT97OW8oi46L/2pi/EPeysR810gpfogOSOFcMsZrUB\nMWv6\r\n=SKon\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.0":{"name":"blob","version":"0.1.0","dependencies":{"esm":"^3.2.25"},"devDependencies":{"chai":"^4.2.0","expect.js":"^0.3.1","mocha":"^7.0.1"},"dist":{"integrity":"sha512-k+GwK+4Rj+MPNT4qu+y6+kHp+mPmmNd+28zdrIo69QM9UvypK5Vhcw7jnRiY4KaOMAiOdn0NtPQGTb+Ox1Dtng==","shasum":"7e2fb624abe0253b3ce97d52d6fb986e97e54a64","tarball":"https://registry.npmjs.org/blob/-/blob-0.1.0.tgz","fileCount":9,"unpackedSize":8649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeN+qpCRA9TVsSAnZWagAA6RgP/3OL9+Cc7i9AEhVoM2Sr\n/Ix+zjwyURQ+mHRfhCzRPnhffEs3WYKwB/cbBMMUs+iM0+U4ysxmM+Sznz+c\nWc0RiaG9Y6ESlVtYThA+YBeT9h57WL8nRtPippMFL0nxESwR+pr+AbD1Lfa2\n8+s71+MpR7YmDvXXgxbrNII7nocnXiuPKL7OU17MzOy4OxOwQUpydymXhuB1\n3QUGblPZIaBaZjlo4BAb2HSfggayR/HoP8hQR4p1YXMiXc7LLXEJR879Mc+B\nWVydwhzi9a1psp7c9poAeUaKiPfNr3ePO5TbnRzQ8r0ctWbzi+PPJ3lweONf\nkMhyEG8GnpbmXHj+5HqwIYBdCII7MZRuechhRVrg5bqxs0apYXVvND8IB9kf\nBwlInhjy0ux1DuowcC3rOA4rtd1SNT3WBw8C8Nqc/YTCoFXhqZ19UvXvG/gH\nnLEa0A8qFzvpR8NsRP3BGQT77PDdtS58w5j1+HF6PFYvJ+8yey4RtfGtYHpr\nTBpT1EAXC+QzKVxulsGTStndi9vftzUUw9uaPemSQSb1oB3ovhLDHd2gtQtp\n7Z2XoW7PqleovaYRwovAFm+oZfO4HVlR9WAv0QZJl8x1LLG5AoU57ZPUwZ0R\nAoIOnjk9hNJdW01bFDckmZcidX48XHpWsRTH70SyKLngJCiUM/LI8cqpdLfc\n49lb\r\n=ZhBQ\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2020-02-03T09:40:59.554Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/dd/77/de404ff0364beb224b67d8a7f4f3af5f0b404de94a727556ac1887929b60752e58a17fbff451f64cf9e0a43b0dcfedb3f8faa3e0aa19bb668c6e26d154d1 b/data_node_red/.npm/_cacache/content-v2/sha512/dd/77/de404ff0364beb224b67d8a7f4f3af5f0b404de94a727556ac1887929b60752e58a17fbff451f64cf9e0a43b0dcfedb3f8faa3e0aa19bb668c6e26d154d1 new file mode 100644 index 0000000..e9a5a51 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/dd/77/de404ff0364beb224b67d8a7f4f3af5f0b404de94a727556ac1887929b60752e58a17fbff451f64cf9e0a43b0dcfedb3f8faa3e0aa19bb668c6e26d154d1 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/dd/e3/96adfd87010624f350a91e706e8163dc20fff8a309972bb71c40514cd57e4208c786123a26d408f03a0278ef5edf2f29e45a26dfa76e49569ccd7efe4f1c b/data_node_red/.npm/_cacache/content-v2/sha512/dd/e3/96adfd87010624f350a91e706e8163dc20fff8a309972bb71c40514cd57e4208c786123a26d408f03a0278ef5edf2f29e45a26dfa76e49569ccd7efe4f1c new file mode 100644 index 0000000..23a5540 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/dd/e3/96adfd87010624f350a91e706e8163dc20fff8a309972bb71c40514cd57e4208c786123a26d408f03a0278ef5edf2f29e45a26dfa76e49569ccd7efe4f1c @@ -0,0 +1 @@ +{"name":"node-red-dashboard","dist-tags":{"latest":"2.29.3","next":"3.0.0-beta"},"versions":{"2.0.0":{"name":"node-red-dashboard","version":"2.0.0","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.3.7"},"devDependencies":{"angular":"^1.5.6","angular-animate":"^1.5.6","angular-aria":"^1.5.6","angular-material":"^1.0.9","angular-material-icons":"^0.7.0","angular-messages":"^1.5.6","angular-mocks":"^1.5.6","angular-route":"^1.5.6","angular-sanitize":"^1.4.8","angularjs-nvd3-directives":"0.0.8","d3":"^3.5.17","font-awesome":"^4.6.1","gulp":"^3.9.0","gulp-angular-templatecache":"^1.8.0","gulp-concat":"^2.6.0","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-if":"^2.0.0","gulp-jshint":"^2.0.1","gulp-clean-css":"^2.0.10","gulp-htmlmin":"^2.0.0","gulp-manifest":"^0.1.1","gulp-uglify":"^1.5.1","gulp-util":"^3.0.7","jquery":"^2.1.4","jshint":"^2.9.2","justgage":"^1.1.0","nvd3":"1.8.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0"},"dist":{"shasum":"0019333ee4500690a6868352c4f9601e005330a1","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.0.0.tgz"}},"2.0.1":{"name":"node-red-dashboard","version":"2.0.1","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.3.7"},"devDependencies":{"angular":"^1.5.6","angular-animate":"^1.5.6","angular-aria":"^1.5.6","angular-material":"^1.0.9","angular-material-icons":"^0.7.0","angular-messages":"^1.5.6","angular-mocks":"^1.5.6","angular-route":"^1.5.6","angular-sanitize":"^1.4.8","angularjs-nvd3-directives":"0.0.8","d3":"^3.5.17","font-awesome":"^4.6.1","gulp":"^3.9.0","gulp-angular-templatecache":"^1.8.0","gulp-concat":"^2.6.0","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-if":"^2.0.0","gulp-jshint":"^2.0.1","gulp-clean-css":"^2.0.10","gulp-htmlmin":"^2.0.0","gulp-manifest":"^0.1.1","gulp-uglify":"^1.5.1","gulp-util":"^3.0.7","jquery":"^2.1.4","jshint":"^2.9.2","justgage":"^1.1.0","nvd3":"1.8.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0"},"dist":{"shasum":"9d92e45a713edebc834f3050b1f837316464beb6","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.0.1.tgz"}},"2.0.2":{"name":"node-red-dashboard","version":"2.0.2","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.3.7"},"devDependencies":{"angular":"^1.5.6","angular-animate":"^1.5.6","angular-aria":"^1.5.6","angular-material":"^1.0.9","angular-material-icons":"^0.7.0","angular-messages":"^1.5.6","angular-mocks":"^1.5.6","angular-route":"^1.5.6","angular-sanitize":"^1.4.8","angularjs-nvd3-directives":"^0.0.8","d3":"^3.5.17","font-awesome":"^4.6.1","gulp":"^3.9.0","gulp-angular-templatecache":"^1.8.0","gulp-concat":"^2.6.0","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-if":"^2.0.0","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-clean-css":"^2.0.10","gulp-htmlmin":"^2.0.0","gulp-manifest":"^0.1.1","gulp-uglify":"^1.5.1","gulp-util":"^3.0.7","jquery":"^2.1.4","jshint":"^2.9.2","justgage":"^1.1.0","nvd3":"1.8.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0"},"dist":{"shasum":"445f46051c7d860ad51072bdaa93263c9784e045","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.0.2.tgz"}},"2.1.0":{"name":"node-red-dashboard","version":"2.1.0","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.3.7"},"devDependencies":{"angular":"^1.5.6","angular-animate":"^1.5.6","angular-aria":"^1.5.6","angular-material":"^1.0.9","angular-material-icons":"^0.7.0","angular-messages":"^1.5.6","angular-mocks":"^1.5.6","angular-route":"^1.5.6","angular-sanitize":"^1.4.8","angularjs-nvd3-directives":"^0.0.8","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-if":"^2.0.0","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-clean-css":"^2.0.13","gulp-htmlmin":"^3.0.0","gulp-manifest":"^0.1.1","gulp-uglify":"^2.0.0","gulp-util":"^3.0.7","jquery":"^2.1.4","jshint":"^2.9.2","justgage":"^1.1.0","nvd3":"1.8.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0"},"dist":{"shasum":"6f99811513347868eb5ec55e96c0fecb83b57973","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.1.0.tgz"}},"2.2.0":{"name":"node-red-dashboard","version":"2.2.0","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.6","angular-animate":"~1.5.6","angular-aria":"~1.5.6","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.1","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.6","angular-mocks":"~1.5.6","angular-route":"~1.5.6","angular-sanitize":"^1.4.8","chart.js":"~2.4.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.2.2","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-uglify":"^2.0.0","gulp-util":"^3.0.7","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"3e323e5672fab73528d6060e4c11534942c1e41b","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.2.0.tgz"}},"2.2.1":{"name":"node-red-dashboard","version":"2.2.1","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.6","angular-animate":"~1.5.6","angular-aria":"~1.5.6","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.1","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.6","angular-mocks":"~1.5.6","angular-route":"~1.5.6","angular-sanitize":"^1.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.2.2","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-uglify":"^2.0.0","gulp-util":"^3.0.7","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"8fae8e66a48c1017e625d74ec1739a8f440f2979","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.2.1.tgz"}},"2.3.0":{"name":"node-red-dashboard","version":"2.3.0","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.10","angular-animate":"~1.5.10","angular-aria":"~1.5.10","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.10","angular-mocks":"~1.5.10","angular-route":"~1.5.10","angular-sanitize":"^1.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.2.2","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","less":"^2.7.1","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"d653b3c1564c6a72eaeb5c59bed1af063d2a53ef","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.0.tgz"}},"2.3.1":{"name":"node-red-dashboard","version":"2.3.1","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.10","angular-animate":"~1.5.10","angular-aria":"~1.5.10","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.10","angular-mocks":"~1.5.10","angular-route":"~1.5.10","angular-sanitize":"^1.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.2.2","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","less":"^2.7.1","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"0d4e6b1f6e5547712d76362aea61f0a88efa599b","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.1.tgz"}},"2.3.2":{"name":"node-red-dashboard","version":"2.3.2","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.10","angular-animate":"~1.5.10","angular-aria":"~1.5.10","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.10","angular-mocks":"~1.5.10","angular-route":"~1.5.10","angular-sanitize":"^1.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.2.2","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","less":"^2.7.1","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"34739e83760ba2ad028a4ad534d0f8179759de00","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.2.tgz"}},"2.3.3":{"name":"node-red-dashboard","version":"2.3.3","dependencies":{"serve-static":"^1.10.0","socket.io":"^1.7.0"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"^1.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.6.3","gulp":"^3.9.0","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.4.0","gulp-concat":"^2.6.0","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.0","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.0","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.1","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.2","justgage":"^1.1.0","less":"^2.7.1","moment":"^2.17.0","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.3.0"},"dist":{"shasum":"1fa3f6f291bcf18b222c1ecaefef15e1fff07600","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.3.tgz"}},"2.3.4":{"name":"node-red-dashboard","version":"2.3.4","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"^1.4.8","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.4.0","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.1","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.17.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"5157d92166f7adf3660ea365e75803d6a59455d0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.4.tgz"}},"2.3.5":{"name":"node-red-dashboard","version":"2.3.5","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"^1.4.8","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.4.0","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.1","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.17.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"dfe836098d547e38aad132c97eecec851d51a896","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.5.tgz"}},"2.3.6":{"name":"node-red-dashboard","version":"2.3.6","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^2.4.0","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.0.1","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.17.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"41a17fce4e5179f650d71a3e17cd95a8dd1dd3fe","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.6.tgz"}},"2.3.8":{"name":"node-red-dashboard","version":"2.3.8","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"a270d7c6542075de1dc39cf7567c14db69b00dfd","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.8.tgz"}},"2.3.9":{"name":"node-red-dashboard","version":"2.3.9","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"6c31d9d87679413f0f3e0cec331111fae84e8d0c","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.9.tgz"}},"2.3.10":{"name":"node-red-dashboard","version":"2.3.10","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"68b337efd295b72e6eb3df633f51d3aa4c2b8fa9","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.10.tgz"},"hasInstallScript":true},"2.3.11":{"name":"node-red-dashboard","version":"2.3.11","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"00885a40df2e06194efc4ca4a670426eeb0fba6f","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.3.11.tgz"},"hasInstallScript":true},"2.4.0":{"name":"node-red-dashboard","version":"2.4.0","dependencies":{"serve-static":"^1.11.2","socket.io":"^2.0.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"59f787bec321f63ecc69ae3dc67ea73a2c4bb2d1","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.4.0.tgz"},"hasInstallScript":true},"2.4.1":{"name":"node-red-dashboard","version":"2.4.1","dependencies":{"serve-static":"^1.11.2","socket.io":"^2.0.3"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"9efcb16e78e4d4ff3878bd6e43ff6e8b10175dcc","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.4.1.tgz"},"hasInstallScript":true},"2.4.2":{"name":"node-red-dashboard","version":"2.4.2","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"06d71d8776c04ed79adae4e0ed5974af343373ea","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.4.2.tgz"},"hasInstallScript":true},"2.4.3":{"name":"node-red-dashboard","version":"2.4.3","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.0.3","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"218280b2f64dc903a58935b83a753d9571d5ef95","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.4.3.tgz"},"hasInstallScript":true},"2.5.0":{"name":"node-red-dashboard","version":"2.5.0","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"47c9daa945af6205c279b8c27a1036c8a832272b","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.5.0.tgz"},"hasInstallScript":true},"2.5.1":{"name":"node-red-dashboard","version":"2.5.1","dependencies":{"serve-static":"^1.11.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"6f002efa3bd720623b3a160be034dc5eae241ef6","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.5.1.tgz"},"hasInstallScript":true},"2.6.0":{"name":"node-red-dashboard","version":"2.6.0","dependencies":{"serve-static":"^1.13.0","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-eol":"^0.1.2","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"0c0592387d7666272a02f3b28613c2545f3f7f95","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.6.0.tgz"},"hasInstallScript":true},"2.6.1":{"name":"node-red-dashboard","version":"2.6.1","dependencies":{"serve-static":"^1.13.0","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angularjs-color-picker":"^2.7.2","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-eol":"^0.1.2","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^2.1.2","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"shasum":"6cc316a0b01f4db9fb97fa1ddad565ea8f7f4d2f","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.6.1.tgz"},"hasInstallScript":true},"2.6.2":{"name":"node-red-dashboard","version":"2.6.2","dependencies":{"serve-static":"^1.13.0","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angularjs-color-picker":"^3.4.8","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-eol":"^0.1.2","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"^2.18.1","sprintf-js":"^1.0.3","streamqueue":"^1.1.1","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1"},"dist":{"integrity":"sha512-fzxqer0ofT1TffrxVZXcWMtlHioj4PME96j250CN8PygqEexwHsYpbJWRpiMdFbp7TugnAZ7cXk43zd46W2h1g==","shasum":"485f93845c6fa8958a70b1b9ab7180fd8a0f8172","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.6.2.tgz"},"hasInstallScript":true},"2.7.0":{"name":"node-red-dashboard","version":"2.7.0","dependencies":{"serve-static":"^1.13.0","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"^1.1.1","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.0.0","gulp-clean-css":"^3.0.4","gulp-concat":"^2.6.1","gulp-eol":"^0.1.2","gulp-header":"^1.8.8","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^3.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.0.0","gulp-jshint":"^2.0.4","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^2.2.4","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.20.0","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-7VfFBmubIklcwQs8YaZsAdKmsly8+H3iJsGjWRFNSSiqZNcfHZ7YIHbgsdSpuw7LqOk/TpDWIzrNxwISsh92zA==","shasum":"5c198c83d4ad11b8c4c190411a227704294325cb","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.7.0.tgz"},"hasInstallScript":true},"2.8.0":{"name":"node-red-dashboard","version":"2.8.0","dependencies":{"serve-static":"^1.13.0","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"^1.1.6","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.2","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.1","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.20.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-KM9jhLg0O8sh3VzTpeKf5/ec02mbtvwlVosPkK26h6b4SASDbD/25nlAzuUt4WeBga6sbEDQnIrwCEF9B9Fjpw==","shasum":"a3697d191b7345b3bd0904ecb4b53c1ba18fbac2","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.8.0.tgz"},"hasInstallScript":true},"2.8.1":{"name":"node-red-dashboard","version":"2.8.1","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.7","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.2","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.1","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.20.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-vft41cQo2OI9+h4Dt4aAS779LbRNMDbnb4TH3uGkMBJN1IUe2sZcQ6CZ4i9Ak6XzBgNdsqQotK5mJ8W4wZCrgg==","shasum":"36a30ad49a6fd7e5512f9d1db7a57997b95c9f2b","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.8.1.tgz","fileCount":90,"unpackedSize":2991320},"hasInstallScript":true},"2.8.2":{"name":"node-red-dashboard","version":"2.8.2","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.7","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.2","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.1","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.20.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-15bru01uz9bUMcSMrejqM/QEt8IslB9tGfpvQ7VWFcz5txVe3GVw0IVuPfbm/sQRlUdNHt3QlHwkPJewo8NTqg==","shasum":"14e1c2c38bd1004aa7b428b1b7ac3b0e28ca2fb5","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.8.2.tgz","fileCount":90,"unpackedSize":2993350},"hasInstallScript":true},"2.9.0":{"name":"node-red-dashboard","version":"2.9.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.8","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.22.0","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-UGwQe5CbewJH9lYebrg4RLzlNlMEw6Pn3fHsv+tXsKMShhyy0ClLG6gVJJY5fTCFrnDxQwT7dmpDc8b0NWji/g==","shasum":"df31dd98e89e856c49c7df718f45dc290e2e830e","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.0.tgz","fileCount":90,"unpackedSize":3014698},"hasInstallScript":true},"2.9.1":{"name":"node-red-dashboard","version":"2.9.1","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.8","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^2.7.2","moment":"~2.22.0","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-Mkgi6ZmPGMliGD0pN4bAF1W4GXbrpiHMjBG3GnfAbbfxtHY5m/m4DZn936pCm2zuS7OEQ0ZozNFPzvOo9aPRxQ==","shasum":"92dc36824559daed2f3929623d79077ba76df1b6","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.1.tgz","fileCount":90,"unpackedSize":3015714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3OtMCRA9TVsSAnZWagAAdR8P/0tllqxbCdCgTXIqnhQQ\nw4VRjf03EebrssYcqSj5rgWrVZMpc/0CEHfxxZDTSYJCKxFyHknfcVII+I1O\nUrg06ORDEibJP8AWX+otBZ5ZP4pU1NHbc3KXZc1LEvQLJG5Wr45ccGCF0N6U\nqq5ANTQFDP2L1rlVld8toNuG4MVO4bvkiYZz5XiAfeHxir7o8mluUQHDKPYi\nF1Ckudnlw3kpoqg92j0L+Wz+1xm30BBGO9e5AhBF9Jx3BPqfPbQGgjALHGvb\narkkf8ksDuubBjBH4i4vcrfpCcSSheQHOcjuvd+ahWfBpwbCEXdTw+AR0MhD\nG3w4JQG0gf/mWglSseHpLQ5C2CY0mNrPKHCii4VhMZlmB9Pe602iSmyNzfjf\nRotsOJ3nDb39spvXnPnf0npvHtOUHN8tJR0IyXNa7yyY8CvaztK+PsmSPNmm\nx+CPqTBKjH162pojliGCPQDKhp53gEyKJ8of2yHtNZwklkMikL87emfgnHR1\nzrLK9Oc2Z1acOw+z8ffg1zNuYF16uWeRucM0koEXu1fY59XYzRlPnQ1xjuE+\nx5466AL9u/owYniAIOESr3SxsVu9/9D+s0SnPVmJM77A1mQNJBG9TkXwOyCj\nIiZcDkJNVBjHjq7Zq1H/uvKkwT5ZEWdIpxO3RDV3vxl6GY6BPTe5TICJjnI+\nYMcS\r\n=PBDl\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.2":{"name":"node-red-dashboard","version":"2.9.2","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.9","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^3.0.2","moment":"~2.22.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-3hc0keuRlXLSUsnW9bePhne0LUD0t1yQuqwsVmxFyBLjqRpcprWWImmo4k69fmZC9CvykiXQdSy0aXC1HlOdIA==","shasum":"3962c9fd57b0672808af79d1d3367e8f504ac6a0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.2.tgz","fileCount":90,"unpackedSize":3077722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8IJVCRA9TVsSAnZWagAAMN4P/2kz+9wYRmU93VfIt+BH\ndmyu4YQu9CiPmm8iJR9hD35K+5eiGo4Pg7e4pDq8NszUGrAki1wKZWHW55TG\nGWiKOcZmxja2G/jCdiybF7jj0c8d2YobeDBM0KHgbKvcdqQnCf7Fj4wxbhIU\ni4/MU38NjcnGQNrsz3m33xYG7Qd4dJsgdDWEhUF/IsjNXfDLl2qCf4b+qNC6\nGwdV5V4KDON0uV56wFV1nnKU/cX0nAyfLsi849vheBy8qNAk9Ru2xdpqVHBc\nUMQlGnnseHxwrZsa2PvOmKfBIsellNGJlr03UXvqLtf22b8hV4b/2+HXyTeV\nUl9M0PwBWwvJbkxAgX/u29uKUWT+PNfJhJsuZ8h3hVbQ0U+UDaayttXtmfOj\n7hVO7qEY+c6gocYf9lnE1S6C/709uzQLCH04whmlgJnCJ6Pc5O7snZrqqIkq\nd/vS3JJQOSEv9QrRrkVmsjp3jxUHrSB91qIVvvA36NQK4h82ukpyKExyK3gi\nfOCSv+XgnOSdSu6UL/mKGRm+VHIxsKxo5RLI+qawXOPzEw3ZgK/l62sWSDib\nHCJfIszaduUFkbUKVaQrou+4eTfWLDkHYUdcna9uU50qmwVPtNPvNVKUe6S9\ngXYmiAZnzIVEx9FtqcWw7xK1zCXsK4ve9a6dAxl5Kx62wOVHXUTCdW5K+o0h\nWwlK\r\n=WLuC\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.3":{"name":"node-red-dashboard","version":"2.9.3","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.9","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^3.0.2","moment":"~2.22.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-qiXvbpr0Z1SiBdr01IRABUoQONaiyIXl7PWwZb9xkNRowu0+RE9GR6PzkYg5b6xuycltLanvLmTohblnNU0lzg==","shasum":"89ab36ababacd8a8178fd4f76366a010f0ca61a0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.3.tgz","fileCount":90,"unpackedSize":3077831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8ZmqCRA9TVsSAnZWagAAYC0QAIg5uX33ARytcLX+mV2O\neHk1d5Tdo8+ntwo7qCgSp+XnC1UcNYeoKFdTj6X5fj6jtPwdHW1o6dP/Gpq8\nqYLKU9C9PEgERVP7fp2916L6o6OwVqPgJp3MjQU577C2X1TthNLy/Ef0ldIW\nucuIj72eow4vnkpq7k1Gvsl+RVz3tuS+AruSY6V9BILTE9qT0nGsvzT/bw7Q\nuGJyaLefzztdFdgpITXwKoHxIp+adN77xvdlAdFvrrn/ETlEfX67+7vTuWOp\nFJ3o7/H9amAkwVbtghy1OEHcPT88uQkQSO0jVSNfjhfu5CCUUDdqoEPtmRTg\nip1AnMbXUkAzY5dZ2ogclh9Na6L6O6D2tD0RQOHOwxnj0B4PBHWOMkBX1V5y\nhLKEo4X5KKBzsPu08dG3szRUSGewnb4bjkqtIhNTgfCohzXDJY18bkukZyZO\nzFSp+3eI+I75zSMh2MiCssR+b90NdgH9dWjbSXM9hWOms2JeV/pIIfGYDQIn\n3TpIEnEDQ6zLNxCHU7AX+0JXy8ymNLggONyUNMFe6ZczDonpjy4Ivl/sSPTV\nDv4VshouNmc8kPDzOYPpMsMhb7Iyctn3jXn5dFemKmJleyiSLdKR7U4xlQ76\nOlH+B/Y2UfQ8TgORdI4ODzcYad281Hr4ewy18QBwGYS5KikujeOPhQSTIASW\npqtp\r\n=lcDY\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.4":{"name":"node-red-dashboard","version":"2.9.4","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.9","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.0","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^3.0.4","moment":"~2.22.1","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-LewLaQkFBKjB9vCHia+wxZFLMMqmdVfoNWin4Q5eccPvt0bHJ+WPHjK/XJDVvEXGO8PppRxqk9DHgjTEh5WwQw==","shasum":"118e99e401a9c1553d94f9e86bc2c6990ce9a9dc","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.4.tgz","fileCount":91,"unpackedSize":3080748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCFHoCRA9TVsSAnZWagAAdC4P/00b2XM54m3Allbr1Z8v\n6wYhbf9mSUEk0DKvZB/VKNxzPoFWpeM1bBwr813EEAgo4Qrq2HFn37ub+5oz\nu6U/MI8wuTfE2aOfEQPDehKOApE6kDrmiEr4hRJO9S4kUxBLvCVekecVFrST\ntNgNMs2PTSvf6Hmuhed1Po0xacyk8y/rcftH7nD2nE4ocbvOps0IQAPgp2Kt\ng/WdAxZeGFYvwyEbtcakExcf9BxbTWG5ogKWmCG0N7SXuQcW9cxpZNq1olZr\nU5jqKU0jpuPh+TvJ7Tik99CC2yOJLxD5FaKAiKiW1WWhkVGQPorCcjS+1Yz7\nnly9YSVNhXDSGp2bWswS/Dma3PI2SOphxRJCsddDwSILKqefXuNyjpl3Fe1o\n+1er2SZlkdVBmkUnurbTbqT2eSyiBZcamKHbAWDa/PnDwywAdKX+wmCFe3t6\nqhtKAj+rmHMKtYfMgDqq9dD13xdG0yCt2IkrxDtoaCRKJSiD8EVrV86ko3Ww\n6Z2IbihLUkBf9TXD+EHxeirj9muDeclClcDgBeG3Ig/EatLorW+s4hWL53iX\nkZmFU7IrXuSU7gS20IuJYjxBdq+179iY6PMGX3D7bSqAGuUEcFyupLUyxTFe\nnIt0wlksq8hf1Wp+JvGgGD3NlJoT4GqXlEHxX+y+NwH4RuWjn6qD0pr35pon\nSAmQ\r\n=mYML\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.5":{"name":"node-red-dashboard","version":"2.9.5","dependencies":{"serve-static":"~1.13.2","socket.io":"^1.7.4"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^3.5.3","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-ffS7pZB6MChdxsmwkK7PWem4m98EBrNamAnU0SVNu8p1VsFmuRgF2sVGdk+5Vo+PRhN78h9RjitRf9D5ctF8Ew==","shasum":"18e15e13392ff02b386756871752db033c4f3288","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.5.tgz","fileCount":91,"unpackedSize":3072807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQiH3CRA9TVsSAnZWagAAeLkP+wXJWLB9FqE0CTXXeoMf\njRsjoJwPx6xYAK17koXKhdpS1BzuLLwvvDFmRR65lAG5ykK9TZK+LMGjrsR4\n0+nMHh5EQuDZyfy6H8dH/W6DuIjWvpDXovxHxOKGFEusYToVgjkVzHvIFNGn\nJKQlkc8fECu7GmanpQ1tiL6GYDwOKgF3Spyw0qLcEyRKcmNWaUtLbiDpcFTi\nr3bQyebL5qAnIqv+KIaBpcR4EPTfx0c4W4nguD7t/Sgf0hC1vijYkt2GyO1z\nsjldgY+KBt7pUqPA0RQOYBd/ewp/Rr5r+QVly3BYKHVNTe9Eu7t9p/Ez4LXn\nV0FEJFERY2yziM4mcgUDUnaYy3HNrH6fdy4vQow1YLzlxFTAECKqNZEkgIrl\n8kZKlDjXI+HGC1Uc+qDLhkPSHju8iNL0/b3106ORHIIJIhzrfXdGTOwYt2nL\nLqIrVN+jwBWO08vwrWQcxSxVWV23MzjxrNMiJo8xzUKwB9F2I1G5R9E7EMm7\nXKjICLRWDU/EN0is3c7TjBF2zkp1AEugfG/rjfL5Gif2jx8XRe7q107M7opb\nsG/m9hSCvlhf7tiUlSEYBIvHB/hPEymaGaxcTfPU9A+CIAdZLZhMnqpNHdcR\n3B57KQuTHa7+DQNotFwPOK+7QaJ787CLAI7a3mDurEQCz5wdeXe6mkZqtFdo\nO1Vt\r\n=Z9j+\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.6":{"name":"node-red-dashboard","version":"2.9.6","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.9.3","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.4","justgage":"^1.2.2","less":"^3.7.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-d4NIk2oDnOQ3rKB3juE1RX5oDLEOUHdU14yrEBo7sehkcH8Cjb3RcXZ+ZYjuBuETkavFQI8nKJIwLWJ3SsZZSg==","shasum":"b30eb623bfc56007b1ffcf2314b03cfdb0c511a4","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.6.tgz","fileCount":91,"unpackedSize":3075218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTeZFCRA9TVsSAnZWagAA7JUQAIKieBZiN+Nuh4Cu5SJU\nJSGT8Um7vCivEk/+VzaKewXyN/G/LLbuziU/04i7+3wHHBSj/cjQSAFLbf8U\nfKcpZUJe8CoJRJpoScP14rK4mseGcDo5WWrXjzZkqss6h65QkDdusXT3qqCy\nt9vhIfeGytmKeL1WsxFfR0j4KDTv8VOAAGBpABVD51MZ2KRD5GQcBv8MFFMu\nW12DF9Qar6D/Mh/0fKR3SPbjfmHEeQHrJZ20ljrxS7EM7W2sl0ZUITGokjiA\nTEnfkvsPMSypelDF9ALXU3x1cXtx8XjgOpiIDHX/oi2dlLEPCcoq6arqhuN9\niV97/JOcHmqaKRM5vHiTPfFCkp+pS5oZP74UmxYSMKYAlelI2ulGjtXVBDNT\n6Q1AXe7tWOD1tHMdc95wIw3ENxuLID5KcWykrTAk3KW/vWsObjNaaKEvaLp+\n5/DI/r25M/q9wld50WrGsD7wwSr7IlDzDlw8q2rNesD7NEQeVaiVXQbJEwZ0\nnGu/Zm6U33gQgRekO6sh8RQNFYBBXQe1DlIaBrCEnzv+gPVLBGqUwLAtDvG2\nvmlXrzDb9pHodoVqUZMekycSgjAVddRJOyhVmJKC3KkiBBh7Tp+O9ALc2noB\nd2NLICBhSy2F4x+l1d/ehXih+lrh8QekeaiAx0xqK60cyyawiH5izMB79p8h\nnHr8\r\n=WyyI\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.7":{"name":"node-red-dashboard","version":"2.9.7","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.8.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-/F/DSBrFWfPB+6o7ZkvKgs0+ikIli3W83gQKhUjvR9vS3cOZXoSEY44JWVsH6LRhUq5ckAJhd+xRhgp6+1uQcw==","shasum":"69bc0aa3be6f6521728e8b55be9965977a5cd4b2","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.7.tgz","fileCount":91,"unpackedSize":3102477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgAj0CRA9TVsSAnZWagAAMPsP+wTkDSfHw4TOxkLa6Jem\nmRJ98HrO1ZzUGE0ePQli3UNyDTboKBuj4GjuNMds32sPG5LAIN9ErAS7Nxp7\nV7SpzI4xxu5afNU+FMC8pksFkAQvEB2Z7HtMbZ53iC6/feruqIPTAmr9lrie\nCK/ClbuyLNamTeX5AYTqg6hSQbLRJmsqIAFJWPi0YVPplib+3B+ks866riWR\n1ofYJbK+pctPOnGZRdcnsKEHEKNMyCF4xIzR/0MdBxcjUBwG3YRnY5d/4nkb\na5vOMYzLR1TBqlbhIsr3Ph7rGpqI+3mN3+VoV6VNdZVtfW9c+4aiRZIY/Aib\nnXvg4VPQaMotAlxMoXKpm86BASailWHcy+28M+OKR0IrC1/EvOGJAt3JoDjT\nVZ9FEH70sjsXg/VxMrEKhVP/QqnkI5hPI21imjQTG67eEdUBr8VnlzOHE4Fh\ndo5iXQsLd7/VPYMO1Kakzxc0fzuQnfhx5Da+h89ul3UGWQQCNSCUlm73l9DW\nPiFAn9ES/OXby538SxvBmzHrulFqv/qIJ+s+9g6sYy5zIoNI/bQcgaNLGW7M\nlSc432sBkkDxX9RIjh/CVgJxDcLYPWzgfysn0Ok5LTZw5gjBJ5Rhc0ZHcZl5\nzxbs5NbgxS6yPSnAa+9xagYwYUBpVLXEVTarWRzUxinMY/IK/H3c1FGfFaZj\n2rEj\r\n=fdrK\r\n-----END PGP SIGNATURE-----\r\n"},"hasInstallScript":true},"2.9.8":{"name":"node-red-dashboard","version":"2.9.8","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.8.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-hKzl2xzXI8jEQPzldtYzOgnczYrqBOQMd0wfysLucvdO6Gm9lgbnNdX335j11oVeHkQClTvg1KDjI3a9IWlMow==","shasum":"750514e9932daa8fe9caed2fdbf20180c50478ff","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.8.tgz","fileCount":91,"unpackedSize":3102862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkTjMCRA9TVsSAnZWagAAlNwP/jHv6jHLkIDBFmM8koYe\n2pfe2jfUNwcyRBXT7K4/8AaocndwWXvqklQNDMk8XQxH2RLXp5+0pazLEIAt\n0ilX2wfvcVZ0/GbUDqRL1+tho+3J3CYlKbybDHpft0p0OJzjzAK4bXYGhlSu\n3OT/qs5WlM7xOU4jyEzw6q6/36axPJFsLVLDjM3f3AEWIO/cTLWfEZcV9zLS\nzZD7bAwdFFOG/wwn7cZ4sivQbCZTxnuFMd0JOImaIABonCfvMs/n4QY5Mygx\njijtNXXiqlaPd86nNuCJ2+4H6nHkNmpRrRVJyAx0myc1t42EyhDy6nKunu3e\n8po1wYKv5yBPBGFi/Qr2mS4HPAb9RPJRrAlfAVvOtBxFaFPkpCApDQGGzMB7\nBimxAH+QO/VPaTAxV82FajcH7gamBYINlQQmL90FIcNfxL8DD32uMFm2iPXb\nl8+A8RKBbUxNT0g7QOYEGFOTVkIk83INeintyFZ+LOKddMzr7H0qddGxRcVH\ndlJBD3rTls1SAXprkSyhqFsWEW4E76fQPHzDNsaRaWPicK5Y8JUFq0Rgc4x9\ntOsaAafrPVqj9e16rmJeYAyQk6/iYvqD1tVxs/2dQYSPI1Dqn8txbNXKKnix\nkQz2tlysSjr9daNDQMudF/y5JaZhXskW++HDlbhftMDmzwhnVDRHL2br9XvS\nel7g\r\n=R4W8\r\n-----END PGP SIGNATURE-----\r\n"}},"2.10.0":{"name":"node-red-dashboard","version":"2.10.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.8.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-dxiESvakubP/t9cSv62Hwr8h+0RMyYWi3s6EO3iqYsYt1uEbxAaVwZQ5C30OuGdoXZHoYlvR09NMP6QzoxtM6Q==","shasum":"80bfac4c2b2dc7a04d987940eb13356caf28c021","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.10.0.tgz","fileCount":98,"unpackedSize":3129667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzhsvCRA9TVsSAnZWagAAtmIP/ilrGoBZs6+4k6NiK7Tv\nZm952RUNd3l5c8n3SJLxzxb+szde4e3fvenolJTF9viT6gNX7eb+0BrPe/U5\nz/vXbKhdftmfohyIxdrwqmMdDEkmeC6hOKsCebALGQjbk/9b9/uRUC02gavO\nBIAcs7bxtA+3BsG0lzUROhJwxKEg0CqeoYV1UQCC+NeymJ4HicWyKizOl/qL\n3S+WV3BI/CRTUyNuCAqAga/IKdxLGWkPdmHQOVPPE4DeksZA/eqRCVQN0QbA\n87EeR2YDqk778GMpV15c7VGMEHaDZhu/3LTu4j1LU4wtgQlaBUeXrR6AGuqC\n8udh6ypUM+vEbnXKi4Y89JmplASoI4AmgLiTdtbijV7BVUy28zH6vetk06O0\nQDyaSojTph0JZWznXtssaEYxnDEClPJxhbIG4N/cUa4/e2uyQ7qWvk6dIZ7A\nEfJYMdWyoi1Z0g89/MBXdtci4q6DDqjUOXfP7WLRRwmMf3E5OMTof9GB8kU0\nrt5KxbfXO0HJeFKMQ9pkDBSV6BrSB57qp7k/ghkRFEfB5pbea/neN7m4cfWo\nZxBDDzygrm1FVrgtjKzSKUBmI8fW+PhzzR8a8+k9vUlftwwuIqR9i+SpOaip\nbRdAaV+7sAtq7fDKbnOQSXZ/8okRdi+jk5JtvFqgGkdnK63sFyifSyarUsH3\nV0kY\r\n=T4Px\r\n-----END PGP SIGNATURE-----\r\n"}},"2.10.1":{"name":"node-red-dashboard","version":"2.10.1","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"^2.2.1","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.8.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-MunU2cdi4PLQ+0IS7fnP/o6dNMpHXIW9MfhBnGi8d466wj7jenhVcBO5WiI/QJGrfjub6sRMqIZR7SDCD+KQnQ==","shasum":"28f92d962cb0e5ef8c5d113c5f8a8e763214e410","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.10.1.tgz","fileCount":98,"unpackedSize":3131590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb1scjCRA9TVsSAnZWagAArAwP/1jlQGKph21eD1GWATYS\nfoEJxoTUO5G/MHYA0IsXPXWKIiG5miRbMl+8UQlQN8LxBA6WhEteyDZHkVID\nZH5vKxKEqUybuCdgn9zWcbttaDH5W+/CSPAgz71kA1L0dCylZy/tBbw73kq5\n1NRJa6CmQWHGENvmo1S+DvBWI6cMxUKjb4ErFva4M/vfK3mqu1kbmR/NenP7\nVIPx8vaVaGvEk7bAqrnXKfcRa+exWomBsRw2YZaSRgnSpdjrWEzgLlFb7Tq7\n0D9/ggQak4qeIR3i+HvfWjIGWAdbcqwWeG0qUHM7cddnO02IgMFC+yAFucNr\nAsQdNsvEh71sHNFp8MzB42amj9dDpA7nDcMz+lXI8weHaY6JH6RVRckWEQiM\nwMzbz+s4uihDhRyZsjXH6v+R13aSKNPEKss11pC3ouqwUrpgIjoG+G3ci+AL\nSoOSExHgYTmXEMGrygzAYZhkSPr5CCXLE3GKgzgHueShc6NHR2dLQ2LntBLt\nW7gpfxiiQXIATKVZeB/R/t2cG2to5vwHyyp6gWZx2iWrPYPZ4gts3mIkXfes\nFtOox05Zy8ucQkhz7fwpyC6m4AiV1ma0SwGcmssl/vXIxFigu4hq6riR/0Am\n8mwiNvFkAUA3uwaeVrXGNTiQQvAODI4BmQAcL2stjPN5iQQOB6aS61AS+BV3\nA4K/\r\n=UG66\r\n-----END PGP SIGNATURE-----\r\n"}},"2.11.0":{"name":"node-red-dashboard","version":"2.11.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.1.1"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"~2.2.5","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.8.1","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-WQP5ocaTk/hVfomEYs4HpR1bvLL7y8lTA7jGqX2UTNue/DvRqh516bI/1r74SUO8RvMuriyXqMrXGDD8nOPBHg==","shasum":"5400d35e41fa71ac33bc9190c2adfd18d0930727","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.11.0.tgz","fileCount":98,"unpackedSize":3138187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8AvhCRA9TVsSAnZWagAAznMP/jFNLZrjDKHgkCPPBHOW\n1DYSNzPuhDabJbdJ/QqqkIK/lirfKplle/oDYXKM1Tv3tnVsD4MDkg5WiI6v\nUUoM0uJvbBj57YOviTgghOJ6FS30Ml6OHrjWqvr3ppsH060gRC16OT77DOs6\nQEsM9+f9z5m6GJRAnc1oNXpkWXJ9dGYVZeyjrkX3a0d1Cd2+pjXQ8Z5xVgWm\nrnrQrMNIeCn+emoBmZV6hUMCfu8fh1O5JObXyIOZbqqVVt/yjxhGM5QKJ49f\nTBAXjDErBVhE0X3FETryJ7Me/+d8JrBkuH3xFSuJ9XCc42MhRFhwv2A5rUoq\niCSC5E1TXwO7UYaJNqoyQlBRoJTy2AAj57DVQHIXfaz6yDvF6uV7AkG5JxjC\nRau8k2rgfhFrz0x9QqRCni75W8+DxaKQUj6RiIMH2NgH6JWofRMsfVsIIozH\n1J+fIFmypOMwNPUcYEijMdDKuFBPPBH3U3gz/9exmlui1n1skSb/OEexhKv9\nLyH3g8E4KoQSbp+2rpd6E4F+nflbpla4WWKVG+dmK4hQH3WW2JhH7Ca7LVK2\nslQdxFTKgm90s0NLyHPe0emv9C9cBF8hdRf2urT6EUTxGDbBmhKRUG39II/q\n22AqRC5AkRkRUxBdHF9gmNP+HLiH/deQl6iG75c8fnkx+14UNsH08LSyv5Fa\n3wb7\r\n=rCBB\r\n-----END PGP SIGNATURE-----\r\n"}},"2.12.0":{"name":"node-red-dashboard","version":"2.12.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"~2.2.5","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-t05ltzx+oUZapcwsqodoM2iYVTIIZPI4lHfxHgK90I8BaYDWHgTY9kivyvsVSyes1FCthbiaJz4tc9oEZjYTEw==","shasum":"b7a1ea6fbd30bfc094cba4547d526f78dc92d882","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.12.0.tgz","fileCount":100,"unpackedSize":3126967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcClm2CRA9TVsSAnZWagAAZesQAJNk0BvK1WZ2ib/uK0Ic\nzowQE6Cvjoz5UrNB2KEvHd6Q725+EYJIRyAVnvZye0CAL/hQIUAv72mEDXLU\nOSKQwTZsKeTagciWI4Y2b+crimIwC72Nx7hciuasLYFON+h3zadf4t7IPsIa\nrAkg+WhA5stWONLM/gUOWtUk+rZGjUqXddzx5yesj3ff2MXkUWNOM9ZVqxLc\nMWHJu1a76njOSYSiamkvWW7a66FOP8Nb2n4LRNfC63awGTPx0e2t1yC64mWm\nkK4NqRfjG+Iv7HozEcQKo5lFCJSihN6NS9q9f8pED6RyM8E5gIpXxhyc1WUi\neCgsQWAcxEHLidAB5e7g5YeWzla75M1ZAUnk1Gr1OI+VMx2jqV++tg5JJnmK\np/e0Ka6SClnL1cnbl6s3jJ4QSNZ7vv8ZfR1+4htgsJyuxghJZOi2ECoaQjI1\nrUnEr/LROw4vM4Kk2wg9JMQkigNcErvX0bwpR5aqby+mlt2uvL2X88Ahu8qM\nwu7vPkyMg+6k5Gyx9yJegemGij6SvFqTfpqARY38v8fPSduwH/LXtqFmFxl2\njU3Z3rC8kLfFExb0K3ZLL8Me4jo5KY/YlP/XqZNAffqKDrdmSxTHEjS50Q13\n8SPvRktklDhR+ypGkvpRSnTDt86XYVo9hvy9+OowAjI91nWeB3uSuyEoJqNv\nrSjM\r\n=BBkz\r\n-----END PGP SIGNATURE-----\r\n"}},"2.12.1":{"name":"node-red-dashboard","version":"2.12.1","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"~2.2.5","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-EnPxQSzNYFudtZfIgOr1a1LM8HTP0DaBLw1Z22YOYTG9VoNkCU754dZbC+WdsheuJLON7IuBoNalSjQI6XEwOA==","shasum":"bbfb9044cb564b9fa08a6eafca511c872c63fed9","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.12.1.tgz","fileCount":100,"unpackedSize":3127116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDAevCRA9TVsSAnZWagAAcL4P/3w/PBABGedGwDr9CumU\niiJdoxV8PECsMfdT14/+NTKZUMJ7iJ9fR7Rpx3F1wxOx2QFwtFIQjexHoCc6\nCc9//EXvKZHcjT3JxzO6psVKegTYgjp4jASlWZu2IIqoy6S6nltrqaOP+mUY\nminjk5DaaRV2C5JSElR+8/DXRVlbx41WAKr6SfqE5muX2IzEWU2TMafhF5BD\nkUxITWfqzHhnPiYvapvcpdQNCf8idJm19S7LHuwNUhJx6miP2i1+HQKQx2b9\nri6AgVGEYtZ3GJSp7oxg7SdSNuS2gLtAV8xY3qgSjmXmhBGaMZJ5jIExL15Q\nqkNeHEaHJbschSVBB8DACmkVA9dTQBlKMxWU10p8VqOX+pgYfIFe6KTCFfEC\nZR1NiMTwSkKka6bpzdMJOxT1uveyzMw+Vfob62Pvof1pIplPA7ULlbcrhieG\nnWFThVHK8juuQ9OJufuvjpVyHwZplr3dW23Xx9Yb7plKlkYUiyQx+8n/+tmD\n4VoMrcoKzcfnVKTKxpqz4L77lJTTmjlspzXclZVN5KA6qs3UvKlbmRBedJaq\nqbxz0OpKtzUOtiLdvihEqZgXwlmtz0pDVRmCZwyRjbBCV7EJOCFy5ltoY+40\nn4NYiHiZrIeYyMVo5ujTJDgOZxmxT72Aqmn77klLgxXM4PogdE/5LyBt1yoM\ntWQT\r\n=yFhC\r\n-----END PGP SIGNATURE-----\r\n"}},"2.12.2":{"name":"node-red-dashboard","version":"2.12.2","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"~2.2.5","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.5","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.6","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.22.2","sprintf-js":"^1.0.3","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-bxBuqOBjsZJwgsG9+9/VqYRFmEubuyi9W6rgE0ZrvW8IKJuMQcs0mubCJAAqr/qyXh0gMpjTn8tegPqSbx+L+A==","shasum":"80380984e7930f76508990cbd9364e8b1d5827e7","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.12.2.tgz","fileCount":100,"unpackedSize":3127321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDpYvCRA9TVsSAnZWagAAyCcP/RFwf0Z+j5DRUZKK1sOZ\nRcOsa87RE6RhqffG22EyNIfwc0V9cT1ZZAUIYSN2YErbUvDCu5RO9szG9pXF\n6JSSMRj0zhAy1dVwCOmCdQALFboRnId5qOUlOdmh5Lj+PINFdc75fcOILKAs\ntWgdho4We5RwcB8M0paxsrG269Ksx3FNhKcn2YtXxUhXXysfw7pNk3BifzSE\nV/XWvdnn2cYQTP0PpPKYeXb9vNNkQDEmA1D8ZOYgvr7a2fHlMQBLeAg+G1k8\nS6NHNCQV2hT7tG4bXVMq5MO+q3opoZ0d2U6esXb9F41i35zIIY4RwihR/OhY\nJ5LE2+8U1WTe+9OiojOKZC3vTzscEpjPw+2Yo58yLlDxoHKMozh2GpY53nNy\nJ+/KbsyAdT2EiRLaFgd5aseexNSYyhCTmhh0vpZF7DM2ZHgCMWJ+n3OINaos\nnjMywySiOz7ZQ/zkOs+szABEOoJNSW6CdupQIj9RoEztYzEUavjAb/gKjyWp\n5NyYZt5YI9OYk77SXhmuzDcyYs9s2RlPj63aylAtQZFtlzZmqpdLJRWXblYd\ncPSOzZvcevxNkETyVacy0M7w4hez4zZi0Rw6aKXoO+O+IRhiH6L99De1eBZ/\nfQaSBj8Z/xaozE6w66u27N9JhMg7V8EaxrSNPotb25dMqyltxjnHtTkER2y7\nsdfZ\r\n=ZZqn\r\n-----END PGP SIGNATURE-----\r\n"}},"2.13.0":{"name":"node-red-dashboard","version":"2.13.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.5.11","angular-animate":"~1.5.11","angular-aria":"~1.5.11","angular-chart.js":"^1.1.1","angular-material":"~1.1.10","angular-material-icons":"^0.7.1","angular-messages":"~1.5.11","angular-mocks":"~1.5.11","angular-route":"~1.5.11","angular-sanitize":"~1.5.11","angular-touch":"~1.5.11","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~3.9.1","gulp-angular-templatecache":"~2.2.6","gulp-clean-css":"^3.10.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^4.0.0","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^0.6.1","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.7","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.23.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-rB0BGK8CVYJ2v0AkNXO4utqxXYDgiGRFOQ986Kg6OnOV2sChfxmkI5u6t+5dTa+COQdTvJuZvudTXUD6PI02xg==","shasum":"3ea519a5b4a65f979b6fa17a7c6053edaf57fd24","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.13.0.tgz","fileCount":100,"unpackedSize":3137154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHkcaCRA9TVsSAnZWagAAMOEP/jLgJzD2Vnpzw7vt+QG+\npI3cP5rVRP7w8oTuoEsi1zMOzw+BXYrp6d1pKdrc4MiXg6yrryRC6JAdlBbI\nHzA8QkGglmg0L76grbEtS2C+k7Mx6PrJ7ep6G0AOvmPqS4OBM3ocFFqmwHDU\nfd6zBPNBNDhKilJ4OhixtVuKpL2gLiMPxg7danbqLLYjC800sMnnbhv0Y+lR\nPBeDtJ+eJtyUyWUsAjSl2V4GMzzNoTZOXof1n03bZo6bhRqTuF4m8hkMRYXu\nmjGHudugjY9kQUmMZWlTBCeBlo5s4+n3RIhCiFxuJJWy5eYiG34KCOW4Uel8\nYk/t/PEzEre5MC+gF0CzUcvDjqa56dTpUQnjkSGbRaL8V/eCRFIUdPwuxYdC\n3dBXWrkaSdgJ93bPKSi7M2l6TVIwvr3U1wSspQyY/JRCbBPlm17pmKKahkPn\n+syKc7ibvbolWSMDKpuV7myRr0DygssjH7Rgh48i+VTamGSmN6GCj/eBTGsx\nr00t+Sn1YJ93FiYPmfsuG2NY+9VqYu2hjJLs34fPCv/bUXWMDiAGj4rEGS+3\nvGcYf2NMarkXwRnuCYbCdkUOvInKZXP40opw0McrFghQu6eXGzYcLGIDcLSL\nzk6jKi81Kfe+2maegEyizx8tWwuP9yG/pexXLYN2aCdOpyAW6ESvXlb5cImE\nmt+4\r\n=k+o2\r\n-----END PGP SIGNATURE-----\r\n"}},"2.13.1":{"name":"node-red-dashboard","version":"2.13.1","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.6","angular-animate":"~1.7.6","angular-aria":"~1.7.6","angular-chart.js":"^1.1.1","angular-material":"~1.1.12","angular-material-icons":"^0.7.1","angular-messages":"~1.7.6","angular-mocks":"~1.7.6","angular-route":"~1.7.6","angular-sanitize":"~1.7.6","angular-touch":"~1.7.6","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~2.2.6","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^1.0.0","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.7","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.23.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-Zt7rcVhWqODp85zIeKigMoglGE1J2oAOrFyf1F+56UdheQ8bjvEjnHd3UBlTXRU54UWGt43hIKR7TlQkeLJyxA==","shasum":"d18a890ab4ac8ffe7f8498107b73102ccf94db98","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.13.1.tgz","fileCount":100,"unpackedSize":3085128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcT16pCRA9TVsSAnZWagAAlZMP/jNx95TJUtFVvYx4Ocd3\nOw6CFG1/iR+CSxQmP3nta8oPS0Z2F4/jTtTbSB6QHdYNNCcnv0J1IiSff1Vk\neCHlD/g55t6GB5dCYBs+zT8YPK3X0OCeLkBPL7j/y1k3OzmOYIaOG4x9h4ZM\nt8BRHMHM2MvH35ZZTMKXtxO1FHEtlg0PNbXnCSSJBtA4j+heDXZ2R/xPgFdD\nbPRermsFP8mNFEY7YiF33BLHCvQyLSRdcXBtjaqrIG/KR2Jhqpt7DAmdPSU9\nDnRWbZv1uWhsDHk+8NwGdRNsk+36/tbyNEtUPu5T1LwfkPLaPXzVorHEMPFB\nfFzaamjWGjO+522PEx1LaQvKukdCB0VHS4oUep82yNVLOmMuuaEEyHJLVPc6\nBxaUTymZE3EvIKwbAl27ItgyW3GYXzPrFikWwmKfFhayVPtuL/5CqkocUJsl\n3waPXkXNIKUbPRIkcABlT5E9soboJPOFDbyitYNtkyKlYXsz91hcxW732UGN\nqgYIFdLQevrSfl7d4kdZFE9ozgI9j7rVltNVJ37sGwVMwRwEnHf0n3vEshWk\nlQTW2VgJgU57nBn8lozpyYc2PRc6g6FSZuKjOL7EMgYkGrUbexnLb55wzgf/\n1nKpwyzW6Y4W+7C83EZgWGsntbr+GLE6hJj/2dP0qSAKSQhd3Z09bzOb7y5A\n6MXL\r\n=29k/\r\n-----END PGP SIGNATURE-----\r\n"}},"2.13.2":{"name":"node-red-dashboard","version":"2.13.2","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.6","angular-animate":"~1.7.6","angular-aria":"~1.7.6","angular-chart.js":"^1.1.1","angular-material":"~1.1.12","angular-material-icons":"^0.7.1","angular-messages":"~1.7.6","angular-mocks":"~1.7.6","angular-route":"~1.7.6","angular-sanitize":"~1.7.6","angular-touch":"~1.7.6","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~2.2.6","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^1.0.0","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.7","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.23.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-/XgYjhddRTy+qpqo9WCURZBeKD0+kz3V0wK+2xfuqGTYB+yiR0Zzj8E1ifnr7iGyWRVEnu20di10f2qAaGWdqQ==","shasum":"51453c8f76ae5c488118a59540da9e4acd7d105c","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.13.2.tgz","fileCount":100,"unpackedSize":3085100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUEebCRA9TVsSAnZWagAAiv4P+wS1Id/HWzu4hgBDMRgC\nlybpbzSDOvc5IkCePXZ6UIHLDzMEuAfc+JK2D042EM7dT4y71om69qQUViML\nvdYWZ8H83kcchKgCmh8tFbapr4bTAPgsBanxzgiy9fC14NV5NPcwu9LhMLTP\nAckmtJmNABTMVJhgg7MMCsEQWJ781f4SUNCM9N3ArBB+hvDmpNh+/ubDQDKq\nxkyekz9WcP/I9kR28Sf34/+GURB16c+HtwsKooGMRT3uug0pY1LzrqTujSob\ncvSIjdGd/XVO6huLv5ArqF9JX2q7soeWI7YUIkLE3GBCz/stFLcBaOQY2KCX\nvdkEk1zbkGYVo6zgOhf8S3SWVNqKnHKZo930/gYrEinJDrOWRfZNbxpOoGPx\nymjRSf/KLSyvCFa6LGE8vFt+2azCd+OTnret6yRfdp8IBmqzsDz9dEVQ1x8I\nZyuuS1v2Ny441NMsUa8tWUXOpfTVB1NAN3GVmzZEoqhaqX3KZtSWbhzMKYDu\n4S8LOgmfGJpYaxVdwHHM+bSSWbP+EnbA4Wlri1TU/RyF7JoZFjD+Dh0KDYMx\nnJdKtKntmKZe7U2Q4p0Qmto9SB8aD4g3tA2iY/mmATK6irtt4AUe0oTyjyys\nS9fGzCId5ueZipratRH3fyU14uj6YG9wlNIQD7uDZGQZa+Kb2ReyyNmvkl8A\nGz7m\r\n=4xR1\r\n-----END PGP SIGNATURE-----\r\n"}},"2.14.0":{"name":"node-red-dashboard","version":"2.14.0","dependencies":{"serve-static":"~1.13.2","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.7","angular-animate":"~1.7.7","angular-aria":"~1.7.7","angular-chart.js":"^1.1.1","angular-material":"~1.1.12","angular-material-icons":"^0.7.1","angular-messages":"~1.7.7","angular-mocks":"~1.7.7","angular-route":"~1.7.7","angular-sanitize":"~1.7.7","angular-touch":"~1.7.7","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~2.2.6","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-insert-lines":"0.0.4","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-remove-html":"^1.3.0","gulp-replace":"^1.0.0","gulp-resources":"^0.5.0","gulp-uglify":"~3.0.1","gulp-util":"^3.0.8","jquery":"^3.3.1","jshint":"^2.9.7","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.0.0"},"dist":{"integrity":"sha512-+qbD38+Y/AGRSuZk+0P1Efd92HFVqs29eqn19tZ6SVhbvJcAHvJ5/7OfmugzTazblS9FeCXuJgwIUltk5hA7PQ==","shasum":"ae14263057a5b968d57ccec85674eb1b1e1ee168","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.14.0.tgz","fileCount":100,"unpackedSize":3095341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcd9OqCRA9TVsSAnZWagAAyyoP/ihpqYQnK9JKy+VU6Lys\nPwoE1ZcRHVHJY21p6YDNhvWDV6pCtoQJeUhlhleIsEbxksbQwpbHcg43P8WX\ngFDixDhdUBfGWZM5l10bBs73OR0jkvD18gJCpOmiKqz3aTgV76rNyEn5WND4\n8fZmdI4Aim6i5ciXfw4GXiSju7vEbly5YqjypOTSz+89OArhCAbvGWp9lRbs\naraUQbxIlGSCUFuTKcTrB0EZDnLWTsNa99XB9hfDBPxL0FznSz1W+yLPXSGB\nJUdzKxnwFqUOIUIYwrB7lMR0/4F5mfyX14VuvlS6lhLXZrjH0KkgYmcbfIqu\nqHdqraFQZ15C5HuAiGOjNuE/MF+fzFDgKkx12urwOcN0UEWGQ/YURimEYAed\n74L4rV7pEcr1EXH3WZIlchkgAuv6b4JCA5C87tgGYRkKSNlZ55hEkyYG1hDL\nJj0qlumqo7EI84bIKWpNnrAEgBOJN1N6DrJdC+Sek2k1dxDFkUyu7AAYhAVT\naXWsrltvpYP6JU2IfdvEZ8seuQyPiAHl+SivRXRYls1vqj2saqrXZC0wl3ES\nJ1fjSgOdUvFuxmE0+K5lQvlN/i83FPq7U5CgRc3u6MsFzWZ7fdjj/NS48SlN\nP6Gz/k6AZ+VsVn4AD0BEiRv8Fv59TO0mvpKQzeHSnT9rLWDdue1ApBmY+qRo\nfomy\r\n=gAXC\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.0":{"name":"node-red-dashboard","version":"2.15.0","dependencies":{"serve-static":"~1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.13","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-zNj4yHJtk06M+uwEIpOAAEuBHJnnBulLMKnm7M/4Rf3fbLxZOXVEuse+qJIWu7JLA5BRRI6AbqcYP9eyqJNpSw==","shasum":"bb7f9dfa429ca47f86fe4f451de5e7a2953dccfb","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.0.tgz","fileCount":100,"unpackedSize":3116148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2eAzCRA9TVsSAnZWagAAZgIP/A/ZA2JSXc1k3Hvmjxn9\n/NkxnwZBb1rBXaEPzrRtTUO/nD5oPjDDS1YKBwIOi7zvwuoXyfWrOl6qwR5L\nLp24dST0oTNG7zUl52GhusKNK9RiZ28Z4GtUfDlcjfQR0pnUZquo51SRUA+J\nqj+omPVSklqgUo9gHOlrjE5gp+t+QeOmjr9C+lzELQZwPOCgebs8eKJJc71Y\nzRcUjVcOMG4dGZmgDEajtwszu+qgWs2XTIfznZawL6EK8liUdbMxB8m0uy9O\nVvkYcQ3PrHFdzzFDEQZr8ACfXc3LN6vtiEXM1LrMgkN7RNkMpoZxguQxPEMO\nfphaRU74IC5F5zMIhPVPetDXfbIZjD4PqeWBuzxg6uc0fEK/ZnMdCP9r005/\nBf+OjZi2pYKMnO9xzoxVxsw94Up0vr0BEMwfQpzjU0Pn3jop1NM1pa+vnK9j\n2cMJTpIq12kZw2iFASoXW+RpcLvtyRxNKCY0jfvsza6Yb8lZqfmIW/sZhcfe\nESzDGB0E19V/oqKK+CUkS8IU9b+ymDxQT5U6v8ChgBvs1SS+3N/qptdHB4Iv\n62VzfMpkC8Ms58UxEBkDYVPFiT4c1sFFHfsyR2eEcE6pDjE4ueHaLHIBBl3l\n1h0O83SmFTX3X8cowiP3YrQ3y0ghHWCQtc8X4Ij8eXue7epScCLKrh/Kf6vq\ndfMp\r\n=rCdz\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.1":{"name":"node-red-dashboard","version":"2.15.1","dependencies":{"serve-static":"~1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.13","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-NFiwSh+fKBvLgAZzveWzTEDTTbc9mYd/DNEjh8hDAXv+4unIS95Qg8D8lkTg1KACqXr8tzwKJwdhk9LK7W0Z/Q==","shasum":"3d805d43e5528dbd9d655e6116a4f0b8172a1ac0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.1.tgz","fileCount":100,"unpackedSize":3116166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2pMQCRA9TVsSAnZWagAA6p0QAIoR8WGImcAtkurbJfgC\nc9bqS5jKZ/3HmWAeMrdgMudUPdh8YRcVBS2dya9X0V+LWVxIHioEDhTxjGxA\nkwLGoT0Nv8OLChwtdwQudssE7SBJG7oytJ5CYgz4TrKE8xoVSpeRwtEVYmzX\nZXZwP/HfzeGT92d9FVr7U7om/bg2yIqjlY9PKCDEOCtl0RF5D08Fq5UnzAc7\n3omgTHqXeH7jbJwdFjC5i1mplLPOr2swur9IZMGzjrcrUpr+KpLhVllCgSpI\nelCryDyXN/cyRaASzN04nX65Lmj/vn72WvKSWpf393WcKcQdAOcKtpT8/x0G\nVi611vfK0fbj63u0987gYxGFyLw7J+Ziq035rXWSJCugVtyeJLuxNqg4wucR\n1Za/Tiqp2EaHgHwvIgZtaiAY2/wVdUgvJ+ZQR3UHpe68N/s5g4BGcVHzbx6k\nzN4bLy8TzfQbSmpn2Ayo2piEHMcH7VCnIAjbze5tM4WsR/aANIubg8S3cyme\nIUjj2HXHnk34usIAZ9pXJSnEnwqpIVQi+stKShprkX1w1DVRRHuxTsVhDnNN\nmr2k6cwSQBPA5B4kZCNrh1+lu96wSgqRhkXXe3o61i42icCW8eUZh0MKFzPA\nB9RAoTN/cGrWPvvkD6pNuyb8/Q0HL27w9W5qoReIrqdEdiDEhPDFFbrvM4eg\nZ+Xi\r\n=Dg9U\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.2":{"name":"node-red-dashboard","version":"2.15.2","dependencies":{"serve-static":"~1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.13","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-/IZWMe/Ao70D1xFaNnu9NKFnqNm6wKppoBeCObI1K/cezMq4to9euMTjD+szSKATNSJaG3gWauV55FdmXjIDRw==","shasum":"00628b6ca4cfcaba0c49a35e91457e53db55e347","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.2.tgz","fileCount":100,"unpackedSize":3117432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3DG6CRA9TVsSAnZWagAAYLUP/i0hiPg3eMFDe5SY0Bu9\nkMko3cZH1JqobXpxqHsed1seo9YHRc8a33w/KLT4qMgQD+C2WkHnsjf6N9Ag\nAWwVznvGK9JQVRsLVmVhPm562/yL1kB6gRS4/CPjq7gErDumvC7rlFxHbefz\nu9/DMZeDfuxWUTREKq3hqBwUuOqjkGvn+QSll2YBD51EPsyG84Ysundr6RtB\nB90ESQO/oBBAQeuanaMIyMXRrO1vdj9VpsIy6rJeqqH8frAQJ6o2EM3MUiiR\nqo7M+btna55nd0ezXZXCBkKoNksg+Ddd/pKlpWiN9l8RG9TYI6A6Xft8UEIc\nnRNpsAZ9PXUctiObEBqWedpsZ+mnMNVdA8qPSCPsKrnLbFAHzPh770KA/mAZ\nwBVk0bYWtgZwjnFQaV4u+DcG4L/1RMvocECbO+hqozDOAY9ufQJUn3RIK0At\nLqG6pz5IqQu2fQs5Y8vquXU6uRnVjdKkdqDL2J8AmOPC6/Zjl6YKSNA6PhfF\nZbSDoQWt/KauOOx4oA7V4nM88iZBpEsmeJH6XkwOlphA1xHZk6QPmJtppw02\nBbCRWEKljswod8AzBVYoWkocHUuZsw7l8KpKsOxGvmiCBpRSC6IquuUgRFVX\nx4GWmOIseB3HL1PADu3wTv3wNZFixatiVnpl28bd1OlSIgMdQuC3DIWR9uIf\nhSFo\r\n=a6mN\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.3":{"name":"node-red-dashboard","version":"2.15.3","dependencies":{"serve-static":"~1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.13","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-4NvRTjj1aFJLAGSHde/DjTJ2MHeqFaVnlBklZ48q6ahvA8lQB6aZhIKdSsLpBGOd7lJkkAClJeXcwiJYiVBvmQ==","shasum":"043d25b2761f5815efc1566fa311c8080b4d1963","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.3.tgz","fileCount":100,"unpackedSize":3121899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6r5VCRA9TVsSAnZWagAA2KcP/0qxS9AqU4sVyBOVuCo6\nfXw4vYZCR7+R89RvxzuyH9aogiNskPD5N7MzyGK9PDPAetM81adTqwboBeHF\niN5+z0dmnJxST1E4YfD75LdOQzhHr4Jc9Np+20xtl2S5km0lnECJbF4p2QCJ\n01f1VUH3/1DEqIoqrA36oMKuoA+pPRRbOL3B4klFQLNqRlDpYphzGJGAemdV\n8I4Yq7qXqZ45M4kHlaPluwxpn1xONwvmrkx2XcdMkyjrpuYS/ctiut5eF/qm\nZ9ZI3aywcyhmjvXQApUNrSITmGikGE8VJMVgjlvSe6zECIE9EynkUtJBVkFb\nBvhI0lc2Xyw0i8q5ZN0tj5pMM03wt0dBX1SV2tJ8cyVuFoi4Zp/Aq/hiSBHW\n7ZUZdv1RLpQHTqrmv46fPR9POTisALp36bAJYys9tuhM9nm9OHpmKLzi1Y3N\nBRoNRxMTctSSIhvHxO64LfKlLLKrAXft2nkMQIOsg/L46NWQzzjglKyEjsOF\n0wi/62LLeNTx8Wyf5EStqZ0Q5R6q4liAT/vHDwu4QKsEbxC5G1OJeqmixnW4\n2HUtnrvxbS7/PmT6yn6lCo1tuoZh00LAEuYqk5Q5OspmoRi5JkUGwbGeoTJG\nfOryyNuf0Y8G8+eW5AaiHghN1BzQONsKNKuQuMl25M3mnnivYOswhMnRcHGw\nm5I5\r\n=n6cv\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.4":{"name":"node-red-dashboard","version":"2.15.4","dependencies":{"serve-static":"~1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.13","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-0bBX6sH9Q2jUlfCvNiRTOaeoMnCJz6Kr7/DTOYLdoQt5iCAXwu2qBmDJrVzhyVjWxccs6I/KLdiAuM0GeTVc/A==","shasum":"a4ecc548fe7168a25cf645cd9f9cbef34915842b","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.4.tgz","fileCount":100,"unpackedSize":3123723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc78HECRA9TVsSAnZWagAAB+8P/iTCl+kQqPquagUnod7/\n28MrKo1J6acqImWlUOW4ojEk50Okip1Bbso7bj7oIwEzDgXTwsloCagMWs6o\nbozpGDmUGzYUMzz473jBVa5lMqoxQr5kcL1hU7Ewb4l2EKnEED+3AOFY63RW\niCSmL28cvgTA4MZ2q/3zbUPHKF5akqKVfu18QVwTTe4y7l0cVEz8wPQ/q3zT\n0YfvD7tL3ALxqUJS2PeC4UICeJigNbCjxeJPJGPqkD0W00Q0cFJ7iGT6gJ2T\nSnuLnaix5OqH8S1YyuY/WetaXl5WLsiIRL6sfQpODOjyClsr/DEG4p+KuDXT\nVA8bH59QpjPEKCQVaPfgsR0r5bROJJyJ9v6Z+drGUlc9sUcubGlzecxCx9Tj\nkvOS3g6fS47/OiYq78GxIVYGtwrrJXGC5FJrWbD7orEgI1IIpas14qgY9IkW\n42iUEO2elr5gMRHxrC9hFndk8aaV5krfXyN3XYDcD1EfpO6foOeig/Pi76H3\nAEjoS1/SMY+7k8tl/wL18vPR2zj1EgPF+fKtvrznlE0Ktz+a6mI0x6WIAZ6Y\nhZh8pT/kUKH0yeuQdLo+moHgyixxALRSRWVDgc3goqaPNUHyFgESJqgGBNZ/\nfuUqBLlYXpYE/rq5oRGSllXBOHVz0trBwVJ1z9k+7H7+Urmh6qD+S0DuLyu7\nETyT\r\n=5yA5\r\n-----END PGP SIGNATURE-----\r\n"}},"2.15.5":{"name":"node-red-dashboard","version":"2.15.5","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.19","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.7","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-replace":"^1.0.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"^1.2.2","less":"~3.9.0","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-q1SW86sk74UZaaccJo6EjVoplvgQy3XLkHGziriwNjOmq2APEm5FIm6NqOFJpQAU35v3wsLObwbK9xNo8TVNSQ==","shasum":"08d9f2067a3186ba88186611baf69db74cd5dcc9","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.15.5.tgz","fileCount":100,"unpackedSize":3141612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdERbrCRA9TVsSAnZWagAAtSIQAIdz0maKut70eA1odPS/\n5LKg7eK9PX3cgMn4VWKwriqsYacZRyJs3f2lTOVEtqP8W64RAONYuRTbAfEU\n15tjJW4BynNg5QBvvupx22bA4pGXVes5QtFwGatrEuNOVh2QIR+T3IhNZFJk\ncPy4Nzga34J9I0040YtMI5g3RXnDkMtCfB3fHXI0JClg23AVkad3Aiw7q3nS\nHsIHTysT89HCXknw36BRz6yZnC/EWjIipAxzWpIy+vu5krseFZZBGXmH/6yS\nZRwDsB7csPL5e67WfSWcSXh/X7565x/EJGrGqNEg8WdbICTeUeMvdi4OdfPZ\nrjKxIl9OuiLt2Gs8m6WaSBR/KNnw9tMzetJyL/TbhvGHuJaa9EhGx8jnbhFo\nMV+/cVy5rHCp7TjJHpwzjZxRqZMwZJYoZgxvHLZAlifxSJYqS7cQxepu4pga\naULikx2Q63iTRpaIp4XntAos0Ohfv1WJhZLbVswSRri4Awiap95azu5Sr+9E\nIyVlH/PAiiAhgQXztAg/ozWn9+z38GE53lPoozehQ/axoIFwqQRxVGlivYsu\nAcqetS4z7FXQeEoKYL75hUB5yQoTTF3D/Vjl0MigDZSQNO+sZrs7MaEy2PwI\n1kJqln2ttos3B8qlbfq5mCzWuhIf+AxoLTa/Bdvz5EqOZjeLQDTJ48LvlDTK\nOeqz\r\n=uJGW\r\n-----END PGP SIGNATURE-----\r\n"}},"2.16.0":{"name":"node-red-dashboard","version":"2.16.0","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"~1.2.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-S2vRDdZDTG56/Ftq450OoEpfSuqdIFs8vOIzvWZcQ9+G9+5WMz9CgYnTCW6NtVZRYrHE1UtJ4GxnMdYBQXPdEw==","shasum":"6c287cfe7b420e513b97b21b1c2f1c0da4706366","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.16.0.tgz","fileCount":105,"unpackedSize":3498188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVprvCRA9TVsSAnZWagAAkF0P/0lXNyuO/cIYW/FCbP+X\nZWBRG5UvpvbDp4YcVXuyzyOq+BHfveXo4uGC+wKod685hJODYctnqoVTKttp\nB+5ed4BgKUQUOaWZmTgnJO450NFWZ458NyANmFC/Quq2X1jeHakh5Js4Oe8W\nTa6mkaGyqnBRKSLXu6LMwDpKkvockbFp79yAokrkhZ+jmjY2snUxxVeCZiWK\nkLW7+C2HJgD/UOPL+MY7BOySSU98PfcYi6xUp75TJ63Ff5Wf+0DFdXVhSLCC\nrq53KjNcWgy+6VCFlWZdeOpyG9qMD9iRkRajN8oRw7ZvkpYT6gpbNEcQMfYh\nDuheIe9QmvcchgrCXOnxKqdiD6Wr4zNbryeMI3DehgqN6tWC6G6EmU7kna8j\n56lfo1ikcyjnMdHcolxPq89B75SezHmF/jult0bLEIOuGXA1IfgZdYMasCYM\neA8ifQnj1kBBP3bKiI8ku3JlN+xltnczvqnzucBmUj1HBkOfNfDjTCDBb3+8\nJusTpK1dt7V5NIh9BB34hJUsLSJX8Ame1/B50cXodTu9O158EtSyU54gemVI\na8PVrLUwdE59AAscLHdK6TsdH8yzfMJ7vEB/ngE846AL3JuXdsf3VImhm1v6\nGFGUwWPik8MDGS+SSB3LpZMm4wEzu8Mdnk+jrISrjqbK2vN31c5Fb7Ojum81\nGiV4\r\n=4QLi\r\n-----END PGP SIGNATURE-----\r\n"}},"2.16.1":{"name":"node-red-dashboard","version":"2.16.1","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"~1.2.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-MmgA7/GSAHdHMsOfLxp1LLzUJYXCxYRGwCEIe31o4obGwdBYLgmgyS04ZFUn8SKRpkI6diHkmlzIKExBbYQINw==","shasum":"bcaf522bc0679e938f65dd121674d5fef06f876e","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.16.1.tgz","fileCount":105,"unpackedSize":3497896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXoAuCRA9TVsSAnZWagAAdW8P/3kYT3BvtU+ADc+tVj3c\nx29V4Lre06XHieHwC5K3XuoiX2ym54/g/luQHKBRtYkhHF/Uf4VoUbxjAmTH\njnIGOHfYyyJvv4UJ0+GbINK0L1RtgJGiACg/0d680gRwJNHprccWLeGtZHN3\n3UZhTU37AtyNMjR0uLPxSipbDfst16qTqWG5XJF392uMy1yil/FpUPU08k4d\nLuAiuupcA3bkd26fZjqw//ENW+NQO92osaeRLXPBxAsieEyYPtHGVQ98OZBB\nmv071j0XGWatjRB4UWe1fDWorZnzyEBT3mb5mgGkGOzqpCimWItyIB0qQK9a\nJlCZmHEMXx2/C92d0xE+IGThxS7b0KPRLh8jJW0LyPWAO4f34xzpmovfMKxk\nYGeg0ycHzseX5xLsjH/binGkTn3rCT5S682c1KxdjhVIZOoEwWP0as+YTNof\naV1bFxNYzt+B3BtAP9Z/WjB8yjoAu24FLNHmpZgO/skm0vhtH1Gy8dIzdR6+\nS+9qu/MQ7u+23VVlo+/a7AsEBCQTK7lSRZV1t4UJt+lDXjX9wjwf5uuXHMXC\nb64elkh5LA2wh57qJL3ibyw3v5Ji1hS4OILogpc+sJZ96GVt/lEy5HavJZ4x\nJ/+H7Wm88RPhGbmFv43Fbyg5KS+U7oAc9SbK+6XK3ppsPo7IM0sh1xhueDkZ\n/Hb2\r\n=G/uF\r\n-----END PGP SIGNATURE-----\r\n"}},"2.16.2":{"name":"node-red-dashboard","version":"2.16.2","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"~1.2.2","less":"~3.10.3","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-4CyMqrFOmfQG2ABX+VubjB71yHXmYHaBsdUX/uDrK+mGnCVjuQ8ZCWNufS3F7gk7DxEXKFYL25G0EpjkdQ9Z3w==","shasum":"cb8bca262e6dd598f354d2bab98c3ce5bd3dae59","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.16.2.tgz","fileCount":105,"unpackedSize":3486808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaOuaCRA9TVsSAnZWagAAM3YP/1z9HfFIGpvrSIVPEtT+\nn+FnRfhWVmJ02yecdpbfRj3scYqj7YHWZ3OLmCe94wHjIOKiSQgrPdmoQsUQ\nK8kOsZRFVgqMQzqhbLIP7WodxPd/3L9rjFSdywjk77qx8RMobVlmqXQjmXFc\niKhBCsIh4KzTcpHLTgYDziBgxVdq8wlpctpbWxxeZg2UxrgYdqlyTMIdiT8z\n+CUF/uP7EkGhwGcSf18vdEbLzexS0EChsiMwE7IWj1S2o/E02FTCwdOOB7gS\njT5yBiVG3wmgUvVmVAnMYcdO3iWztpDeG619Zf4W2xltAeNOEO2p4Sru4aX/\nrb44NZaiNRqrAEe7xHXH+EI/o6dMzovDeMh048H1/rQknl5WMElwz3aqBf/a\nZINbR4o8721ugk72goxjLkuPXFTQCthoMORVxhvUjIiasjcKt8dRHcO7Xl+i\nh5a100CgMSNrGpbiL7f9ypM2u+R5r8G1kjx+nt5NCY0RP+RskU39izuR7jjT\n4A8V4ell/gEC+VeVyo2trBsJT9/6Yj3MUcsx0/KBNkAs5O80owdeKXYSS94A\nMUV1XI0nF4yIsLRCQdHXFzKPrEK0HT8aFicvJkSK2dIns1p72l/rwmIETXds\nLVUyZzbw4WEojfC+KZCWvQGWaSAg3RPe5/gR5KZ6WpnV0S6awwjDLByybB5L\nuU8E\r\n=r+Ql\r\n-----END PGP SIGNATURE-----\r\n"}},"2.16.3":{"name":"node-red-dashboard","version":"2.16.3","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"~1.2.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-b+9+YMZy22FE0kNGs4zVUAuRlzTjq5qpH47SoI6t1pmv1QO9thyXwxlIm5kx9DOe5/t8g8pIWBXbfEHFK7AmCw==","shasum":"0ffd21a1d56b035533d6d8370f8b06e08300e17e","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.16.3.tgz","fileCount":105,"unpackedSize":3500797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf7X8CRA9TVsSAnZWagAArBcP/RP7MLQhT/j2bKT/nA5W\nGOMsti6EgvZq8jQ8hIAGM8z38aPLdP5zUKDaGsVQkG4BEOI/MaYn6PJSXOsL\nCW4ew7aHZGiRHWU1nvtHpC6LTgVNCQO0uxNEMR6xWoQtAkXDXkE9Y7s8OLWh\nnEOn2zYxh1ZaNDGuGZ8p0aL3cPVoHVNbcaR1NhRcOSj1+jTUs+hrTz0KTyJ7\nz889ZFvjqUCcmlHd0aarDp7rFup/6EkeGO60K1lMZVKa1ZqNbZnhub0px7tr\n0Qc+I7B75p2Y2kpEyH5bxiTav4717aBsN+g+sFhMcJF/idEwuHFsuKsvBmwh\nUjbfwo1FdWetdGJ/iXAGuwUtw7xVdTPRqDUfqU+PpZjmHBScmaoEAMTn9Xp2\n0fQgsFZVskS9zO9GQZP/7Xdt+dHHL0V6g2VkWGKqUQGPggY9ctKTE3TyAtLC\nqR/TjZfdbvmO6j0xS5s6tbENCaZhAO7S/r1aVxP4roLVkohnDDN0QC3C2OoP\nAqvWzdffqNO07c21bYsLJsIk0q94tCFpFAT57TgBorry6+8OQLZLi39lufdy\nKC0o9E55omXCvd73gDt5JCx0F73OAeWFHg9t9qSOEmnkljaHodngudIDKGA0\nly1dep7QNq7a7jNcyJgyP5z87l5xN1betS/fgHDxAp0xAGdHcZRLEXrzczFN\n8Otc\r\n=ZxCm\r\n-----END PGP SIGNATURE-----\r\n"}},"2.17.0":{"name":"node-red-dashboard","version":"2.17.0","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"~1.2.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-Et2gvAw0Xgb3TeptR1oO4a/88hXlFUku2Vu3aYVb+aH5/I9KKDWu1bHAwxVnqBkd1y/Wvxpbf/w8gE4XTWlp4g==","shasum":"1803433898a8d9a82ca1694a68457c9c17955a8d","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.17.0.tgz","fileCount":105,"unpackedSize":3501827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdllqyCRA9TVsSAnZWagAA7qwP/2i+IrklMdGAOww8m+is\nmpLGofCN/WjyiYD8eh2YVaA+kMPvfYAKQT3QZfxvRojZV3TdZTR88RI0HZtQ\n5rIJlhHvEgOY8/aRAJPC2/OOY//L061esYVwVdV6mQFS7H8ueHwpafWvR4D9\n06skGQvD26KU9+hwJ/VT3STigRs3t5Z62Qoe1Pn4rfZpUUC34hdk02mOm8UH\nfUK/Uqvm4a4ndQCkFKimhs85YdxtH1xmzseFCfKyV1frgqXUA6PpWTlmr5Ej\njLJmMM6ey5WtoETl9LvNUfA6eNqvgIwWeOYSBxyUEL5bFR1MT5KdSXFm2RS0\nfMYVHriISxhrNxXLKE7pqeOo5NumLu48RIEB3GTl8t3bKloyO5F8dyAYmddw\n8y8dqJfCjtaWQ2MxwUQ/llul5qt5WsPCmHUWA4/xukqu9td8/+7wcd6qQnSn\n/tGMrqakX0tLs4Q11LqjIJgWRZ5F8n0SVym8MFNfjsp0MqWupUYwGNjNXC0h\nm6yt1HrKnCttuPE3byhOPV6I0LlaGCdenxa3xrrw47P1CKVFoVIArYOhjh8m\neNZlhICSTxpMmg9c3mSpp05dqKwn6mF+pVulNNkLrdQoxyCa3tvTOSq7osPP\nJoQz2ulaO1HJ/SVw/Uo/Ajbj9uameKs5NNO/MvBe0jIlol1vRyE/H5KTirwx\nB7lH\r\n=ipHm\r\n-----END PGP SIGNATURE-----\r\n"}},"2.17.1":{"name":"node-red-dashboard","version":"2.17.1","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.2.0"},"devDependencies":{"angular":"~1.7.8","angular-animate":"~1.7.8","angular-aria":"~1.7.8","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.8","angular-mocks":"~1.7.8","angular-route":"~1.7.8","angular-sanitize":"~1.7.8","angular-touch":"~1.7.8","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"^3.9.1","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^2.0.2","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest":"^0.1.1","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.1","justgage":"1.2.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-Qffw6p2ZV10PMDNPFXvuC9CKUu+vv6MMiYcXRSG62yS+4qk11zvAODIW1XelOw9X1H9k7q9E4v0f1iWtfSjL+w==","shasum":"e029dcebb02efb0d1693fff3c8c7922213a623ad","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.17.1.tgz","fileCount":105,"unpackedSize":3503309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdndjuCRA9TVsSAnZWagAA2NcP/0ymXbDok08UNhuM3jXC\nt9B0HYBN1fIfWkJXDp0LkcdyvWW8Gyu087Dd80hWij41li16J7TGv/8JXVnG\nZBxXWqBJWq4U8dlYK9aKC17ETF8qaRsbLZ7y5JBqGDIUaCGqlDXM3Di95xNU\nA9x8+LHjrSiqlmQQL4xAxzTxB2y5DIriwiilFZLXCBOGY0bIpgYpABPgFtGq\nV/AVrsm20+CNDzZBZKlv35RDLOPni91kSzPaKaoxKri6xM2sEOj1uBG/BzzU\nIUZmfOXZWj0YLPg6EZl8dKZasbkm9zhVa1FpvshWx9VjyWxWi162PSLhxBSS\ndvD7ZcBzdGIJcblD4bMPxMcAAbQy50LZKf7DOV1jxSXF0WVRDuIaAKZq6V97\nrZVE3a3Yy1oN7wD61veGZeuUPsru4EJJqD9RY2PYYOe88ChwefsWj8wDKgip\nXOOQqeiYM5d3DW/cnYJ1r0Ujns2+KmsrO8zp9w/9D1SgKTTDzJDPaO+TS6CS\nciK0YdDyMMAe26hOFe+5/W7JMmHqjYtEUAPt+SaHu5GgqXIJ/cWHMYU1fuM/\nie9jS7hRdB3IyCzUgP0joYuM677VPwXUKar3xBlXgSLV4yNvcUouGyNlJHCM\nTdbrRWjaoRol4RCttmhlaStpMDU/cDslES+pqNQ+9e+WM+KySfvAwaRoSHT4\nI7Gb\r\n=giRR\r\n-----END PGP SIGNATURE-----\r\n"}},"2.18.0":{"name":"node-red-dashboard","version":"2.18.0","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"^1.3.2","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-GLfeKE+h6jRNTRv/DVUL88obC8cnHqOT38Sgw8Q8umqe5BD6pYTWX4VZJo/osmMjtquMTs78K0HhRBTRaRNGLg==","shasum":"56b3a59b42f0f1d0b28284e30cb9d733ba68db33","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.18.0.tgz","fileCount":105,"unpackedSize":3552578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2TfvCRA9TVsSAnZWagAApNQP/3lwrhR9klKSRP0lYhpM\n2D8zPIybdiyB53nbTcej9Zr8zgdfNS8qddu02o5512YLT88nXZyva3OgbSSt\njaXfx6Dn8sup2L2VCiWVH8gbBvL/GUXrTq0ncMVSaMlLJSI4qCgJku0s6fHg\nPgu64MM3ziL9SmLtgEo7IusuabVPMHJR2B/VYPsGVbZhUN5zqLTFYsDM+e7r\naIUACjQp9RQdf9ol2/hRmE2BwwhziyIYEUNHeZyLrrnWxCxkI/SkolOxiiCq\npiTJDXO3jOHogtrlcc0AgY77qaXzSnlXAUwpWTCE8c2Wx7rbZG3w/iFa0kcD\nHcpl3+LKb9T5KoehsC62nPuJD0LupMoR5MhVaRnrPYVxCv2SMcZ+vOJ7TlVF\nBVbYzUwFuj8/PyUsg32di7BWUccxEHvWRpu7/CWFXbaGmHCaGt+YiWaz6IGj\nyPco7NcBRIv2gYWgIcA9Y4oOO3MxKLhXhSZHpS3RW2p6ScPuTcUncthcr36u\nqQ1P4GpzVlAig7aaU1X5QFZfO8K8hCIJzFLevgumutsu9z7ZdmY4fLYcwRVP\nfJaWgGUPZR9n14KYeXwPjobnc5DpphXCpmClaZgPrg07eCbZgiXZErbyMaPc\n2zM0YrucU6OmKp/kqiBpZvTpFyoWo7ABaen0KUIDhJEL73DvtXvzPJf/LQz9\ny58r\r\n=mmAG\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.19.0":{"name":"node-red-dashboard","version":"2.19.0","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"~1.3.3","less":"~3.9.0","lodash":"^4.17.15","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0","webfontloader":"^1.6.28"},"dist":{"integrity":"sha512-gnhpCmcb4k1xfrZOt2MzVmEk5+K+A7zNYvraKJT7NVvYC+iEWkwDB3oGvzQEv5PGJxOASWNZ/ViITn/00eRjNw==","shasum":"c8a0aca0ac9ad73e7c5e0b1c38993c1f4bb4b3b2","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.19.0.tgz","fileCount":105,"unpackedSize":3554944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3jdlCRA9TVsSAnZWagAAZe0P/R8ofQAdnDexslLKC1xp\npB2ZIQveDw9au3HPDhWiaTEoCaNUDbAat6sZHd/aUNmSs/SW6RlPpUjG2bva\nl1uDX1/pbQAa9AXpQunmffSskJdErNQJ8twPWAgHes2YVd0RsLXbJ3O08AWw\nHL8kgz3fnKgvYptpOPYMpHmCsJvhb0gb2UisDrykpbO/AzJ23seRRtdUt4Q+\nf5JuOpQH8Zb2HfiVApHXdUsaqVWZP5zFSFRGu7zSig+5dF8nj7psd3b/dbKO\niu9eYnfGS2uFEZovJFIX7WydQqciWlJQ0aySEWZXWzziq9YfDqURaD7l9N93\ni9h6QYeaZrJ+XWNnjAfTyziUGclgR4lA1RgeGknGiaWHKS6yUjKEX8jpcgn+\ngbzEGWmWDj7uPH5S26iMwvO16gGQ8b6evUsPVfSrz5AUJ3nHZtPIVVvp5pUe\n3cN8+cPeSO/aVnQBHU6BtMC62fA1ptydGIQ24HPFwClKsxOcJTPWeCb2l2K0\nf4as41hJ9W+XmAjB/zv3QZbHxKLPp0EikdxjBM7zxNSsn6wextK+GDu4CzBK\n/adpEKlhUXTZqeDkXGoenWJd/yEihnsl9CuraRhPP2ZOHlkpkpGlubp3EV7N\nlWyYGkv4/2v57FhSpLj3n+fWh/PG6O9gyqLG9zqirwxzowtz9xfZPxEo22d3\n48zQ\r\n=VUVF\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.19.1":{"name":"node-red-dashboard","version":"2.19.1","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"~1.3.3","less":"~3.9.0","lodash":"^4.17.15","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-AS0gmyZtvCPt638gVWbXrwntMOhrH+pIwEnEhwPNIUE/t4SFZYtbyo0lLXA6Toi+oiadq/7ubAjI8Iy+bCFxeA==","shasum":"fc78af37c757cfe16b5d0b2532711a499d5dfb8d","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.19.1.tgz","fileCount":107,"unpackedSize":3761776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5uHOCRA9TVsSAnZWagAAuXcP/1TzV8E1OxtK1kqBfTFA\nErNDQn9erYivfxxjQxo8CaQPw4XqUh8Ym3W5F7LisPE7GtJmpW21acsYMsev\nW78ugomWqdxTO0tdx/REkB04Q0Oco1gfuFXVWPUmqTIKOBcd3yxavNwAEN+N\nW3Gwpm5KRa/V6FkVtBQvpSozQeOzRNaJ4YvwifezxwcYsAYKmXPMiD7vwyjN\nqmwJac/DisLkkoastxWR7C/Fi4gf0hP7xmWOXchT7j+1h9szr2G2k3RYlJf7\nYxPN3CuvkcLUTM5/Zyi22jYU4UcbBagNtvgS5MZIXbD8MfZi1i26WC6sDPyv\nUwjUR34+vPMteqSx4FYG0QLSfG00o/YIhl+ebXpQQv+IbW5S0HC/1tG+DbeQ\n0UgYSnEPRtctDuSKYHSdGYSY9879IGyv/61FLfqseAERR3imOWn9e8s6Lcne\n5hHMFOrjs0Waw1lGojgu3tQ+2Y8w32UgKrDqYFCL5PCyfWLk3h8mX+Wd2R/L\nT5Se6op9y2EmV2boyeEMBOmhW5RVjgFQnk/kMiwFqkIq/cvz/L+FtQ+34uK2\n9Evw34e4LkPoKXjFf98TFWrrQwxrs4dn/51WmgnHLWpESwXC8V7FmPyjudCG\n842aKg51fflqtR5KWacj3ZnaUw2p7syZbiftJIplMCUEXSzq7/+hRqzPdxYB\n64Eh\r\n=xp8b\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.19.2":{"name":"node-red-dashboard","version":"2.19.2","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"~1.3.3","less":"~3.9.0","lodash":"^4.17.15","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-LydbpWjTLbNbw2nyjU3iXaL824riInMi2eVPIXaMyOLhCju0Fv5dhxECet/Oef6bN/Xw2azVjEQOUz8u1OFOCg==","shasum":"51cf64987da7bdd246229f5a68baf6eadf971067","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.19.2.tgz","fileCount":107,"unpackedSize":3763538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6hg+CRA9TVsSAnZWagAAbmEP/1Snq6JE10X4A2mbI2c+\n8pDwxHhe8PKWUy+pQBmGU+/MeGPpSY7SGQy1fXdUl0x/6IR17IfT1ZIW74j7\nW9EkO1sxbFLC+xjHg8h+0Zm3fe/E/dmUK0BoDT71fyMhBnHwsDVK/Oapm+ge\nURgMDGjJh85Ho/uzttq24GARtO8jCzcnav0Y5DqZdCeLyS9Qa6xZVXG8R20I\n5kiLt35UyEyZB+K1eutUPwLVX03OgppfF6Bx+umBsd7XtflE4SydLhdNOoKv\nq5QLgYM8Fs5l7EkSHsm7QKsX5RYfP4tFQfm6ibmMOv+Y3vI/9CLiJ+tV138n\nQRE3muSmRQoUsi0Hj3LNnS/9DfYav1Rw1OkekRcpddvhX+vsB3MfKMJpyUq2\nmNtjz8lRCIE83BicB52sgdCxomH/TdTVG9TfLwCUkIPpn3+gaDaflZNCIihJ\n9EeB4PcuajXmW/jEU4WOoqVoERdNuxXpSVarPMCBxXHUL1O1soPk4OheerQS\nNPMgawbH/G1ZZMJ4rHy5Hjgr90P9GfvykGPlz0oBE9BxMNrv+vMQUP8TxfQF\nrWPBfYk0SkXlfGFV+kc0zKzu5HZkpeyjhN0ZCf0SJy3HodeYqVFM632T0nzY\n67m82LiyHWuTH52ChJjrkVG/crvPVEUagVDAA+TTkGQ8sJAlpYZ8Ttqdihkp\nIcU2\r\n=7u84\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.19.3":{"name":"node-red-dashboard","version":"2.19.3","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"~1.3.3","less":"~3.9.0","lodash":"^4.17.15","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-BXXjuiv36evZNYfzZRGvUeEJYKsD09PleHSkI2Yhs8GaO2DvKUJH+Dmnpqz7RSDZXkqiunoNk3K7iKce3wmuEw==","shasum":"58a822f332e877b6eb8ef455daf99f8e74f3abd4","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.19.3.tgz","fileCount":107,"unpackedSize":3764721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/hMJCRA9TVsSAnZWagAAT80P/jmNHukXV6g5LVqT4L1n\nscXWUZiQqicdiXhJLxkBRrGdKv7jxyFQphyjCSC3FSW0fuUNuPxWt4nBijvc\nibQ57MOrLed4hhZeht2XQRR9CRm82/XhHqoLfsNViRHFOZHWVIFLrpueD6VE\n+r+m3MWdd1hVMptAu+YRC5j1uddNmNOk8bytxuTdpMm3XoSHxPCy6XSQIHgc\nw/FfHFGsAMHfggHXHGUyq0YBhl7xbtF7LpN4qnt+E9Rt4clec+bF85scDYpR\n2sEFYWpMImViRyo3vtackNuDu9mxMt2QsM226ZLKzdcFOyCnqf8ngJnktaW4\nEsW6jaGXu55aUBezg5+sGPETRweAw4Yltq6P7weqBGDUywfzPfyZ7erGEoXq\n9zIDr1pqw88Lb0arJg0LiR/qQfVHGP40MFVGl/kuE/zpdxwHAZHUt/xbbHxB\n3WWfJZRaP0vGbn7E8ZXtnEMC6WOD0BtTNbc3pYej9/ZFgK/mayFir4pO67vr\nQNTec1dwjjByEMzr94hus5vWUsQF2ocECCVaEivZNI3ixctKGrQVqdM273Kt\nzKwnY+Erh6W6/taMp8fb0IxqdFlap9ZYuMY81CI9V9ctWMtZBq0fU1k+B2th\n/Q936yr2Vilx4E1D3Fb1HPmWNgbYhX79RG0KD96Nm6xakyN9d0e6o0mLg3dC\n8lDw\r\n=6mAm\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.19.4":{"name":"node-red-dashboard","version":"2.19.4","dependencies":{"compression":"^1.7.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.20","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gridstack":"^0.4.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.0.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.10.3","justgage":"~1.3.3","less":"~3.9.0","lodash":"^4.17.15","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-EUd/j5iZ9Sncf2e/QvKfT/PB7o9+0hdpczuDFRTrD5dvtmFfTYIdrKhfStC0BkQJc4C674qff0nLPREdu1UCOw==","shasum":"31d4f4c7238fa0fe33f009756f92fcd9797eca6e","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.19.4.tgz","fileCount":108,"unpackedSize":3810753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePcDlCRA9TVsSAnZWagAAzJgP/is4r+aasIpxQtRTkm8b\ngLadEiu3LvlEZyuHDvF0eTlsBfQs4cRJXYETdH3FN4KradGFjX4dwU9KM1ja\nd/PFIr7UVo14Ngct7fpZDa9VFxkrALJrPTR48ZBPOGsUDypv6nkrAifXfG+v\nyWJhp+Gtpxe6VFRUf6RSdPSAa4wxl77g5WJi6tR1stYpeROJJi5dbqgj3Ege\nkUm2RB2hYl/wu4E1TvEbHPc66D2x8IIsCZKgXsKgx3NDH++/G4xfcfxgnvzX\nGEfekytRbPRBmWXIX0clukeQvOVa0USZfUWW71fUTV8ntrkSL1VhrDVx9a5S\ndz6Gnuoyq4LhvkzIUgUhM0VND6Fc5DKWsTupGijmLpA8W47I7M+GcgF6ORNL\nencZ2bbneVT/96z+gl+LHgnsW31pNqWWOvvWr18zQPhzN0hW8+uEEDTe0ZNe\nyAQhPgbV74DnA1rhm+pjSD4MEDG0JBd6uKnOR/DbYcqckar34wFYJT9dR5xp\nMJFUk09/7elCNPKYzwme6z3BMb9lpoPSak8rSrWiWohySdQILsw7647E5zBG\nzGdUyC8Jz6N4CDCkqgP3RRmKymJRPvNR7Muo7skvWLkCFIMa/mztAkQ4sL8v\nJGk/ucn8N6FT/m4gJdAmJpisaqumA2d6sYFsf5ffSTFwRWssXx2L4GZTxCdT\nQqXz\r\n=jika\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.20.0":{"name":"node-red-dashboard","version":"2.20.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.5.5","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.21","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.11.0","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-133sn5z61dvCfRMjLj5+KHToUT3Y4OKLTgWdiBnR1iJfVIGR/8LoxNyAV3CP/tnq4gld64Zf/unHfGuSe4mvfQ==","shasum":"d2589d4a948cf41f7e0d38c6d4a4519fa6863ce6","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.20.0.tgz","fileCount":104,"unpackedSize":3729203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehz+iCRA9TVsSAnZWagAAmPQP/38KyISmW5S6Ewx6JRCN\nYEVVU8iRjFtU9t0b44CH3ThFyc9teobYAWM28vIk0RN4AuytzMNKy3PBSmlr\ncJRjh2cbjN4Fq2AIWZU6RpW4IaIch0URFVcftIU2Lfn1F4euGE+dwaAzF0LC\n9wxZOtHJ4znnKzWIvbk46kQlInPFnmEj3TWr3uSZpJU3+A5mjot+IExlVh4v\nkO6Rbt+Wt1pXq0jKfV6qGu19iThhMlfl9nckmuPnQFjI9/fs9f9Uh7ebn/HQ\n0w3+YdMQaJ9KAUKea3O4gPNZ/XHzp+bLY4XwwHpdpV7fzz3aEbph7jugZEhX\nGMumNZNqlTEreYsedWykik1m20VpS2BV4k3Ft+C7NktkwUChgdsdfl2dGC3d\nl6JPLAcGE7C/DTQpKPnac9X9ofvST2+q764GhVwx0E4OnJO1YpjFZbIqEycP\nbccg3tIhWA5Vw1XeJ+79zoqvhYAS6J4pbexcWnEv3jO7FBv9v+EeSHul09pd\nxFfy4pXq1n9oS0GE0HsOkCcTJeE+/P7078bphqw9kTEKdRP7w7BqupdkdIIs\nHWR4o1uS2CiF0lakEfwn397GHZNfn198dw40b9ejja1sx9GAq7NpkmxSTige\n1J5KDxZ9A0Q87hIIc9ChYyDx33cP18+nh4WSyApTACczg4M3md834wANwza1\n03sT\r\n=jOjJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.21.0":{"name":"node-red-dashboard","version":"2.21.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.21","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.0.2","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.11.0","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.1.0"},"dist":{"integrity":"sha512-pN+fp9oZp3Q3bVfrVqAzrj9AUw/XaCoz/Di8+/uTyK/SWvXLTuJ5lnGdVUVLzRLYF+5wQSbpL+b7pZuuk9DZnQ==","shasum":"f8d1f505c9a15bacd2c409a0080088a43756850c","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.21.0.tgz","fileCount":103,"unpackedSize":3655334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenCS9CRA9TVsSAnZWagAAdSMP/1ewqn7o1OGaUAIsLfRD\nZbAfJbCK9LkohjLXl1K1QsOVLIgXLha3ueVYMoBaEw4HLnCbxJgplL36BLbE\nqpM/pJoNFqK0xR0A2hpVbAHmuje2PewPFhBExTgZH6dGLGgFDncRJezfAL8G\nihyNj3Jai1ltdFLWXqCFp9C5vt/Y2vNyR4FUg/WW+CFmESZm8yQz6FU8YBLX\n0p4kbTyOcTEJ7Ksz0fecsPf6QychRZSbM26YuWzTYjtbDXWzSOWUp6JGVyjK\noZlxchQPrzMfwEN7u+K5uvA18uZD82E95ybr6/YXSx1qVionEuKRqBq3NLLz\nbA/mNlX8pFQfWt4oH0XEb/EEOBRvDTVpmG/GJVA68lcxO2i1UR4cXhdKuEi0\nDLXLy5b/yGjBUrwb5a9kySI25tywNcr+Mq95Ni+P7bqNihC/Iw6lZ1ACvONE\n9L6A/JnMjJGjCMGuObMjki6sVwBzCV9wyXo5mtt6E1r5ShUUFj/9GdSP/sgC\nGv3MTLQBosfYUoOXI3zOguFfzB7XIZNGouxq6Yi/tzOilRsKpBRKs+DK6PM9\nDCv0TKSx233fOTBB/rMPh6+DI/8Qi4VbS77k5/4BR4pV2ABUq+tcFxFoD8bk\nHlg7ueSTI7fJg0B9lCns9J8ZfIaLO+Rzqb7flY7+pmXK3Ml78KBGDVl1gMkP\nDgwj\r\n=PeY7\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.22.0":{"name":"node-red-dashboard","version":"2.22.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.21","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.4.1","jshint":"^2.11.0","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-qDXw31iIee+S7Oqw81nJnbRLOQ3+aJVmI6MV/y1DVKfnvBmB2jUDrJ/O6ecEUpivOb2DNmwIj5InHazBDPeYKQ==","shasum":"56546401a32cd3f723f40a47d23e123968bddff4","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.22.0.tgz","fileCount":103,"unpackedSize":3661075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetCwBCRA9TVsSAnZWagAAucsP/jP608RxSX72QsDTEWYI\nZITYW9FUiZEPph5dQlcXwNw7xWH9dQ0QJcOxT75DEUsBNvJN7gySkqFErgJv\n4FucCvNkHeD4gUPWQaDdqLGutPHK8h+MH3KqR4nCldHNayCHrUeB3vTPxO6X\nAVOXakZX8VMoin/+HBPXiMLVqFlUkWJS+9l2SVz8ADO+nv3xNF4icjViFV9/\nBzWmu2yCT2J9q8q0VTmYImeXxiG+Hf5dfi681hhAEP7jUulAd7Ky+rm5skDN\nxE3suEFg80inMAJIpGs3cUvngISfqHqQQuA9t7NA67rHLdmc2K8YQ+xTnnaF\nPa8JmN6TkQAPtGre3lw0RewNEl2Rp9FJ0zAbkATk+dDuU4veN9+67tlkzGJx\nD1Hc6K3lq6krT8pKmcV/SjzlDnz1yfZ76z+G1b2zbiNXZnP/NXXqWCr4qyKm\n77y1XeYwjP2ut1AgE65msqeQ/e54RkGXSyLTOvkjCpEhdbOMgohhUaXB7eqD\nBc7dXXdaYER3xhSfkdnJSGpfmrHvz2y3ZhBB9DnTeQl+KeN4vH3vIps/Hkht\nnyiXucoPR02taCfIw9ZuXOJ6xQ6xlFA7t21QP8iVySLDR8PZ0caVk5voxUL6\n56Ysom2SitC2lIcs6Dbme3mn2f1D06B3JpR98RYfbQwRZZ2dNgSAADeOrFkp\nXhLo\r\n=EK2a\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.22.1":{"name":"node-red-dashboard","version":"2.22.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.7.9","angular-animate":"~1.7.9","angular-aria":"~1.7.9","angular-chart.js":"^1.1.1","angular-material":"~1.1.21","angular-material-icons":"^0.7.1","angular-messages":"~1.7.9","angular-mocks":"~1.7.9","angular-route":"~1.7.9","angular-sanitize":"~1.7.9","angular-touch":"~1.7.9","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"^2.11.0","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-uMdZAwBEk2oxHC6VQZKtIeGK4LenX5At42Up6ns+YSmSDOOOSeJrajDIVmJ1fwMXHIJesNkWx4xhS9TWnMBBAA==","shasum":"d6ff302a13ad433d777bd689f6b32bb45719c3f2","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.22.1.tgz","fileCount":103,"unpackedSize":3663068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetWj/CRA9TVsSAnZWagAANdYP+wZ1tJkVEZBshBcEz4oo\nTb3zFLqoO59wmt8kJ6jeJsNUcZpbOz5VtgTPmNLinxdk9xil1UgGTTJirwlN\nNinyGQMuD4eKTrx221GMxu3pT0tJM5CkuFJuS6Sn1h2hizWhJi/em0La+KLQ\nrC4YhczkeoAZG8cLIR62Ai/z2/UEKROBfS/Yt6xQGZVf1sJnprkJ/ds0O9a8\nU1lGQR+IqpT+Jo4SO2SlcVJzLCPOnP4Yi8i72XRb031Q5vrbrZI+wt3z5sx1\nShp7f0qhA0RerjlyYGn8//Mjobs9vWDutgXQ0PjX1s/khpZ0vItZ40gKHmoB\nwHsE0E/Flzd5HEH2CvePTh22jySkNmqrzIxnhUpiSMf1pUu6ERN83JJvdjDM\ng5DvgslwvvCTT+lJqpt4d1ZX7CikWiQPzg+XomxYApPqyTfI+q0Q5WzT4RRA\ncWrY3031IYoEhWwPKtqTpApvPJ4tdrKn4ct+p9ez4UjoQn5rpsghxKP2BzjZ\niB461S5g7n7suk//WZTJ3If/IgWkp3Wnsz7XBihViVgjXfD3qdj1SCkxqvcL\nAuGCwAC04dgwZTgQv2NIeU1IavQPQq0RSRplBG9qng15JvhLlr33WqLErXAE\nl6sfiuij6PZ0dCrxArZVCTf0mLK/wbt1042y1cU1x9/ilzlBtRBRUQNSQXYV\nrVAW\r\n=OhUO\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.0":{"name":"node-red-dashboard","version":"2.23.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.0","angular-animate":"~1.8.0","angular-aria":"~1.8.0","angular-chart.js":"^1.1.1","angular-material":"~1.1.22","angular-material-icons":"^0.7.1","angular-messages":"~1.8.0","angular-mocks":"~1.8.0","angular-route":"~1.8.0","angular-sanitize":"~1.8.0","angular-touch":"~1.8.0","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"^2.11.1","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-/PhVHycxlsGXsGUxX6WOchIf5BbMqFnqdATP469jr2Iy3yxUVpEoAo9E5ZHBtdmV9kauXuIZ1R+3QwcfGMEesg==","shasum":"2af9754face4e170acfc1bc10a78feee878f2bba","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.0.tgz","fileCount":103,"unpackedSize":3663595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCHT/CRA9TVsSAnZWagAAjyEP/1xeB1OptPanXCjhw8sl\nLfbRD+g+azt5wNZ7xAEFs6mcB1h2AS4jHdzqL9hojL/s9etHAZq0mCqe0cho\nwU/CSkCFfe+ci45gieYOTiaPuLZsep4UjfgZsOHqFfSeTT7MBABpsh6WFaY1\nNP0AE1E5QK2SVXpr8xRgHFDCuoqWlTCmz1FbGqZtihk6KJcu8gMxYO2XYit6\nvOeXU2NL4whDVN+nEWJ2w8oxHnjEqYb/d8jESJrZErOcRxL+5rJ1l4np93CP\nGVTtfnfjvCL8MO213RA83XOC373pE2p1FmGw1TszNYyOO1AY7FT4YlVUKvMh\nCdYVTI+K7Qt/QwsqThqn30fSGBO2OSRbsCeT9/VodJg7/ydH9UGRpYjc1Yb3\njjhAz0qF1ThOBF/un2zdxJKZZAstFotTIjlsXi959Wfi/oU0LVd9GfE6qKI6\nCSxo+jK+j9Bz2GnR+79wTvkv2QyAGD2cd/oJVM5kP/6rHLSMaCAxA93r4y3Y\n31qx5iOEWXnvV9N3fbiUYQ792puc3IJZ2PNV3ZfO5UEV72+VId3ErIpmrnl5\ntyuyW8b86DLHXLhJwCXmDp2496wEUtXVpSlKWHJq5UcXiLLZImVewVjOONmw\n5JQSHEEu+6tSbYY088phQB8qsmy64CQC75YwEwZ6HwHRsRWbmFONfV+MRvfd\nWkxB\r\n=KU+c\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.1":{"name":"node-red-dashboard","version":"2.23.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.0","angular-animate":"~1.8.0","angular-aria":"~1.8.0","angular-chart.js":"^1.1.1","angular-material":"~1.1.22","angular-material-icons":"^0.7.1","angular-messages":"~1.8.0","angular-mocks":"~1.8.0","angular-route":"~1.8.0","angular-sanitize":"~1.8.0","angular-touch":"~1.8.0","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"^2.11.1","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-59ET8x0QUBOSQVIJgRgMA0X4fDKGzK8dq9g+P3mUsfESA2U06ahwKNmR+Kyx9oBCEnp456AWvsps4aI4PsgmvA==","shasum":"f313998038602cee30c2c213b2a916ad50859d7d","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.1.tgz","fileCount":103,"unpackedSize":3664436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLVvlCRA9TVsSAnZWagAAKNoQAJGfDdPJ/NcNRfpHMSfV\nhQxAxBnCwIW7Bw/FtByvwXLwqq7qsXP/b9HM0wAPw2SOGbHUeT8uwHKgXCby\n4Y1iwm99kDwYzEcqSLjp7+Hf/nD0aKTNWhPMDsRTUXW7MzOPS7utZ4rjYwiO\n//uRyoTls3JTNVYTlOyAdjmllW8Ra5nkkXMIKggEkS0rRk2twJhvngtMnzyh\nUsMNZKws8Io6O3FeWqwMeus0macviusQASndHMDf0BluZnvY2ztkzUiIgdfK\n6+MEgCAhp2BxY7nN/sLe3nczUs+qJKr4i2jxNLC6EmwFZXFP23jN3EngXaMg\n+rqoH/UyTnh9X4URwzP97VN9CxP5ZKrwuGH6iwu9UU1CV4MBxkDp2Dn7xQYx\ndfj31MtZmZYOTNSee/25mk501gO1qCCg/3WXC2sVww1xJC0ePuVLmFfsyzZO\nSeadvUYA+GrPUCVbiRHhJT+74dl1OPpwETFMQfP4e1Q7Qti+DwjMzPsX/bkS\nf45Kf7DDkje+etUOIG8jQesEoIPVKdJjqKefqrV1cf+g5hPNAdC0iP2ySmRj\nJBvDLH4HpeVL3ksQMAjMMmjuw83TjHfQcNzal6mQKWo9BdjkA7YV9g0Eap6j\n3fow5dAku88T2XvKLALIDfnuWn5QuVyqn8RjChUg6bE4PEXVL5xIQi8wYNBg\nfLgY\r\n=fwtj\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.2":{"name":"node-red-dashboard","version":"2.23.2","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.0","angular-animate":"~1.8.0","angular-aria":"~1.8.0","angular-chart.js":"^1.1.1","angular-material":"~1.1.22","angular-material-icons":"^0.7.1","angular-messages":"~1.8.0","angular-mocks":"~1.8.0","angular-route":"~1.8.0","angular-sanitize":"~1.8.0","angular-touch":"~1.8.0","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"^2.11.1","justgage":"~1.3.5","less":"~3.9.0","material-design-icons-iconfont":"^5.0.1","moment":"~2.24.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-CXKdXVczplsJ26fFKN4iAMLTv2Xf0Y6TRSF4vD6vo1l93up85BnaZG2kUsn2VsypWYYkpeUTpUSB1qF5rCfNDg==","shasum":"6b8a458d71e8cbf3889b22c97a109acff05e3ac9","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.2.tgz","fileCount":103,"unpackedSize":3664534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLW1sCRA9TVsSAnZWagAAqlIQAIfkvqTJew4rztGOZ0Q+\nGQ4qwedkwFig6wqiss4mXtxAnll3Gqwk8hj0+8r5nnyZ4D6GCgUZki6nbkzD\nQQULxlbW9NXhXTccnH7wWVUyDD18nAuqfp4ymldMQHiHH0Qliw2adndEiy0w\ntM12LjhyfRJp271ZI+lhVR1p2CDWdpM5ekbSXH8sxqTeHAFaYwm/1qc1BoD/\nlO93Mj+7IcB1VCQhLUYxIATQb13yF1wH3GGoYJ3QI8GijF6izAu3GwCFV/y5\nfLT+/+H2UPz60jxbJEiBrSGsP0aTgdvrNuMY36hFPgb5sWlT3qhk2LJDbyZa\nh4es2M9adUxPijJBY3NzYIjk3J1nQM66EB/KXU1s2RLNb3bvltGgpFUr11Mj\nEGHLm9nTuCysXahdb4sdMrrucWbYVqTFh4bgXZHxE0mq+a32EV3C0d4l488g\n6fIcB0IWIjy+j3QjvhJJppQ01LvHEmW0QiIUOpBEhzAbKWBkXH4qCWpQL+rG\nay9X7SzS4rPppewXtdxUqM+BXyf1xiWduuAXZ9d1ghbFudwV/q/0lHMej/H+\nX7Y58v/1FQL3f9CwcSyxYipyBnb9+jQimpG/JohMFrvW071WOWmEaQ3dxVS4\nTg/7RKLfYeWmJQhmaTvpNWf1Lnk4Y/KfZM3ZypuX2x/i9oth4OjQ/stfz/mG\nFpIe\r\n=nw0N\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.3":{"name":"node-red-dashboard","version":"2.23.3","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.0","angular-animate":"~1.8.0","angular-aria":"~1.8.0","angular-chart.js":"^1.1.1","angular-material":"~1.1.22","angular-material-icons":"^0.7.1","angular-messages":"~1.8.0","angular-mocks":"~1.8.0","angular-route":"~1.8.0","angular-sanitize":"~1.8.0","angular-touch":"~1.8.0","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"^2.11.1","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"^6.0.2","moment":"~2.27.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-0b8mA8DpGt9k3cQvvUt1gFUNkYJCwUrc+wgbLOp2PU4PJod/fFjatzsHS8xmw4IZbcVT8uhbg5gvb3B8G5tNUg==","shasum":"30248084796e37f844da5c32cdb311da2c90d575","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.3.tgz","fileCount":103,"unpackedSize":3809235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUfnpCRA9TVsSAnZWagAA7iAQAIjp6VHfQnH9FtQppHkK\nL4hiHDll2ISm+oRICWnSAGuIGi+b4lKrh38GVtJosZ7JGHADNsMYjfl1zYJQ\nbKqy1x/MDnQ5wBYs5ruTPAEFUA8rCSKBQ1FxMxVmNEWIHCEvik2B+Y8fipIs\nuy4Ej+MYqEQ+YNv+69xxhdbvbqdSUNdsmKsKuceResjOHDgxkZtkkwkwn4WC\n93pUnOYLXhqkg1OWlsEbIvWciyMX0DoB6gNx8mjoeQGdu2ZPXw7lA3mzVLOM\nq9q7L9af28671YuzZX3osibXz7y80jz0doPIj4IpbVa7qeDD21NCOHarkMi7\nJO7+QIx+zaeyV4aCckfOL47Kcwle9UKk8eWnh73//lsHsmW9cgh3Kj3hATHr\nEznztdVpQasOo9qED/lHV8+ETO695+lMr4eL8+qgnlRBdWdD12E8emCxrX/b\nBOZXGpS48PTQGDZ3c7J3i4W/v6aRyNbTb86ls75041EoY1ddaQj+h6ma5Ftl\nxDkF1JL7fiqbR4qvuCCTEfNV6zVOc9h7EJZEeBJhJNBO7jm0R2IwVEaqfnL3\ncn/MEe2aVz2/j0baRzFssWIUnMaGOcRvvVP56l8P4f/MVHqI3jrn+3LxLG9I\ndfb8nL/7ZhwFyD4O50ZaASnlCEbhWByhsL6neB6WVhCn6VrruGriznun3kDy\nWIxP\r\n=GSjg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.4":{"name":"node-red-dashboard","version":"2.23.4","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.0","angular-animate":"~1.8.0","angular-aria":"~1.8.0","angular-chart.js":"^1.1.1","angular-material":"~1.1.26","angular-material-icons":"^0.7.1","angular-messages":"~1.8.0","angular-mocks":"~1.8.0","angular-route":"~1.8.0","angular-sanitize":"~1.8.0","angular-touch":"~1.8.0","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.27.0","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"^1.4.1","weather-icons-lite":"^1.3.1"},"dist":{"integrity":"sha512-l39jHN8fOS+Xzz16T1Xi2HTojKepsyUrdbcZnXa4yRP9j9Olfx1AUY6KEc7BZDuLSRztvMi7tfteAH+oGwZ06A==","shasum":"b66ac0b3ae408b41a40ead422cab2a60b6427855","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.4.tgz","fileCount":103,"unpackedSize":3815584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfba8xCRA9TVsSAnZWagAAqgEP/iTtOUuT29Wmza8jU4t1\nmpuKbtqteOdYwCSJY9Ep+pxieqCaUv4VENL8w+U/whiKWhLGF/Z7h6Oh/x38\n688M00xgZPVX1oQdZ5PqtdXa/EXLjv8zYnAbIZZqcsIT00E8fZiNq0tDB1/Q\nbpCUbCrZUYjpPeKH65NnP0SGKzZf41GA8Bq7dAiggP/XcessGi1WzeyKCD8D\n9bFzZt4ZVm9ld/b61KqN+l7f2DFYhbAhq4cWkvsmEgWVylBJoSkpkiG5YiJ9\n6FHUWXx61VlWHVh6inJdeZ5CcOdKiPbLOWaB/XiZ0LyZyjL2mPFZQs/OlDxH\nrG8Ili4gTXq4GTfQtqdyfI4tyG0a2cycb8n0pDlfH7Jnb9FBscAlrrTrIegH\nikElGYBN0brEAArP3ODmeuiopNQ28+bKC6lfwWbQ1tBBp+TL1+hSO3LA54lH\nxXopqFMeYEJDbELyj2FRn2S6QLxs8wlp7cC97vgt9ok3b1PTISyxHvTwfdha\ndq2aG5X8//Z9fCQzDGvmLt21AOwcXYmjmjF0etH9Ivfw3aQa8Kvnt5UocNpZ\nYSxV4vT2onuMk9Fu8hpH+AEzO0joUCHVFV5eqBjI+clyLF2ILf5ZxsAVSCkf\nqrb5aQj98nm1TKVQbdWsfhJFhnqDaURX2lDOE+4twH7HAJDNMZzJbc6QJ3cf\nTrAn\r\n=Xbbk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.23.5":{"name":"node-red-dashboard","version":"2.23.5","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.3.1"},"dist":{"integrity":"sha512-JMaBhvwEKNDJid17D1Z4yIo7wStr737N5AagNmDn9zLPi8JO+ChN+/FRfk5plIzC7gp+CkxDiy3Jb2dVxdQemg==","shasum":"ac95914a81d6d5bc6b1e3a48272a696fc688e4d0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.23.5.tgz","fileCount":103,"unpackedSize":3811854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmpd6CRA9TVsSAnZWagAAumgP/3ZFbeEhxuQXzpgrj7I9\nxITsNNLDTZVBiX0OtxW8Gcv+D+XiyI6bO6qwSu3vHgSHklUijbZS3cVrbUzB\nuG0a1VZNk/Ko3N3nTCfd2aDylr8vhDX30OgN7BogrsXMpRfpchxJg4poeQhF\nwg43SBCrInKX2TjhbPEmGnh+Ggk7m7Zj3V+20cJm95MMja5xxp9p84YY4Doy\nt4JwThvl7IsNW9FJXmQYxOx7+CrHYyvslL5w+dKLaaQkfUeLfg+YQVF7K+LM\nfhdsue9Sw8bWwEUblHEXEe/6f6i41YgvfYUQKDtDGsVWWloOnYajp96QtX2V\nk5U9RasA0fv7h+gHOjJymQXvhvp/SjdPL64YcUHixRMVq2+4bdJ84852l9DB\nCTSl4VsPF6DLSbdjct6vWuE+JHApjfetaeaMYulUxahRFkdwaz9ft/dQynEc\nD3OAH2GZO6BhuLdASc+4Fo9c0MjRkhOO1WYNcQsLTLRcl+LuqS0VuFuv1FOc\nhnvsJ9rL/cO5FlPaBPrBRy6AQR/J7goJ0vxyybMihGA90yH7D9ihMyKJsnqS\ne8w8DZCiL0Zeqwwk4OQ3z6J0st53I8Lbuenpn4IXa4zXkR4C2lBfO3LaIWos\nPLd/msuQlBY9zQ3ce633nKI+9aZJNDMRXXlLOznUrK0JbNin0LSob9w3txsP\nLwez\r\n=VGs3\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.24.0":{"name":"node-red-dashboard","version":"2.24.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.3.1"},"dist":{"integrity":"sha512-qhRFyqINK8tgsS6Zrs9nGb9o5ghkKc+AA1PNOllTUiBoie4y8h4UdiKEgp9jzqT5+e/gMLzmDFBbNuBHoBmb/w==","shasum":"39ac19da76cc9a931c22cc70680eab8f0494e6cc","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.24.0.tgz","fileCount":103,"unpackedSize":3808047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrls+CRA9TVsSAnZWagAAdWgQAIIbouAzGuRVEXQAxD22\nT1VEd8uAdkqfRl5UKfchhUJdq+70Wqw6upnAM8iSOCp2UovUOJGokgDlh4ZU\nDqenaftRRl2UBPAoDij0GcePgGONmuRFrrbEK1rFPURXfrw8rCmyLDP5r5Ki\nA5v26JaSdj1QoaX+VBexY+ZwepXFobcwdpKtSgqKcmu2b1I5Bl0YtrNx7Gsp\nfZF2ieK1YR0LWSw/x6TCSdaWKQBVmhaoPGQ3WRSH+MbuvGGAY4F/J4msIBYI\nysfWv0bUSHKDrQfCAplZ2MtJo7k1LYfPzCM7Z9iW608omJ8pNPa3Gs2YynAi\nhHtyDa+9qflKQ/nZOhfAWg6vHeqgwn7BT1UnLvO+7jqxB8DUkhj1MgiJ+lwe\n+0NxR+uWyzXq1cXtSBlUBH7iy52fHmdv59U2JrCUY3cDSrzGQSvUMRaEWrk5\ndYO2Nen6Jn7wEMIlVm+p+rdluq46V6yyf6FaQhzYuBGGSkKC9kzarUHsiPdp\ndkCPB+S9B1ehDsphu25eR5hLW7OiXCVYqOw2ETPF2ORCQVrrDMaWy2kMs3d0\nGhXDfEdEAVJ5CqeV8VRGABVRDyWp2XzbWp+ohSxwI0R41P6hnMknGS02tClu\ny6DwLq16pNYY0j23ZLfFH2N5kO5qNgmLY30rzrUsQxuCL4pqBuzR1flL2SzD\nCcsU\r\n=Wlas\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.24.1-beta":{"name":"node-red-dashboard","version":"2.24.1-beta","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.3.1"},"dist":{"integrity":"sha512-CnIf8nqt2dYa1tuKiUy2ejFX2FVP0pLHHWaKW6XzSoG7YPakZcQsvS69Sfc41LxBzlUx55j9C5pNwS5EJEENYA==","shasum":"877d2a21ec9ccbed97007749b4e9a93da510a9da","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.24.1-beta.tgz","fileCount":103,"unpackedSize":3803530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfslyHCRA9TVsSAnZWagAAqFsP/3umspOmTTW7jbMAciRR\n1ZaLZJt3V6JGeCP6p+08k3sRYIWw5uSYEeCBuHjaNDox/25i5a6Ist6NhJqs\nMCsw1zeBr+NSe9VK8PMYec8Jm957TODGOF1weLIN2Un/FH+tzn5AHHwbc9qV\nRbGtT4K95sJS3gY5SX+pizt6cUr46NUon9tA5eTMF9NN/q+EtqurCl7ro29A\nPJmMIYOYO+zIRaYYzEVtudK+PKj/VHh0QxvlP0lU8WOmvUINHZUq1uWnIA2X\ndJ0xaoJdb/H2F2JtlbzQ6/WuEyKM73NAJPpdfJ/7XLIFEVkadwKraac15P7I\ndh4EMmyVZcmgHaLvxOySj8A+LIog5aRFbwGjL+zorI+zccaADOAK82kRJMXn\nnX/5A2sRt83g/FsfW5pdmDkC7bZiNswM/zCOeaqHqrINDX/XBFXJ5+Iqq0BM\n8P1EZxuJqFJj0xLtNWsembip9tPlIOLhVmcdRCW4Rb84WgOo7BccWq261z0K\nr3qKkYq88PlmXRPstxqaerCZ1ClWROzDdRpqvwF6IDsFTjEs8O1xdPXkcb+j\nvOGKuNq2gwW6kDASHazv+CzjIpx9MpoZiY+U8/UQAXeEyg4L0R++kghE2dtX\njyNVz1qPSjmIV2EWDSzYGIvAgckUl9MRaMwAhM/nsLe0MKBaltMAl4vDyw9T\ntYKk\r\n=G2Hi\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.24.1":{"name":"node-red-dashboard","version":"2.24.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.3.1"},"dist":{"integrity":"sha512-OnsFecQa+yDXrRvuU6vywo8lJYc6RwgPZ7c5baRt0Y2Qze05Lyzi4njImp6yuKqv1cbzy6x6+qGWJ3FL09Bp2A==","shasum":"4aaa2fb07642c2b03321e831e165a3e26aa46bfd","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.24.1.tgz","fileCount":103,"unpackedSize":3806874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv3AuCRA9TVsSAnZWagAAsDgP/20frb/ciMb0O+j225+Q\nnB4Kr4W9arJUO0xXzLAiOeD4SptNnzM6kwHi2IxzX3UYEBVMwXnXKtRWKbJK\nSfdsDd9sgASSTdKxMuSuerHxuIqUt3uDnJnU9qHqARw3SjN8ighvKglzssrD\n7575UgQnY39uWKNtPXUrnAPjZmE9ZQj7SHVbYheXDM3fOuRBaShb2E6VfMCU\nmn+vYsrAkRKi4yb+Zjz4dUbY4SKWGiwsaeulR+mBkOSnIua18dTJ1KlR9CJh\nMw6AIMX+T83DA7US0JwU3np8NXoHsGLHROzdmdz6+9Fjfyts0SEg/02VCEKH\nZ0ii7BSdJJkPriwGK3ys49jwPhWk6SDBu99SVOT5qHamjYhuUgYonOKt+mxb\nxY8LOb9NY6Kf9SdOeAiclmqcfUmDLOjIIaJ3vRwDflk04KUUCIIi3v4Fal9s\nnPyNidrQ+L3RbDtEbJ2DpCno8jIAsMs63keXnngoJ8BaRf+6KmXYoYNx93H4\nDbnyu2ZM0KC+y8ERrUK8Fx+Dwl22WP6NSQHyQ1k09xiwQrEUaodVZ+z8LdMW\nxxZDgcyQsuq5ZEYw814sawUeKKjgJdYq3q6vxosuKJUlthobVX+C225n2fGN\ngybCUICTiprBLNLrfsWb8WsZAmUePhaMNPsu3otX1Zc1905wBaMLu/yGpBDm\nvzRH\r\n=8qZa\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.24.2":{"name":"node-red-dashboard","version":"2.24.2","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.3.1"},"dist":{"integrity":"sha512-oRPkXsz0PnEyxXPuTtbhMyN+Nj+wGOM19rtW6L7CiSBU7X94jOCoN67rNxT0UaNqBwf1V1HH1Po0ui8wp5q9sQ==","shasum":"ddec77d457bd687c2b4846348bacb2da53417605","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.24.2.tgz","fileCount":111,"unpackedSize":3820226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxgfMCRA9TVsSAnZWagAAmyAP/0W7ZatRFfO4Tj0KPZhc\nMf6wuJGiXbdeCoag30w1jsTX2d7N3PV0sSVORih3JkJPGLko24q3UPdPiu1R\nuFVedxiJK6QZFXakbiCV0bmNBgyNcumYWKWcjuhp1Me029rLgTQzMg1HMoPo\nXT8kGSKCljpZgf/68dhNaIFr9ZOGvvmAxzPl5F0eSS2xZHfy7M0iA3MtmU5i\nMS0Su3Gx7x+jL58q7fWh5c7jUWaPa8MCTfQTbwDWva2Qatjf/8YmFHZ5lMZZ\nBHEJ0S4zKN21lR6bryKugxpEhT2xJ5RNwqdGcYeUou0qs67JXz9BKC7eXCmx\nY6reCIiB07qUHsrXff7x1OpGWGTl4+qetS7xiAoloQsaixyG5CqCy/t8pN3G\nr/svCvw5Cu+NXeyKcsEE2TGLgCeraS0hXZ83TkXRUJmkyOZd7HrEaB2afnIa\nYOBl3qmwvmlYXJ3QB0R4u5b6Wcn2avNtBF3jdyeOFOUizWG1SAFTS9ocHcYh\neq0XUtP1eh1v6yhVukdvdzuDLl6twM/p0wD6RZ2vYbZuSVxBwpTHng49ycMU\nnyRvfIVgKYrxQZ+UaAM63f8Cq7azbvNLHOzsC6yoaROTCxijtCIyLMA1u82L\nmezubSGfcx/kKSO+OWPmVt+k8o3qFqrE5pqClU6e+TenGZxTpSVXs6kbjBrf\nBhHi\r\n=+MmV\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.25.0":{"name":"node-red-dashboard","version":"2.25.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"1.5.0"},"dist":{"integrity":"sha512-3nU7fZtxLd24vbhC9hnSiVjWR/9g34ivirqm9DlxM2q5+J0Qyp+iCPbPLC4RMYc8V/6k4QjGBFCdvPy5CQIMqw==","shasum":"14c3ee0bd9079681f9089213486154dca2d63030","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.25.0.tgz","fileCount":111,"unpackedSize":3823654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfz4jUCRA9TVsSAnZWagAACjAQAJyQVBPNTh1WJXGRZaMg\nEJlWco7WVkmLQMEFu92r2wMJrVR7LFeiQZjSmIpSAmZK16Q6jr8kWeBsaKjz\nlP6yzuG3L1TuPrN4YmHPvFqJFeuO6dmd1aEGui3VY5mobLeVtacMAT55ZX6j\n69WOlVYIx3+irxe7+GraCk03yEUbEsLlExe0G3JLMdX6sP6Tl0s2cNQ4qTR1\nDHf0zPHnzeh/CwNgiWapDfDSseQsz/pHTM3wRBua9jKvExKFHQcdpiQ7eBU6\nxdjvbZ9OTUJ4sIXWSwHGOVFSYEO/lJeACYcT4YTIUd3I7GNC//jhyUcLHQou\n85tTMowezPBZAlZQszGxtB72RORxL2rxTfID4HMz/i6b+/W31NxWTKMb7hIg\nC9K5p3hrCR3K04RMkTs4ry0So+oMfqVMA26EXOcGLCGhHxnUUXn/QdK75859\n5y5yQfiip5MiqPsPyQSMiEmFMXBzOC1W4RTWtoCt19vhfbTZxxh33N87M8jh\nONWqxQDcJW6WVmOVO5w1o70i60hR1YFiNWjEJk/HrvxBn9STOWnHnHPe0TlF\ni2ymHg2/aGQAaK4UeV6P9MePZPvX15b5NRrxVF5zP5uYe2KWLzNQ/KnZGliN\n8D4eZvktkexvXhIYDvBiXGVCWZLjpSfAbP8U10E+t4oH9Z0IM9NSP+X5bQq8\nd+5u\r\n=Rhua\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.26.0":{"name":"node-red-dashboard","version":"2.26.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.0"},"dist":{"integrity":"sha512-mXsWq5+HMWGWJGnKrX14EW581FfdmgT6Krdd1U7N/Cq8bU3xWuhLsdDOU9rOMAi+hCCDbvIR1QAJJZp7esp90g==","shasum":"9de8dc793846e5b8ebc52aa923973c03ec3d4099","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.26.0.tgz","fileCount":121,"unpackedSize":3837389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4JrHCRA9TVsSAnZWagAA+1YP/RlwS/atVSa4pcEirTBB\nGNDMud9NvUC2mPKV4+JxHN0YkPdHxHbCcGs086Kec6yAMdB+mvtj5IFNK6dK\nwDgprQAt8VPr3nO7xldcuf5k480X1Rgvf7ukFceJ1EpJ9Z/Va1MZyK5IbkeT\nE7aJstuX3p4OVa/4S+pkJK5hX2jo0sTeb8St72m4aWyY9ExBRH89IbmejIf+\nEGxHXuCYbCD/snxF5hdC9sLSVpuEUAWhnBkgvReEz/aTw0e9+Ll5UEp3dp/C\nity+ovYvaaBaQ3OcdiU1+UqXyl3KJiYQFvS4anD8blFyZbcJZteB93goLL71\nVZBOx2CgUd6SS8hrdX52AqNoGUGxyRrZYG/esoMyG6qO9EmRDkUb5VTJKjPZ\nn0mkQLsRIy7/0pVAfbC80CduULgG+lk/3Gu4KTl2h3WuUQkKP8//fUjiZ8n7\nT6sfyjgIKX6qQHIVJvTlAyqphNhZ3QJtOBg5F35HNH+Tl9/84rpki7snoEOe\nCmm4gUnRIFQDzom2azwi3b1MBJGYRX/QbpMqsLMkuEuN5z9mRxzuEBjYWRGW\nw8Tr9OZsg4gVUYfU55AuqHqwPKjeG5lo5HTL6KwgGe7KrELDeY4YTLSxmAH2\naOfyh2V0xPvYI5y07qO5FgIBAMYf7nLFsZyS4QagtSXZbTTfPXJRSur0Y71P\nl85e\r\n=Kg7l\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.26.1":{"name":"node-red-dashboard","version":"2.26.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-uiT+EwlaxbLtdRepGBV8eD6POL8jmW9+wCcRY1UpT+tBzFMV5xYjjOPfTHljjFQlnrvY1fkxZo7o9YuYb5m39A==","shasum":"f7246d7a902459a2184a8f840c6be19e5ac11d0d","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.26.1.tgz","fileCount":125,"unpackedSize":3846453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf61amCRA9TVsSAnZWagAAoHUP/1iRpsTAgf3vnZOImUXj\nbjmrmY1Q6t/YqM9SeE+TjNndYz+hJi3d/9qYscsChhH7e5WRr9KT32c+US4f\nHtrU/t01nTr9AglnW+BEEjRFRjlVyWTNESaC8m8Bvbi182cL85if2XQeRlvk\nai42snXUQhBbObkWNWQmzyaANvJWU3BwYWdfSz1KqPzl6G8/wZoiGz5Dt2vX\nLjfTZmEXc4jqazvB9VYLBvXjwhpm6UxAD3xBOz9rExB+get2FM+bwxiEOin+\nHbTMPIZNg0NSHqA5ckctV6mKKFzVqjXToLBzEFPb2NH2FPv9UagUVpR2+xJK\nKj/W9kxG3Z+nUbKYcpsxpF7iM3WtYpqvyrO0jB19Q7klFTfM6QZ1XNIgEbJL\nF0thnvXOI1aM0E8blvl7v2hlH3QDwOfp5AsmQ7sgBtKPjdOPiwUZTI2LzSK0\n5B/cADXsBpanAmkuulqY1X/0QMZw4Lr+FenHx8OlEHat7+n5kDY9fe5zFDBc\nEHg8+4TA+1OCibNABnnj9iRPKhKTGvu/WLRkJ7cEz0uF5RpUr7fQ/Pm7I+lm\nxX3ofIp0NBsoiP8xeVI+C3SJWuxGIIf8enG8k0bE7FACCIqbkOhaczkFkSOo\n9OB2oYEOOK4AIuOvbB/YeKC3l3OOHAhWAmsGeRZqO5oc6chkXVun8Qe7a5fo\n+Z/C\r\n=zGe6\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.26.2":{"name":"node-red-dashboard","version":"2.26.2","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-akbb4kYsTC9BGvZGbr0WoAYvTu9+3epzKAFaPzUjVhtDQa63ddh0LnpybJmoIT0vOaEZGnY/laPx7AGGuRDRpw==","shasum":"0d0bd17b1f5d0ca67ebe5a759e209a4df57b74aa","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.26.2.tgz","fileCount":125,"unpackedSize":3847385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/D5CCRA9TVsSAnZWagAARWMP/2ze/7G7xc0q+UR82L76\nRXCno9oN6gl7o2zi4wz6PGODiD6Neaz8OVVfyBwRgFQQmCvdQQwtHd0yIaRS\njM2bRv2BLG2RO/IfuCFRPUhTboIp2yI4d8a+8Ps52hoEMVFrVX2MoxS3NErZ\nkMf0kpJHgrR7xx7uLm0UDbRNtnrrvAvtJvdZ+XHSqXcqiyETVfmNTSJCx5pm\nNGXcdbVXPwl+MxoyB3o23T0yngTabaWEbdqZQSlHVGoDFOfJ4BnYO6tE02ao\nj4C53/YrX5qdBunDD9/EuS2A36Y0XWp0y+yMYFns6rGt+Dymq1Zad6jxSuPS\nIBouJTmA5KyGhhUmCaA+vRHotewax42qBuVENlSXoSaZ4NVKR06O3RDwbBfI\na5fJ9fNDu7uDNMGhIURfDnhi1j8IgCm072wcb/PeIqCVzdUWN9VkBxnm+FaE\nI9gizOc9fW7++MCg6V/YVcyZrDOSMVMVyT645SvgqKIeO+ppadSHH2E5vJTh\nvJ72GrWTR0J8m2sOScRCdMQ4K8+dKAD4996FfpEVLtirxDiQ0DEIryFAVHF2\nmnBRqpI9Rk2QGy3bhcdeE6DI/EQ6YYEeYjZtlgWrW+zXdI0x8xfs+QSCOM66\nkS/nkpLmV/fcX1hV7RKIK+XVQ2l1nSl8Q0g83cj+zx8FoohKjlCwColS+Es7\nPWwl\r\n=5gbs\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.27.0":{"name":"node-red-dashboard","version":"2.27.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.0","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-szC7fWJqpVPr0bIWvMWRMvLtPLKKg7yxZm0fme0YqsjmuNiBc/WnqtOnUmPjGCJZZSYIyP0yN83MfZhpBm8O5g==","shasum":"9ca3a15234117488d8b5dbd2764abfede6812b3f","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.27.0.tgz","fileCount":125,"unpackedSize":3853655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBqGgCRA9TVsSAnZWagAAGcAP/j2vLAXkZoFRPikXxNdt\nJJWwTzUNmyCEYQNO36Arj2emHkKvdpjfvVOpRmtDL6lc01WR3D/tEcpRC880\nhSusNrse3GyygjokXCFraYxKXb4Hp76T9xNVI7vSMgYfH91RMMg5vXa/y2Y6\ngI0RgzJ4+zvNRWB0LSapTn8BHFytvQLi9um41vE3uBoPlcdBGCoKBjT0FyN/\nLL+XPvfZk6pP/KDDppc77BaiJNXHrDwKyec2tNjJQnQ4qkU8IqcgNeSGMlfo\n81fifgF2epVU17jdPDrZTsHuGvtF8XuY5MPrvscy5i14wRMBwEBmSkTnsfE8\nq+gN5FP91AeegdUz3rFN5RigZ7QkyGp6AnmhVch+nWmd8kDIoW2p6IaBhypU\ntFy9pic4Fh61N4HkGqyir2H/OI6l2rM9ZHFzPDPUAw/qSr2Fi0n2QS/QNazy\nHC9L3O6dSZ5htEi3iQsHUi5KRIeaUiccJLnOgFCeDxwlhIOV0DuJ0hAZIctA\n4tZezCW5DSB94LED65X92+zy0XW1Ede9jjpDkrRN07YprsoYzJ7A7reOJYea\nFaSHej6EY+NTkAOEuiybGnovxhMBgqozeIxt3vFPpHtVYXTOkzk+0THdoyDu\nWnWKN9519oY/l8QwwW7fWSad1U6SZMLpV/fwc3CZX2pHX6l3SBK2SH5shHTb\nFBDJ\r\n=Mv4A\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.28.0":{"name":"node-red-dashboard","version":"2.28.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.1","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-J02yS6bl/vCsA6I0SQLVAlqFKEmyyn8vZpw0dRSz8gxR2y0EsJOw0TmB4xFFeEnjP1Vlnv1FtSyjlWBVVCAWsg==","shasum":"38665222b2bd9ab9e6ac2aa02f7345a93796bb3c","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.28.0.tgz","fileCount":144,"unpackedSize":3865761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJkvRCRA9TVsSAnZWagAA8cEQAIR6tmVbwV9ZRi/thN2K\n5GNH8m+nO/OBdeWcyfhyQrfDEyJ52RBLfryGxMj+PU66kY3hUFguyjo9PHUc\nKUe9y4i8UD7q5ZZ9iJYAXGokk0tbk1Odzl3z+TpCB1r259/ixeS97AD71yc4\nGtqzchRlAaCz+vX7PHyzcAz2tboJ2DTitLJCeeU9Jz6uqpIjxkB754YURHAK\nkNzhWgVODuwzZJjXLlz6JalIh9M7ZKimgD6kYp5EGJbiN4K9T4lsiA7CwR61\nSiPAycu12J+yeh76VmdA/ASgWHQRShFWdoJJJi31edkf5Y6BMxC/d/J5DObX\nlKGiR1zRWKDTc3dwMjnEJMu62Kvzz8cPJyvyuKHAm9CSrzNtSsIWBCgELenF\ndsNqcCprpNqmZjLe297mMfh+3u+AUR2zMXn24nthfb7VcjWnCQkdm71hk9xu\nTwZovx6Tk0MGWqSp7NDWknSMkKBjGq2phyxBOCmlUMgEEFdIXs+IXpGKMD7v\nMKgBFYSok48ZalW1cu9mU86uCGilI6gofpEx3lt1qjwJA3XmmPHCnIr9BbQ6\nto3GVJv3R5byQMSPG7I6m/Eb8EFBmnM/sU7q24HGSrtHfq1/6TInPWExlGsJ\nrIf0r6HWYdYKFxO1IPbVC/poaGmY7P9C+u+Bzv7q1q3gtjHv5VLT9DXQDE3v\n4M2u\r\n=y999\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.28.1":{"name":"node-red-dashboard","version":"2.28.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"^2.3.0"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.1","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-Xoj4hmz1+EOSRiaSsJ3YujSU3IgZDnDIX8Cq552S4B1iOXuBT86IEDhpIFGQrvSkBJW/iSnjxGr30mYj3IdAGQ==","shasum":"539219a754a056125485bdaa943748ce078a2e9e","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.28.1.tgz","fileCount":144,"unpackedSize":3866100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKWdSCRA9TVsSAnZWagAAplAP/2KN/Oafn6SNjzwAe10Z\n78Vj26TDIv33yJUrp2IILN+RoGa/zd+loDPGcZnXfK7/hIqSQO/ajE6GbP05\nUtXcBfiGWnD5iAzDUlQRkq9GqpzuWfqA/cJz34a7cDskYO1oxo4FsiA0+LQw\nFbFM58Qzbu32vWM3OlHABY17nH5AyMCHp2aLGdzuxHFoXaW7PfZYjlTZR9e0\nAc4rKI0COV3IC2/se7oRcA6tEsM4KK/91Hg09p2OS0UMWm35+CNdDSM4CwGI\nxPtGlSWzaPKSdkIm4I+jbLrrunlrnb1wi2NWOUzwd+ZwMcdrQjue2qEWYrZQ\nno5cArvhvOBn7sOEbwT+8ZYnUIRaEmq4MS0BfRUYLJjYD2m4b2sJm7CWiR30\nCTrwhSt1kZrE3e6PShud8yKO9zo7AQdUjP2t2aKPN6yBvTTqzSlaT4Ejw3DZ\nDom5maRbg3HAt9dK0Ve2ZvZHQItZyZio2/vZ7r++xUcjxz4y+YPSqU+HHmM3\nD8f3FhxP5O/VQw3UIcPa8BmQTFlLXOJX7EnNZUgaaWWnyfZCvD0kNEDl+8u4\nIrxPD05P0yGkjbbUSJCNZDML0t9YVZ7IQPTcwgTWrShBUEZaeMru3iwU3NC7\ngUP7wu7c5w9bDCFxmDjLvVmuJv3QA5/Gxn9TJqRGmsAN0qTO+RtzBB+TQLpR\nT3r/\r\n=Q9pf\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.28.2":{"name":"node-red-dashboard","version":"2.28.2","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.1","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-ZSJgrlrFVMP5MSMz6iXkn8bU9IwF2ADIJi8rdu+rTTru3gd9ZzCJpL7IFg7ITLvuNrUh1zWyTOgwqJuIUA3OUw==","shasum":"2179af416bf40139002ba645a0a6b0c5492206fc","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.28.2.tgz","fileCount":144,"unpackedSize":3867572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVHvMCRA9TVsSAnZWagAAOYIP/j5gL7PQvElIU7J9xYrK\n3N4C/PCexI5RbYU+XoqukTn8IAmXJsI3mCbpNl0YXCjOkyK5CCBi/149GwfM\nIJu7d4ysxlfGOWbOS6MOfW/kmS1iqt2jYP4JC+oSxpljXeQTEL/X/AI84MsT\nMGadNrzY7ARyYykOouyXOg2nHvhJrf3ppUpcQAlNdnvrjBEwp3/YRaEphCAh\nW3nwQdjjnvclOkFSa3IlqXeIQsx0umL/PgmAnHrbI3ckAT+hxKCmjNaQKr4I\nGvFEpKZT3+KUb4ioXFwJRSrOg2bzrjWjBHWm845u4KLBl7lapHrV4LCITpor\nzCIum7QL2OHePn4h7hdFg7XX5AuSn0Jd2uZAFL76UD/8vlaeYikxoIsIbb0S\n/tZG5i+l2bjv/INKIAe2d3RGKOkSMkJ3YZcjt/r2XghTdWy7fTMmTOssiZHs\nFcNpXVGXamMJyMhvbqq/9O62ONgR2ept2QSHSynZErQR19sTy1jm88pqV9D6\na7jiXpH02wEO5m/HdXfeIww2M0TZcOx/a454bTgXpxJkmBOsoIQEZzxnq884\nGpQLZEkVk4gh3LjzMYdGmZjYs58qv8FBHMCsr1P4OwA/9qhUfA8hgMxoQWou\n/NhdP7kUmKNqQ6h4lrvi8XilawiKv8qwlNHi9nzome1Ej5WZLGgFs94ljqX7\n6V9O\r\n=/+up\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.29.0":{"name":"node-red-dashboard","version":"2.29.0","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.0.0","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"~3.5.1","jshint":"~2.12.0","justgage":"~1.4.1","less":"~3.9.0","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-t3E9HqQFFLM/Jg7hOBiXpBpnXJTvx98WiR503DpJXiGSzqZaC3jwiQVb/KjoX0sTFBzMDBZlLLs04wWYQ+V31A==","shasum":"51b8909e1bb8fce901553940ce1e67576b66d5bd","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.0.tgz","fileCount":144,"unpackedSize":3868434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggui8CRA9TVsSAnZWagAAFKcP/0tdmZgVLZCCxQMlEpWE\necDTBra/7MsvESeBMM3VeMkFx1iVItrpsOIa8J0UAwpInANOMRhE6L2M8h0v\nMkPc3VUWNUdZyZNMkUpAcIToCh6kgMld3jostFlCRqTKUjg1LFjtwSp4eZtO\n+66g4MFsE9mUO4NWKdfhhc3kgQiqX5Wsfg0khDKkWvNxmKeS4p9W8Tm3P7Xf\ntgr1nzGTkc2AXJud1Kk00vZKaK3NZzd7v6ZsdyXGapbs4AFlIzpx3TOs9hUM\nlMJ7jgmuwAwbeEiGJ9e0peVbEN7kBgMGSC7/XD9IJBejE69XYesIQ6JsCv1K\nA3y1Hok8rV2K4g1pvTCL5JJrF7jSw6u431qYFbBgUkGf9e9+VYXSJ3Wi5F0R\nHkQVdMyfHXCLFmWhQadUL5njAM7UB2GF+N8T9ubnHRhu0mxBbr7owygfrL/O\ni7DwKYPgFmZFUQIUAAzaGA0uWSpghZVAtnUEpyIjC2s80VBHJIhwEmC6Lkmu\nAMBJH6Gh1qrB+sSGHjVqCDZHhBPfd7rJAGxn3k+0YCWs2eDpceAesprkUwN+\n4exCmX4pFEwxN+JFzDP6H7zUK1fHeUrrU6JfY4eShEarq1/KqZi6eMk9OUsu\nzBoGa1ZS9E97U2GvwNhBrgAEhnUt0M5zZG2h+ka2LqrwuyjykJxCpF0D9mkz\n6V8W\r\n=Ugnn\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.29.1":{"name":"node-red-dashboard","version":"2.29.1","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.1.3","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.6.0","jshint":"~2.12.0","justgage":"~1.4.1","less":"^3.13.1","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-khzyd6CF6N6QxEYXbzXB2lv8wS9FRVG2MkKSStqkR1kWqM1kEcXF6qAcK7g+4QV/F3s642rZsbRmRF5P5qyjyQ==","shasum":"9b08c91675d69d6fced11864259200ae33659eb0","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.1.tgz","fileCount":144,"unpackedSize":3848198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgorUCCRA9TVsSAnZWagAAMRcP/iLV32QEhVkp4E0BBAVM\nyBkb2ubNkrzkbzPxUO+6YoMrpmmznPzkTjz2QWlankKqKIk5boXf2lE1fTcj\nRFOFRsR5NpO4tZxrBUMlbl4UMrDoz4TxkCslZmCJjwfivQbA6gDdwNSPMVNP\ncN7IckKQdlLBiOgDWVn8/XGv7arc6uhryvu6AeCvI8QWxGeAsrLGdVFE3tAy\ntN59Li5Ynsk+DxVcYTIL+lUY1TMLujZivxiA7T8R82bYrOM95+kn8pv4ifYX\nUU+F6HBR/Ip2oL7LKZEz3b3QHb0EJ39xLdTipS7wPnPfd1b/VcF8xL7QKmNY\nBuu8Es3fXG/iBv39BO7+tpZ3lYXLkqaeRQWaxL/qaEZIWSYvDbv0Uqdma6V6\nDThIrp3vvu0IGJaF+8qPdlWTppHsVlw5fW0tfDZ6/uMNCx4rF4bbVexo8AYS\nDxW0y4V7MH4WFHrGO0XLx1BcpwML5Ph+J12zLUicWk/Wr0S5rPkHJDGYLQ+r\nh6g/Lhwsfxq4+gGs9YtnLsbsMDSiffQteqj1ySwF0hOMAj0bdWgBlpPMr4vb\n3+91KJW3rDpIzitCC7zpdR0r5VC0Ig5wb9ps5JFvH4N99SoOY8rEY2H6asma\nyZI67+h64b9xbZ44Z+p08BPyhmPg05CCUsYGu7JfuiLRbA+dytLGqs3Flm5m\n0XFm\r\n=FOem\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.29.2":{"name":"node-red-dashboard","version":"2.29.2","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.1.3","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.6.0","jshint":"~2.12.0","justgage":"~1.4.3","less":"^3.13.1","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-t1HEGGZUjt6VBp2+7OmMbcYLoMgXFIOQ4fUzQgs/34xatf38qUIjQmPG/7b72fhK52dUZkkez/tRz8AKI5juaQ==","shasum":"40e271756ddb6289e5b6e69a665d6307662df4e2","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.2.tgz","fileCount":144,"unpackedSize":3848721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgw+mOCRA9TVsSAnZWagAAiC0P/2/j8+r62wNKhaKG9V4y\nWqGaiB2/JLcqXl9hntEV9FhmChdBraHKbNtJikepD0+V3fGOjR0Yd2P1Th2c\nlYpmbq+QycfjscqsHJPIrRUFfrUk0wNYCrNqM5wgoGp2UR/whudm0I9S4yjK\nNkdla5DtFCh/aoYaKuQD9ojBq44aLYAyJto+CLm4GBSUhoE+Tt5JiD21oBrO\n3bdI3gjGSwWfmRY2/CQ4gfyhabi/TP44xRnA4h+kFPJwYxGzcyNiknNWCXz9\n0Yy0SBJze46WGhkm0+T7nkf6oKjO6Rwr69GNpVOKi5Q8oByNVsCoGxOUNiNI\n+YETDUInmwY0IGPsYCp34hptmTlE+y9+0LkGRAIDkZKx0WPDRuYydEEE9GzY\nUSecpAEr3h22F8iTbe0I0jHOrVwrdQwYKEXwldDAEQ2kLJWADEoU1rSwnlG8\nPgnrveDh47lH7MxLNM05sqpghBeHS5nuKOwME5/vp5rkUkwWf2/tregp3nyA\netOf7sS1uIPOj7XEqcl4ttL+xj2myokXGr8Dq1/7lCF9af7SgnIO/UTu0s8E\ntswqoiq7ueb3nAcakqg2jnyq2Mo5sbQ67+PofLyPp/kFU1ewj5O6YdnljIo+\nBDlxsZAo3ESDugZdgE9jZNzU26t8NyMCSXgT8LCOEkZ970L0ejrk1xhArw+T\nVCXe\r\n=pHUG\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"2.29.3":{"name":"node-red-dashboard","version":"2.29.3","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.1.3","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.6.0","jshint":"~2.12.0","justgage":"~1.4.3","less":"^3.13.1","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-oaApDGBXypXIRJ8Tg9uLWGlxBaqDD5FDBdjLK9oFjMuNt7LQqsnQZLeNc8zHIu84PelLdOWnDLD1XYUd7h8xwg==","shasum":"480dceeafb952b04f216171709a5004dca7f5adf","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz","fileCount":144,"unpackedSize":3848770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxNJlCRA9TVsSAnZWagAA+2UP/jZ0JpV/kdX2dIbUsE2W\n57iYUBCglMY3NeP1pAmIy/QPAdHhISC9+30utXG85MP42+VTRmb2UWSgdSXJ\nwTOQq5QtvIcBP7ZQVf9y3BlajbdWLjFBmroAcovY8NopAq0Ea23lBFqLhM7U\n6pk1uIY3VyHRt71xOpNW6h43ubj4G3R06gC5UjYYrkmUw+ve063lC7/APSBO\n0sYggMyTOgkrLk0y3/N6AJmILa7pf/1ecREpWNHXSTTEniFUjRvlV9Rq/OeQ\nfXRV/bGv9huunWm+xlr+mdEwDuuTR+sDCad+xHHpgXnNnvB5+3B94Lm1ekx3\nvLIxGvbtQBVsHS/54M4jc/8w9tB9REdrPhAgP6OWUotTD+5ehE2gLPa9w748\nhiHLf1V5v6VEGPAxNMZaMOvrUYEQxhPrbk+bKcZwXTejiO97R5wbl1Q+JwYD\nsngzIZgxsYuCygzwX8BkdP6KrQddJyhXQkd5L8uKj55e9DgDknID5+PEEVgD\nMsJlbeNR43zg79LFs45wckbM27ibP3kUed52YsIKD4RhHqPeVn2TewhPGpl0\nGIZUGrft/0fPUnRj+Bxt5d5moy8GpBj9WqixmRmnLalaWpT7visg71Za8gE+\noSQic8eyu5Ogw5gBpvbxajH1jpGebK2BExiorzdcQx59YrwmlEzWZUSmOiOk\npwHI\r\n=vaya\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"}},"3.0.0-beta":{"name":"node-red-dashboard","version":"3.0.0-beta","dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~4.1.2"},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.1.3","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.6.0","jshint":"~2.12.0","justgage":"~1.4.3","less":"^3.13.1","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"dist":{"integrity":"sha512-eex7X2p/rsjnCNuvQuOURficdhUa7nBhX1fF8MJcQK6H5SO7Qwz5GM6lPw7cX8siyxZLnVw6bGmz+Jpu9ckFuA==","shasum":"5c20397aa3a4c654c58f792ed2d189c6d55c3888","tarball":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-3.0.0-beta.tgz","fileCount":144,"unpackedSize":3848962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxNcECRA9TVsSAnZWagAAX0sP/2xyOna66N4NC4pBh1XL\njSSYG4tHIY/pkEoBoR+ZYk5Q12Ay4F5fylpe2eqGl+6CxXDjMskWoZEa5wN8\nC2uufTan+M7YHcFT1ya9NSvNLOKF6Qm6Uxl85UxExXTyTQ7J277rA4HSS8n+\nuOEtrpPuvM9Z7d2mnYDRdbro0e6FetMFJJED88ZsI78sovx5+wh0aI+7x2ec\nDzRdPWPEnCo5I/6561mogRHuxnStDSo/oJJvdq34NeBvo3Id7a5xsH7zgMFs\nDYNhBTPUReibLXZm9O8NaeBsSBsuz4ny/FgJXMjBMoxzRw1TDgIcO1q8j2Qg\nRoA1NNG9H+kJL6ERMNQAnxDQZiBOMugmpIEwemTgCCw+NV7WUACcOWnAzHBQ\nYLOS/Kn/kgDwZgyfcBvMnZ0xQKP4qMt+2ilEsgeHwt0Z3kDQNJl5YtoeFaE/\nUTvoKUqbVCQgaWDR9nMq/u0oLZUXXJA/gAFtliYzjviFw2RosLFlDe+OWYE6\nPTlUfjlAgxJnxeLk2tbHUWR4NVSAT1SC329E9Eiei5xqDbANO+BWIkuntKqm\ndweyFM5tm8suSikgfitI26QRPzRM9jXfU2MoATX2wgoAoFd7iAF7uOhJMXQ8\nheBq5G8cxOTz6ZWrmz4DzCx0nvyWw//ZS3YYFM8P7hHOOgFmj9oJ2sHfNJeR\neuf5\r\n=rk/Z\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=12"}}},"modified":"2021-06-12T15:47:18.508Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/de/8b/943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a b/data_node_red/.npm/_cacache/content-v2/sha512/de/8b/943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a new file mode 100644 index 0000000..892f665 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/de/8b/943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/df/4f/6e38132e2ba55ea04505af2fb6462d3fded971a3ffcf99e60c3951160783cf3a8481d006126dacef8248c403cd20769a8bcd7e86925dad1af3efcc4e3465 b/data_node_red/.npm/_cacache/content-v2/sha512/df/4f/6e38132e2ba55ea04505af2fb6462d3fded971a3ffcf99e60c3951160783cf3a8481d006126dacef8248c403cd20769a8bcd7e86925dad1af3efcc4e3465 new file mode 100644 index 0000000..2dbcae4 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/df/4f/6e38132e2ba55ea04505af2fb6462d3fded971a3ffcf99e60c3951160783cf3a8481d006126dacef8248c403cd20769a8bcd7e86925dad1af3efcc4e3465 @@ -0,0 +1 @@ +{"name":"node-red-node-ping","dist-tags":{"latest":"0.3.1"},"versions":{"0.0.1":{"name":"node-red-node-ping","version":"0.0.1","dist":{"shasum":"11e2ab2aeade98f9d9bb5d5117e220b96c6dabd0","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.1.tgz"}},"0.0.2":{"name":"node-red-node-ping","version":"0.0.2","dist":{"shasum":"c87fe6862059884a6ab4331519936b60fdb9290c","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.2.tgz"}},"0.0.3":{"name":"node-red-node-ping","version":"0.0.3","dist":{"shasum":"13d6d51ab3cc157370422a335cb198c0de31c4c4","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.3.tgz"}},"0.0.4":{"name":"node-red-node-ping","version":"0.0.4","dist":{"shasum":"ca3d280f15ff246dea98cb49cfea96f674eeebaf","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.4.tgz"}},"0.0.6":{"name":"node-red-node-ping","version":"0.0.6","dist":{"shasum":"e77932eeb017ff577e7b2e9c2c238604df9773c2","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.6.tgz"}},"0.0.7":{"name":"node-red-node-ping","version":"0.0.7","dist":{"shasum":"188ab72f8e3b8715e624a0dbfbc1db33d9209374","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.7.tgz"}},"0.0.9":{"name":"node-red-node-ping","version":"0.0.9","dependencies":{"net-ping":"1.1.*"},"dist":{"shasum":"c69ec72d76b68e46a4218ad21c17f04e3b5b4ca9","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.9.tgz"}},"0.0.10":{"name":"node-red-node-ping","version":"0.0.10","dependencies":{"net-ping":"1.1.*"},"dist":{"shasum":"8326471692757b05f8c21e1df1a68a2597ed5c10","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.10.tgz"}},"0.0.11":{"name":"node-red-node-ping","version":"0.0.11","dist":{"shasum":"52ed49be55bd286c6e1ec203039a9000817c4501","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.11.tgz"}},"0.0.12":{"name":"node-red-node-ping","version":"0.0.12","dist":{"shasum":"25f04119bb10881fd88adb4fc820f37efbf0a29c","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.12.tgz"}},"0.0.13":{"name":"node-red-node-ping","version":"0.0.13","dist":{"shasum":"28aa7874d24e5036e1f7c7ae987d4616de177c01","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.13.tgz"}},"0.0.14":{"name":"node-red-node-ping","version":"0.0.14","dist":{"integrity":"sha512-AONlRimOjHIpFu27JOuP/rJGbPd64MFSZSwVgTXIfZJJzwIiQIwasOAcDmJZ82SmniaHUDGkOuS79R1Irqh6wQ==","shasum":"c046b69eccfd4ebf63710145e12b9c5bd372286c","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.14.tgz"}},"0.0.15":{"name":"node-red-node-ping","version":"0.0.15","dist":{"integrity":"sha512-kJh6D+2ti0+Wb7ZzabvVerRZvcv/7cAslhGWHwKr43e+5pu7LNhPSyJrqopJ6JxlXZrZDfMZO75bUpxU7FsjTw==","shasum":"731fd65f69a4d54b439ca4ba05525abf1c47f868","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.15.tgz","fileCount":7,"unpackedSize":5952}},"0.0.16":{"name":"node-red-node-ping","version":"0.0.16","dist":{"integrity":"sha512-Xrlpz8LRW5RAt35q4o3K1SdHXM6wRoFXwAmjttQLS+VH4xQmr+LfBysvat2CbH46kbAZTQc54Llb7pVfxWxm6w==","shasum":"1123d2dd1b8db3fc8e3f0d1a9e5785c106167911","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.0.16.tgz","fileCount":7,"unpackedSize":6731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcB9apCRA9TVsSAnZWagAA0tAP/iL6PdqCEYg55ZHZ43eR\nGM5GKEEO3Fg5n11IfEwIjbNJK+RCP4aWn8aWd6XIxruLb70ETathuvjvIa1r\nkPR3afVxuAbFR4SgOPaZDZK7BruFEsue3Hu2uRxIZRXHqSsQLXId6669NR1g\n4xXN++840j9zziQy9XKDqqZJMRJ81rdLmRk+IIpen9WIS2m3oBLhfSZ63dap\nf86Q1vnhSpOlnDHk7cBjV99A+LwahqEcPOBVSMTDhxCklVQinjrW8KamHUz0\nM2agj+v2EokVrCpmaE4c7hUY/Zn+39VpcpWJXGiDcAFXnmJmAd4QlWFJZHAR\nyDCmYOtijHbbDQLnaJdK0jjppixN6NlgnXOz6GEfZQCbmZHwzNcXlBg6l4CH\nWKJlk3sCC6t3EXOSdox2Awiuvv+w0QmfF80m2Whcs6KSkK1rFYe1qoEbw6ET\nN/9r4tVbCed77hQhTxqMU/Rm03woutx1tke1014Fyfwc3rCnSKpocKmDHT7n\nkEkrsYW5wAj2EE/wxDRh7YsCdBfsqIc2Zuz4R3hnm/skbi2y4whbfbTASP3X\n8gYCVqu7SxQRRtC8n1tOq3Bv62v83qZNbAoagljHoOl0PCKrRPHXmwlIlvUN\nX3nQ8A0FHqOcjMWtlsZKIXDWacIt0acHURh/aZAy8FrF1iW4AKGIsAmNkDVi\nu/Ty\r\n=exmH\r\n-----END PGP SIGNATURE-----\r\n"}},"0.1.0":{"name":"node-red-node-ping","version":"0.1.0","dist":{"integrity":"sha512-9Nvq8HQF8oJ3IlOaQqn0GGltGOlsEOlnHWfPcRqGDylS6F99aF4TGnjg/Aih6bpRiLF46qrBkOViG1mazR5umA==","shasum":"795d5c1e9422aaa5232834c373263491cc71e64d","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.1.0.tgz","fileCount":9,"unpackedSize":7791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtDYpCRA9TVsSAnZWagAAMeoP/R1y8ZMDrcihSHJe82bw\nGF1BgVuD0HjOYkDOqt/e9zN0lv6L4PSt+8qru1M1jk4PIdV0gwDDl73wkEe+\n6C/z+QlR9u1+55ebFdaK3pmx1962Gh4nV9vd0PU6ParbaSsQJKGcNUTxfUge\n4FoL7Mzv2NNxRKZJq3damUd69a2mPACd8oJ+k/vkEmxOS+jiK8O9iGl8E033\nCmbkPHrGaLpB2v7IDRs4vQbj9xlCnrOhB/htCLES837fB3MuN893rYuupv3e\nbrOfLJHXmbEVqC4Bk+NbnY3PPqLBZZ42SedI6MtjWbcOhs7WjBCDbhR4+ztF\n2niIxTbUIYZIwJs0Kuoz8hqwSQTIrFv/1s6ad9+KHGydIv/PKzt4RrBgrQdD\n7Sv/v+YA0HCi6qLBwOEe+TIxmFbUDvXEvUly64TKY1X/nP3WenJu6zjBF6G3\nQof6YAJTP3CpoynXSyrj31uDU3e1NAnt55Rta8KSUKxViEkKxWOVaIF7ZgJ1\nJ+ODcQJbo+Lo8pw4R0IgrlhRpUVNzL/3W9MMXrGOawKSYGi04HQopVcHh3+F\nIBsZBQdT+NDo1SCKhKc7S8dlolQ8OmvQR9yJq5G2FaQiax5Mm4SF6ssBhWmD\nZO+lPFBaOfmL/FHNYyaJCVQnL5QzGCzVRp8cOsIjzdg69bBreLqkFlaaoQce\nt4wm\r\n=J/NE\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.0":{"name":"node-red-node-ping","version":"0.2.0","dist":{"integrity":"sha512-z3yTOWKxTflFwBSqLrHmksvj6+4d/eG6ps4a2ZRQrKwhbbbTmpfoou0FcSgeiy92tS70KEU6tDzLqyjMmomphw==","shasum":"1970b3f3121bc0b8285744d5c8ca1a083fb51b8d","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.2.0.tgz","fileCount":9,"unpackedSize":19965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiIJkCRA9TVsSAnZWagAADxcP+QDYRWOoMA8GMZmJS/Ft\nOKTwPImB3/YwxZuzlT+ZNttdFEG31zoiTbyKnKzZ/ptnthNaHHxgB7yesonk\nH/TUQhSH/2MxLkVtxzBGrpQGoFyLhT+hZsby3ZJEUQ4cy690XEpOX2G5bfat\n2R46mC1urtO2w27y+PCeHzi7OdrB64G1kCGQDBpCKw/C+N1CzjK2TLCMZuQl\nCmKZpinQBD8jVbzGfQRoWVPvZGxX+cVNTgqhZED7ZoPTTbaeS/E1OYORJU1y\nQtfO9N3Qm7V8PicLM0BNVYWIwAc5sIMqcQj1tInZ0+EgshvD27vH3nZf3wPO\nIL0oN2bUWTRRRPuUDeqLrxfItN91/9C955Gfgm4e9skWoijFKMRRkEDlfjS4\ntm9Eh3iDJ30PSKN6hfzmV+pjYq8O4HZ6mUXnXj8wQgT/CEJnMFsc9iXqLbXw\n6jVjikDKVNOQLjMAFs6hDGdPfqHFTWPqHrohIBcOK6m87zU++Mv+mGMzyADK\no2wtuY6dTL5b1MUf34gFLda+7qsCu/ztb42fWthrJo7wM2mNAFAZtQr+661d\nGmIa7be8/uwyzAx6HhrbWcSCFFG2o5ott8Xkr5e+nv8DPjZKZIaPEDz56UpT\nk5SFp3MIinidnpwH9DK4pfORk6/CTfhPSYWZbxjqPGDH/I7NUQBv30xm1Rpk\nx24R\r\n=cot5\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.1":{"name":"node-red-node-ping","version":"0.2.1","dist":{"integrity":"sha512-79T4HxkZ4RLWaCPDpMt0Z0WBdNhvuMA4gB0D8wfg8AVQ8+HLAQ61JQ5vnXiVrcK/ZJE1/mQY/nWpSBdKNmSmnA==","shasum":"8c36b3060e92d903c8ad505b9db043a78de263ee","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.2.1.tgz","fileCount":9,"unpackedSize":20182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/GK/CRA9TVsSAnZWagAACPsP/RDsBTi3nhaDGfwJkPNb\noMAbBzrYdj0hf97TKSep2C2zITlbflUu+qZiU7tJCLcFfsHXC8Al7RBtlREr\n79JlKpiFVNxBbuTHeGdQQ+o5VAcV5fpxbYYMemVBnbs02S03voJMRyFg1LIf\nECnxrDBlPrJz/oY2rd0QaWJuMsEc+vs4lQZhvhjsDxZX8oU4PkSfu1lH/ZDM\nGVCMgA31sW7Cn0yhbM79dCJsiFyQqFRMg9lVKRnmw2soUWeDwvccd5mFypR8\ned5BI7SJUcyhz6LH+nzI6wzFwZIxIX55rEjfWK/HGncsSzDA9GZ12H326tyi\nEPJU2NDiuXtiRJHEUzZTM0zUtvZx3vOyUJ8d0pbvPZsmf3P6nj9x2vd4Sp7t\nxyBvBLVcmQa1YhEeOV8rM3mh07KViQuK+pcJ5OV8wyYvODY8fXNHlWJRSKfh\nEKrZiCLNU/e76N/ypakewf4X8X/iHjTtzFYCQSQEoxM//8O8/NnG5Exzkamc\nSEq+X3xOOpSPMFkMTJYCd5sAsvk9mYfUcChxDb/OZ/gVGaey3h1GLXqDxJ7v\n8P1GAD7Kb/d9AvTl6zi5p728OGiDHYslanWH64erBiWFyWMzFNjEHxu4vOr0\nj9GBuaHan/bUe43jjMtg22P48sPhxsLuRvQbA6aWAHbEpRhfGAUure01rm7v\niRN+\r\n=+SF0\r\n-----END PGP SIGNATURE-----\r\n"}},"0.2.2":{"name":"node-red-node-ping","version":"0.2.2","dist":{"integrity":"sha512-PTnGCF2cjLjLc1479gYyQK6Hzyg8CxC/iXqYTuvh7aSKe/x4qjh3U5/lqKUtAEYCYTkM4G1XowVHHtDfTmoMqg==","shasum":"670258133f0048aa9f025932672f980c9c322a81","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.2.2.tgz","fileCount":9,"unpackedSize":20023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfuAXyCRA9TVsSAnZWagAA4WAQAJ1DgVbN56e06Ug5mF/w\nkO0/ZThO64lKT6sG9Z/UasoK9VqDoR66WCxNY64/5Jq3s9MHleoA7ZsEmJKv\nxZPBRgoetrPITlg5taTuinx2GXFyK4Oqk9DpyYxqhFtRh6BnTfslLx4z/nlI\nAmOx/RcvlXnq2zzrj/5HGoxSf3d7OZEAPScSoJswO1YpqJvz7PSq92xt6AXG\nN3tyXONwnugauJXbJ7xXs0Msxvl8Lv3gXHyL+bSlUNSsLKMMAZXnt2Tn0N1n\nRwIzacOziRfvW2PFhVjss/tvvRm4FiUAiSxa5QDk7E6ILg00M6uLNaqwqdaz\ncAx7cJJK6zpK9oPhCukLh07YRAdJVR7UigPiMFQWXM+NhnSfByiDjyTrUCnW\n/C/85OjkakvsyJBOH9hynQxqjPCBMV3rjCocvZbjuvvQDU3xg9gOglsczUnU\nh9ysfGKRIjYHPOSuiG0+GE+HzuaT9cWgi4S2j+SmH4GmoisRXixeBnqq6qum\ncVFZK8aCi2zgems/ooNq+4U1qmQD1MHWdXDLowYyts7FE34lUq8wJrB6rTot\nEKYdQJjMjphiU81fobNBxH0u3mUtqXkLEXvCjoyJFt81r80EPPjibBHEQhk4\nglKLWFbf6UhbTA6gR4sUDIkDlQ8WeHvSF7/b4gO/qk72reo7ugfHAPCYYTNe\njQt3\r\n=6Sl+\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.0":{"name":"node-red-node-ping","version":"0.3.0","dist":{"integrity":"sha512-pSFNRsVFIeTUeRnrQSF1PrnZZN0CqCHOyS+iL7YQqfScvNc204boaf+p/JT6Y54s8NGZ23XZgSNa1hZY10PSZw==","shasum":"d92e80823d011615dac10143bd664efc6cc011d4","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.0.tgz","fileCount":10,"unpackedSize":27381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS9NtCRA9TVsSAnZWagAAkAYP/jgoV9ItWLwbKNYiLxhs\nonumvPIeQuPeulmGeDj7qb8zu0uhPAiAiNnb0/qZRa8iZVcP0IRB0PfrRdLv\nCVMrduN762WPUbLOKl0/5aVLFeQobbQTp7yGvAgjSNciK3+LjR7W2YxAoTCa\nkVKrGkX+zMmfwKcZuquRv3m82HvEMHgXLwqaj0JANZNAIx+o3mDar/gaFxNu\nN5mYE7ATRReEvfXSKRO0eQdXgfUo8tqnW5p5CvuIWNfVKtZEDW3RlFHbeYF0\n/Xku6yr/BVvp5qg6XJrHJ6YEMtXX1DUp1i7KeVpirnQi2OZlz00CwrXcMheB\nY8CWr/j8tJMAWyD9aqn4KIKB91JOUzJRc8jTpSkekCmVXyE94Iu9GaPYBB51\nJ6xzZTiH1EoSx1wSfHcXvA6pceGctTYLmaSA8z5vD0zscBVKx9/Mq6G/9mao\nSYXPOSuDioo1nV8Y4U7490LoszMDwbvmTtD7A8FHR9fWngtBN3kp3h2vf2DB\n+SQr1NzmAKOx1O3BRHxiP43uTzoHWTQN/4fiEiagpbw/NAB4NAB3CJI8+Uat\n5cz3YA4MALznWPPYO4NbSFvzpx8QGu3Fyn4U67/jCSp5RJmNJetuzDHRxpFe\nkePd0Y3RyUAa+bRPl1qDbAYM8OOBc9Qk0yFzKzHElMmMZi0fA7urt4q711Jw\nLPf8\r\n=KksQ\r\n-----END PGP SIGNATURE-----\r\n"}},"0.3.1":{"name":"node-red-node-ping","version":"0.3.1","dist":{"integrity":"sha512-8fdkrEgOJ0Cvkgw9a0BhnIFZ/8GAXQSvdLVVkrTgRSWMWJ/FHDwLyqEjeqfXRbFuzIfhT5fd2c7AXAS2vovpFw==","shasum":"dfd016c13a8740807ede61932ebc01364632ecbd","tarball":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz","fileCount":10,"unpackedSize":27749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbypZCRA9TVsSAnZWagAAAFAP/25nzTsSeA4tFL2Ndv7F\n60yrRnl27aqa9ioC0Vz9Rjq7vBapHpGUKfrGWv7EUokVfxh9SA5wWM7fwthB\nrNGu4HQpIKc0pfF1CMIrCcmBcVAS6HhJ49JLl8dnX/21n13dEI7dAaDxO+Bu\nZCwXDzR5tQmI+hgJe/qE5fw1h+pz40UiN3R7O66+Q6gzlJPwh9/Y/G1dvtGl\nA8I7tR/G2YPqgrv1y/4VmmHgEN6PXa+L5bYt+LvQlHuZ32LLakDFlhx05NUV\nbHvfwjbu9u/TRNercE2rh7b5yeMuNRhqQiyjyFo7qVUfJtFRGtxaGEHiGp2E\npSOPQU47HKwWqI73dskvf6FklsJxVarmsyFibMu8Hd0v93uKPm3FEZH7tYlW\nRpAusCztXBvwY1wppSlXSjCGTmR5zJ9ZpLDoB1TQIq84Z3NC6Zc7M8TgpUE2\np9wj8WkET74xhgseOXb9Qtl5Vdk2bWBkenaQBMPYU/49qOAYXpHrlOGi2gB3\ntOuBZaAu5B6xDIR/KZntI6wkWlSmq33Ti0UWgGjDoHBfxq3r85Z3cAoPFggE\nkqPoab7G11n6stZn1PgAdA+s4r/FiY5ypkwoBzAr4TdERfda6C1JmnpkZqqB\nur4S0YoDLn6eB8s+GpEbVNZKs1fV7YO2kLt7H+lOSpQM9VJqiR0yMX1GpyGl\nxUMn\r\n=k8h7\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2021-04-08T16:07:55.026Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/e0/b9/e96e3749ec089adb2221cec4fb6050d23541155a17bff3a1edddc100b6f5f61e957cd42cb5ad64ead2c53dba3616546a1a872c8be05a096590a3b3b0b326 b/data_node_red/.npm/_cacache/content-v2/sha512/e0/b9/e96e3749ec089adb2221cec4fb6050d23541155a17bff3a1edddc100b6f5f61e957cd42cb5ad64ead2c53dba3616546a1a872c8be05a096590a3b3b0b326 new file mode 100644 index 0000000..03852fa --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/e0/b9/e96e3749ec089adb2221cec4fb6050d23541155a17bff3a1edddc100b6f5f61e957cd42cb5ad64ead2c53dba3616546a1a872c8be05a096590a3b3b0b326 @@ -0,0 +1 @@ +{"name":"depd","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.0":{"name":"depd","version":"0.0.0","dependencies":{"supports-color":"0.2.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"f0cdb7651bf4f7cad646b01f747afab94aedad0b","tarball":"https://registry.npmjs.org/depd/-/depd-0.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.0.1":{"name":"depd","version":"0.0.1","dependencies":{"supports-color":"0.2.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"ff5cd1c93fa3d941539314c6f226da1b4d2ad9e2","tarball":"https://registry.npmjs.org/depd/-/depd-0.0.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.1.0":{"name":"depd","version":"0.1.0","dependencies":{"supports-color":"0.2.0"},"devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"16c10b0c8b3848a5cd4e29dc3ab6b9725b46d509","tarball":"https://registry.npmjs.org/depd/-/depd-0.1.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.2.0":{"name":"depd","version":"0.2.0","devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"cdae0ed2e0ec4e10455e71532b0085e903a9b453","tarball":"https://registry.npmjs.org/depd/-/depd-0.2.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.3.0":{"name":"depd","version":"0.3.0","devDependencies":{"istanbul":"0.2.10","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"11c9bc28e425325fbd8b38940beff69fa5326883","tarball":"https://registry.npmjs.org/depd/-/depd-0.3.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.0":{"name":"depd","version":"0.4.0","devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"708b0f636d3f4bf5eb593a88591da04d34858504","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.0.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.1":{"name":"depd","version":"0.4.1","devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"2939465411bd56deb66be29800eb28b1a6be7491","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.1.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.2":{"name":"depd","version":"0.4.2","devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"a4bc8a0e4801770a66363daa6d35138f3e3b54dd","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.2.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.3":{"name":"depd","version":"0.4.3","devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"7c5118b16eb8cf123de65e98e45c8d868b44146e","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.3.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.4":{"name":"depd","version":"0.4.4","devDependencies":{"istanbul":"0.3.0","mocha":"~1.20.1","should":"~4.0.4"},"dist":{"shasum":"07091fae75f97828d89b4a02a2d4778f0e7c0662","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.4.tgz"},"engines":{"node":">= 0.8.0"}},"0.4.5":{"name":"depd","version":"0.4.5","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","should":"~4.0.4"},"dist":{"shasum":"1a664b53388b4a6573e8ae67b5f767c693ca97f1","tarball":"https://registry.npmjs.org/depd/-/depd-0.4.5.tgz"},"engines":{"node":">= 0.6"}},"1.0.0":{"name":"depd","version":"1.0.0","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.2","mocha":"~1.21.4","should":"~4.0.4"},"dist":{"shasum":"2fda0d00e98aae2845d4991ab1bf1f2a199073d5","tarball":"https://registry.npmjs.org/depd/-/depd-1.0.0.tgz"},"engines":{"node":">= 0.6"}},"1.0.1":{"name":"depd","version":"1.0.1","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa","tarball":"https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"},"engines":{"node":">= 0.6"}},"1.1.0":{"name":"depd","version":"1.1.0","devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4","istanbul":"0.3.5","mocha":"~1.21.5"},"dist":{"shasum":"e1bd82c6aab6ced965b97b88b17ed3e528ca18c3","tarball":"https://registry.npmjs.org/depd/-/depd-1.1.0.tgz"},"engines":{"node":">= 0.6"}},"1.1.1":{"name":"depd","version":"1.1.1","devDependencies":{"benchmark":"2.1.4","beautify-benchmark":"0.2.4","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.7","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.3.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"5783b4e1c459f06fa5ca27f991f3d06e7a310359","tarball":"https://registry.npmjs.org/depd/-/depd-1.1.1.tgz"},"engines":{"node":">= 0.6"}},"1.1.2":{"name":"depd","version":"1.1.2","devDependencies":{"benchmark":"2.1.4","beautify-benchmark":"0.2.4","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.7","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"~1.21.5"},"dist":{"shasum":"9bcd52e14c097763e749b274c4346ed2e560b5a9","tarball":"https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"},"engines":{"node":">= 0.6"}},"2.0.0":{"name":"depd","version":"2.0.0","devDependencies":{"benchmark":"2.1.4","beautify-benchmark":"0.2.4","eslint":"5.7.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.14.0","eslint-plugin-markdown":"1.0.0-beta.7","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"5.2.0","safe-buffer":"5.1.2","uid-safe":"2.1.5"},"dist":{"integrity":"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==","shasum":"b696163cc757560d09cf22cc8fad1571b79e76df","tarball":"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz","fileCount":6,"unpackedSize":27117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb01R4CRA9TVsSAnZWagAArWcP/jPqhJPVwB4A7UlP7Z79\nKmkIJRegTXb8sBTkFdL8t5TDikX47CViz3qWSktGdJnwY4q/GnLHeOr/+eq6\nXVvkSKLrpOdmDBYbf7DxVepxbWOLVSCAshlnw6XPXhcqOKd2smn1CPA/hgRj\n26YvwMECmyIlcE5RgubUvN4qqOyMhGF7muWjCbqRq3qcGK7hXUqEnrlHxHsY\ndKCnzRw0HbfxYX2QynmyRL1Y9ynQuq2ucTDxuhQf78ElkHAsbSYaEks9unYG\nWGhU8zH4TGOcLrmJ6GsKhZk22JvnxCg3zwgqLwks2EFiG1iojPD4EkjZgcnJ\nt8meOu2nT8JCa6fNpPMWUpYO1aUKmhoOb5KGyMhSsNX/DND+ndSu0kOP9gU1\nCetsBqRTHHH3jUK/NmyAvzMO0X8mk/FxzI+NTqKQKt8r2/Y5IW4A6oDkaRkr\nPSu1s1DpT5mw9gHBA7K0YKuVr6HwQVnd/1io+OyUmNarjXm2lMaXucpZG3+Q\ncWpj4FyrD0vf+/bV9LKTXee3qAJ9UEGNvhJAKUrGTR8vtdM6uMxLnsBe42hR\nsRM2dJ8KnMujdw+lH+sgjtqcYP/G1Gz2cRtfbVWTrc/olODQPBpu2ycIY0nc\ncejka3bMbVHzYaY7+ho/9SfbE/6x9LRlmcHSEiPzUHRSpYY3pskktQDM0bBo\nm15/\r\n=BUpb\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}}},"modified":"2019-01-02T20:56:15.578Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/e1/3a/029e778d839530fa6b37c47b4f56fb0d5ddbf04219e0765c8d806900470be8a10bbe80b2fac64c0fa8b539f53b193ff2d5be87dbd90844b97ca1fe870bf3 b/data_node_red/.npm/_cacache/content-v2/sha512/e1/3a/029e778d839530fa6b37c47b4f56fb0d5ddbf04219e0765c8d806900470be8a10bbe80b2fac64c0fa8b539f53b193ff2d5be87dbd90844b97ca1fe870bf3 new file mode 100644 index 0000000..3f16e44 Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/e1/3a/029e778d839530fa6b37c47b4f56fb0d5ddbf04219e0765c8d806900470be8a10bbe80b2fac64c0fa8b539f53b193ff2d5be87dbd90844b97ca1fe870bf3 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/e1/72/6ee619d6726a87786f3cd892a5b4b215173d43c421059ecf01c34c34b62fdf0a106ed529f00ff7aac162ce2b0b0331f226a5a4427599445d8049592b44bf b/data_node_red/.npm/_cacache/content-v2/sha512/e1/72/6ee619d6726a87786f3cd892a5b4b215173d43c421059ecf01c34c34b62fdf0a106ed529f00ff7aac162ce2b0b0331f226a5a4427599445d8049592b44bf new file mode 100644 index 0000000..f812d4a --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/e1/72/6ee619d6726a87786f3cd892a5b4b215173d43c421059ecf01c34c34b62fdf0a106ed529f00ff7aac162ce2b0b0331f226a5a4427599445d8049592b44bf @@ -0,0 +1 @@ +{"name":"on-finished","dist-tags":{"latest":"2.3.0"},"versions":{"2.0.0":{"name":"on-finished","version":"2.0.0","dependencies":{"ee-first":"1.0.5"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"7286551c58c874d8342624cda56e2b42ea227f81","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.0.0.tgz"}},"2.1.0":{"name":"on-finished","version":"2.1.0","dependencies":{"ee-first":"1.0.5"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4"},"dist":{"shasum":"0c539f09291e8ffadde0c8a25850fb2cedc7022d","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz"}},"2.1.1":{"name":"on-finished","version":"2.1.1","dependencies":{"ee-first":"1.1.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~2.0.0"},"dist":{"shasum":"f82ca1c9e3a4f3286b1b9938610e5b8636bd3cb2","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.1.1.tgz"},"engines":{"node":">= 0.8"}},"2.2.0":{"name":"on-finished","version":"2.2.0","dependencies":{"ee-first":"1.1.0"},"devDependencies":{"istanbul":"0.3.5","mocha":"~2.0.1"},"dist":{"shasum":"e6ba6a09a3482d6b7969bc3da92c86f0a967605e","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.2.0.tgz"},"engines":{"node":">= 0.8"}},"2.2.1":{"name":"on-finished","version":"2.2.1","dependencies":{"ee-first":"1.1.0"},"devDependencies":{"istanbul":"0.3.9","mocha":"~2.2.4"},"dist":{"shasum":"5c85c1cc36299f78029653f667f27b6b99ebc029","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.2.1.tgz"},"engines":{"node":">= 0.8"}},"2.3.0":{"name":"on-finished","version":"2.3.0","dependencies":{"ee-first":"1.1.1"},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5"},"dist":{"shasum":"20f1336481b083cd75337992a16971aa2d906947","tarball":"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"},"engines":{"node":">= 0.8"}}},"modified":"2018-01-19T08:15:32.233Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/e4/b5/4eb5ccec99309e14106bc5afbc0e02df110bff1ffb5dbd15f31a607da00e865368beb06a4e2b6cd99749e0982d8350ac7e0d5920827407737bb851dae8d5 b/data_node_red/.npm/_cacache/content-v2/sha512/e4/b5/4eb5ccec99309e14106bc5afbc0e02df110bff1ffb5dbd15f31a607da00e865368beb06a4e2b6cd99749e0982d8350ac7e0d5920827407737bb851dae8d5 new file mode 100644 index 0000000..e2a1f4b --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/e4/b5/4eb5ccec99309e14106bc5afbc0e02df110bff1ffb5dbd15f31a607da00e865368beb06a4e2b6cd99749e0982d8350ac7e0d5920827407737bb851dae8d5 @@ -0,0 +1 @@ +{"name":"toidentifier","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"toidentifier","version":"0.0.1","devDependencies":{"ava":"^0.22.0","babel-cli":"^6.26.0","babel-preset-env":"^1.6.1","codecov":"^2.3.0","cross-env":"^5.0.5","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-plugin-prettier":"^2.2.0","husky":"^0.14.3","lint-staged":"^4.0.4","nyc":"^11.1.0","prettier":"^1.6.1","remark-cli":"^4.0.0","remark-preset-github":"^0.0.6","xo":"^0.19.0"},"dist":{"integrity":"sha512-rbnQkrIivqT1LG6lv4zIbjXG43nmtQvugnEK6E5tA0OlDJcK6e0O6DkxYmaV/zcB4Sd7Hb2uB0892I7CMYJdww==","shasum":"32fe700072972c0689f67fdb0e1eb92b2d18d413","tarball":"https://registry.npmjs.org/toidentifier/-/toidentifier-0.0.1.tgz"},"engines":{"node":">=0.6"}},"1.0.0":{"name":"toidentifier","version":"1.0.0","devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.11.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.7.0","eslint-plugin-standard":"3.1.0","mocha":"1.21.5","nyc":"11.8.0"},"dist":{"integrity":"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==","shasum":"7e1be3470f1e77948bc43d94a3c8f4d7752ba553","tarball":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","fileCount":4,"unpackedSize":4327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQ4XTCRA9TVsSAnZWagAA7DoP/j60iZmXQNybYW88ghH2\nb0/OM4HaSAJFZaPLs/QWHAG+1njmk4Inxr0YPeqAcU8bkh8UvUBAsf/qnNOV\nVx8R5MQspibif04/f/nB+ZZyoFvv45270S5M+hb22colM3BK0FnfImVZHqI6\n0n+fbicoYYCg3KxEpLC4GdXbJ2R6iSJ+kCnvTFX7/EzDoDjZJjzSMn96HpH+\nakvIo0kEXsTMVmjWwQSo++7JzsfBJs7Z2X+ixOdhf1HHYU5yiDS/8blXY5hN\nG5tcXbsBsFMPSRwKzArB8SqTejls6uRY21DmzvXnNCfS5k5FyftGLtBTpmwk\n2mHLENZ+79t+HP4tXmF/2scY/XjIWCtxjmOPBHg9eMoCe7uiEf/MkNoPQ29a\nKYMYz3gePkHG6NH+IN69e0KYmdzyowxtQy0Oel3L71nnguFD0DzJuhODahvl\nWdrzkyKWYHkrByIQmsYhLei67I+fgiAEURFhXHwRQ6TfW+i7I+0vx6qVZ7Uz\n8kCo7SELv6Suo62QXxB3O9u0qZyISXWfxbV48+T5KDayWmBVNEo9yktzPMF6\nIv49uczFdrGI5rAI2/zW5Ss7I00OnbY1I4va36JkEcoxqriiYGhLK+a7/061\nRKoB8fSKWCaiXEYcNkjiEIhI+5n57xOA4PuEUnfpqizo8yvxVLvOLUmNCtm3\nBVOV\r\n=Yk0D\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=0.6"}}},"modified":"2018-07-09T15:57:10.194Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/e8/59/73b9b4cb646dc9d9afcd542025784863ceae68c601f268253dc985ef70bb2fa1568726afece715c8ebf5d73fab73ed1f7100eb479d23bfb57b45dd645394 b/data_node_red/.npm/_cacache/content-v2/sha512/e8/59/73b9b4cb646dc9d9afcd542025784863ceae68c601f268253dc985ef70bb2fa1568726afece715c8ebf5d73fab73ed1f7100eb479d23bfb57b45dd645394 new file mode 100644 index 0000000..c7670dc Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/e8/59/73b9b4cb646dc9d9afcd542025784863ceae68c601f268253dc985ef70bb2fa1568726afece715c8ebf5d73fab73ed1f7100eb479d23bfb57b45dd645394 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/ee/37/a4438eac59360704906e56c98a627d6d818d6ea04f726d4b795a0bd7043c2442c794182a73d50786521e38dcaad1e1e043c40c31279813f39b558cfc5b47 b/data_node_red/.npm/_cacache/content-v2/sha512/ee/37/a4438eac59360704906e56c98a627d6d818d6ea04f726d4b795a0bd7043c2442c794182a73d50786521e38dcaad1e1e043c40c31279813f39b558cfc5b47 new file mode 100644 index 0000000..5dd5845 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/ee/37/a4438eac59360704906e56c98a627d6d818d6ea04f726d4b795a0bd7043c2442c794182a73d50786521e38dcaad1e1e043c40c31279813f39b558cfc5b47 @@ -0,0 +1 @@ +{"name":"destroy","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.3":{"name":"destroy","version":"1.0.3","devDependencies":{"istanbul":"0","mocha":"1"},"dist":{"shasum":"b433b4724e71fd8551d9885174851c5fc377e2c9","tarball":"https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"}},"1.0.4":{"name":"destroy","version":"1.0.4","devDependencies":{"istanbul":"0.4.2","mocha":"2.3.4"},"dist":{"shasum":"978857442c44749e4206613e37946205826abd80","tarball":"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"}}},"modified":"2017-05-22T14:30:27.084Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/ee/f0/32ee16fc192e469dd1b7107864fe60063d1514fdfeb7989e3f78ac49e6f3709768be01bfadf252fb13eea3ad817854c336bbd2a579580285f19e5e1123fe b/data_node_red/.npm/_cacache/content-v2/sha512/ee/f0/32ee16fc192e469dd1b7107864fe60063d1514fdfeb7989e3f78ac49e6f3709768be01bfadf252fb13eea3ad817854c336bbd2a579580285f19e5e1123fe new file mode 100644 index 0000000..3bd394c --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/ee/f0/32ee16fc192e469dd1b7107864fe60063d1514fdfeb7989e3f78ac49e6f3709768be01bfadf252fb13eea3ad817854c336bbd2a579580285f19e5e1123fe @@ -0,0 +1 @@ +{"name":"xmlhttprequest-ssl","dist-tags":{"latest":"1.6.3"},"versions":{"1.5.1":{"name":"xmlhttprequest-ssl","version":"1.5.1","directories":{"lib":"./lib","example":"./example"},"dist":{"shasum":"3b7741fea4a86675976e908d296d4445961faa67","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz"},"engines":{"node":">=0.4.0"}},"1.5.2":{"name":"xmlhttprequest-ssl","version":"1.5.2","directories":{"lib":"./lib","example":"./example"},"dist":{"shasum":"0a9ab125d0bd41cc7016f3543c5d21e1f05c4eba","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.2.tgz"},"engines":{"node":">=0.4.0"}},"1.5.3":{"name":"xmlhttprequest-ssl","version":"1.5.3","directories":{"lib":"./lib","example":"./example"},"dist":{"shasum":"185a888c04eca46c3e4070d99f7b49de3528992d","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz"},"engines":{"node":">=0.4.0"}},"1.5.4":{"name":"xmlhttprequest-ssl","version":"1.5.4","directories":{"lib":"./lib","example":"./example"},"dist":{"shasum":"04f560915724b389088715cc0ed7813e9677bf57","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz"},"engines":{"node":">=0.4.0"}},"1.5.5":{"name":"xmlhttprequest-ssl","version":"1.5.5","directories":{"lib":"./lib","example":"./example"},"dist":{"shasum":"c2876b06168aadc40e57d97e81191ac8f4398b3e","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz"},"engines":{"node":">=0.4.0"}},"1.6.0":{"name":"xmlhttprequest-ssl","version":"1.6.0","directories":{"lib":"./lib","example":"./example"},"dist":{"integrity":"sha512-z59ztoKPjoFdK6uki5DRiMwPCYtHgp42vCamEpirB9j6zqnbNYBp/2GfrTEOG6IcS9OoMWmIiauU6d2RQNcdbA==","shasum":"dc201efdadb824b5f188478962fc270115880fe9","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.0.tgz","fileCount":16,"unpackedSize":35129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQc/yCRA9TVsSAnZWagAAvQ0P/jjdamTuUrkhlBJ26Wi6\nWcLas9tL+DQo5YlG8jKiKolafgXWuKUwecvojtiKwta8VDWXSUkQculwYTfP\nsrL6Y8TKn60//TOdtz6Ww/M0aHniHLYgLwVMqhG0ajXIOdCxS/MESonQs279\nmO2KqUKK8axvrdsMTIM2m1+s4v2sUh84u4i7032lnKmX+Scjt6gpGi89m+2Z\nPTBHoOHXVfDqhJZyfWgsG3kgekQZJM5eKSW1o4/p1et/t32afKFVXb5Xq6NY\nJGwv6M16Eqcfb4G1Z/6pC7c4X5w9Nhs85DAdXo3gwG+IE3b2fa0h/peGm0iq\n0C/aBUKoRx8XEQ6LBXX2U/pUUSBPIAnMZkPartSmqJcq0myLFhfxlVCqQky1\nmeZTaaE76avZReUxOl/fGAHIzndLZ8IKk3GmbHSRND/ujm0xn+2kwhtGUuJU\nmRPeJlA9qiw/BDZ2XKf4O2I49lIEjg8Fn2v5bEMuOaJZf20adgt0iZ5DF9qZ\nR2YH+9IqBTDSdK4NKwozKUmCG5G+ASSqQtjm8Z4lNGpypAzsS9M/uCmwzYoY\nebAyA7nEvCFHrdXWZDEzllh4FYuQ7V3BOmxmcchisPb/89XFuxJ6aK/1bh9N\n7sumKnVxIG6fTAcKWMWq/qhu8fj/6o8CTTh9P8BQNV214cz0TCZ1wTbCzpbg\n22TK\r\n=ZXMc\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=0.4.0"}},"1.6.1":{"name":"xmlhttprequest-ssl","version":"1.6.1","directories":{"lib":"./lib","example":"./example"},"dist":{"integrity":"sha512-rNip/8D9Y/1dl3E2kgsEnvqZhFN15WAFBYsMCdLrQmlEoFCRp7somLaIxvx4yobEmgJm78YF0gvCL/saacX3ww==","shasum":"e517db82ad20d28b57870c4b1ab002700f61f632","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.1.tgz","fileCount":16,"unpackedSize":35179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfVm7CRA9TVsSAnZWagAASkQP/ixJgZ5R06mKm6/SlCTE\nCHTulBTRJhxgKvNAa8sNBYLonp5C84Fm4+uPY6+mPNXxm1rbVbpAinJuQ+ie\nxRpBU/rLZlml2zN3x3OTQ3V+H1UAKDylM6uioP1HBfA+rfbTy9dQRQuM1kDP\nQTpZF2qT0kVvlhaIRTPDjTpCqdifx37ucDLsSA4LFN4qcICf0FNGz+0Okitr\n2m7l9qWgixjHFUP9t48sv827vf7oug19YwAt7VqPzJO1cE/UxtemtRNrip3V\n0KdCbJoEi7JmshVMzDaygqfXcRem8QQpDVDknrGCwR7anmummXGVIzXzcl2+\nUAH2vmWhpKGEBEfSwf0bZ9xAzZxYjOQwUHf7iHluR5qyZfy23AOYRXbHlYEM\nAA+xvPy5IJ88tZ8S3HPBC2QBMnXW+hajprEV22My+QfTG7xtqvog+r4af6+D\niwFyQwK/hc6QBaoqI/+xnCOszeLGJIM6Sf3Iz0iii41/u2v4OFAGb6ZnTkQW\nYF4ej4zaanZb9BtRU3Ew3CMCoBOWY0n65i4ySUfCIH9igm/RiwstJM8fBOqR\n3t9RxBoewx2OqDFkZam89BL0H1Z82KKW2ur4PGq7xS7icY/tVNjXLnWdpszc\nkT07k/fGA0Des4JfFBhQSe+5Od7usmmeARzv+v3dlAJ8sO3cdCKduyCy+vYA\nzTNi\r\n=yPAo\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=0.4.0"}},"1.6.2":{"name":"xmlhttprequest-ssl","version":"1.6.2","directories":{"lib":"./lib","example":"./example"},"dist":{"integrity":"sha512-tYOaldF/0BLfKuoA39QMwD4j2m8lq4DIncqj1yuNELX4vz9+z/ieG/vwmctjJce+boFHXstqhWnHSxc4W8f4qg==","shasum":"dd6899bfbcf684b554e393c30b13b9f3b001a7ee","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.2.tgz","fileCount":16,"unpackedSize":35207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkRwHCRA9TVsSAnZWagAAwaoP/jD6HwEMG5u8udxQPtmJ\nuAXzTpT9AtaE8l7ZbuLE8QX/WwAio5pBDB+JZ1qIVTJT/iy0rRskp4f2SRrF\nZhiYy4heGVoJMN2Abqws3ZIhYprzOqHuo0J6s+ZxsUJWIlU9ydSEok7njKvc\n9o5YUh+sKXrUcWDstDmA0GvT3pwNzQDDtaItp+IOZad2kswJerh8wZoG4e6j\n14//XukEwh58c/mlPK9lIcW9C09U9KN9L2q1pFEzqNZkaROsKSMbTp8PhZe7\nmrz0pG29B6KO2Ung0MvMQbqdj1XyZCcwdP2drQBURJG5AESnL0jppl3N54pz\nXNZzVQLgZ5CjIfO63kYlU7j+bDLk4XkUmtT7bEKOoD2L41ltuoB+WSH6Sx6i\nkfHX19XQ6PQ/vWUZQnK+T7Xx0FMKcpM7Zm1e1gbLtiHfxENptvd9KE6Fl7al\nJgxdNYTAg27a3NiaZz2c806xYd3vhH34dRtyHcaxZnrGt0nj3dqBzles+KL3\nXTaxaBHddhdDD0TtxGkPNJAGvGgVsAv9RYrCgxwqpHRMJv5UX6mfqGfrm7h5\nbyImZMCdLwz8L6xL+RHCzF4fPZPmBuyoTI8ZHf/mQg/bDmwS3rX9SJH5RNU9\nhBhzTrydZoqtqwq+z2vkP/VJ77fJNQesj2bOsHbDXT9IcUeDoAKk0k2P2nHK\nsTmc\r\n=S6DU\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=0.4.0"}},"1.6.3":{"name":"xmlhttprequest-ssl","version":"1.6.3","directories":{"lib":"./lib","example":"./example"},"dist":{"integrity":"sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==","shasum":"03b713873b01659dfa2c1c5d056065b27ddc2de6","tarball":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz","fileCount":16,"unpackedSize":35227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoj+DCRA9TVsSAnZWagAALE4P+wSIVVkxW5YRfFI4iY6z\ntIGs9wgKfcpp5gs43DywGNMAc+2ZTEtXhmfQxs3rhLGG3oeSLGfoBo6gsE31\nMy25UzUUc8rqx0aogB6eTzxwj+xLfr2ikrjIWWtR1VrcQRAoHkAax9XMHQos\ny+PvKXaw7giPXmIC8JRZ1JPZVUGhWX29f+E/O25CFrzM9YxgzWnu1E9AM7AN\nYT559B7zSlnzdgO2tcq/OJbZ0X3OekZkyjLn3VGT1DczeaCruIucJcmlzV52\n7ZyJBuCIvp/O6C6GMf56k6XgvYBpP1gLjTNSAlN60zXP9HnopnGS3KwCkkRi\n1iHDsx7jgf9Sh8vpTqN3qzDgcv+0qYLb/PJtkz6J4e4mBuIu5QUO0mX1dTu4\nUw140EFMq7buO/ESoMWKgRBQIo0vzowlRQ4rZqP/c4JyrhIf9wE6RAhPesvn\nqQ/Xm2nZU30D59hG3D/txEctE38efCE/Va/YqqVGT+QRkKMILf+Yihrlf1fV\ncqcgQPIcSu0I+TBTYjrKbIO9h1oopn9kB2bwoErWSx0cip/E66iucQl7GZ/t\nGhl3Pxen0ZZxHAe5gqwUDa5l8TpyhOxRkm3IBbQKAB1XFwf/MobM+V8GDZqk\nCLS8v8ELZ8yICP2Tl6ZeXFUuoQKyISpwtpFMVWszEtvrvXUETLfFsQR1Q7AK\nCy1G\r\n=uh4n\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=0.4.0"}}},"modified":"2021-05-17T10:03:49.377Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/f1/f7/64ac480e2740af920c3d6b40619c8159ffc1805d04af74b55592b4e045258c589fc51c3c0bcaa1237aa7d745b16ecc87e14f97ddd9cec05c04b6be8be917 b/data_node_red/.npm/_cacache/content-v2/sha512/f1/f7/64ac480e2740af920c3d6b40619c8159ffc1805d04af74b55592b4e045258c589fc51c3c0bcaa1237aa7d745b16ecc87e14f97ddd9cec05c04b6be8be917 new file mode 100644 index 0000000..69dbd7d Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/f1/f7/64ac480e2740af920c3d6b40619c8159ffc1805d04af74b55592b4e045258c589fc51c3c0bcaa1237aa7d745b16ecc87e14f97ddd9cec05c04b6be8be917 differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/f4/82/b1951db01c4546b36627b5c8811feaceafddcae4292ea7aa9a6b245258bd82be2c6014d1d9e07dbec26574bbe55cc75c28ae72fc61d9325f9c3555053b50 b/data_node_red/.npm/_cacache/content-v2/sha512/f4/82/b1951db01c4546b36627b5c8811feaceafddcae4292ea7aa9a6b245258bd82be2c6014d1d9e07dbec26574bbe55cc75c28ae72fc61d9325f9c3555053b50 new file mode 100644 index 0000000..db3b535 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/f4/82/b1951db01c4546b36627b5c8811feaceafddcae4292ea7aa9a6b245258bd82be2c6014d1d9e07dbec26574bbe55cc75c28ae72fc61d9325f9c3555053b50 @@ -0,0 +1 @@ +{"name":"readable-stream","dist-tags":{"latest":"3.6.0","1.1":"1.1.13","streams2":"1.0.34","backport-1.1.x":"1.1.14","next":"3.0.0-rc.3","legacy-2":"2.3.7"},"versions":{"0.0.1":{"name":"readable-stream","version":"0.0.1","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"f3efb2ca59b6e7c615f14a2e935ffdd042a46845","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.1.tgz"}},"0.0.2":{"name":"readable-stream","version":"0.0.2","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"cce59fac644aac782792573201ebb346b257717f","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.2.tgz"}},"0.0.3":{"name":"readable-stream","version":"0.0.3","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"f2fbbe635e3455bf1c7ea05c5e2ed8bf7eb8de62","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.3.tgz"}},"0.0.4":{"name":"readable-stream","version":"0.0.4","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"f32d76e3fb863344a548d79923007173665b3b8d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz"}},"0.1.0":{"name":"readable-stream","version":"0.1.0","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"35476301be1584653b5a0101f288cd40b33cf39e","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.1.0.tgz"}},"0.2.0":{"name":"readable-stream","version":"0.2.0","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"c237bf773b27acf9472a576435a9cb9b71504e0d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.2.0.tgz"}},"0.3.0":{"name":"readable-stream","version":"0.3.0","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"9ae8f414672ded571ca65b5ce12e7f03e5ec4452","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.3.0.tgz"}},"0.3.1":{"name":"readable-stream","version":"0.3.1","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"82476ce7bbc0ae58e1d5e11f17df86ba6d76c23f","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-0.3.1.tgz"}},"1.0.0":{"name":"readable-stream","version":"1.0.0","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"805b14feb790400d17f314e337d12affcc3549bc","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.0.tgz"}},"1.0.1":{"name":"readable-stream","version":"1.0.1","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"04f99de4c0697c86ab65679330b0c9d167b2b9b3","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.1.tgz"}},"1.0.2":{"name":"readable-stream","version":"1.0.2","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"213ce36864fc1f0d4e98e03b9eb92c64042299d4","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.2.tgz"}},"1.0.15":{"name":"readable-stream","version":"1.0.15","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"a2c160237235951da985a1572d0a3af585e4be95","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.15.tgz"}},"1.0.17":{"name":"readable-stream","version":"1.0.17","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"cbc295fdf394dfa1225d225d02e6b6d0f409fd4b","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.17.tgz"}},"1.1.7":{"name":"readable-stream","version":"1.1.7","dependencies":{"core-util-is":"~1.0.0","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"9fac85f615c91d8123d6797a37bb6492f3400d34","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.7.tgz"}},"1.1.8":{"name":"readable-stream","version":"1.1.8","dependencies":{"core-util-is":"~1.0.0","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"28d42847e0feedfd2013931f37fb326fc4e25b7e","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.8.tgz"}},"1.1.9":{"name":"readable-stream","version":"1.1.9","dependencies":{"core-util-is":"~1.0.0","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"d87130fbf8f9ee9c3b4058b3c58a3e30db2fcfdd","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.9.tgz"}},"1.0.24":{"name":"readable-stream","version":"1.0.24","devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"b5659d5772cd06992dffe5a3bee2eec480f1c2fe","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.24.tgz"}},"1.0.25":{"name":"readable-stream","version":"1.0.25","dependencies":{"string_decoder":"~0.10.x"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"df19f64e6f74fd37ecf9d3ab8dbf1e2d11c9a045","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.25.tgz"}},"1.1.10":{"name":"readable-stream","version":"1.1.10","dependencies":{"core-util-is":"~1.0.0","string_decoder":"~0.10.x","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"d4dc2e5319e9c90d1e71c69390ef62cd90827f65","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.10.tgz"}},"1.0.25-1":{"name":"readable-stream","version":"1.0.25-1","dependencies":{"string_decoder":"~0.10.x"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"fec786621eed34dcc3fbe5aad596c915c14683bf","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.25-1.tgz"}},"1.1.11":{"name":"readable-stream","version":"1.1.11","dependencies":{"core-util-is":"~1.0.0","string_decoder":"~0.10.x","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"76ae0d88df2ac36c59e7c205e0cafc81c57bc07d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.11.tgz"}},"1.0.26":{"name":"readable-stream","version":"1.0.26","dependencies":{"string_decoder":"~0.10.x"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"12a9c4415f6a85374abe18b7831ba52d43105766","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.26.tgz"}},"1.0.26-1":{"name":"readable-stream","version":"1.0.26-1","dependencies":{"string_decoder":"~0.10.x"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"94a13c24ef8cc52af8a4fa6b3e1ef12444f68a0b","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.26-1.tgz"}},"1.1.11-1":{"name":"readable-stream","version":"1.1.11-1","dependencies":{"core-util-is":"~1.0.0","string_decoder":"~0.10.x","debuglog":"0.0.2"},"optionalDependencies":{"debuglog":"0.0.2"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"a06bc4edc4861e1efd58a70d38a44f6c6cc9f3fe","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.11-1.tgz"}},"1.0.26-2":{"name":"readable-stream","version":"1.0.26-2","dependencies":{"string_decoder":"~0.10.x"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"7883b21c63c1ce9373adfb1c23aa78c2906fa062","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.26-2.tgz"}},"1.1.12":{"name":"readable-stream","version":"1.1.12","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"^2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"960d442bbf5f6690b6b20550413931021af8e506","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.12.tgz"}},"1.0.26-3":{"name":"readable-stream","version":"1.0.26-3","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"^2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"58c1ef8dc375793221e7ea823e3328a7e7868e77","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.26-3.tgz"}},"1.0.26-4":{"name":"readable-stream","version":"1.0.26-4","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"1768852af9df316572227710fafbfa93c90fe3f9","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.26-4.tgz"}},"1.1.12-1":{"name":"readable-stream","version":"1.1.12-1","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"5a1e464880bb91ef70005e7ee850d56f5b9e012f","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.12-1.tgz"}},"1.0.27-1":{"name":"readable-stream","version":"1.0.27-1","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"6b67983c20357cefd07f0165001a16d710d91078","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz"}},"1.1.13-1":{"name":"readable-stream","version":"1.1.13-1","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"fc6f04f3366bf37bae21bec2e411c1b4d2cf1a46","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13-1.tgz"}},"1.0.31":{"name":"readable-stream","version":"1.0.31","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"8f2502e0bc9e3b0da1b94520aabb4e2603ecafae","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz"}},"1.1.13":{"name":"readable-stream","version":"1.1.13","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"f6eef764f514c89e2b9e23146a75ba106756d23e","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz"}},"1.0.32":{"name":"readable-stream","version":"1.0.32","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"6b44a88ba984cd0ec0834ae7d59a47c39aef48ec","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.32.tgz"}},"1.0.32-1":{"name":"readable-stream","version":"1.0.32-1","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"069b9f04e0592d0cb2a3fc515108c0624b1facdd","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.32-1.tgz"}},"1.0.33-1":{"name":"readable-stream","version":"1.0.33-1","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"40d0d91338691291a9117c05d78adb5497c37810","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33-1.tgz"}},"1.0.33-2":{"name":"readable-stream","version":"1.0.33-2","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"d89cbf08789ebd903d24b86bd1d7e502c88af8a1","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33-2.tgz"}},"1.0.33":{"name":"readable-stream","version":"1.0.33","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"3a360dd66c1b1d7fd4705389860eda1d0f61126c","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz"}},"2.0.0":{"name":"readable-stream","version":"2.0.0","dependencies":{"core-util-is":"~1.0.0","process-nextick-args":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"ab6e292d8ae392ef888151310554e7078fcb38ca","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.0.tgz"}},"2.0.1":{"name":"readable-stream","version":"2.0.1","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","process-nextick-args":"~1.0.0","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.0.0","zuul":"~3.0.0"},"dist":{"shasum":"633479b7bd2fbe7a1e869825b40a0b333b9f2bfc","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.1.tgz"}},"2.0.2":{"name":"readable-stream","version":"2.0.2","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","process-nextick-args":"~1.0.0","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.0.0","zuul":"~3.0.0"},"dist":{"shasum":"bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz"}},"2.0.3":{"name":"readable-stream","version":"2.0.3","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","process-nextick-args":"~1.0.0","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.0.0","zuul":"~3.0.0"},"dist":{"shasum":"4ab16b2aba452374b542a3f4f528634b9b45bb5a","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.3.tgz"}},"2.0.4":{"name":"readable-stream","version":"2.0.4","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","process-nextick-args":"~1.0.0","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.0.0","zuul":"~3.0.0"},"dist":{"shasum":"2523ef27ffa339d7ba9da8603f2d0599d06edbd8","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz"}},"2.0.5":{"name":"readable-stream","version":"2.0.5","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"0.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.0.0","zuul":"~3.0.0"},"dist":{"shasum":"a2426f8dcd4551c77a33f96edf2886a23c829669","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz"}},"2.0.6":{"name":"readable-stream","version":"2.0.6","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"tap":"~0.2.6","tape":"~4.5.1","zuul":"~3.9.0"},"dist":{"shasum":"8f90341e68a53ccc928788dacfcd11b36eb9b78e","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"}},"1.0.34":{"name":"readable-stream","version":"1.0.34","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"125820e34bc842d2f2aaafafe4c2916ee32c157c","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"}},"1.1.14":{"name":"readable-stream","version":"1.1.14","dependencies":{"core-util-is":"~1.0.0","isarray":"0.0.1","string_decoder":"~0.10.x","inherits":"~2.0.1"},"devDependencies":{"tap":"~0.2.6"},"dist":{"shasum":"7cf4c54ef648e3813084c636dd2079e166c081d9","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"}},"2.1.0":{"name":"readable-stream","version":"2.1.0","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","inline-process-browser":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","unreachable-branch-transform":"~0.5.0","util-deprecate":"~1.0.1"},"devDependencies":{"nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.9.0"},"dist":{"shasum":"36f42ea0424eb29a985e4a81d31be2f96e1f2f80","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.0.tgz"}},"2.1.1":{"name":"readable-stream","version":"2.1.1","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.9.0"},"dist":{"shasum":"cbbe2f857ec4fafee422a8addbf31513e891c8ed","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.1.tgz"}},"2.1.2":{"name":"readable-stream","version":"2.1.2","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.9.0"},"dist":{"shasum":"a92b6e854f13ff0685e4ca7dce6cf73d3e319422","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz"}},"2.1.3":{"name":"readable-stream","version":"2.1.3","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.9.0","assert":"~1.4.0"},"dist":{"shasum":"9db8ec4025b4c71e69aec60b453b590c8afeb0df","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.3.tgz"}},"2.1.4":{"name":"readable-stream","version":"2.1.4","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.9.0","zuul-ngrok":"^4.0.0"},"dist":{"shasum":"70b9791c6fcb8480db44bd155a0f6bb58f172468","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz"}},"2.1.5":{"name":"readable-stream","version":"2.1.5","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"66fa8b720e1438b364681f2ad1a63c618448c9d0","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz"}},"2.2.0":{"name":"readable-stream","version":"2.2.0","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"bundleDependencies":["buffer-shims","core-util-is","isarray","process-nextick-args","util-deprecate"],"dist":{"shasum":"bb2d810631416edf095ebdadc246f68cec65bf2c","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.0.tgz"}},"2.2.1":{"name":"readable-stream","version":"2.2.1","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"c459a6687ad6195f936b959870776edef27a7655","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.1.tgz"}},"2.2.2":{"name":"readable-stream","version":"2.2.2","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"a9e6fec3c7dda85f8bb1b3ba7028604556fc825e","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"}},"2.2.3":{"name":"readable-stream","version":"2.2.3","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"9cf49463985df016c8ae8813097a9293a9b33729","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"}},"2.2.4":{"name":"readable-stream","version":"2.2.4","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"1a8da72653a38450ba275eca1f3c602027afda0a","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.4.tgz"}},"2.2.5":{"name":"readable-stream","version":"2.2.5","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"a0b187304e05bab01a4ce2b4cc9c607d5aa1d606","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.5.tgz"}},"2.2.6":{"name":"readable-stream","version":"2.2.6","dependencies":{"buffer-shims":"^1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~0.10.x","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"8b43aed76e71483938d12a8d46c6cf1a00b1f816","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"}},"2.2.7":{"name":"readable-stream","version":"2.2.7","dependencies":{"buffer-shims":"~1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"07057acbe2467b22042d36f98c5ad507054e95b1","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz"}},"2.2.8":{"name":"readable-stream","version":"2.2.8","dependencies":{"buffer-shims":"~1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"ad28b686f3554c73d39bc32347fa058356624705","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.8.tgz"}},"2.2.9":{"name":"readable-stream","version":"2.2.9","dependencies":{"buffer-shims":"~1.0.0","core-util-is":"~1.0.0","isarray":"~1.0.0","inherits":"~2.0.1","process-nextick-args":"~1.0.6","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"}},"2.2.10":{"name":"readable-stream","version":"2.2.10","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"^5.0.1","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"integrity":"sha512-HQEnnoV404e0EtwB9yNiuk2tJ+egeVC8Y9QBAxzDg8DBJt4BzRp+yQuIb/t3FIWkSTmIi+sgx7yVv/ZM0GNoqw==","shasum":"effe72bb7c884c0dd335e2379d526196d9d011ee","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.10.tgz"}},"2.2.11":{"name":"readable-stream","version":"2.2.11","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.1","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"~5.0.1","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"integrity":"sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==","shasum":"0796b31f8d7688007ff0b93a8088d34aa17c0f72","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz"}},"2.3.0":{"name":"readable-stream","version":"2.3.0","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"~5.1.0","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"integrity":"sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==","shasum":"640f5dcda88c91a8dc60787145629170813a1ed2","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz"}},"2.3.1":{"name":"readable-stream","version":"2.3.1","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"~5.1.0","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"integrity":"sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==","shasum":"84e26965bb9e785535ed256e8d38e92c69f09d10","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz"}},"2.3.2":{"name":"readable-stream","version":"2.3.2","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"~5.1.0","string_decoder":"~1.0.0","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"shasum":"5a04df05e4f57fe3f0dc68fdd11dc5c97c7e6f4d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz"}},"2.3.3":{"name":"readable-stream","version":"2.3.3","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~1.0.6","safe-buffer":"~5.1.1","string_decoder":"~1.0.3","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"~1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"~0.7.1","tape":"~4.5.1","zuul":"~3.10.0"},"dist":{"integrity":"sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==","shasum":"368f2512d79f9d46fdfc71349ae7878bbc1eb95c","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"}},"2.3.4":{"name":"readable-stream","version":"2.3.4","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.0.3","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"^1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","nyc":"^6.4.0","tap":"^0.7.0","tape":"^4.8.0","zuul":"^3.11.1"},"dist":{"integrity":"sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==","shasum":"c946c3f47fa7d8eabc0b6150f4a12f69a4574071","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz","fileCount":24,"unpackedSize":87478}},"2.3.5":{"name":"readable-stream","version":"2.3.5","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.0.3","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"^1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","lolex":"^2.3.2","nyc":"^6.4.0","tap":"^0.7.0","tape":"^4.8.0","zuul":"^3.11.1"},"dist":{"integrity":"sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==","shasum":"b4f85003a938cbb6ecbce2a124fb1012bd1a838d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz","fileCount":24,"unpackedSize":87474}},"2.3.6":{"name":"readable-stream","version":"2.3.6","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"^1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","lolex":"^2.3.2","nyc":"^6.4.0","tap":"^0.7.0","tape":"^4.8.0"},"dist":{"integrity":"sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==","shasum":"b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz","fileCount":24,"unpackedSize":87961}},"3.0.0-rc.1":{"name":"readable-stream","version":"3.0.0-rc.1","dependencies":{"inherits":"^2.0.3","process-nextick-args":"^2.0.0","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-plugin-transform-runtime":"^6.23.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-Kq/y65C0TDab9C9ZPedaBS+LAJpqptU/DhjlIGs+ggoxF2akk9xfZn0nr7hp27RZ1W3RvZw37Ss/1bOPcRIIRw==","shasum":"cad3839e37fba66b912ae5de7cac9c24c8f3d4cd","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.0-rc.1.tgz","fileCount":27,"unpackedSize":113364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQzQXCRA9TVsSAnZWagAAnMAP/1BFA1IZDdX+Q/2A5P7v\n8cBDCr4n/SRyGWBjGvnSSjh8jYulWbOceLg/O4FwJL4Q2Xb4RtEEHMTP2Lu7\nTXeQQgxTLhVLMw6nZSRuA3RDScxw4lwXWSOh2jslPfa2cWmPL5PfsGHvNxML\nKWVT6d+TLmrqv8gaRW1/WrLEI2ViYRQqfR9EMJ5eNFR9ZCnlP1zsuq0LGdqD\nAI/bJW50ubHJfCgkXo7Zv5c7IdFpuYH+SGYxWQ1cLq8RXNI+psO/bSfaQsV/\n1YHr2xKWYFf2K4nFtoQWmjhhOBC4hQfR3J579ADeN2YH4bchE84Bg4PX/WHm\n2cw22KD3hfKF5WKTc3gdeFSpglIY7FXmcC/+Yzk8E4CHidY+tgaYv/C9iy5U\nW59RFW/tUHMSGcEuMJoME6JdTpBRy0mhKkNUyFvvwRInve5D3vapBMXr7uJS\nI6VYjtCtazlPMltLK8g67zvzzelOIn6e4nNxm1tGbqPCQgnzMOAMhYlLBk+M\n9apHsZCWyZVWfCdIgDGh8ATDIbbapGKdibsGmKKAZADRwmdSKsoYaMLPpkmH\nD7r2RES8h3UoE0Ydj6UjsplZGvX0Xx5D9zuDJoF5B2MS6E2cel0r+SlArbY1\no3k8kaiz12wMNbAxdxWzOhe7oNeIIQmgzteKLiAeoC++hUIXGrxKDgxSn7I8\nXzMR\r\n=rCfz\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0-rc.2":{"name":"readable-stream","version":"3.0.0-rc.2","dependencies":{"inherits":"^2.0.3","process-nextick-args":"^2.0.0","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-X/afjHsbkiQQKyBlmUQt7hJRvkb14ClOWOiCeIALxNB9NGqv1ckDc4Z8Dl26FOxAEjxWKlqiw2tMEVqiE1VXtw==","shasum":"39bad6ad7741f92402ddb7d969774958b09657f5","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.0-rc.2.tgz","fileCount":27,"unpackedSize":110599,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRM6DCRA9TVsSAnZWagAARgsQAJwrxs6VJkm/Oyu+PO/a\nLcgLTex4p71RpSCN/mCZzDWNvXBf8ftrpbdhMUG9WLRg63VaxU8lvxMRuqKi\nXbzBX61fZUwYewS8Drd1oBedd8pWSfITZUytEXgczkCcpl01C2VJuCslaRY/\nVaKRcIrpoL2Ty2tED40A2h2nx90Q/nfrRogY71dsWGnueNuJWTP3VrlqvcrW\nuqQdc8sJ5FDBLCoG+KUQ2oNC4EJw2Si2JAOXRGYkC2a6j0TYxh40HkMiyAAU\nRBNG7+Jce6AMWLKCNOjzRSOe0JYzzL6aO0oPH+w3PI2qFBSfYGhaYf6Hubjj\nfNR6/v3lG4t3JsqXYkBO6tyDmp79YtPnwEfiRA9/T4beG2jLfRS2b8iWbKi2\nDR6gknpfjL6iHXze4YkkcOSsGB7cYzZAFl8MtNS6VhJ01vgVmDAYNhx5F+uf\n5pqfHJbaV9C2ADmacZ22W3fNbSaVtwbpl8KDLWSdRf/NCQI+RMJKf2/Ezw5o\n0q5kFBTDf6sYH/+AtknUVif4xcI0789ze8BTBJUYoeLJII18JVhbS9Rqx+9v\nh4TQBCcDTRW0nJFbBTlYGsq8d+h83Ny90RPF324sd4DOFaVSN6S6KuyCeETb\nqfa/HekDWqum/21e2kSlZkqitSt9I56j4qJ/jf9ko378jRen4/CPHj2o9AYu\negD7\r\n=9Utd\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0-rc.3":{"name":"readable-stream","version":"3.0.0-rc.3","dependencies":{"inherits":"^2.0.3","process-nextick-args":"^2.0.0","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-II/H0W4OXI2/hzSXVKzeZ0+QeeVuMccfuzYdVmXM3oggQm43EEcWTc6VoaAcbdFKqnKrgfGom8F2f9zHXss9xw==","shasum":"4c61e5cc47a206021b190cee1eced28d7031e4f3","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.0-rc.3.tgz","fileCount":27,"unpackedSize":110683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaD/eCRA9TVsSAnZWagAAntgP/1CrrpL3cXfavvDwmPlT\nY9ArS+FyzUw2lK9tGLYQAZajIxZKE1Y/mp3bs4/gTibhr1rykXrwK9dFQa4+\nXjqBGmOt9NmZdYlaghTyyCMxV14jfDIroT+GPuzdSQrsOD2peRHMRhurFSXu\nV8b3FqgGI7iSaPVE7kghRp3T3ycd+4g1gAhEHhkxeqldg0xQftU1r5iS4hYz\nfDI2+BKqFiow6JR7ic+VquNTY5tyRCcKzYH+fPHNl8h5EorTXYg8RdB4GmIF\nSfDYD8+Qk1+5U4mIXDsqQLZusGGiZ4b3rxOTKh7i/cznriHbWGWqqpJNYXN9\nCK5/z8I5+9jU0JjrbYZPz7T9BPxWQHgjJXRdvrSGIS2sBm6vNw7RmcD/Qej/\nVd0LlMXFj+utwAEvTPwGETmliPBkTLDupq83rODDTyaR/FqNiFeoMQzuBrvS\n/W5DW42YlgkmkqJSY0RcJphijAtcli2ogUoIqL7KzsDJzJtFyQcGiiz9oBDP\nFRroRew6kKS4aNSaYmGFXqXIPTzEAlflno/D2jCJphfPCROEDl7QEiM/j8Dv\nOKY3HM6T2xl4ZA/TNOWC5dmtIVkKnNBP7YPHPVcAnTV443nVFNbWjltVU5Wd\nChDGV06lnKpWISAZfTD73AHtaz/EIZvBbRyR49wdQvQ9sUSkQJoQbhyd38B4\nsk7Z\r\n=zgzJ\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0":{"name":"readable-stream","version":"3.0.0","dependencies":{"inherits":"^2.0.3","process-nextick-args":"^2.0.0","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-WwkR0zP3pW3uWHqUGml9nQ7jecmeUt8N+eP3+Kmnhqhdl2QMjuGaGgWa3lToJxM9e4PcBU9t1dkabunS+rncjA==","shasum":"c9ccacba70df23b191233bab429e5fe47b149e19","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.0.tgz","fileCount":26,"unpackedSize":109806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbbutCRA9TVsSAnZWagAA5yAP+QA0qy11rc9RHBXwVMYA\ncNjlUR9o/Op1Hs0hZgeU4J9Tk+YXEyh+mJYdc4FZ8lM16e8wacIuPcz2ygD0\nFUMyoa8W6qAGvvpNURgOkI+tVUsbTUt7/oXfvTKl+CZfbnNdlpF5/K1cEiWH\ns6zpBDFslym1/mEG+bHvUqfrjkzinYVoSQa2jhT0HTcxuFcxSQZ3WfPnqqxU\nxrVSKRkiAW95VCUMP6ZF02dDN2hGje5sFdvBO6n6ewPmwzGw8apbv3ZoGAbQ\nu4nOPOEkCOuDSNxuAGeJijTGI7TbozkJfVS8/jjAkrpOEnv/YEypXAQQ9bQ1\nu8WzPYCarRtK72Sr8weVycGzSWJafJv8XkRm6ax8e8jHQqKak7r+zMOpH+KZ\n/mSe+ecThoWXlQxwqzxryAMWo/zEQ4S0SFKoCWWIeUiBULlPd0ettLxUs+Lo\naeD+uR5LiyvwUkVR3FtcWk1+nPrNeekJ2QW+cOskACGVec67KeQnsjHorpkq\nC/v0zhOy1x4wt0d6smcRID2b75e39m9ASfCAwLz5ywg912FwshJF0/PU3C9t\nNDs1qJqgTC/KE5to7feuAhDw71V07/1WQ4P9P/NiFFzEkMcO9OfPCgOCSj55\nqghp4pji+WP0nbEliG+vfWGfXr5e7rt7dLUe4c2EP65MufGOKUiYH4stKzvq\nLa8D\r\n=1DLZ\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.1":{"name":"readable-stream","version":"3.0.1","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-pLwLmaW5H6SSNaLY4LAARgElGSv4mDUNz62qfh7ktO5EYk9BsJiPYXoZ6ShQR70WkOrw6jKwwOg699oV1medig==","shasum":"a209a46ad933f9c8146591ac2c56ca0e39c141cf","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.1.tgz","fileCount":26,"unpackedSize":113619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcV01CRA9TVsSAnZWagAAogYP/itcdSTDgkXlaE7L+wRp\naXIysORnbwxxSQN6hFVE7mevcSMCfqSwnWFt4HgVV5kabLuEr2+wV9WxyQZS\nr495NRX6GsCgHkiVpDWWHmwWLd03x1B39HEAaqh0GS4vwwjPTJsrrqjRR5Ri\nKNsj/tZpOKlaHfoXczF7hEmxTLn5LZpv1ZJIYJ21lhIiW+WOpvZQ/4v7uQjk\ncToiW/eCNeZ4ZosBXtZxWX5I8eGJVxygjcY0GScaUpaLmSykfcHQREPEsIUX\nvE87sv4iQeMV182XLZ3a25/iIUQAYjGF2dX3w6V2FRlDDYn2ft/+EM3sgI9A\nMFiRF3KLKiHyskO2Vy+EDKoz47rpFAjFlgZ9bLuHw2wI6sdmWuH9r7v/lXuY\ntqsgwdAeMefGtmG9hr4QvhqTz2gCvFPrOvwz518rZLpF+7QYhZ1b60bNVJ9E\nEaUz8/JXzRgaJjPjLOdAEeZ/0pKks6+yJuzavAMHbyxqYwTpBu52zzXQpwbg\nBSJQkUAfDE4RtQosxIzS+ssR0Z92hVUB1OqS86Ne3/YkJBCNvy5JwERH4rKz\nWdE+buwXweQfi5ZEyl2bAgFkmWea1bzKR6U7+lqL4QweKhCnqtmKp1SLJz4u\nuxNAyJmgMuwJ69+9Gc5fiJ9hp3ZlH1ytzvNO4Ty0FAN2CsULJmk5DWHaK6Jb\nq4Jo\r\n=BhtS\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.2":{"name":"readable-stream","version":"3.0.2","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-E3RfQoPuKDBhec0s8fOsgFXDVFlEipbsheGBX/NNByfKMfzPEEQJXcLy6fJ7bDD820HG/d+eXQ1ezCj29KoAJA==","shasum":"ca0f4f8e426bcabd772df73096b8d3f6722b31ff","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.2.tgz","fileCount":26,"unpackedSize":113563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbeniqCRA9TVsSAnZWagAAV3sP/0wNdbc9D9jwfgAA/XYs\nsN9TT50tT+hTEtEn2vHogl0ZLsgGn9A11fAPx/Vh1OW6YObb7q6h/rLVjnAm\nptbk1wWDU6riVEB9RFfF6uaxBVVlNbmlO6pBm7kSUA5KrgZQ5iTy/ICAa+UH\nNgl8KokkL8LYOP2dxskaiG5eyYerOmgNSP/5ebad/ENYwUPo20KQVIvK4xYc\nSfIGMedQGwdiScraktR8Wt57OYp8zVS/yStQIya/bIDQ88Tdn0yj74Heifuw\nFbiWA2/Je+ehbmFWQbM23UIG/h4SBXXbaBpNKmNrrPoIKn1VIly5cLdUZmuA\nElgUwCr3IgWOm7IqoDgig97ImJfDNFx9tS8RfCC2JRyha09KOphBgyBH5y+k\n83RynyM47jNpr5Xp6MxcplUZqGLcfUlxF+74VA1ReKKuKuzBTPTwnwo0yenr\nvfw3ZHbsOPypDVBd+62J0TLpxG2LL3V33hCUkaBOiZOmf3iVkDPm8j778qrc\neTqMn5/awPJRAMF219J/R1RmyFSMGePJu0rqplz/z+i4svapbwZ8nsi+bxvL\nSXN1YsZTQZ9vGsbDjHtYRBIRdJO29UUtjj8n/W6FCUdZfCvFdX4SKTWdWkzF\nPQ+tjHujecm5o/VC9yicLMlyhLsEZAYPG2wdCbC9fWgLUaJtRTzkjWy86Sp1\nWBIp\r\n=ypjS\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.3":{"name":"readable-stream","version":"3.0.3","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-CzN1eAu5Pmh4EaDlJp1g5E37LIHR24b82XlMWRQlPFjhvOYKa4HhClRsQO21zhdDWUpdWfiKt9/L/ZL2+vwxCw==","shasum":"a4db8813e3e0b87abdc01d5d5dbae828e59744b5","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.3.tgz","fileCount":26,"unpackedSize":113827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblqmDCRA9TVsSAnZWagAAv+QP/iQLrXHzhx9EnNACfjEm\nuse39PvEktVDmTFUCk/SWcoTraxeQpLElIKY1EvEVpSsWfLZIQGZPlQb/g0I\nPpPy2lP/Ix75uSI0E5AJ/LX4tmeN4E8lis/pFRIRt7uxtXAf8VrpfoyIXdtG\n4ogcC/wq+vgXEWuhZzPDobQIahbDSHOWYyoaegWvBAlG8q/jGpKJl9WvpMtw\nZIGtYysFGgMsfP+FITM2mTH/f5QERRoYWeGb2j2/lm2mEYoxDLrOARITpQ3P\nBQC7+I5udNVHb+S/NfPlMaJUABGYGlWdSIPR6EZmHICcjcllD01hOGrAavnB\nfsVeXlW201YSOMw+QXmj2RxIvbNte+nEq/N5RlZSoLP2G+Pj0qqAgYllfoE5\n9dDc1GtqewhENp39MksVLhd9lYz/4QmuDBsfuhAtg8Mkl7IG54AsfjiA5dFM\nTKa5nKy1NhWwprfNnuUbp/TTd4t9WWqa1J8SJBwXMAfHYRa1n5JtoQtQGOR9\nZAKjk362kTSHtC3xksJSnY7VzmV4OvN4oPeb7JoI1eNMRKYhK4iynRQxam3G\nyHckeeqs2fAXs5LPHrKXldXzdYbVxru3ByzQR91xTaee8vDXzt0gImCsy0Zm\nqH/8WZWQKEJ3FemTDC7PuBYJbhfBovbb+rLH0ufGNMA+SpG+Ng+Lz9FrOYgd\nqOBA\r\n=pooh\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.0.4":{"name":"readable-stream","version":"3.0.4","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-Bu26LYkSFQY9PkY4yH5cg8xSkbAIGnKCJu9nMU7jrrOOHb5ERrbLMF3ACLIgODR01RvSjBeRcepwMUj0tCWFSA==","shasum":"cadf560461e40672e77b9e1904920a17250d089f","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.4.tgz","fileCount":26,"unpackedSize":113889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbsnGACRA9TVsSAnZWagAAoswP+QGpmewfGlFMI5lrHsZb\nFcBu/48KFgKgIDOtlz7Ak4l8rnvas7r7CYZmhognoFp4hXyOYZOW1DWnCSpL\nh11nFcHnll+c35nLWBEsOLmgs4g1UqNNShwEtyFArQAU4m7I3TNbkp3f9RO3\n5aqXrT2TzweG8W0cZAq/MFp0mWTismAawb0mvn080d05YI0rQvBUlBIM5fPj\n9YB9gKhCD5IdmJOs5VirONxQz7PomKuzSdbgTAdbUDVu+gfeKONNoXNCLS0N\nhbti5k8Zll4R/PK+9BmFc8IZQqHD1j6g6aWcXgazkjIsla25y9SMruxbVmcb\nIJG8TFly2o7GbGZuv7RaTzI5DEAiO97IqmlkchjyzWmc2rRPNvuTTDqULkSv\noqd3B48P81oAM4hDXNKntTnsJkthIlM+WzT9Q8fz+QNABrgydT+08cK6h3Rb\nveKQ3DDBift60Gzj6k0W4a0fZYJDeZj7CifGXqhU7HVmtDvdWHyplgeaexml\nkYLqSu4Qyu+Lv1Pt3ZL268TaEE5g3PbtOi3xPq03zGeyF6LacmmXneqMkBtN\ndI7JpR6n8EqtdbxhIx4lDtOlx9k9j6jZBh2PGgVioBWLLTopkjfSEvfMa6gR\nr/ZzzYSeOBZeZnTaTAyVU6sFOEECjwK7ZKIHR7DPfT+PNg5T2fsjxXIDLG3O\nnDoA\r\n=kMg0\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.0.5":{"name":"readable-stream","version":"3.0.5","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-GhwZX+/WaPjsMW41u9xKsec6NLsrx9d2a+V1qIK4V0gWfsqZC8a2VJDgMV1WQGP24zW65aHxx9NmyaLL5a7esA==","shasum":"7ba2dd8cf56172bd282dc3a4ecd8eb638431e551","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.5.tgz","fileCount":26,"unpackedSize":113942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbs3xbCRA9TVsSAnZWagAAKagP/Rl26MOVJLUT5FifwkQx\niBzwVwn6BItfALKJKHfZ2SAsJxZAJFTuFZWLiS4hLLc7Qy5gCY/q28qATokI\nqdgN3f3v4r4zy8t4L5uCfh1z2Owd5QPcS6w+wPPt7yfuAlWjgnoDn2vtLliw\nuSatu7goi4OAM4mDtQ6O5AL15Un/3lotgCBGyDBQoWI+/GLL9SQUFrfjU/zn\nh/a1E3DfvzjKryH07GC8OLONYM2OG1CNaqT0NeuHAQRFCyPDWz+PskG2arSE\n1Zqb6Q0/1bBfMbrZcL0uhvj38frCBSh4GR/JRPNKdgX6n7lnqXBbBGH2DlW/\n78tKpPFeP3cqga0XJDZJo9XT1PZkra8t+Dbw9nKdq0u7nHy4DEtrJ8hAUef6\nU/D8niDQGPwu9nj1SIxYOzG7PNd4spk+wmV+9kkBrLVsGIHk+QrsgctJYFaY\n5Lcvn9lEmbVly/uONGivOp9Y652/DKAqOBGuO4GEtqEI5QfXPflc4BW3yn35\nND5OxXpeoljYoLS/E4NBy7QEqKWNYK5vKvsVpPDUNSt3wlOU9l7kJsHYA/8y\nNysRBHMAMKHobmSFZfVEiewqjlez83I63PrKEjkbPAXWNJJmOy6ll1IxJyvv\nZVW3tdQrckvHG9iEV8kcVjx2pKJbQLPBn8DuUckEB3UZMzxerhXgM+t6+IFh\nNB3u\r\n=DtrT\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.0.6":{"name":"readable-stream","version":"3.0.6","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"airtap":"0.0.9","assert":"^1.4.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-es2015-arrow-functions":"^6.5.2","babel-plugin-transform-es2015-block-scoping":"^6.26.0","babel-plugin-transform-es2015-classes":"^6.24.1","babel-plugin-transform-es2015-computed-properties":"^6.24.1","babel-plugin-transform-es2015-destructuring":"^6.18.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.24.1","babel-plugin-transform-es2015-shorthand-properties":"^6.24.1","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-inline-imports-commonjs":"^1.2.0","babel-polyfill":"^6.9.1","babel-preset-env":"^1.7.0","bl":"^2.0.0","buffer":"^5.1.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==","shasum":"351302e4c68b5abd6a2ed55376a7f9a25be3057a","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz","fileCount":26,"unpackedSize":113934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbs9hzCRA9TVsSAnZWagAAye8P+wRWe6g0oNkkRpVmywH0\nIG0tLDHMza/KTSqa9Y5pFF/zF7oJRhfztOP4F2tFN9TcjLV7pBemzPiZx8aQ\nE/18LTavHRKtIuOji1ZcIUjqmSbnH9M5hkqaLtxfiTH2Qqam0H6Gm0EfFYsj\n7g0/n5DqK4uUrNMg2UM0kp7I/W+5VN1DEiimeRBH2EvV2RNzXwTcBEvv+gQs\nNGlAOesOc1HDbRfadoZWVhgr5kMkM/Tv6weTgEtwxwq6Se7LUDx1j6nn+aCV\nNdbClWoxsFdMw8bR8enz7HF+OP3avBoXUsScnghxTGrIZfIVwlaVympVlVYg\n/RcUj2q4v/1lx53PAWUnTBq/gjIRXHJyYeUZoVU7rEe/6QzdMbywtzBHIEM/\nflMkgx/YBU0tfU43FD24UgCJ55NO73hrbIpxR6KQYNDHMJp1zlkACjZ5SO8K\n9CwHW4l4vDWZZgz5nhUWpibVhZwL8r8d+RbgOQVpYo/+RDTxEmJ4sckG/ovj\nUUIgR7ico9hthoN1gU0DLVH1yC6F/BL7CfhP/tNcYkKHP4fVUngW9RLS0dV/\n7swMi6XScTrKthp8m0NUDAjobgUe9cPTCoxFnm/gHuBpO0hWdmGMWCjnrjWr\nJlf81FLhudboIHouy+qTUUoykZaYijqpuqyoxa4o+8OQd9b8ftKIjK1meFq8\nU1es\r\n=eMYH\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.1.0":{"name":"readable-stream","version":"3.1.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.2.0","@babel/plugin-proposal-optional-catch-binding":"^7.2.0","@babel/plugin-transform-arrow-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/plugin-transform-block-scoping":"^7.2.0","@babel/plugin-transform-classes":"^7.2.2","@babel/plugin-transform-computed-properties":"^7.2.0","@babel/plugin-transform-destructuring":"^7.2.0","@babel/plugin-transform-for-of":"^7.2.0","@babel/plugin-transform-modules-commonjs":"^7.2.0","@babel/plugin-transform-shorthand-properties":"^7.2.0","@babel/plugin-transform-spread":"^7.2.0","@babel/plugin-transform-template-literals":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==","shasum":"19c2e9c1ce43507c53f6eefbcf1ee3d4aaa786f5","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz","fileCount":24,"unpackedSize":374716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFkRqCRA9TVsSAnZWagAAB9gP/Ay4+WkMN9Dhg6diDFqk\nybk38EkbvduDWAvAyBbZcP+le7o5OKKeVRrfjPEFR1LkR9qQlJsg+lAmeCqW\ntdAc9t8A9nsfA0qmo/H2mMJUFfIOyg29s0GDzuEIBLvbtBhWgs/paqmTKdSr\nxv7XnHWpTFBxYwrL7tBnhPdx+CbIW1ZhhcbafzCDFWAQADMpi0FqvhpOu/Wd\n9B06XWuj1pwSo05XPyRzjCYg8OZt/neTvUReNsM+3QLTn1IGpWSdvXXN9Kfq\ndVPvn9HgDbrelLn0wRBGvzfhEO4QfAXorEX1nOzrKgW6xfPqkmIialdCjQcf\ndfjUzTdqpYg2qD7DM/HlsvnTaFDX+J6+K2PwOQdKDl1MmXT5oyyayI5eR0U9\n8UJd95w3mvBS9IXtDyv5aR1HX9jrMJkNxmsz7V+94Y/oVllgijxRD0UrpsUO\nZfPwydWcss7aZavyzLvuVLr80qzxlyJzO9fQCpOk181OEER772FJCEZuFg4w\nzy5jidmw7yDjWL9wDerkH3PBiOoJGMknPiJqUefmnGssfDjj5nMQSy8caJEN\nzrr50SJtw3GrwASlqU3QiA8YhDd9EunbKwtcGw9v1MOAHoDPg5bbAYS9tjZh\nX3Zj50jJrSS5yW86GV55uBQf/kmartDUUm/HzJIq2lxqzLACafCwtdcx9vwV\nvT7C\r\n=dpsu\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.1.1":{"name":"readable-stream","version":"3.1.1","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==","shasum":"ed6bbc6c5ba58b090039ff18ce670515795aeb06","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz","fileCount":24,"unpackedSize":372564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcH58PCRA9TVsSAnZWagAAtM8P/1bFAUi0PpX8w/6az2CA\nipeEKhOddruD83Q/uAun28BHuu/uazbdbTuoe9gCdghijqQtj0zD5/8T+YaL\nAAVwevhBqElEvVhhUgu2y0JIzXyTncxD9fQh01a9yT5QGzBut0xDgpjGs4r/\nKVeOyItEZIFiW2lePnMFQ0m1iwxTCrE+1p8SWC50nQ4sm+VXJW4HL7FtZwDU\nBbWEsYxSSQA+L1e9UvoauiuYkrINAy6WaUPs1/nhi1yvUNfgUZ0VfXbr2Awx\nsdZSypkWTCZVs06hZbl5McZsOOkNM3P9RLeLe3eNxrPMsQECnb5fjNVRYjwU\nQI1OHYNh54znj1pc5UpPpERbOPWsQTWKz8uoBGESebN/+vPlLjfHJ3jxXS69\nh7cXWqSY5xlhXXzXf3JyprM/tkk1YHWidP8H5Ve8o30Y9+KYJYj+1D5kJdiF\nHdnzAZlqZKl6OvCJXJFF89SvFfllabYFPeLwSIA1ZxEQrgoQw+NEzexlh6m8\ngkoe6f/FdX8EE1n/ZmBtCbnJqco5LRTLa6lGLbOjtCXjfvpQ2e2kLZRkqHWL\nahgYW4AXmmIHpAGKN1Q2Wa2KSe7fBd/dlMkhJ24Eh7l8qNQ/CCczt3s/wtCA\njcjZ0HfyxKjuWITBG0ysjRGx8hl4PrSJyMZvkiLMmT3OpczHF9Ucv5hoQcm4\nLk4J\r\n=N1Si\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.2.0":{"name":"readable-stream","version":"3.2.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==","shasum":"de17f229864c120a9f56945756e4f32c4045245d","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz","fileCount":23,"unpackedSize":112689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceCWvCRA9TVsSAnZWagAAvS0P/iD4G/B6BvR7ddQXfzqh\npN1Z9C/JB1YrJ/z393UcxdVx7DGJqtna2FHLSVHdXH5Mk+JUONmJym7mtlDH\ngWQVvbqqWYRy9XTBsFeEcizT1UdVXnkhF5jJJe0bwc1uhPMR1aRUxI197Oak\nkJf0QJIqmuaML/GRzcGOexYIX4ruk4h2qVEucBaPtT5g08QCu1UBzF1dMBhf\nXBi6JIe8Q5t64HWTz/fSby/Ci0+EvBSCLzyna6Tdo2NAlzxEcsjdk4q4zs3I\nph5S8NvvO41jLwoJtDZqJYB/rCsqcliVWRKLU9bAtWVHFlgBEL4zsvX/yYTu\nyHuuZ+RT7XuuoyTKGFXa3Ta11yNQBqTPgWch21diNPhzPf8X+gIPXeck0Fjs\nXOrDvQie8yKHsz0KYBfMwULw7ObrQ8LgSCHnFBE8qtQcJ1IdHkOyIyO+eNEo\nvtUMVuNrPAxtfVu8EqEncNIAd+n+7IQP7t1uIGCLGXlksQ1vK0DRQBE6Lmwm\na0y3OxVXkZq4QHo2hmZ3DfJr/QMvyJ865galbnrXOp884ULZ0XrN/+2qhSU8\nC4RVBf84Qcf+XQpT2QRxjpEepipl7MNRlr/lSj7SFhS22G1EUj+MRyBJ4OVP\nDUYSY6vm0Jpp4ytrEzFEE7NZYM0SIwg2nVQRA/IiXmJmLz58ZFBm0Cw1djOA\n5+ho\r\n=dyfJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.3.0":{"name":"readable-stream","version":"3.3.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^11.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==","shasum":"cb8011aad002eb717bf040291feba8569c986fb9","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz","fileCount":23,"unpackedSize":114643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcobmvCRA9TVsSAnZWagAA06oQAIv0IHngzLHdJhAlPrZa\nTx3WOvVk9H6VSI7LC8SbL2sBbUVqPt7f2QMkpEy82UcgqDul9gdLqTCTfE1Q\nKGtSqj9Z/7at60uIkNURyagI77opIA9iMEliAH+HrlWO0eQS2akZ3+EPzhtp\nThCYXgIaIhonRFsyt8pOX3YzPOF3Yu7LASULBBo+PvsoeR3X00W4EjM4sMoR\nxJ2F667MSSlp3MfrSXFh5BaanseHTkv3HLuvIaY8okFtwAzqJjsHRU0xSXII\nKuuy0VsujhC+0sMMl7bpOl6OatkX1YDmnB1GL+8zUEBDvZLO5RwSOKmPC0ft\nG4eF0mVj/ZZM5g7ccepsAaacBcOHialJubmxqhwR7QtOVG+61PUw5b1CFQYQ\nHz/UpgY10wWA3rVf19vG8spdjxb+Ym6Iq0TiLlekMv6ymLXlNAVZdNuXZBfc\nfn0lQQizxquLGLraLnrlKdPbkn5935G3cjAlvDpCcTi6G9+i9atP5qFiOCA8\nTAqP6RowjrZxUvEgUBSxMleCck6pfQ84r0AvTzDRqrTHCFRYpYwGY3tGGDL3\nstW2/Cj+45NMbX7BMTKlNHgnKh3pkUJ5KQuTPVlBrJJcWwxvIlt8YcnDCn02\nGFMjCS1w/u/M74dKnayhcfbUu5vm+Gvh8jHJrQMxaGAbeIYDpF+qx7cGnwzP\nfeSD\r\n=oHvo\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.4.0":{"name":"readable-stream","version":"3.4.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^12.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==","shasum":"a51c26754658e0a3c21dbf59163bd45ba6f447fc","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz","fileCount":23,"unpackedSize":114796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7M3DCRA9TVsSAnZWagAAr+EQAIstPU5/5ZkzFqB4tbQ7\nMQuZ0u1qMYSXcLQ6Nt0W8y2g3eHdr/r0urnUzGJ7b1WXDYK1t6R5WSibnENL\nkbAbquY6U+lyYli8kSKqDpbgcTqdRkF3xPDtMcJJ+FgD9GrCR6med5JzMlvS\n7veyr5hbYRefajAXWuFKge89QP2muoweT5U2PVJM95irTy8RVihzRO2yRddR\nfs3keKfaCuupgrol1o0bFAY0TD3I12QDltmTD4pIgDxSNFyIOfnOtT63DfcG\n5Oslj+G7rHA5OTtFbTsDVZGn3pQ2LExtcWCT3tgs5DsbRFWeIY9PTXW2wmda\nNHL4+OwCuq24ilQ3sIg8CK6urRrRFU9GFR+rZIzlk2JEQWwltlOjxWGn22Ne\nHugQRQdCtOu7ccRTdfjP+sDBs+PZ1KnvYKQ4Lf+uVdvO1AwZtAuwGBEFlyY8\nL3DMh4wlerd3+hClVWEh+ZkzQLCfgue77MoSCRA6kcF4SLrs+bnwR931A0JV\n3Ea/kG+7k/W88kTtn7aJc4acVvjfJQRU5V6N6ZfT3sJIY2mWrUYBLOpI0IdL\njIhYRFllRsZkvNe+513STsb7GixI7AnqDOCrPhJunhVX/AzVFsEnHMNjjD4o\nr8zefZKl0IJ25eU62/e0BvXj2PtIlsQSlTLgwBNZkQmMKarzyBh6hn6/IRnW\nsb2J\r\n=ai34\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"2.3.7":{"name":"readable-stream","version":"2.3.7","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"},"devDependencies":{"assert":"^1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","lolex":"^2.3.2","nyc":"^6.4.0","tap":"^0.7.0","tape":"^4.8.0"},"dist":{"integrity":"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","shasum":"1eca1cf711aef814c04f62252a36a62f6cb23b57","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","fileCount":24,"unpackedSize":87719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEhlDCRA9TVsSAnZWagAAUqkP/33VFphjNq5vk5/8TqHZ\n6T6ItDSwoY1VyDEuN26uFHRBZRXztM5BC5spq5q8h/KcQiVxshlTjL+PoXI9\nFgXB1kkm57NY95FhCYcVlDw4QmBl1IRlzVWglN/0J2YQ+wSpYiXLXTcWSAp9\nPt5Abrb68H22oI8+KqQ+T9WTFyDG75yTJHFWBQyXcYG98OU/v0bk3nnB/Oh6\nztpy2pD5EayiEY81YTJ6vySHIKYxAySWdesIO9gQKwaqDdQRmfvsaEra90vf\n5St+XpRx1M0oPFCBjjj6aEhRgvq5rRm81GUQOKFvIWZacFFgdwpqJn1kzCrM\n6tQKONWApacjucn2FeAOwPno1HRQ3/T4NzWVwUcc4fuwi6fXa1E0zcalRSws\nlfuL+mtQkxv7fPanzqZu8J542hgss81ZahaHR1p/d705GTkdiZV3CYBN2O/a\nQDSCgjPUAQpyfOUlkSsNnB8GNWGU3hVOabsSpH3BPrGlMdBm4ML9ZiSaSn1c\nqb/EldTv0pGkwfx4+uOxH8QXMZLwd7nKMluEoBZQtFeAEIiaFwqgV1rB9Pi9\ncBPAMrDIlwlHV9CxOHiH/WsVBb0Uc/vBeRerEpgaEP3iglkkF3w4kaD3PRhG\n9GTiyJcjpDQugMRZehfcQODpj5mlYpYgSxK1xkRQ137BTZ4Px4T+lgYM16Nl\nQ1gV\r\n=Ka0O\r\n-----END PGP SIGNATURE-----\r\n"}},"3.5.0":{"name":"readable-stream","version":"3.5.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","events.once":"^2.0.2","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^12.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==","shasum":"465d70e6d1087f6162d079cd0b5db7fbebfd1606","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz","fileCount":25,"unpackedSize":121158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIeebCRA9TVsSAnZWagAAjkEQAJAnRitiw129NoCfZ9J6\nIhEfRdiJ/NsDYc6GEjzaqJ5WR+yOFBlB6honP4KRirGtSbxe9AgmucFSAgW1\n/DkuwrAcZypr/2ZkB19DVbtAYGuMRtMcn+e3ZWys1ifRdf9xHDpBcPWOmAB5\nLYoLefqtY4ib6c+/HaBEAT9PYOj8s75zJEa40hpq4Bk8QrO3l5QD/aGY0ZaW\nUifqtkvgY9RsY9Rng+b7w4edktFpstkbW3k96FAe60l2aqCBX5LMf+SwR3c/\nGVNIQEESR2tX/q74KON4ztZgr5u7JegH+Y5oPutQhxtHqjPSSig7kcFFRQc5\n6XCw341TLzJP0KcgCNv8+dlnmoVD4npW0pH5eq9KVCV+emFS8Zkz8ID/KEKm\nWmjYrJEMj/xOHeRqsursiD2mvyCYBOyHspnQF2W3m5qqqwnnB/f+cCAk5N00\nsdLLvStx0/1ZdyV800GqN5XLKtFsXQCUB/dE9KFvE/9cRgfGWEOfvvXE7PTu\n6JCiUXMmQaoSgDpPk99SoIK/tC2+ee+QHpJyaX0bjFqpCZwYvj1ZEzrgVatm\nC4mbOYmqAvPOZwhCirrwvC6Uz37GKQD9P2kyZbuhVfeAly5TmAgXR7Ft93QN\novhP03+SYGLnRahMDEl89XUC+srU3/ClcOHD6C9ycJ6nLjr9w8f7r7gCZ/TD\nDLtT\r\n=nZWz\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}},"3.6.0":{"name":"readable-stream","version":"3.6.0","dependencies":{"inherits":"^2.0.3","string_decoder":"^1.1.1","util-deprecate":"^1.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","airtap":"0.0.9","assert":"^1.4.0","bl":"^2.0.0","deep-strict-equal":"^0.2.0","events.once":"^2.0.2","glob":"^7.1.2","gunzip-maybe":"^1.4.1","hyperquest":"^2.1.3","lolex":"^2.6.0","nyc":"^11.0.0","pump":"^3.0.0","rimraf":"^2.6.2","tap":"^12.0.0","tape":"^4.9.0","tar-fs":"^1.16.2","util-promisify":"^2.1.0"},"dist":{"integrity":"sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==","shasum":"337bbda3adc0706bd3e024426a286d4b4b2c9198","tarball":"https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz","fileCount":25,"unpackedSize":122295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRaaNCRA9TVsSAnZWagAAZ/MP/Av2Rq1HzjqXLgZy+I3k\nraRg4I0h+1aG8Bp0tOZ06OY+VeSyJg9pff6Y7VxTQOFLQW4q0dkHXw90JTAE\noX+OAImYKLS3KqzZjsVaDHHwqBMzrLZqrWRTcNuH8zFB1fZr/QqQFwZmmqrt\nCHw/6F3Q0fNtNw9mF8LYVnKs8NRzfo61C9LmUfOj/+aroHDMxBzYb/ZLO5rw\nIIQVyk8+4KrGfUa0wrgQJ7XXRl57cz9ZJ4ZQS4LBa6RGuJ/vrqAmYNJbFI6Z\nH0cVNHDn9IPv/FmfJdPyFqQ4IKaEIrrxcHa8lAYW22omVRSdA37yzGpAf76N\nQnUiUFiBXKoVfM+Q1FhhMUICsuHmVeGHh8wML5fjuEas3N0Y2nGxcYMKef2I\nmbVNG1Mv+/ZeSa7F57rwqD4VypMKw4o7qCbZdHUL1e0jO1r/TDjZzePKKbZ9\ndya/SzpiKlzVOKbkiRkFdL1OXxRThZB052q8B7KBJJdiT9BZut46nJG/OTXV\nkkTGp9Oqep60+wd5FVqTySEfRIpS4Txs0dk8eqYDR32ZElEfexwOoG+J/Zwy\nMQAkvM/OJi8CaARjz1ddaMmJJRNjrYupPKNoQel9yi/0J23o3Ll0/dbGXL28\nt4gd2xsevVNwci+AZYfn5TuDy7N+pyWSp/OoVg1PYqEh5iSe99q4gJjfAwY1\naOcI\r\n=Yu68\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 6"}}},"modified":"2020-02-13T19:42:07.958Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/f7/45/9e07127a2d6f5babd3df468fc6eb18afacd6a8abd81c08d13359f5a4cc6f9eaab790a1445357da86103c2dd9903fdcec190bd6155cf38658dd1e148da98b b/data_node_red/.npm/_cacache/content-v2/sha512/f7/45/9e07127a2d6f5babd3df468fc6eb18afacd6a8abd81c08d13359f5a4cc6f9eaab790a1445357da86103c2dd9903fdcec190bd6155cf38658dd1e148da98b new file mode 100644 index 0000000..5c9bb03 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/f7/45/9e07127a2d6f5babd3df468fc6eb18afacd6a8abd81c08d13359f5a4cc6f9eaab790a1445357da86103c2dd9903fdcec190bd6155cf38658dd1e148da98b @@ -0,0 +1 @@ +{"name":"has-binary2","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"has-binary2","version":"1.0.0","dependencies":{"isarray":"2.0.1"},"devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"dist":{"shasum":"ccc6faa8b3115282776ce4a74ec59e3abfb33b9e","tarball":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.0.tgz"}},"1.0.1":{"name":"has-binary2","version":"1.0.1","dependencies":{"isarray":"2.0.1"},"devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"dist":{"shasum":"2599cf430297c7feae6b63f0a4d2d7deb66f07db","tarball":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.1.tgz"}},"1.0.2":{"name":"has-binary2","version":"1.0.2","dependencies":{"isarray":"2.0.1"},"devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"dist":{"shasum":"e83dba49f0b9be4d026d27365350d9f03f54be98","tarball":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz"}},"1.0.3":{"name":"has-binary2","version":"1.0.3","dependencies":{"isarray":"2.0.1"},"devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"dist":{"integrity":"sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==","shasum":"7776ac627f3ea77250cfc332dab7ddf5e4f5d11d","tarball":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz","fileCount":5,"unpackedSize":5008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+XhzCRA9TVsSAnZWagAAMtUP/2i4q6MN2mPM3cvpriPg\nDs/Dc0ByOqFtYWpDP0gchF3E2c/2uuYv9/SVDBmrSMeJhBpxiX9CEkZv34Om\nMa2vIBTSz4GVFKBVa6mMFG1M/kVFFt9vxrnaDvpj5/cHnIRSMgiIZvBDFlo4\nIBiKjCDptiR7esH79MWsiv/Z+iTIYKzzQnqj47obvDp9ykNWLU/IxC+VzYFB\n5O5aH83HEn/Z2msCXSw58mvH+aVO7q/d+TV4NrvSATrzl6VbiFt7Iy7f0/gK\ncJOTpvjnKNsyB1hKN42L/EYobmiYFrsVSxvYd+ukiM/rwDZv5Ha3apEwcEas\nCTrWmiFFH6DXgJ1Rj3ns22ik6l7UbRn1YA2ZKUgkhobQ8JzHBY612uly1tMI\nqVhgddYFsMusHQy68Z+IMQW9yYtHHVDIX/96+tkWVyscVpSpKJ0Wi2wEZV3e\nns3FzfkaDVjxH0wbOUn//g40KMz+m5skR1wi1M+uHIE4YJ92h/hMT6uGtNe3\nczmD4yfmJq3suy6eslW3OSkMYZzEwE1Ng0Fp1191CIb1VCrpmJdglM0p43WD\nzMMdTkVlE40jfEid7sejfM6wjILz33EbRcnSDOArDvXQ5O/eOf8GPu6a3VK/\ngrJEYHmbsNJN++owjfajybgQNFmQ7NWo9R4sF23Q6/HqcRuV5KN7trUz5m1p\nETrG\r\n=02Gk\r\n-----END PGP SIGNATURE-----\r\n"}},"2.0.0":{"name":"has-binary2","version":"2.0.0","devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"dist":{"integrity":"sha512-E4nSHuaDSrkluQhxugTb9XebZ3yc09JtwlInnepcprFxCIsrZURrW4e8vfPoKEWjyVnaLQsJu95BmbF2diz34Q==","shasum":"e166c85f6be25e8e5b7954af41dce81b098c8644","tarball":"https://registry.npmjs.org/has-binary2/-/has-binary2-2.0.0.tgz","fileCount":5,"unpackedSize":5752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemHLfCRA9TVsSAnZWagAA9TQP/2Ze/RQ5xEP5b3cjYtEL\ndZCYinVlFFlMaypIj7BGc/gEk7PUhyE/bRWjMpVMduUwiI74NQKAvnyzDy3h\nzAAv9FmWrWPWs+RMLDK+xI8eRVuVH/nkg0rdom1B8ukj4xyoUbzK79MuQnby\n/qS79YdArX6LTiLKJe1ntMXTpjsageNeDldk2deOd1Z5rlPDKRM6G/4X08UH\nWKSmPxXZ2lK1eLKzxupajPSTlWkvqoeHbeU3kGqA2Mc5Gr3xKhxDCzkk9gh1\nB1Tp/bdwLObRM8oIma+mL/PJwYrc4qUG0oQLVQjKy2oF7lyKnbXBgRJzyP0e\nVWr0UvplrPZJ9DFCrJTytFiQLiPLvA88Unk7fF11Ak82gOle5TJVm+aSfpWL\n4cjbEq97j3VzGaafkJ74Hua+FFxvgkqIwlCYVoLSd+1eaB/RTS/5kXk3YWiE\nTUteXNlvgwrfgEHpjH6TSnAJJhdi2xqHP0bXFoAtTe5tkq7fpw1R6S96uPbu\nXCaVD1dgQREFjf36BL772DYrguJBh/WXDC0mAONRBKh/jDpZ+CD9tLUiw7t3\nRy0yy0PI/xERINInOQj1S/o1gYPtNWXFRE37GP+qnZmW46HKLCTHpZ/sJTMf\nDseheJzAI3NXI26kZn44tES5uzlPXdT8/8BzoiRJjDiGYcpWZcffM1O/kuSC\nxBs3\r\n=pfwJ\r\n-----END PGP SIGNATURE-----\r\n"}}},"modified":"2020-04-16T14:59:45.703Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/f7/8f/e10340742a6432037c420cc1e1f48da6f137ab6231974b9e7d12ff8db8749413a2198a73eaff35b71664584f7929863e061d8f6e53f3082e56cd7f8d47d2 b/data_node_red/.npm/_cacache/content-v2/sha512/f7/8f/e10340742a6432037c420cc1e1f48da6f137ab6231974b9e7d12ff8db8749413a2198a73eaff35b71664584f7929863e061d8f6e53f3082e56cd7f8d47d2 new file mode 100644 index 0000000..e7c9f5c --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/f7/8f/e10340742a6432037c420cc1e1f48da6f137ab6231974b9e7d12ff8db8749413a2198a73eaff35b71664584f7929863e061d8f6e53f3082e56cd7f8d47d2 @@ -0,0 +1 @@ +{"name":"socket.io-client","dist-tags":{"latest":"4.1.2","beta":"3.0.0-rc4","v2-latest":"2.4.0","v3-latest":"3.1.3"},"versions":{"0.7.0":{"name":"socket.io-client","version":"0.7.0","devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.0","socket.io-client":"0.7.0"},"dist":{"shasum":"d3b33a70c2a72f0dbb2dca511c364d3d36728cfa","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.1":{"name":"socket.io-client","version":"0.7.1","devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.1","socket.io-client":"0.7.1"},"dist":{"shasum":"0017aee9bdd644224daba5961224ef621a1840f4","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.2":{"name":"socket.io-client","version":"0.7.2","devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.1","socket.io-client":"0.7.1"},"dist":{"shasum":"8db4e1dbb62a4dda02b66fe92d35387701c3bdcc","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.3":{"name":"socket.io-client","version":"0.7.3","devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.3","socket.io-client":"0.7.1"},"dist":{"shasum":"690c42c6de78a8cf3c619e7e2d2e4c3f609c8733","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.4":{"name":"socket.io-client","version":"0.7.4","dependencies":{"uglify-js":"1.0.3"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.7","socket.io-client":"0.7.4"},"dist":{"shasum":"0d6c3865f9960cc0f5c03e27414e7969be717f7c","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.5":{"name":"socket.io-client","version":"0.7.5","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.8","socket.io-client":"0.7.4"},"dist":{"shasum":"b3b2420088016ddced1ff20c3bc999272ba6b1bf","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.9":{"name":"socket.io-client","version":"0.7.9","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.9","socket.io-client":"0.7.9"},"dist":{"shasum":"770408324905d7289ec0e92e7ca2ea6f71806292","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.9.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.10":{"name":"socket.io-client","version":"0.7.10","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.10","socket.io-client":"0.7.10"},"dist":{"shasum":"ce9720e511cde60e5d0addb198efc21d0c04e4ac","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.10.tgz"},"engines":{"node":">= 0.4.0"}},"0.7.11":{"name":"socket.io-client","version":"0.7.11","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.7.11","socket.io-client":"0.7.11"},"dist":{"shasum":"3a33dad620e7d65dbaf3dfafc81fdb690828cf73","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.7.11.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.0":{"name":"socket.io-client","version":"0.8.0","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.0","socket.io-client":"0.8.0"},"dist":{"shasum":"164c34ec8b93ba3ccd6c39b4dc706a868f828d41","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.1":{"name":"socket.io-client","version":"0.8.1","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.1","socket.io-client":"0.8.1"},"dist":{"shasum":"0c429f47f8f5aaede19ed3e9ee2387f1851e0aec","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.2":{"name":"socket.io-client","version":"0.8.2","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.2","socket.io-client":"0.8.2"},"dist":{"shasum":"613a8d9348fedc3eb148cd88c9d83526455c1a41","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.3":{"name":"socket.io-client","version":"0.8.3","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.3","socket.io-client":"0.8.3"},"dist":{"shasum":"ddce56873071864b42e21c4ae2258722b0f42c44","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.4":{"name":"socket.io-client","version":"0.8.4","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.4","socket.io-client":"0.8.4"},"dist":{"shasum":"efaa12ee5ad2e605e930b5ae13dd42678a43ba92","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.5":{"name":"socket.io-client","version":"0.8.5","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.5","socket.io-client":"0.8.5"},"dist":{"shasum":"39145a661cbc6f258c34b23bab7d0b4bea8b737e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.6":{"name":"socket.io-client","version":"0.8.6","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.6","socket.io-client":"0.8.6"},"dist":{"shasum":"58b603d3eebfa6ae4220720ce71eddc95eb6d010","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.6.tgz"},"engines":{"node":">= 0.4.0"}},"0.8.7":{"name":"socket.io-client","version":"0.8.7","dependencies":{"uglify-js":"1.0.6","websocket-client":"1.0.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"0.7.7","express":"2.3.11","jade":"0.12.1","stylus":"0.13.3","socket.io":"0.8.7","socket.io-client":"0.8.7"},"dist":{"shasum":"61c5953acbefebcd45dd47d0c8b1ad8a5bf86e1b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.8.7.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.0":{"name":"socket.io-client","version":"0.9.0","dependencies":{"uglify-js":"1.2.5","ws":"0.4.0","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.0","socket.io-client":"0.9.0"},"dist":{"shasum":"9af6c8e99f1594931a339f9e63f67e3c45347b88","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.0.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.1":{"name":"socket.io-client","version":"0.9.1","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.1","socket.io-client":"0.9.1","active-x-obfuscator":"0.0.1"},"dist":{"shasum":"4a97c0851a8d40f29966fdfdb62ae33247409091","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.1.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.1-1":{"name":"socket.io-client","version":"0.9.1-1","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.1-1","socket.io-client":"0.9.1-1"},"dist":{"shasum":"54a396e8e22ab7ec4800266e074518612e2f4aa9","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.1-1.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.2":{"name":"socket.io-client","version":"0.9.2","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.2","socket.io-client":"0.9.2"},"dist":{"shasum":"73607cc129a564468bef59567cc620c0c6a6f494","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.2.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.3":{"name":"socket.io-client","version":"0.9.3","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.3","socket.io-client":"0.9.3"},"dist":{"shasum":"e6a47f677d2720d98fcb9ab5e32dbb2fe18ab4c4","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.3.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.4":{"name":"socket.io-client","version":"0.9.4","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.4","socket.io-client":"0.9.4"},"dist":{"shasum":"cdb37eb7584c7030ad8376e01a2e312242de0ac8","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.4.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.5":{"name":"socket.io-client","version":"0.9.5","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.5","socket.io-client":"0.9.5"},"dist":{"shasum":"8ba9bd3735de006a5b831bca59a2e5cbc30fa53c","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.5.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.6":{"name":"socket.io-client","version":"0.9.6","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.6","socket.io-client":"0.9.6"},"dist":{"shasum":"068b36b9b3f3950117c990bda875af943aeede8a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.6.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.7":{"name":"socket.io-client","version":"0.9.7","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.7","socket.io-client":"0.9.7"},"dist":{"shasum":"67dfb3a1700f7d1f94d352af155a060b79643e60","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.7.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.8":{"name":"socket.io-client","version":"0.9.8","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.2.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.8","socket.io-client":"0.9.8"},"dist":{"shasum":"454a1cb4194740531ac23f966e98dc87cd713e28","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.8.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.9":{"name":"socket.io-client","version":"0.9.9","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.9","socket.io-client":"0.9.9"},"dist":{"shasum":"37cbc7973de9cd5e8b69e8f109236a6b9c3569bc","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.9.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.10":{"name":"socket.io-client","version":"0.9.10","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.10","socket.io-client":"0.9.10"},"dist":{"shasum":"3c2d32debd4a4509b44219b09ac06ba96aaa3408","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.10.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.11":{"name":"socket.io-client","version":"0.9.11","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.11","socket.io-client":"0.9.11","should":"*"},"dist":{"shasum":"94defc1b29e0d8a8fe958c1cf33300f68d8a19c7","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.11.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.15":{"name":"socket.io-client","version":"0.9.15","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.15","socket.io-client":"0.9.15","should":"*"},"dist":{"shasum":"336e51c1b3150fd76be7707f3de6ad06a663699a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.15.tgz"},"engines":{"node":">= 0.4.0"}},"0.9.16":{"name":"socket.io-client","version":"0.9.16","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.16","socket.io-client":"0.9.16","should":"*"},"dist":{"shasum":"4da7515c5e773041d1b423970415bcc430f35fc6","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz"},"engines":{"node":">= 0.4.0"}},"1.0.0-pre":{"name":"socket.io-client","version":"1.0.0-pre","dependencies":{"engine.io-client":"1.0.4","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.1","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.0","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.0-pre","mocha":"1.16.2","zuul":"1.5.4","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"ed5e591c47e6afdc6c01b35665c9cb2a1c74f3eb","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.0-pre.tgz"}},"1.0.0-pre2":{"name":"socket.io-client","version":"1.0.0-pre2","dependencies":{"engine.io-client":"1.1.0","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.3","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.0","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.0-pre2","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"514dcc638f5ad4880b4231c8708650dbcd5261fc","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.0-pre2.tgz"}},"1.0.0-pre3":{"name":"socket.io-client","version":"1.0.0-pre3","dependencies":{"engine.io-client":"1.1.1","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.4","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.0","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.0-pre3","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"e8092de09495b52060ec8883a21ff13076669b31","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.0-pre3.tgz"}},"1.0.0-pre4":{"name":"socket.io-client","version":"1.0.0-pre4","dependencies":{"engine.io-client":"1.1.1","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.4","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.0","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.0-pre4","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"0d6525efae401df33ab101b3d49fdfca3eb6084a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.0-pre4.tgz"}},"1.0.0-pre5":{"name":"socket.io-client","version":"1.0.0-pre5","dependencies":{"engine.io-client":"1.2.1","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.4","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.0","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.0-pre5","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"3a573f40c258c703402099103dd9004fa3c70e0c","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.0-pre5.tgz"}},"0.9.17":{"name":"socket.io-client","version":"0.9.17","dependencies":{"uglify-js":"1.2.5","ws":"0.4.x","xmlhttprequest":"1.4.2","active-x-obfuscator":"0.0.1"},"devDependencies":{"expresso":"*","express":"2.5.x","jade":"*","stylus":"*","socket.io":"0.9.17","should":"*"},"dist":{"shasum":"31d12c44b73fbba349639eccf833e3f9ae13fe6f","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.17.tgz"},"engines":{"node":">= 0.4.0"}},"1.0.1":{"name":"socket.io-client","version":"1.0.1","dependencies":{"engine.io-client":"1.2.1","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"LearnBoost/socket.io-parser.git#e2fb6e","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.1","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.1","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"58f6a10c14b0fd41e068a43f53389ca7a35b7f6a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.1.tgz"}},"1.0.2":{"name":"socket.io-client","version":"1.0.2","dependencies":{"engine.io-client":"1.2.1","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.1.5","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.1","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.2","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"35951b093008f48757f9eddb66944ba007da7b6e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.2.tgz"}},"1.0.3":{"name":"socket.io-client","version":"1.0.3","dependencies":{"engine.io-client":"1.2.2","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.2.0","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.1","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.3","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"b96dff7d2be937ab39c384d0f31ec7178c057f0e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.3.tgz"}},"1.0.4":{"name":"socket.io-client","version":"1.0.4","dependencies":{"engine.io-client":"1.2.2","emitter":"http://github.com/component/emitter/archive/1.0.1.tar.gz","bind":"http://github.com/component/bind/archive/0.0.1.tar.gz","object-component":"0.0.3","socket.io-parser":"2.2.0","parseuri":"0.0.2","to-array":"0.1.3","debug":"0.7.4","has-binary-data":"0.1.1","indexof":"0.0.1"},"devDependencies":{"socket.io":"1.0.4","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-js":"0.0.6","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"f17c6ea8d97dee009b28ec3ad01ab150db4b13fc","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.4.tgz"}},"1.0.5":{"name":"socket.io-client","version":"1.0.5","dependencies":{"debug":"0.7.4","engine.io-client":"1.3.0","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.0","has-binary-data":"0.1.1","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3"},"devDependencies":{"socket.io":"1.0.5","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"981cd4ca38018fe502f606c0690765a82e901a84","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.5.tgz"}},"1.0.6":{"name":"socket.io-client","version":"1.0.6","dependencies":{"debug":"0.7.4","engine.io-client":"1.3.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.0","has-binary-data":"0.1.1","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3"},"devDependencies":{"socket.io":"1.0.6","mocha":"1.16.2","zuul":"1.6.3","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"2.35.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"c86cb3e507ab2f96da4500bd34fcf46a1e9dfe5e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.6.tgz"}},"1.1.0":{"name":"socket.io-client","version":"1.1.0","dependencies":{"debug":"0.7.4","engine.io-client":"1.4.0","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3"},"devDependencies":{"socket.io":"1.1.0","mocha":"1.16.2","zuul":"1.10.2","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"66b8b99c709ede111c724b7cc45b16dbeadd4abc","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.1.0.tgz"}},"1.2.0":{"name":"socket.io-client","version":"1.2.0","dependencies":{"debug":"0.7.4","engine.io-client":"1.4.2","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3"},"devDependencies":{"socket.io":"1.2.0","mocha":"1.16.2","zuul":"1.10.2","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.8","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"1268bd3fb182fff3afa44e126f1230d63b8d161d","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.2.0.tgz"}},"1.2.1":{"name":"socket.io-client","version":"1.2.1","dependencies":{"debug":"0.7.4","engine.io-client":"1.4.3","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3"},"devDependencies":{"socket.io":"1.2.1","mocha":"1.16.2","zuul":"1.10.2","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"bf640d4da6646083f7168b0fc168e8f349a26c6f","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.2.1.tgz"}},"1.3.0":{"name":"socket.io-client","version":"1.3.0","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.0","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.0","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"9e921f6c3a5c3cf873f291201861f42740457d48","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.0.tgz"}},"1.3.1":{"name":"socket.io-client","version":"1.3.1","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.1","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"1379c2a4c5ab87014258be0a6e151aef35a20de0","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.1.tgz"}},"1.3.2":{"name":"socket.io-client","version":"1.3.2","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.2","has-binary":"0.1.5","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.2","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"e0313d94f5ad60fb3e89b54be5f1410aa76b67bb","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.2.tgz"}},"1.3.3":{"name":"socket.io-client","version":"1.3.3","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.3","has-binary":"0.1.6","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.3","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"ce93693f1a6a33c066569b07321d1600848e30ff","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.3.tgz"}},"1.3.4":{"name":"socket.io-client","version":"1.3.4","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.3","has-binary":"0.1.6","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.4","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"3f17b50803440ef787fa2f82046d28386b19ebc4","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.4.tgz"}},"1.3.5":{"name":"socket.io-client","version":"1.3.5","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.1","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.4","has-binary":"0.1.6","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.4","mocha":"1.16.2","zuul":"git+https://github.com/rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"9c3a6fbdbd99420c3633a16b4e2543e73f1303ea","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.5.tgz"}},"1.3.6":{"name":"socket.io-client","version":"1.3.6","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.2","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.4","has-binary":"0.1.6","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.6","mocha":"1.16.2","zuul":"github:rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"22aa25137411fb64dc21477fae72a6575eb61d80","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.6.tgz"}},"1.3.7":{"name":"socket.io-client","version":"1.3.7","dependencies":{"debug":"0.7.4","engine.io-client":"1.5.4","component-bind":"1.0.0","component-emitter":"1.1.2","object-component":"0.0.3","socket.io-parser":"2.2.4","has-binary":"0.1.6","indexof":"0.0.1","parseuri":"0.0.2","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"socket.io":"1.3.7","mocha":"1.16.2","zuul":"github:rase-/zuul#9d3a02","istanbul":"0.2.1","expect.js":"0.2.0","uglify-js":"2.4.15","browserify":"4.2.1","base64-arraybuffer":"0.1.0","text-blob-builder":"0.0.1","has-cors":"1.0.3"},"dist":{"shasum":"7ab7c069b8d50425eb265f031f84a97e6ebe719c","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.7.tgz"}},"1.4.0":{"name":"socket.io-client","version":"1.4.0","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.4","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.5","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.0","browserify":"4.2.1","expect.js":"0.2.0","has-cors":"1.0.3","istanbul":"0.2.1","mocha":"1.16.2","socket.io":"1.4.0","text-blob-builder":"0.0.1","uglify-js":"2.4.15","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"4589f6151f75de1c84dec8c7e9720f92ad3ddc0c","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.0.tgz"}},"1.4.1":{"name":"socket.io-client","version":"1.4.1","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.5","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.5","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.0","browserify":"12.0.1","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.2.0","has-cors":"1.0.3","istanbul":"0.2.1","mocha":"1.16.2","socket.io":"1.4.1","text-blob-builder":"0.0.1","uglify-js":"2.4.15","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"e870e1ee715a0b3ecfba32feed6f04cdecc11225","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.1.tgz"}},"1.4.2":{"name":"socket.io-client","version":"1.4.2","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.6","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.5","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.0","browserify":"12.0.1","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.2.0","has-cors":"1.0.3","istanbul":"0.2.1","mocha":"1.16.2","socket.io":"1.4.2","text-blob-builder":"0.0.1","uglify-js":"2.4.15","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"bb976a8947dbb14781decba83d964bb164bc79ac","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.2.tgz"}},"1.4.3":{"name":"socket.io-client","version":"1.4.3","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.6","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.5","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.0","browserify":"12.0.1","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.2.0","has-cors":"1.0.3","istanbul":"0.2.1","mocha":"1.16.2","socket.io":"1.4.3","text-blob-builder":"0.0.1","uglify-js":"2.4.15","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"5cb97a12eb000aff0b385a27956416ca01a75f0f","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.3.tgz"}},"1.4.4":{"name":"socket.io-client","version":"1.4.4","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.7","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.5","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.3","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.0","browserify":"12.0.1","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.2.0","has-cors":"1.0.3","istanbul":"0.2.1","mocha":"1.16.2","socket.io":"1.4.4","text-blob-builder":"0.0.1","uglify-js":"2.4.15","zuul":"3.7.3","zuul-ngrok":"3.2.0"},"dist":{"shasum":"ff0979bb9975826d5882d04a2c98aa75fa7f8c0d","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.4.tgz"}},"1.4.5":{"name":"socket.io-client","version":"1.4.5","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.8","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.6","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.5","browserify":"13.0.0","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.3.1","has-cors":"1.1.0","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.4.5","text-blob-builder":"0.0.1","uglify-js":"2.6.1","zuul":"3.9.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"400d630c31e7c9579e45173f977e4f5bd8dc7d2e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.5.tgz"}},"1.4.6":{"name":"socket.io-client","version":"1.4.6","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.9","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.6","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.5","browserify":"13.0.0","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.3.1","has-cors":"1.1.0","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.4.6","text-blob-builder":"0.0.1","uglify-js":"2.6.1","zuul":"3.9.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"49b0ba537efd15b8297c84016e642e1c7c752c3d","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz"}},"1.4.7":{"name":"socket.io-client","version":"1.4.7","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.10","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.6","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.5","browserify":"13.0.0","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.3.1","has-cors":"1.1.0","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.4.6","text-blob-builder":"0.0.1","uglify-js":"2.6.1","zuul":"3.9.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"ef9d78db953228ac3740763f923de3a0f208fc4b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.7.tgz"}},"1.4.8":{"name":"socket.io-client","version":"1.4.8","dependencies":{"debug":"2.2.0","engine.io-client":"1.6.11","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.6","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"base64-arraybuffer":"0.1.5","browserify":"13.0.0","concat-stream":"1.5.1","derequire":"2.0.3","expect.js":"0.3.1","has-cors":"1.1.0","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.4.6","text-blob-builder":"0.0.1","uglify-js":"2.6.1","zuul":"3.9.0","zuul-ngrok":"3.2.0"},"dist":{"shasum":"481b241e73df140ea1a4fb03486a85ad097f5558","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.8.tgz"}},"1.5.0":{"name":"socket.io-client","version":"1.5.0","dependencies":{"debug":"2.2.0","engine.io-client":"1.7.0","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.2.6","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.5.0","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"08232d0adb5a665a7c24bd9796557a33f58f38ae","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.5.0.tgz"}},"1.5.1":{"name":"socket.io-client","version":"1.5.1","dependencies":{"debug":"2.2.0","engine.io-client":"1.7.2","component-bind":"1.0.0","component-emitter":"1.2.0","object-component":"0.0.3","socket.io-parser":"2.3.1","has-binary":"0.1.7","indexof":"0.0.1","parseuri":"0.0.4","to-array":"0.1.4","backo2":"1.0.2"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.5.1","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"0f366eae7de34bc880ebd71106e1ce8143775827","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.5.1.tgz"}},"1.6.0":{"name":"socket.io-client","version":"1.6.0","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"1.8.0","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.6.0","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.1.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"5b668f4f771304dfeed179064708386fa6717853","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz"}},"1.7.0":{"name":"socket.io-client","version":"1.7.0","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"1.8.1","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.7.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.2.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"d682bde6a83e2d01dd68b5a3696a88c640c4e897","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.0.tgz"}},"1.7.1":{"name":"socket.io-client","version":"1.7.1","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"1.8.1","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.7.1","strip-loader":"0.1.2","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.2.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"6c23725edff804f3919c1ce4ebb25e591c6e61d7","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.1.tgz"}},"1.7.2":{"name":"socket.io-client","version":"1.7.2","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"1.8.2","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.7.2","strip-loader":"0.1.2","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.2.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"39fdb0c3dd450e321b7e40cfd83612ec533dd644","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.2.tgz"}},"1.7.3":{"name":"socket.io-client","version":"1.7.3","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"1.8.3","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.7.3","strip-loader":"0.1.2","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.2.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"b30e86aa10d5ef3546601c09cde4765e381da377","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz"}},"1.7.4":{"name":"socket.io-client","version":"1.7.4","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.3.3","engine.io-client":"~1.8.4","has-binary":"0.1.7","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"2.3.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"6.4.5","babel-eslint":"4.1.7","babel-loader":"6.2.1","babel-preset-es2015":"6.3.13","base64-arraybuffer":"0.1.5","concat-stream":"1.5.1","derequire":"2.0.3","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"3.9.0","gulp-eslint":"1.1.1","gulp-file":"0.2.0","gulp-istanbul":"0.10.3","gulp-minify":"0.0.14","gulp-mocha":"2.2.0","gulp-task-listing":"1.0.1","has-cors":"1.1.0","imports-loader":"^0.6.5","istanbul":"0.4.2","mocha":"2.3.4","socket.io":"1.7.4","strip-loader":"0.1.2","text-blob-builder":"0.0.1","uglify-js":"2.6.1","webpack-stream":"3.2.0","zuul":"3.11.0","zuul-builder-webpack":"1.1.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"ec9f820356ed99ef6d357f0756d648717bdd4281","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz"}},"2.0.0":{"name":"socket.io-client","version":"2.0.0","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.6.4","engine.io-client":"~3.1.0","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"~3.1.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"b6125177b063e9e028abc748304733e264b35300","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.0.tgz"}},"2.0.1":{"name":"socket.io-client","version":"2.0.1","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"2.6.4","engine.io-client":"~3.1.0","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseuri":"0.0.5","socket.io-parser":"~3.1.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.0.1","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"1d52f8c74660c68bb6695953fa119971155fad93","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.1.tgz"}},"2.0.2":{"name":"socket.io-client","version":"2.0.2","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~2.6.4","engine.io-client":"~3.1.0","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.1.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"^2.0.2","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"86f59db59ba1168724220f39be281ad49af742c1","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.2.tgz"}},"2.0.3":{"name":"socket.io-client","version":"2.0.3","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~2.6.4","engine.io-client":"~3.1.0","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.1.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"^2.0.2","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"6caf4aff9f85b19fd91b6ce13d69adb564f8873b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.3.tgz"}},"2.0.4":{"name":"socket.io-client","version":"2.0.4","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~2.6.4","engine.io-client":"~3.1.0","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.1.1","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.0.4","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"shasum":"0918a552406dc5e540b380dcd97afc4a64332f8e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz"}},"2.1.0":{"name":"socket.io-client","version":"2.1.0","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~3.1.0","engine.io-client":"~3.2.0","has-binary2":"~1.0.2","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.2.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.1.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-TvKPpL0cBON5LduQfR8Rxrr+ktj70bLXGvqHCL3er5avBXruB3gpnbaud5ikFYVfANH1gCABAvo0qN8Axpg2ew==","shasum":"0d0b21d460dc4ed36e57085136f2be0137ff20ff","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.0.tgz","fileCount":16,"unpackedSize":1578231}},"2.1.1":{"name":"socket.io-client","version":"2.1.1","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~3.1.0","engine.io-client":"~3.2.0","has-binary2":"~1.0.2","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.2.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.1.1","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==","shasum":"dcb38103436ab4578ddb026638ae2f21b623671f","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz","fileCount":16,"unpackedSize":1580210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/fLNCRA9TVsSAnZWagAAtVAP/1w26s//xpQ2rOUTldfo\nycmNO0Nia7PSclPvjSX+2kOwJotOKQoYsfaLLQ/Fl788bpsxFzEPjFv5rF9t\nBLzWpmlCwn90MVgfFMOQR4F+dB8Q4bYVkc6d9O4BO+fnVPBiL+bKl9lvdeUA\nvuXGaAfBLBlkD3iNnmxDbKGWRtw358Nd2d1opFBlD40tVIieY0XYDSth8UfX\nNtCZzFX+fe1QfN61+mtAj3uyRVDEKTE7a9H8oGS5u7xy7G0cyObaTS68bBg6\nxS5xZhSdlXNk/xENh49FQO2x5DWsq9zrqnuPjIM75Zphifl0d7jd26nDJMe6\nu4KLvaw1GuI0QSPAQW21r16nJ3FSEtE6JWOgPrQNKVi6pRDd94ks3DrYfyF3\ng5xlm/CtPkJ+JbJrD2Kxebhc1yd19DEA+nF+BnPXooK1u9Zo4jm8vVs5n4Tr\nN+YqBETroArdzy2in0jXwqZ2bNIvqEkztadSur9+hgjFO377mB5uGcazaxxi\nYr/VCH0eKCbIss6MkvFmmOzOZraJwJXd/+Q4rq2BFS+9RBo8LzgBfFUMqeWk\ncdlDYexSMese5Ny7P6IblCuPYwIz+6CJVlnXxPDHniylyd2OKHdwMjCsWBh/\nd65zrLQARtVeLIUgC9HBMHXi4NEElbD/m+kDhSeXOl9LWhz6bVcsm+TM40v7\nib3L\r\n=kdYR\r\n-----END PGP SIGNATURE-----\r\n"}},"2.2.0":{"name":"socket.io-client","version":"2.2.0","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~3.1.0","engine.io-client":"~3.3.1","has-binary2":"~1.0.2","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.2.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==","shasum":"84e73ee3c43d5020ccc1a258faeeb9aec2723af7","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz","fileCount":16,"unpackedSize":1563109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/yGsCRA9TVsSAnZWagAARn8P/2Sc97vaAaqzK+HXe6m8\nTwn3b/t+jZk/LNBE+3jD95dLfCVH2gKADg2jwkgzNS/XTxeGIlxruY9+FrFm\nv4aJy896WdtEvCg1EswakJc/71Yi1kUqPk8JU7/7lqkEkIFLrFaUJIhJGSmc\npKNExTnzDkRMCj7Hu8DX+XQcnpkNPlyL0aM4JJ4k0AZSRnNX/fUXtYZY8dCK\nX2rUvfAkyxh2sj2iAHCM8g7GvvXN6n2JXyzUCTRO/D0f0Tf11PXQvm8SCGiP\nqw1LhATQC+PZsi8NcKdkBVqk2ARDv49o5wJE9SL6Y9aKF5MRKpxsIdmtK0qw\nOUDO/yDRc1+fZXyiELyu6s/42eb80qd0TkwGTsJ5lWGmRhlQiA+vKkMZbp40\nNStl2frvcDFPgStW9UztbvvBMr4CGMefZXHngJj4AnlXdoDGrKJVruoxzNb5\nMjjxsdnI2PP9rDYkXGpx8RwuiTsjVBUWJpJ+aeEu2gRur+dZQkKR8NR/iI61\no6o3aa7ArtzmUrIpaScZWY7AY69XpdIUGvtof3c5207WoNTtCMv3GOrjhcZw\nrHN576Pvq1HZI8AUI2UtwZ2QLuh0Wka2rvecm5kGV+sfoEMsQFCyXy5XWCMa\no2VJdMCaidbULTpMD31+nsQUxOzQpsvyRCe2m6D9z25bvTVRA0Ul/iPHOAUQ\nE8Xh\r\n=TsOt\r\n-----END PGP SIGNATURE-----\r\n"}},"2.3.0":{"name":"socket.io-client","version":"2.3.0","dependencies":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~4.1.0","engine.io-client":"~3.4.0","has-binary2":"~1.0.2","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.3.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==","shasum":"14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz","fileCount":16,"unpackedSize":1649198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhKjpCRA9TVsSAnZWagAAwvMQAI8P23T8pRF7WxFtNVnh\nJMJvU0C+9mMqeK9/+ovGZzsNvsZiNPXmNVh8GDMM4+wiWcqofUji+hEdu3jc\nNnrZpW8jMZV2a9W4vNDRxjKX6yz3uH972M+FLOnX8FPnw2lHdJ55Ed5LN7kk\nW8CesfxaFIUMDbmneevoZ+pIFdQtswQpf5IOwUuE9R2JNdvzQ6nzZ7VMau+E\nar8jVWmGngjqam99pT8S7szyoj95Ls4W6D1zMBCFytM47RL0Eiqtksh9hUqw\n0w4yj/+VPeMy0BZkLQ24pkZhvPdLfn1P9dNU/RypasjMc5CI+G6yHd0EGZgp\nH2NKyxV9q3F73fqe7qPXtZzZj9JCSUJx+xsqRrOlVqq8BhCBWJK7Jxg7e6xz\nRgjZawCaPIijIxkympAjY6JNJEKcIeWynrUekPSgGQ190OxQiGtOhy7jQkqU\nQzbFtasP5ptg5W2mmfZ2/MW2FjaHNgSupqy74TWroFT204RZVAwPzW91uicJ\n6XjRNiySdGrtsghbUsr66f860sFA4o88oCT6jXrNzjmxoKwlUU6z8sM00k8x\nf9V52CM/e+u4ggh+D51IHhPsa+h11uBfG6XtcDYj7hMdZ7HZCG7XKtT5iz0H\nCHNtfIloR+1oM3BUmwca96AaJMg66pm5RHGzKgL3HxfWtMphrrwImitZbw4k\nICPB\r\n=qr97\r\n-----END PGP SIGNATURE-----\r\n"}},"2.3.1":{"name":"socket.io-client","version":"2.3.1","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~3.1.0","engine.io-client":"~3.4.0","has-binary2":"~1.0.2","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","has-cors":"^1.1.0","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.3.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-YXmXn3pA8abPOY//JtYxou95Ihvzmg8U6kQyolArkIyLd0pgVhrfor/iMsox8cn07WCOOvvuJ6XKegzIucPutQ==","shasum":"91a4038ef4d03c19967bb3c646fec6e0eaa78cff","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.1.tgz","fileCount":17,"unpackedSize":1570224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdLNmCRA9TVsSAnZWagAA/94P+wVauEHL8jP7h6xTsqrQ\n3ybZYOa91oIo0i103p6GJh62oEISXbw7ZE5d4pAOdPdkyJ3diRORKOYG6qcX\nA19aI/srjkflXC//HP9YUxO3Ay3Klf5zkWtoF9iB2JYoH5xVzsql8gOaiocl\nK7XV4zi2AcL7R0JBBoHUQJm5NgoWR+9nFxqCGd00zoeKqNm7+aIS6Sx0v2Ey\nOLfX8QR/PSENbyI8EpgTygEwM+1AjuaMW4xvb8v8LB3IS3ioVQRyzHc3d6io\nhRjGUSN3Ephk4JIrIYOgTbok+X8vytl4snOn0+FAZ1GMJpR3wv5CnYpNk+qY\nCWv7ilgZkEle+Q8KCc0ymmZATk3QMD/Z1UTiks8tWqdJ+gFNlTgzdU13DtGc\nDzwKPtzg2Wc7VSSbXYHNeh0Sob+/bqeyuYKsXZgaVZV2uCvtUhmTQB/v1EEQ\nMySYwRbCBGk5TRjolaJ02OnGs8lQ8LcaxEeDy0rnDY4KcIyUsJhRvXZQvop5\nHmlUF5mlemV5b4NgKyX+SSR1agGQ1YchoA41HwI1Ch6WADOy2QwrarUDmQC8\nlaZM2LlLXzdNZaRy5nByEpfXuimW26FHD5I7wCJWRvySzQGtByj+5+FuyL73\nD7thvXSxSUx63PaGOY2ZmJIbQUCTVGFvOJ/G3d69om9Zv0FBc7bBt//NijnL\nRYLb\r\n=iwoX\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.0-rc1":{"name":"socket.io-client","version":"3.0.0-rc1","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","has-binary2":"~1.0.2","indexof":"0.0.1","parseuri":"0.0.6","socket.io-parser":"4.0.1-rc1","to-array":"0.1.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/node":"^14.11.2","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0-rc1","socket.io-browsers":"^1.0.0","text-blob-builder":"0.0.1","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-+Y6kDpWR8E7s2Q4ub1peV/j5SmiHPrxXSeEHO6pLGwKOZr5t3D3y20xyOBst6bsEIJurLbQOkCCJ7anhZ35Wjg==","shasum":"45efca539a356edb4247cbb549c69ee43118c45b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0-rc1.tgz","fileCount":18,"unpackedSize":728793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhh64CRA9TVsSAnZWagAAs9YP/jE17YqRNYA/h3zkOdrA\nPAqcG3bHL9F8MXRnMv7sFxkVXZn+Dv5UWHBgX0MOV2cmnrjcC69rgC6afHa7\nLmncPRQy05jteBb42vJ959BLIQrtQMXxVmZrY6QvBJZh0Mi7zR2YB6jzKJqJ\nM4sBiCwbTyAZHLgqNU3AbpnHEtSztgQfle6QmMCfn4YlWbqf7PE6tvsmciYn\nSQnaUz5GasT+YvNxlQMle26u87HPwJptBPoAYu5C8siFZkTGDUWFiCSyQEv4\nywAVg2rXsoUO++KbTiPj1cvbl9kB25gSDby52R0Ed5F5o9WamFjm4jj5mrhL\n4WZe5Tg9+Ah8KzuPURvm24L0VekRfWb/ZETHqqVJCUwhiA7//3bEPqKFsPUM\nfoQKl/l4GAB/JOOpdVwwXzkCVSG+styRxLXJpuFzUK5ulxqfbjL2YYPoxKz4\n+9vsOFBnSiTseUi7LvB3c2zesIN5Euqp+n08NcJ0xG9QmljBEPWhA5hBQ7aE\nI7aK8j6uKQPD37cYcxtQAQigyFKeO107cEY512Awd2rtu9/QaWecf0lz2BPs\niSGcMKkPocoLzGw0odwCd23QaUfGRsbQyjQpJi2lYiaXXNfIvlZp+0xl79+c\nInOWod0qkdahpX79Xrdeh3btrvv7AwkS8Iiem/xQxHRExgtX+p9krK9g062M\nZ5Xf\r\n=Fu03\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc2":{"name":"socket.io-client","version":"3.0.0-rc2","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"4.0.1-rc2"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0-rc2","socket.io-browsers":"^1.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-ZIVzV1ANogp5ZqkIn504UhD4NwZkCWLoq9/rHiNSI0RIsvsfGxyOzhNvr0fWPppfr8+hNt5Qbij6ucV5ijIJDg==","shasum":"2326a5f2c0b3ffecaecc756f4bf7ce8ecb020a8e","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0-rc2.tgz","fileCount":19,"unpackedSize":704067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiCw9CRA9TVsSAnZWagAACKkP/0UDvGUgMKJ51yMEKOeC\niNNo1iNkhWS4+QtQKhhInJuwf5SAqRWo2DIIfuIVgsrvQPK0tpxBczCeJkVh\nImWMHvxuE3dkhg+duj+0oejvnLa1L23Y/l75gM6p8H2ptxYVxh7vZg7hODkm\n2zsuYz3HSkdNUWoYCizTynntuY0ulQ4kFZ54JkFGlCbaC4vhWgZMioSSITZV\ng7DjR3eueOy/m0SfSXQ4tMhk5JYXscWT3J0pdWedGtoF9k6R/NOgPru7zv51\njVrFOmQUIol8XyF+ZmasvQ7nfApo3FU5VANPo5qfX6257mqNTaIV/QmiKn2L\nKxnHn7Q0TQNturcgec6y3RAFZFJq8k9bGeHFgGNqHFXeaicer4NKt2wSRrPc\nX1VrrRjpqdqNzuClSddGNMKrTHeBdQKvpC00FVmNLB9MOiCT2kAT0gWmVX1L\nsysiJ2BeEhF7qJZ13LtN9M2BCT7ukP0KeH7Ev2z+luPObXW2Qkd5fGPTiPt7\nv1VBUfx72eSLvJVM85oCXouqQZPnvZF4Pkaa/d80lBL3HTLf87V9j7cUoXYK\nhPRqmoMSiaO1INqiXY8pCCwvXbHkDx31Kck37kD1KWgUy2OqMN3tVBEKKFZ0\noeCBSmrWRRCHLxp224kJmfm+dEDsi1ZTt48iahvvf4Q4WoTKogpw0CRoCswh\n78K7\r\n=d6CG\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc3":{"name":"socket.io-client","version":"3.0.0-rc3","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"4.0.1-rc3"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0-rc3","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-9w67FZtTsGlDiwpobQ0l1UeLinx6LuFYEHGTcFRc5P5PyY/4M6ZI7nBFxIhjf0l8DTUfAJwllqzNxSqMW5nxhw==","shasum":"6921054e97a253aa960bfa0b7f6520f97161c2e4","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0-rc3.tgz","fileCount":22,"unpackedSize":948629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfl1+rCRA9TVsSAnZWagAAUV4P/0wtP8b9SOUheXAq/lyG\nK7IrqkD4jt1fwnocMjyOGMaofsW5/SKUxwCvBQsMqz7OPOhu0IySjc4318aC\nA+9TLvaJpJ7BC6q15ncdGCirRoi/pLJufjh6+PWzU8RZNr+fqwIrK0h0jmSE\n/wqVVBJaeRgvlOj/PjAPz0whT9T/y0XylTi/c2qE3je13smKpZkoqettFp/Q\nz0GOP/I6G7FHFciHsCn0dVMbmSjF+HaiA1zbuPf8bY/0QlD9Mjny3byGPE2S\neLDsKOc1ii0CGr2FPtlZvPKswM7Iz+ns3iOj5SvqbOuG2slsuk6MdgH/1AL4\no0U3LPFXJ2aOxf8ILlb8ZzT6/IthvORlSqJBVhYzuVLdMOiM1FXXulSnMeZZ\nYhSIklMjNW0/n4ZGyQ6+i2ZnaXqqvIrQaUubLdeb0fYaqtVaJ/vsMYkfpDe8\nyI1pg2dOQWEYMAEqRG5gC8VhekOgmJFB26QypQYb60CkA5qs6KJ3y6b2nhdw\naEGsDG0UI5OPBv9L0AbQ1zU+yoemyEZqtE0rigrjss48A3gqGJSwX0hte0dg\nOEmxP/5K3f69Adc4jUNPVcJZ0FkKnvqqeVLOjRakRMKlnfxIqjRjUbH3m+b0\n2ElGNbiLJrPMZxBlyK/HXsLJNHObm65/XVq8Pm3F7QqpNvqJ6RJ1wP0OaveQ\nzw21\r\n=bFwy\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0-rc4":{"name":"socket.io-client","version":"3.0.0-rc4","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"4.0.1-rc3"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0-rc4","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-zQzjnY2VynlHTNFwTklaEJ6SdFRMhBZFkpVOjGoIOAPT7AwUBIboErfrvlGNWBnH095Ky7wTC2dmkF8REC6HVw==","shasum":"76dd858755e326b41280c72e7089b2f0e6c8fdec","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0-rc4.tgz","fileCount":22,"unpackedSize":948514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnI3DCRA9TVsSAnZWagAA6BkP/1/Okl5WwHPdT8JDmird\nWdBnatNrWT8rKJHGCBtZSp8166qJnDAgP7vGSYgu5tz261vajkUSPt4usdhw\nTUgT4VhwvBsc/jXaT/PKda0TcsAfVguVKbGHy19Fkx1u8FqSKRMSb3g4qvoX\nWpasTzPYk04WJn3cqzntntponQN1RaslTaIXT0+9lVLeI0bzGdGJJq193UD/\nbtpludjYtJzsRKsRhmQlNoIYCScYX0kJv2FdTSGFyuMqZPWn0Wr1t3neKJaR\nXRveSz35QtxSJVSs0+K2p9vQ7I4UDgAbfYWNg7sfExkCZwS8uKstbPo+VR8V\nOZ6IsPpWLwqfA6lqmTAfeIC+YmKsRlM/KSsQvzoOzjCW0B6/QRKuEA/BvI8Y\nKZ+iExWVjQs1HO2JHi1dxaqctLlj+wva0kjcRiZWa4wx3z7qnWEqc8MO+kVO\noz6ZwexPzfEjp6VFgPIysNjzbl9H6ViXMUFovrtuRrsjPqbgYciYlwhINaW7\nFf1OoE7VMq49W6wY5Xiv5y2Pq4OOpcN6i6R1e5NVYMG5hXynhSHPD6wS0l7n\nU4voABcLqcoKgElPNcaqD+gl7vHocLOupoQjmHs6DfcDHAatilzNZSnnjz5W\nyq5lobeBiDUrR2V0TgECsWhcKpTJMnm32LzPVkIl4diu8YtZ5j3r6kfGNjNW\n1iUv\r\n=YKb5\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.0":{"name":"socket.io-client","version":"3.0.0","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-NreA86JJSMMSyPomkpyWL+FeKB3wmsWbGbNvtoxPbodV7dEIWxwyOklYfhuTpJJDCpEFd55vET2/ZyYwJ66Bfg==","shasum":"31f2ae164824987555cd54c24da2837abe196a32","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0.tgz","fileCount":22,"unpackedSize":950749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpGnICRA9TVsSAnZWagAA8FMP/j1909xzPlPzIdKl/qCq\nZE9SqZl9Mp900cgpjSItiXsxuZQnl2dawoD4WLIOwvJcZNUUe6duPx0PUxOw\nt7HTaLlixWSLKIVV77bdC3uLXYSeA3XObWqYY29zNOjLv0aYy23qoKJ2WJ6U\nqKdQhpmtLxHKgvuWVB3WMp99crhrFdTzOU5wVDZ+FVJtZX4nynFg09IoHRgC\nYbQX8/iFIAjhtVs5IECI+GDSKU9XAlOrD2o/MyRWweK28oW3AaFwuhEBZWAL\nEeH00eHaMvoFAM4+3+GMKFmo3gWk0a9cVD1WF1Q+KviA8rDbWWI75zRhw9+x\nh1no+KxNWwjFC4D24wRSMAyLddOYVyOPlotOIFTW9pu79KZwAY8UItlB0p92\ng/8xzYsN1nCg9cbUQM4wTTXKLrd6ip0R8t8eShWcPfxxXz3AouTXYOt99BUj\niplJT0O/ua5MZ9vsWEBAxKdfoBJkqMn+rx3GVdZtjBTHhrFo7Nnpx6KhscJL\neiyLsgfasFqRPEI2z2L61Z93mVIug0DBVUjSUHtaJ3qvE51bDwp0uAspexb2\n0GMQyE1womaA3hZJSujl6y87t7LNMmV/e17aEz6okgHrGp77wixJsSTU33JK\ne7YMBc1E6BeM8AAOsfEWa/X/mKDNRVV7yX2Tv4qVfaPLvlZXT5L0OEMy+dU2\n94GG\r\n=RLd7\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.1":{"name":"socket.io-client","version":"3.0.1","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-iIzWRDrF/h3KPtHjvLt5LL/1n7Euvv35zVa1r10ScRjVw40yc8DxFj7GnKrj1RNYkbtveWOwEsy2lWp3oFJO7w==","shasum":"1f3e9c78c233181fa54401f4cb46c4db513c48e8","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.1.tgz","fileCount":22,"unpackedSize":949814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqQvSCRA9TVsSAnZWagAA3yYP/3UqXMHMpXi7TcFnCX9z\nuRf1bbu5qArjF9ih/uioJqGDzWKl1Ya5B9cf91EWpG5JvWeKRhIl13qCOaHY\nHez0REFFE0a6AFLu+BfrZBBTkTd4lEw496tb9C+zQRcG+B1ri/hbIPXVIRas\nOPlxfemjLGBRettUWWZrBkTv/fXmXSe2UBPGjbxIrWO1M4n7m3cy36S9yU77\nAG8B2tFMaYAIG9wpd26dh221gmXPMuta0kbpViq1OrHSDkYuwLN0VEsktYby\naVJq4ziRo9iXklUBzda1GUF0pQzlz1cZNkn2ANYXqOqdAbTePMYP0CUxJuL5\nYKRX8faHg+wcG6QWfAwa7FFsTYV0cO+ZO2AUXkl/kaTZ/ivZtf4MSxibun6r\nhSjU8qXoeDHu/OtcYFhsIV7MoPmn+nsQRhirlQhKsuBy9iLErz0BLc0BsZBJ\nw18AgX4SoA8pc94da1jHgW+dV0dgzm2CMTMAEXIklPN/CTZnCJ+Tb4bvAk37\nexDUK4My/oU342d4HiR7P5wjmaVBEF99Dlte85RCm1w7WgsgduJZuaQJbUIw\n5U4O+AmvblOytSX9bXtb+pg8RpNtLtbSzVSDWsWxsDh96IRGHtCcsgL6CNPR\n7+XQNnZkthA2FfDbASiZypFNgD1Yhpo+SKBtwquGu7b4jCZAeTcpdo13WAqd\n4zR5\r\n=tOrC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.2":{"name":"socket.io-client","version":"3.0.2","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-SEgeBLWAztLoOIePauBEvY1plhheShoNY7CA5gUnrjBxe+NOYiK+neazrpdXQ2RYYBlXXEosPWCtEhKydVdagA==","shasum":"7984b1cd8e7274f8a53d032b01fb15694a0210d5","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.2.tgz","fileCount":22,"unpackedSize":944286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftFRlCRA9TVsSAnZWagAABKUP/35PAHKF/RqIDtWhDmIq\nSw9vcRxxMkeOTEmQIVVtryPp/6lPDa2FxhYFnsM5wfotDZtiVT3TO2Dxm7xo\nV3b+Qh0+ZJ+lvzYlQU3GcdxQ009aDdEeG7jAZnvl3YDejVhYI2IiyFFZgBFK\nLitAynf3oSIBcAu4T42/w6sGs3Md3LIfocIe28mpg9VD6tpQpiDNJhNJgl3K\nbnIuV0fEhyC6TnW23djElL1hgKEuA2j9p+QXGSWzVGfZQvmEwAfda9nllaR+\np+SOU5poCxSzI1k+PnHaT/YarIaEuBShK7xQN+PCTCcsvDAYa/aOSEKR3lcq\nvXxjnL6vay3Kvx+zMYkHX3a0GnxSBQZLxnJ9qYYO1N4Wol0bB6zeU3xdxW5W\nqpRJ5DauzaGomchK+6KcbyG7Yb5lsA2JQ/+lSXzp2iIsavnwKLchtjsPl+bb\nWUqtthop2VOjM2p8rbyvadz7M3n7awthryTKFGGHLRIqlR6IPSPTITdDgQKE\npIfpFtEYBwZMgx8ZwG4nvVAuy/Iit2w0VD9OVfkDO+NCnJ0VHKMWXwfrLQXJ\nJhp1NkzhHh3GAA6jfHev02E12xCecSAHlh/glaPmBN7DiXlNovZXUp9OAf78\nOWkH4ZvgYrxut1Yf2fwYwTbS2H0+2kIxRbz+14afB8g2ZKBOJoqL/MJSrp7G\nb0eH\r\n=PixW\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.3":{"name":"socket.io-client","version":"3.0.3","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-kwCJAKb6JMqE9ZYXg78Dgt8rYLSwtJ/g/LJqpb/pOTFRZMSr1cKAsCaisHZ+IBwKHBY7DYOOkjtkHqseY3ZLpw==","shasum":"37890e24fc386e9de34358a1b7c4a2968f5d2630","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.3.tgz","fileCount":21,"unpackedSize":944714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftbakCRA9TVsSAnZWagAA+1MP/R0HrSjo0ufsbdH0BQna\nuyGq6nT8zSaU7wyp0ofSn7D/ouk6PC2/Iw6bVCzuSaQ4SGIJrSe4ei6c8nzy\nKVC6Hpb2nly1un7ahjMttB15F6V1NoZ0nTgIOtjExtqDdKHQbJTBzS6rMojQ\nMUYzJ1iRO98Ex+OkDs6D65KDdlTFFDOaHeFQeLWAdWmuon27UfGRDYcI5pEB\n4q5LOsdaY2jy3ieA83TMg3U/NFBrqgcWJZrQZKZ2zImbnrTtArzlCdkCLIS9\nTjVOS0F7qSWslA+FmtClJ3F3chVoJlKsIYVEcaZoovI2ahng0A4S+OSUgnBn\n8RblL7Lo7aBPDNfk7JfvfZd6uVm5I/3ocQigVO/NogfKCwrDiqYEFJv5wss1\nEGvjBk6DJIwGgiREllJTXQCj4CUoXEaEQxzfzz6Q91BzjZx9AZjNcM5l4gwi\nS/+4RUAPehx2Paxu3bOLlmWPj4OC2hLHCZjwGNtI/6Po/aFd9ASjSB34I5oR\ngAqmQBckUhLH6agE2v3FQlXYt/hzho0kLYfXxU4iUHFzlg87UxbaYbV51RA1\nPeIiGwhmvdLBc1TA6sptnfNqFjA1OQsewHJRQNq75LOTCuyWAVep2l77l9sM\nRRYu422+4muREK+hBA8mPqBFDoaSu7S7gxP5aBDG2jGSXeFdGVhkpck7Gn58\nKowt\r\n=VVWJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.0.4":{"name":"socket.io-client","version":"3.0.4","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~4.1.0","engine.io-client":"~4.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-qMvBuS+W9JIN2mkfAWDCxuIt+jpIKDf8C0604zEqx1JrPaPSS6cN0F3B2GYWC83TqBeVJXW66GFxWV3KD88n0Q==","shasum":"c0203419a9f71e1360ef92a31301e80260e94bb9","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.4.tgz","fileCount":21,"unpackedSize":946494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzgdmCRA9TVsSAnZWagAAykUP/1GRml/NV2qraHE/f5CQ\nzWsRZo3LI4/p6P3kjWcwpnLeP9QL5Xl3gnVFv8zBRn8WBR95TAgYOqXCLxT0\nvv/9pBO8Ub+402uqnydnU3+6tmLmN8q0gWp4D1iCopxRqfu37mN3HEiYPHDV\nXeK4Mg91VKOtqD1J2ME8OVE7EmD/woYIQoXVSBxXbHxGzUcipJvigTDNLFKV\nAYOSQ+CkCWWtTAuWG+xA2VzjY6fAfpZFJyOIyRp668nor94ZeQGbCm9p3sZ9\nJjf2INkpoYIGGqo8dpvmPBTG5Xmo2OV3kMpzix6UoeAfap7l3WMovXw67x7a\njHJq5p8pRxjnMnrmpy+oDHLYWVvivMw54WvRvSAs/xcHqIHCaSM6ZSFhPAwg\no10sippMA2Lp6dtlzuqxlE7EZPB3rQlVOjiTnXqIxr8mW+9jEJb+M7yICVsx\nFbPrrTR/sWtay13cfa7SEvSGRk1Cj/VjddzjE0lb3RwYw/vGSVzgFVBLkUlV\nSxaERh8ZyziBlFWKPpRl3vJlicnJclybVKD47tQG/jqIdWsTRFs3MwRBjs1g\nkD0fZhyVGxFU+w8uXk4qD8ynYwi7cgUZ4SvdKkmjj6NBDOoQUMoO6FAT3ClC\nB/m+qxO+At0i5lIJ/Vz7D/UbVNTcDXhOBXH6qEiv809ho0fgsz0/NtdaSSs+\nZQbx\r\n=v615\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"2.4.0":{"name":"socket.io-client","version":"2.4.0","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~3.1.0","engine.io-client":"~3.5.0","has-binary2":"~1.0.2","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","has-cors":"^1.1.0","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.3.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==","shasum":"aafb5d594a3c55a34355562fc8aea22ed9119a35","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz","fileCount":17,"unpackedSize":1570697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf85mlCRA9TVsSAnZWagAAKHEP/RTVAL8svpMkj4vky6fk\nq/otlxAwlMInxu71ua2DNXMIsWsFJ2yYZK+bBmDWbRCdriRBnwlbAA5V2JJu\nSFQTa7jz8kWoTQ/dbrjj+pBVrMKLI7vB1KUYtGA2cGl4pNvM7MzOdCvOEFmR\nc70GyBp8uFscICf5SogVW51VaHLMdbchuN2aaOrnqaZ2u9rxWSIgeO1JbmKZ\no9AFVgi2bIMrd5iqa+ETZcie9peO4PweKN8E+/ToPDaKQNUcHNEiBuBEyzYG\nWU/7cIP8DG42EFv3H0gJZ48Ywbe5WdO/fCG075x5+B5EoK2uu6N4Yv/KJ0mu\nW6HCkbH52n5M4PpXpqjQ43bR3noDL8asMVSnt5Mv9ekHCEhbhRUv/9YBfzyh\nypGy8+WctSV8TQ4uw5SrAX+D4ZyEm3rWun6f+BqCK/6cZ/lefIJN1TEj8TqR\nqP2pL19AJxLi4I17hFiyPGbVvidfxRxCmbAqdR0fB3nOsYAmrBlJBPiu4FiS\nqTLx4RZI1YoVqD6RlQX4nAsdK9BvIFaxDkpZFUVAmzZT/6nv7oijWxz7+Zhy\nln5lGUysx7nojLiPCzJSvpFz6VPkbUYQzRKFFBVD0Cn5/JnwDa6lM1i4MkZP\n4ENYQyr1VtY4oNz9K35FPWQtZHMVcFA3XDxu4GNTvz7LektF6fs3B3jA0JzP\n1Xpz\r\n=3wpo\r\n-----END PGP SIGNATURE-----\r\n"}},"3.0.5":{"name":"socket.io-client","version":"3.0.5","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~4.0.6","parseuri":"0.0.6","socket.io-parser":"~4.0.3"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-NNnv3UH5h+aICeVDAdSHll3vSujp1OnzvDtuVz1ukUXliffr1+LTGc1W+qZAm3H7McapGsJhTI5nsBoY1r21dQ==","shasum":"15c8fe9d5f853d3759e6aa22e5b48ecce68de8e3","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.5.tgz","fileCount":21,"unpackedSize":1039786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9EeBCRA9TVsSAnZWagAAPFkQAI6OPzuF4JCzaja6itVV\nYdgDPOvsTYE7tz6TEvn8WnnLSfoBaPUgpWms48W3zYpoUQRCfw7NFiqlNEpk\nDDJKNrJyp/9XE2D+tMnvW4IJCuI7UFvERulL3hpF4nZZFh2eklM9hrb3m+8P\nD8O1I7WrWYOS2drwazCPWClA1WFPaSB5CsuQCn6KsL8RWQXTTQO/XIJLuoi4\ngu9PGEmtTn0mTLV311I1CogvNyHtdGUllCmvFCgi2m41BC9pgrFf4RYiHak3\nvZjtsjBydFMfaChyH1T1t7IqvzUyumYmKNGs6XV8mN9fjxMZnjukeTNctSCX\ndyipcs129w64txBZUWBzSvhZviMlep00A+suQWGMKP3qI/3c3rYr7VJdOwvT\nL/sWw/r/sRp4TdtQ8jtrwcBr/v3rk2IXGm8Zf3svy3U6YD+mgpnvXYrtCj+T\njXbgYAxM2UchoxzYDtQA77IN/7CKZU9oSfVqpaw7azAgKTRjINjKhqTmVErJ\nsVpLpobZr6ONny8Cd/wjgvKBAgDwoPtf/BsZtExrKOtZVIzH+j84rmdHB97O\nUJT12LRhohx25juLbf+uusvhwvbWrmJPjvBNJiAJGwyhN6L8E81wpCEZsjCJ\navx/yDKaytQ2gx2XuuKLB3EFPIw6P6x1rKE0koekDSlLWH4+phvAYP4BX+yk\n0Afs\r\n=u6Mk\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.0":{"name":"socket.io-client","version":"3.1.0","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~4.1.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-T4qPOL80KnoBwkdR70zMpiR6aH6zv3ZqLNriofHqsO9wvQllNTOez0mpV4GdVqo1Y55Z+h8YOlBo7c8pOxDlHw==","shasum":"da3902c80a02a16cf57769c5e3f9d4cb278b6e56","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.0.tgz","fileCount":21,"unpackedSize":941156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAOz6CRA9TVsSAnZWagAAf88QAInh8MIODmYWIuJvH8KS\nxavYJyij8Lbhhuq+eQm37n7YVnq90Z7TDpNJaNggZJogvPi+ardrNum9IniU\nl6KzKSEXUiVOXH1HFlGMgfi/e6n7ieO1rMB3ZVXBVwD2DyMmpoHJ7FrnFS3H\nFoalD+Oqv94x2UqA5mtp1xxdZcQQnOX1o7FxIe9+BRWqi55qP9i9/crirUas\nu4YGaWhFErJw8mdh43fTCLI7EO2TGGojUy25sUZAVjOaRKa2JWkkeIKhk2UK\nDvs+FN3VzWo+1W8S9qi9BTiHeFJ4+Zpmfa3UgYFrwuXJJu6upReVAxuxO8L1\nIm5lLEG/FXl6vv0b2c4xr6jJC2vhdEoxvYd/OBcxLv8NLQptq+cHOOic+x+4\nyRsvd/VTKmJvGY0ohB1MHOw4mdoEuxsklPXWNoNcBeMycQSFzNJFU24uiw5Z\nymMbmF/QkKgDG2wTfcdoaCzGxSDtPOCUZvg8aXyLMLtFQbAOkAlTaRHlJxzr\nMj8k9Ta+EMkm4m/qM2f5wRNVDsN5/NJns58b/8uVdrD+7yetbV9ysC98DxWe\nzVkRgkRDcK+p/FiayBAYGjActgu2O8XeTd2mfNJXDO2PfF4UAwDiZtPYy41I\nYLzMyxBALaGnk4Rklikon84/adTb+DiAfPYzLKY+vzlni3oLbqXx618o5oFs\ngKrc\r\n=4zLz\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.1":{"name":"socket.io-client","version":"3.1.1","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~4.1.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-BLgIuCjI7Sf3mDHunKddX9zKR/pbkP7IACM3sJS3jha+zJ6/pGKRV6Fz5XSBHCfUs9YzT8kYIqNwOOuFNLtnYA==","shasum":"43dfc3feddbb675b274a724f685d6b6af319b3e3","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.1.tgz","fileCount":21,"unpackedSize":926854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGxeZCRA9TVsSAnZWagAAVXkP/imXpLyiBLlt3AY+DqDz\n9Hjei+cShwUKATnoc2fNtylE2sl6z4JyKHMIg5MoEw82uqcm2RCW9eNk5m93\nqNWhtixvcT8Xp1KPMEUrQ8HS1pFROiL08N6FWt1v2PaOwmzw8abLwOkJ62Ms\nYjDMW6eXibIsSoG1cDsyTihyU+tByyvK6g8fcAu6KLnaEj1p9uINX6OTlBQn\nQ/cNu989vB3SWSpv79yR65WdoYztR4Fcjui68Iqp2PzDU0IEycpeKN5zZH+V\nPCG+WzO5YnyPQpIyHMolVRNyf7fTwETn7XwkDb5AYt0aWdkbneyaFbfnCDt3\nEDSfdD2J7DcwOILWsUiAmtHHcYe27sPyDf2Ue/rakDkiFf3duGEyLTFZWy67\nNzYssZ4RRBKjWAbRWGym3LhpxJ9QdgdOaYbOS7/KFvPl4YylvsIeN0cngoDR\nS5wFTA1Z7IweEyRw6iFmevXJYd6cC9WxpFuAs4iRDQHKiShc+FSMYzg+Aky0\nMIb0SHi2GUX6zw70V0aFFy1fOdCaV+BhE3gegzRY8Klbj/8ckD3/+fJOSShz\nYgW2WUnFlE7pGZwY2/QXoKHYTyih3mBd+vAYuSjUUDUweTfKLkRqMwCReU4d\nDSKdMGLPCFvqRKQpDRI5L+nauCve6ywXj+64hpkKfzOrZoeqPrjIKvYM1sFn\npxuU\r\n=0gdX\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.2":{"name":"socket.io-client","version":"3.1.2","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~4.1.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-fXhF8plHrd7U14A7K0JPOmZzpmGkLpIS6623DzrBZqYzI/yvlP4fA3LnxwthEVgiHmn2uJ4KjdnQD8A03PuBWQ==","shasum":"77be8c180cef29121970856e8f48e5463631020a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.2.tgz","fileCount":21,"unpackedSize":928487,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgODywCRA9TVsSAnZWagAAtOcP/1+/hncOqYFchIJ7+RJ6\nJCXri0j/T2kwhp7J1e2dDSjxnAh1gfGrJOgBV0MKT8sSm18wxwbUx+7IV8Pi\nmDCa/tgZP6NdSXYu6ap5wPo9noUMkKWymwRzW6dDdZG9dd9C4WSEte0kiqRK\niGgd17583Q/7wwqpv1JcF5RDEIWXBlFkEz6j+rsgJlI3M6vUm+LssZA+GRSg\nCqsPdV+uUsYmBaeYdUAcvcqoIehwfbrXgUZbuCm93O1nkHi0DS1q8dxoGeLB\nzvHZnLQAaE8MtwsQxNs+Za6g9oLjDb5H7nrRMHfbIGtRKCUDTDNIk1JiMRRi\n77ipZW/yhw3frEnedGAmgnhjJ1Gb+LWDVcS8hl/honuMhKiwvXHls/fsk0SA\n8NH19JzHv4rcWHIIEtry8bXp7zGcbcoDk3cIm+9SpbWuVvjjGVxAa/5CaifA\nRKAaXco/jCDJIoF8NF3WY5XcW/MgqKDb7dGj0Gt11yDl3imSVqK/ykQzFGKM\n5JtoBzxeQC1w68Pd5jjQdoDIl4SwzCzkw/uy7OVXN2orGui/eclpCPZu0C6X\nnwbnoJPusxNFYxRqbcfkLb6L8j9QTupgY69alWmXePrWfMT8o5Z3Cu7zmZNq\nNwgcsBmcTlDZ0w2OF3dya1pNMXZv2+71OWyVGIWz8zzeP3Aa8QvdwwlJ2MoQ\ne+4e\r\n=VF6C\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.0":{"name":"socket.io-client","version":"4.0.0","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-27yQxmXJAEYF19Ygyl8FPJ0if0wegpSmkIIbrWJeI7n7ST1JyH8bbD5v3fjjGY5cfCanACJ3dARUAyiVFNrlTQ==","shasum":"643cc25e5b5bbe37be75ecd317156a3335bb495a","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.0.0.tgz","fileCount":23,"unpackedSize":961804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSK0mCRA9TVsSAnZWagAA1IMP/1ljcjGjEy0wpGJnhvMb\nLdCe+XpOl5HYL/tg/UCfrNaEmAy2SZOiQ4H5PdzW9lpMtWTLngk7lXpJXOe1\n2cMY0lr4cVYAEvwz1OU2D3uul9EIRvSBd8vi8iLBYDSMIaNim9fZCzCiSvLp\nuMA54MXHQn/KcVm1wJNiPCHMh8ApA+D4BBhMRoor70KcFsqmN8jzD+mHxfhz\nHqa/TlYTErh55rs+9GT/LwKByRrQrRdTeeSApv9L5WVaGnJR1S0VlKkRFLjm\nWGFXTurA1GJtuRxD6RQ+KYufOHjvbcO1p7sFCNvOakhqCC78lYWmI0MbIxfL\nQplFnLU9h2IBRRdQP3SJvhOgDjfYhPKbcWlBZjSo+qRYchOUXraILiv0lk7m\nKm/xIHdL/JBvjM1203orEcfh+npZu7EmjKf119aIh9d1/0mnOt7xtf65ocYP\np41lZ2dJj8PgJePY8uqv73EpTzMPXLkLWbpjtpKk9vxMEGlU/CMFFA2Uoo6i\noqcBrZNwwdWZab47d/eVu288uLxSxzyWVFU7mZtbhweUMKk9QItYUQSb///y\nYpHlSL1CczUOOZoHHm62RveCIvFSUgutQHvcKhEd6AFJTH28gjnvVgANB0+8\n5UuFGkBkBCqSVl1LjU2ABVMz0I5RnBvZ98sBS7A/wNXRaokKYa4I7GZL97Zy\nYJyN\r\n=sApg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"3.1.3":{"name":"socket.io-client","version":"3.1.3","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~4.1.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==","shasum":"57ddcefea58cfab71f0e94c21124de8e3c5aa3e2","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz","fileCount":21,"unpackedSize":928400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS24eCRA9TVsSAnZWagAAwPcP/RL6eLav3vgFvwFVkVGt\n0IpWVcgDXU+TJpWE+p7VlLew/ZG0TDjWuCJ1uGgdlPJooQeKJSEKTN+3XdWw\nQ5Y/p1qRtvbt6BwxcwntYPX0PTdTEntcfPoe1XtKE/rCtJEoKIARCnKGJuC3\nJkbvQ3aboRaikPGHK31QdxWl80kKpxsRpUCItcBN75oXsXxbe3OLCkC+vW9Z\ncQRYaizDZne5deruPxrN2DPs5duqORXd9mWbhMV4mTHG6z7GTH0ElEEO6MxV\niiYhr1x/rVBG1CaEUQD4DLZxel9H0VGJYmAevzVDF2/yQKRdqYr5sHFMu1bx\n4ts4g9bo0R9d2ALUVh8wS1nnQqw/y4oozGltTyaOhRvRDJZhp7heaoxpmT5G\nViV4Ayx7U+zAhf15PKlLERyLvGKsu6oAJDb76LbY7u2tCoKoZ9/GWX/mgCNv\n5HAtU7ryfaidPFkWXub7yaweXxIDz17ezfhvZtvRm8lu3ranlxc5ifZ4fHRa\nkupz4wSMuHisaZ64nHYfmtC8ytKLA08uUOpd2+AEB4gne3X5VWvJqwG1eyA5\niwc93SCwlgnnCDGFS/Tvkims0TKMrW+1z+lShvOHNvZgQiBi3/k33N0Nzysn\nYDkWE/uHIiyjqlmckpYfLP51ooSnvP0C1wW6XtLvPtIFnHLxK9IZWfV2kyLs\nMvml\r\n=jqxg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.1":{"name":"socket.io-client","version":"4.0.1","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-6AkaEG5zrVuSVW294cH1chioag9i1OqnCYjKwTc3EBGXbnyb98Lw7yMa40ifLjFj3y6fsFKsd0llbUZUCRf3Qw==","shasum":"8f3bf4ce9282dda1741a4ed0f726b412944e012b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.0.1.tgz","fileCount":23,"unpackedSize":963151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZQDJCRA9TVsSAnZWagAAAEAP/RjAREb3Ka9EkSMYl5RP\nnpKhnjJ3y/yGTK9wqKV9qHHz/K4jFizzgZ2dfEThK6ITKoOjguNilWYxvbTT\nJPRoIauJaaknZYK8EIFhl654v1vqLidIkg417ZcFG+mjcDCZ6Tmk3LdCYdFY\nrllb5Fibk1A+mqCkVvskwrTs8ZwQHLMPrPXZPK9O+lRnSMkz/c5qbmzZg9y8\n/K9CwD1AZE2jtU8r6MceWYpptnmH/D3Ni5mfe++hPtUkBSg/kM4GjdfWbHti\nNetmpChgQsQesUwgD3vQELo/XiARd2HDrGvQjBDW0JaS4JX/slBiGUHSyKMN\naTAjQHqwHu48exb24i0PbwFDrUXW1SxgaPt07J0ym0ETA+2zVjCe/8fN7nea\nwsFCFG496UwNVFa6HaKxygYabSft1Fglv5eL2iEXzF1HnbhExFDAFvI4tYqU\n8nszs0do+P7a1UHvjFqw1HmqIjPXDFwKAFr2glTVBGyBi5xLzUR3yRihx2rQ\nPUVEIEU6jD8L6CpxymPwxJzrMioZpV3Iege5gTslT4jsy0s8vi4jTWY5IxiD\nYEqoO7nvHtx8QcGj7Be1D+op8WFIF0KSYB5yFHu7vr8Z0QLQmFiKxe6Y1ILj\nZvUiN7fD3WKrTi4dRgGxXvg22sHs306oqtWF9kQMY+F/Ei8pV/xSfbdxZkEx\n58xZ\r\n=pMlW\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.0.2":{"name":"socket.io-client","version":"4.0.2","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.0.0","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-z6Hw9Cs+cc7BEkSPlDrtHFpAI++xXMklG9iEEyPJdK4WcFcVrhrXcczYVDZmV3GIpFed5hL3LEXhpnmMy8DqDg==","shasum":"bcbfc1a5b075167cbc9180aabebc6f8b3a83f462","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.0.2.tgz","fileCount":23,"unpackedSize":964441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk+HNCRA9TVsSAnZWagAAKtsP/jKY9qOi0iG9tLJGj6s5\nRekJ8H5cNFkQcDZn2rQAjRYklOzBe/zVGW+d9phFKF9IAN3o/tFSVokYLzXw\nBY9BK/znh6RaOSyK/2VynSMEg9wJqly+D0zgoshVjMOuCoQU6+UfEzvQztrV\nramCJzJ/fzVScjrGqTDaZ3De0NB4fooT4uAResFEAhc1urqqQN9dpKKyYlrd\nlo0dlvaED1QuAAZCcg6jdbjouZGbtVqXPIKOnpLS0yu/s7PY4oVR8Xihv9cu\nOptrXIDNr4Hf+/gYsFXA7Z2EDGnawLYyuQ5EfYayE8rnPiO2INfS6v4RnMZd\ntwL+af+R65AQoq57+A8ggCfiwAYe+odLYi3pS3Y3GwpBIY+rL9wQ7cSb36JM\nChtg7S6agE5DQsb5dsev0N2/JcL7tsRtcXmoSEavpSyM3Mctfzg7PiY0Hiup\n677y8LtSPtA5DUi//K5CIXLPXfTW97VoPX5AdrTm7AEtyCTwQTfTWU1EWcO3\n/rOhoW1PUobdsgZXyuasp63zJbBmUBmugOqQUFUy2S5dkaRTY8fF27HgAiGz\n4+zmoUltmkLcy4SDYDlSqNFUv4w4Q+4e/3Za9TbqMe358iFqgIQo5mN2NSVR\nZMaeR/RfWeXsCAB+2ZuK+BJk6Yjqu2aSoOP4kEFSBQhL72YW5qpylY6/sjI5\nu4vx\r\n=oVkb\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.0":{"name":"socket.io-client","version":"4.1.0","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.1.1","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-L0lCCPTb5xz+KQ3Wrq0077XjJwpaYpjagRvqE5Sg9aXWekfrEqPFvICCUWs7pJqPv7QVN09KoaPKPkVOOetmbw==","shasum":"8b13730715e9f2ac2b378a67519b4edc464a01ce","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.0.tgz","fileCount":23,"unpackedSize":962001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmi93CRA9TVsSAnZWagAAPeAP/3ruBh2zxVKRKZ6KXTu3\nA/HBtzvQahilO2mPeOpll12gO7PEmhebQFkn/KcL8/kmVATjgx0luHlj6qSi\nc23Al7OOBZ5902OgMNK05liUGD6lMsEK/BZd2ftWK9VgpWZ9kKyNVXhRdkoq\nb/r0vJA/NeG6jJSX1S4+cKxaQ6ZGlZ8z6EVZaLZmFIZlPtMpXJt0XW4Vs7p8\nlsZJGAti32TPbrTzehnotut16oK+u9Ng/t1wraRd82+B3uB7vgGvPDZZfapX\nbD6/HxAVQL9gTBebEOtVSO6lQ2wBeKSi3yQGCfDP9qcaiupCwYRgopUgWhU3\nmiz9v56+dJwh/E8pJ4agpNthQSW0bwnfPyjSAXdNAZzY7ExVqWX3SLdqc1/s\nthVCtEyY1B5T83m0zs9izEhM/4VJ0nqK1yiE1dSyGzWse2raTx5Plvc0O7rk\nKF1/LfbTOkcIqlzwDcCofLGROJQ3F518BdIfyRsmnQC0EpFeZNfi+FudoTIH\nDrfNCo/KODDHFwg7FpboSzB7Ku0ZAchnd3SuwRsPUqCMp5Q7Q+I5HDavKwwU\n1EJUthD8dp0uvqIaQtyuLRzi205jKG7nDzbYx+dV/aoRNem3VRgugHJFbDbH\nm7HQk43gbhUuQDYpa0PKrVLhtJgmuI0IQYGH7FVBpoq36ScWnHLL2ZVLj0sf\nGCSb\r\n=gwcU\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.1":{"name":"socket.io-client","version":"4.1.1","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.1.1","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-avzRzFZIkmyNxqvhmm5ns0Itq5dgEkesDPB6Tl0Yben47U08MvdFnVXAuFDULQhDXjuYdCb6QUEILYLUKQEuGg==","shasum":"2cdd883fcebd4417fda0f1becc72eea0664ece0b","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.1.tgz","fileCount":23,"unpackedSize":962177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmv1GCRA9TVsSAnZWagAA8JgP/2CCE5uc8H7Bx8ltqtv7\nZKsH82f4pfStUmVSW4zJyuNUrYicGpsPGMixaQdjZMSfe5JFcx7LqCSND38s\n1KFPykerbhSpWUURV8dEtgGDDxzTmq/tLNhtijseEx4xRD5d7cJySEiaGfWs\nXeWfhZT2w+H6kPWjy2vM/BNpIK4aUR1A/qCUiuVu7I4Y02Jg5WvF+jOtKIHx\nVnZN9OPxVjkHQptK2h/PcJsgsIIDXDRvl9WqDfEoPIlScFqZ2rnFFkgYhcHq\nXc01rt3u1jmOMw6K2Lc6Ses3cWHDUD3K1ppn4qbcA8Uiz+1PHFtIrUSMcfnE\n7grc6Ya3fHsKlx49oyguX5Q9uW0DZFX24ktnRoXcXhoILoDTt0IpXyH1zqWI\nGyqpJYfeTaxk9kKsqaiCfZQYpUPEByfxLzvCAOMkbifl8i4llBtb/wkgpJlk\njnZrwAg6NFHFa1nOH8MQh3pmkdo0boCrlsZFB4EL8WPeSgWUMwjp5ldVRAom\nQo4GwgMweRGVfNFVwlnz5zu2e0cvEQUpYlzYklYlNb5eqAknu/PWVEz6oeb4\neRS9prgPRPouAHT5VeQFqs8uyqoBGH6B1x83bK/F12Ofm0Dmltd+um4dvIUH\nTPWh9Q3hwXeXtugPRLAYkZtyQMUZOykYwsyzRg2RhGkkoHKRa4AprgCTT9It\nI27p\r\n=G9sz\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}},"4.1.2":{"name":"socket.io-client","version":"4.1.2","dependencies":{"@types/component-emitter":"^1.2.10","backo2":"~1.0.2","component-emitter":"~1.3.0","debug":"~4.3.1","engine.io-client":"~5.1.1","parseuri":"0.0.6","socket.io-parser":"~4.0.4"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-transform-object-assign":"^7.10.4","@babel/preset-env":"^7.11.5","@types/mocha":"^8.0.3","@types/node":"^14.11.8","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","eslint":"^6.8.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","has-cors":"^1.1.0","istanbul":"^0.4.5","mocha":"^3.3.0","prettier":"^2.1.2","rimraf":"^3.0.2","socket.io":"3.0.0","socket.io-browsers":"^1.0.0","socket.io-msgpack-parser":"^3.0.0","text-blob-builder":"0.0.1","ts-loader":"^8.0.5","ts-node":"^9.0.0","tsd":"^0.14.0","typescript":"^4.0.3","webpack":"^4.44.2","webpack-cli":"^3.3.12","webpack-remove-debug":"^0.1.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"dist":{"integrity":"sha512-RDpWJP4DQT1XeexmeDyDkm0vrFc0+bUsHDKiVGaNISJvJonhQQOMqV9Vwfg0ZpPJ27LCdan7iqTI92FRSOkFWQ==","shasum":"95ad7113318ea01fba0860237b96d71e1b1fd2eb","tarball":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.2.tgz","fileCount":23,"unpackedSize":963041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgotvUCRA9TVsSAnZWagAAbzMP/A2WPvMjHNu7ZNZIYzCQ\nR5v8snRX7xwXQRawgujlFRj0imLIcyG4Lr1ySrSFYysfd9/zGvYJQhR5vxxY\npRNcsdbhDuCl3e8JvmYTp8dkTk1W1f9ajgBakKOjfbJteHg5aL2S/ywNrQEl\nibaCHQ6AqOby0dnVariP9ZiU9C3xXDUlAlDixZvIIveb7uUvTURsvBZqnWiS\ntKx878+gpTis0IBAz9s+Hjnhs4bQXa4sUkI8RkFtWgTBoatGqWV6hDoVryPG\nH9IIPZR9Z92iULgkcZuX/KvdC9EsHHmwHiC0SirbnwJpmyFSlCWgEFTLDTa/\naiTxE1KzjveJUJb/cpupBQz4jZHuAvG8IzqjOoXUsKNj5Ds+A/WQyfObIEN4\nSYNww3klJx8AJ7AOHPHfK26UtmOl4Lvvnu4KkhVAsjgdELu8xXg5j/phYxmY\n9wBAME1JqYlZDpI9HcFuWMwo+4OYig88TDGFCDX2VYQL/m89PG6lsTPaQaVf\nl3XTxnHZIBbZ9YnYwG9KmS8FRtNX/Wu0qEVxirg+ZfK+RGY+Dt6DieLA+2w5\n51tZTSpizBZtY+4pROxHeL2GZJU6mY5cKMy2tFwz3J7KQCWr+5cIUrPmgBeP\nMW5/pnNAa5nwHm/X1foo6PG6P6k6CtlLTekUeWbaDHkUmivMicXmfZ7xh/YQ\nZiJW\r\n=VxAg\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10.0.0"}}},"modified":"2021-05-17T21:10:47.095Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/fa/1e/1abfc2e91b1c6a5481b0bfdee452fadaf00fcaa93ea4229643d1f108eed8e6818ba350006200c87e40a089464aa04ff91207be81d4cea0ebd91c30010c9c b/data_node_red/.npm/_cacache/content-v2/sha512/fa/1e/1abfc2e91b1c6a5481b0bfdee452fadaf00fcaa93ea4229643d1f108eed8e6818ba350006200c87e40a089464aa04ff91207be81d4cea0ebd91c30010c9c new file mode 100644 index 0000000..45bfccd Binary files /dev/null and b/data_node_red/.npm/_cacache/content-v2/sha512/fa/1e/1abfc2e91b1c6a5481b0bfdee452fadaf00fcaa93ea4229643d1f108eed8e6818ba350006200c87e40a089464aa04ff91207be81d4cea0ebd91c30010c9c differ diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/fc/32/c7ee7fb33e6c490150475f1eb732164f7f32f71cdbce19704bf09fa8ba5c8807c642828a0c000a8183c061390424242db03b03aadd663d661e3e25b57ef1 b/data_node_red/.npm/_cacache/content-v2/sha512/fc/32/c7ee7fb33e6c490150475f1eb732164f7f32f71cdbce19704bf09fa8ba5c8807c642828a0c000a8183c061390424242db03b03aadd663d661e3e25b57ef1 new file mode 100644 index 0000000..fbc2878 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/fc/32/c7ee7fb33e6c490150475f1eb732164f7f32f71cdbce19704bf09fa8ba5c8807c642828a0c000a8183c061390424242db03b03aadd663d661e3e25b57ef1 @@ -0,0 +1 @@ +{"name":"on-headers","dist-tags":{"latest":"1.0.2"},"versions":{"0.0.0":{"name":"on-headers","version":"0.0.0","devDependencies":{"mocha":"~1.18.2","supertest":"~0.12.1"},"dist":{"shasum":"ee2817f8344325785cd9c2df2b242bbc17caf4c4","tarball":"https://registry.npmjs.org/on-headers/-/on-headers-0.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.0":{"name":"on-headers","version":"1.0.0","devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4","supertest":"~0.13.0"},"dist":{"shasum":"2c75b5da4375513d0161c6052e7fcbe4953fca5d","tarball":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz"},"engines":{"node":">= 0.8.0"}},"1.0.1":{"name":"on-headers","version":"1.0.1","devDependencies":{"istanbul":"0.3.21","mocha":"2.3.3","supertest":"1.1.0"},"dist":{"shasum":"928f5d0f470d49342651ea6794b0857c100693f7","tarball":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz"},"engines":{"node":">= 0.8"}},"1.0.2":{"name":"on-headers","version":"1.0.2","devDependencies":{"eslint":"5.14.1","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.0.1","supertest":"3.4.2"},"dist":{"integrity":"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==","shasum":"772b0ae6aaa525c399e489adfad90c403eb3c28f","tarball":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","fileCount":5,"unpackedSize":7538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcb3EnCRA9TVsSAnZWagAAJ74P/1Wi5XP0E+17U7xu01zR\nnaF1VUbte8DFEouoT4ZgQH9ope94hmbAOW6QrMq2S0FxuTTzZFuDSyKBeQ2g\n2JrwURxitZGU36AX+WuPlQ5+Zw5pmDXk6UjdsA8DpNTOCE6T0N7mKS1KQFFH\nantgfK6JJSRYN1Pv0PIsLFrANaWo2j+tgu+c0Eir0fBk7dEe3Q82B9oaDpP8\nKuJ6jDLC7pz/qcJIdUErE6OaNknALNF0GaqW9ikJgthgZvNsMcA5jP7V3CVg\nmnO20iDAGuDRmTjPdDOThrLPX4oYF5p+xWO6LqxHr2oO/f+NrIRrlJu9JQeP\nFHhqCbh9LEBy6gcg7U+XgIuaFHO0Ujy0hu/rs39TowjuQOuQW9QR58UphGtY\ncDe4lRvwDf86XW+vT65ps/gSABNm8hO/ShPi2A5rVlxIPv+RSWrC3Ril+8CA\n6znvDPyrbB5MuAQB5CZ1Jq9Z0AJ+Js/iNrKjxEwaht1JWmH9LN2PzCe2Upk9\n/4s1u4FsPvExwRWyCDgUnvM3bcNg/ksz9E+OMs6B63I+ywW2iFnpXDzFVKLA\np2TB/bhfRYlgf0lK6KNy8B3Z+iTaPX9ie5aRimU7wZaml0jlh0kwzPxwJyPz\nSEI4ssy0yxHXw+d9DDBl4OOTycrM+fSIrL/qKkWaS/6foiGc/cMsgt/YYMww\nBpKq\r\n=27fC\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"}}},"modified":"2019-02-22T03:48:57.059Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/content-v2/sha512/fe/92/deb93ea39ec848becdeda09ac8576a1bee21bda63e2ec3098cc706ef57f814e177c1e5a701f96cb382e2cb2d3bf0d23db5e4d6f9258acf30295c1dc6a534 b/data_node_red/.npm/_cacache/content-v2/sha512/fe/92/deb93ea39ec848becdeda09ac8576a1bee21bda63e2ec3098cc706ef57f814e177c1e5a701f96cb382e2cb2d3bf0d23db5e4d6f9258acf30295c1dc6a534 new file mode 100644 index 0000000..33a4300 --- /dev/null +++ b/data_node_red/.npm/_cacache/content-v2/sha512/fe/92/deb93ea39ec848becdeda09ac8576a1bee21bda63e2ec3098cc706ef57f814e177c1e5a701f96cb382e2cb2d3bf0d23db5e4d6f9258acf30295c1dc6a534 @@ -0,0 +1 @@ +{"name":"has-cors","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.3":{"name":"has-cors","version":"1.0.3","dependencies":{"global":"https://github.com/component/global/archive/v2.0.1.tar.gz"},"dist":{"shasum":"502acb9b3104dac33dd2630eaf2f888b0baf4cb3","tarball":"https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz"}},"1.1.0":{"name":"has-cors","version":"1.1.0","devDependencies":{"mocha":"^2.0","chai":"^1.10"},"dist":{"shasum":"5e474793f7ea9843d1bb99c23eef49ff126fff39","tarball":"https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz"}}},"modified":"2017-07-23T04:39:26.409Z"} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/00/41/dde164125569987226d27924a2b9c1686fcc489445ef21e4d31606c0538f b/data_node_red/.npm/_cacache/index-v5/00/41/dde164125569987226d27924a2b9c1686fcc489445ef21e4d31606c0538f new file mode 100644 index 0000000..a14b831 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/00/41/dde164125569987226d27924a2b9c1686fcc489445ef21e4d31606c0538f @@ -0,0 +1,2 @@ + +2d25684906c06cfa4a87e0fefc009430c3579942 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseqs","integrity":"sha512-p/VIdu4O/8HhS2GEh+QDUP6HM4GmRsgw4JvdNAk9W+EJ+s/JpPrShqePEm5rtK9U0bjDzjQC0tHdXDjUDVAa/w==","time":1623764916847,"size":2701,"metadata":{"url":"https://registry.npmjs.org/parseqs","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:parseqs"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2701"],"connection":["keep-alive"],"cf-ray":["65fc41c9ba3208fd-EZE"],"accept-ranges":["bytes"],"age":["1080"],"cache-control":["public, max-age=300"],"etag":["\"9bb9103d2b7deec0b14c7887f84be8e7\""],"last-modified":["Sun, 06 Sep 2020 19:07:11 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877216000008fdaca1e000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/00/66/fe330e285d6fa17749a68bb098df9a00f11d586f155ff49d7fa4bff42046 b/data_node_red/.npm/_cacache/index-v5/00/66/fe330e285d6fa17749a68bb098df9a00f11d586f155ff49d7fa4bff42046 new file mode 100644 index 0000000..c899859 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/00/66/fe330e285d6fa17749a68bb098df9a00f11d586f155ff49d7fa4bff42046 @@ -0,0 +1,2 @@ + +db8c21c37a2452f158102e8ca18b5155a5c61c64 {"key":"pacote:range-manifest:https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz:sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914373,"size":1,"metadata":{"id":"jquery@3.6.0","manifest":{"name":"jquery","version":"3.6.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"@babel/core":"7.3.3","@babel/plugin-transform-for-of":"7.2.0","commitplease":"3.2.0","core-js":"2.6.5","eslint-config-jquery":"3.0.0","grunt":"1.3.0","grunt-babel":"8.0.0","grunt-cli":"1.3.2","grunt-compare-size":"0.4.2","grunt-contrib-uglify":"3.4.0","grunt-contrib-watch":"1.1.0","grunt-eslint":"22.0.0","grunt-git-authors":"3.2.0","grunt-jsonlint":"1.1.0","grunt-karma":"4.0.0","grunt-newer":"1.3.0","grunt-npmcopy":"0.2.0","gzip-js":"0.3.2","husky":"1.3.1","insight":"0.10.1","jsdom":"13.2.0","karma":"5.2.3","karma-browserstack-launcher":"1.4.0","karma-chrome-launcher":"2.2.0","karma-firefox-launcher":"1.1.0","karma-ie-launcher":"1.0.0","karma-jsdom-launcher":"8.0.2","karma-qunit":"3.0.0","load-grunt-tasks":"5.1.0","native-promise-only":"0.8.1","promises-aplus-tests":"2.1.2","q":"1.5.1","qunit":"2.9.2","raw-body":"2.3.3","requirejs":"2.3.6","sinon":"2.3.7","sizzle":"2.3.6","strip-json-comments":"2.0.1","testswarm":"1.1.2","uglify-js":"3.4.7"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz","_integrity":"sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==","_shasum":"c72a09f15c1bdce142f49dbf1170bdf8adac2470","_shrinkwrap":null,"_id":"jquery@3.6.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/01/a9/b0d0d67beda769e84926f207549943c0bc17abbf66bc20099aaa1bb51736 b/data_node_red/.npm/_cacache/index-v5/01/a9/b0d0d67beda769e84926f207549943c0bc17abbf66bc20099aaa1bb51736 new file mode 100644 index 0000000..16ff7ae --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/01/a9/b0d0d67beda769e84926f207549943c0bc17abbf66bc20099aaa1bb51736 @@ -0,0 +1,2 @@ + +1e683a481fb64e2c6fac29e184adee6e4651dd70 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz","integrity":"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=","time":1623764913539,"size":4145,"metadata":{"url":"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:bytes@https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["4145"],"connection":["keep-alive"],"cf-ray":["65fc41b51e5008c0-EZE"],"accept-ranges":["bytes"],"age":["1986051"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"f0b3d43685f689977ba2394e42fea873\""],"last-modified":["Sat, 26 May 2018 19:14:05 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876533000008c0c4a72000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/01/e2/c645d614e76972eba55c1868cc2cfa26b105a2396dc627ddec5a4af4d80c b/data_node_red/.npm/_cacache/index-v5/01/e2/c645d614e76972eba55c1868cc2cfa26b105a2396dc627ddec5a4af4d80c new file mode 100644 index 0000000..14eea45 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/01/e2/c645d614e76972eba55c1868cc2cfa26b105a2396dc627ddec5a4af4d80c @@ -0,0 +1,2 @@ + +a57381ed361e96ce0a1324cde06d5fccac4a38d5 {"key":"pacote:range-manifest:https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz:sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914681,"size":1,"metadata":{"id":"escape-html@1.0.3","manifest":{"name":"escape-html","version":"1.0.3","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"benchmark":"1.0.0","beautify-benchmark":"0.2.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","_integrity":"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=","_shasum":"0258eae4d3d0c0974de1c169188ef0051d1d1988","_shrinkwrap":null,"_id":"escape-html@1.0.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/02/bd/1a25f83f0db680d9f974aca74287bbe2b6a9d081349f441251b0588320cc b/data_node_red/.npm/_cacache/index-v5/02/bd/1a25f83f0db680d9f974aca74287bbe2b6a9d081349f441251b0588320cc new file mode 100644 index 0000000..38d8f28 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/02/bd/1a25f83f0db680d9f974aca74287bbe2b6a9d081349f441251b0588320cc @@ -0,0 +1,2 @@ + +27ccdc630ed154d31b1297a71c13285d9d23c113 {"key":"pacote:range-manifest:https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz:sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915105,"size":1,"metadata":{"id":"on-finished@2.3.0","manifest":{"name":"on-finished","version":"2.3.0","engines":{"node":">= 0.8"},"dependencies":{"ee-first":"1.1.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz","_integrity":"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=","_shasum":"20f1336481b083cd75337992a16971aa2d906947","_shrinkwrap":null,"_id":"on-finished@2.3.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/03/8c/28f45eb9b0b97806ef5ea2cad1d125f88cf12a00d84a5819aa0ee970c3f0 b/data_node_red/.npm/_cacache/index-v5/03/8c/28f45eb9b0b97806ef5ea2cad1d125f88cf12a00d84a5819aa0ee970c3f0 new file mode 100644 index 0000000..73dfa83 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/03/8c/28f45eb9b0b97806ef5ea2cad1d125f88cf12a00d84a5819aa0ee970c3f0 @@ -0,0 +1,2 @@ + +0551f2c4b26da97d6407be924453ee1e9fb70146 {"key":"pacote:range-manifest:https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz:sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913570,"size":1,"metadata":{"id":"accepts@1.3.7","manifest":{"name":"accepts","version":"1.3.7","engines":{"node":">= 0.6"},"dependencies":{"mime-types":"~2.1.24","negotiator":"0.6.2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"deep-equal":"1.0.1","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","_integrity":"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","_shasum":"531bc726517a3b2b41f850021c6cc15eaab507cd","_shrinkwrap":null,"_id":"accepts@1.3.7"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/05/5a/a1ff6404dd880440ad07df68a6b6735c735385b4c06bf9526ff50eaefa82 b/data_node_red/.npm/_cacache/index-v5/05/5a/a1ff6404dd880440ad07df68a6b6735c735385b4c06bf9526ff50eaefa82 new file mode 100644 index 0000000..9917a9a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/05/5a/a1ff6404dd880440ad07df68a6b6735c735385b4c06bf9526ff50eaefa82 @@ -0,0 +1,2 @@ + +b7e307c8a0baf771c72abfce68345dbccb975779 {"key":"pacote:version-manifest:https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz:sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917232,"size":1,"metadata":{"id":"has-cors@1.1.0","manifest":{"name":"has-cors","version":"1.1.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"^2.0","chai":"^1.10"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz","_integrity":"sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=","_shasum":"5e474793f7ea9843d1bb99c23eef49ff126fff39","_shrinkwrap":null,"_id":"has-cors@1.1.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/09/87/dce8eddf20eb876131fb32c59b3d808000cd4ffd35d7e66c61f92bc07558 b/data_node_red/.npm/_cacache/index-v5/09/87/dce8eddf20eb876131fb32c59b3d808000cd4ffd35d7e66c61f92bc07558 new file mode 100644 index 0000000..169adc3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/09/87/dce8eddf20eb876131fb32c59b3d808000cd4ffd35d7e66c61f92bc07558 @@ -0,0 +1,2 @@ + +d9332d92a0b9082be327a4287fd166f76c48b8ee {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/blob/-/blob-0.0.5.tgz","integrity":"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==","time":1623764916431,"size":8107,"metadata":{"url":"https://registry.npmjs.org/blob/-/blob-0.0.5.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:blob@https://registry.npmjs.org/blob/-/blob-0.0.5.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["8107"],"connection":["keep-alive"],"cf-ray":["65fc41c73b6a08f5-EZE"],"accept-ranges":["bytes"],"age":["19938736"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0735707358ba7ff5f6cce9fe91b48903\""],"last-modified":["Wed, 31 Oct 2018 19:26:54 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877089000008f59c194000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/09/fb/2407adde9d05bdd552950df201bc4af8db37f56e8a766823f9a3893a2107 b/data_node_red/.npm/_cacache/index-v5/09/fb/2407adde9d05bdd552950df201bc4af8db37f56e8a766823f9a3893a2107 new file mode 100644 index 0000000..4742531 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/09/fb/2407adde9d05bdd552950df201bc4af8db37f56e8a766823f9a3893a2107 @@ -0,0 +1,2 @@ + +6fb9891821631bae3cae3af93dd7dfbaff09f772 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==","time":1623764839223,"size":1654,"metadata":{"url":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:process-nextick-args@https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["1654"],"connection":["keep-alive"],"cf-ray":["65fc3fe4afb708d9-EZE"],"accept-ranges":["bytes"],"age":["1986570"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"09e1b13837638717ed3f2aae7bc700db\""],"last-modified":["Wed, 19 Jun 2019 20:34:45 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642eb000008d9c1804000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/0b/5f/2cb3e945aa37e9d23d75b45a808066cd47d30c7227c0a9f6a216e6bdf420 b/data_node_red/.npm/_cacache/index-v5/0b/5f/2cb3e945aa37e9d23d75b45a808066cd47d30c7227c0a9f6a216e6bdf420 new file mode 100644 index 0000000..c8d6b22 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/0b/5f/2cb3e945aa37e9d23d75b45a808066cd47d30c7227c0a9f6a216e6bdf420 @@ -0,0 +1,2 @@ + +81f294f86595cf18d03f34fecb2330a1d35f033f {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz","integrity":"sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=","time":1623764917221,"size":1020,"metadata":{"url":"https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:component-inherit@https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/octet-stream"],"content-length":["1020"],"connection":["keep-alive"],"cf-ray":["65fc41cc298208d9-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"c93e9912bc89c8447c4a09b458b51793\""],"last-modified":["Sat, 26 May 2018 20:24:33 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18773ad000008d9e6be1000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/0c/21/c184201931e739f715c11e7f6a78e08742eda8726894a43f67c99e17978e b/data_node_red/.npm/_cacache/index-v5/0c/21/c184201931e739f715c11e7f6a78e08742eda8726894a43f67c99e17978e new file mode 100644 index 0000000..17062fa --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/0c/21/c184201931e739f715c11e7f6a78e08742eda8726894a43f67c99e17978e @@ -0,0 +1,2 @@ + +97a89a669bdee15009329bbf1072335d2347bdf0 {"key":"pacote:version-manifest:https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz:sha512-8fdkrEgOJ0Cvkgw9a0BhnIFZ/8GAXQSvdLVVkrTgRSWMWJ/FHDwLyqEjeqfXRbFuzIfhT5fd2c7AXAS2vovpFw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1627653652217,"size":1,"metadata":{"id":"node-red-node-ping@0.3.1","manifest":{"name":"node-red-node-ping","version":"0.3.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz","_integrity":"sha512-8fdkrEgOJ0Cvkgw9a0BhnIFZ/8GAXQSvdLVVkrTgRSWMWJ/FHDwLyqEjeqfXRbFuzIfhT5fd2c7AXAS2vovpFw==","_shasum":"dfd016c13a8740807ede61932ebc01364632ecbd","_shrinkwrap":null,"_id":"node-red-node-ping@0.3.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/0e/9a/73f23c388650b7e7cb1305e344d7e59dcd96c86dbc818824a4579027aef5 b/data_node_red/.npm/_cacache/index-v5/0e/9a/73f23c388650b7e7cb1305e344d7e59dcd96c86dbc818824a4579027aef5 new file mode 100644 index 0000000..40066da --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/0e/9a/73f23c388650b7e7cb1305e344d7e59dcd96c86dbc818824a4579027aef5 @@ -0,0 +1,2 @@ + +fddbcc45e3098a2d766b4f3c82152cf421a46f14 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-mysql","integrity":"sha512-g2DaYu41a2xRhoW7lbZG1toXqa52yPbOth1opO8kW3E7oIVbGWWH2xfunCo5w2LeE/EIV/kXPuEY4+eLxahq+A==","time":1623764838176,"size":26735,"metadata":{"url":"https://registry.npmjs.org/node-red-node-mysql","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:node-red-node-mysql"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["26735"],"connection":["keep-alive"],"cf-ray":["65fc3fd71fed08b8-EZE"],"accept-ranges":["bytes"],"cache-control":["public, max-age=300"],"etag":["\"1acd499ea3e490078696d0c733cad8ff\""],"last-modified":["Tue, 18 May 2021 08:11:57 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["EXPIRED"],"cf-request-id":["0ab1863a74000008b8c0075000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/0e/bc/3e860ac298a0e1f2ebc7443600688e9009766fff3e452683186dee25bd1c b/data_node_red/.npm/_cacache/index-v5/0e/bc/3e860ac298a0e1f2ebc7443600688e9009766fff3e452683186dee25bd1c new file mode 100644 index 0000000..d8531f6 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/0e/bc/3e860ac298a0e1f2ebc7443600688e9009766fff3e452683186dee25bd1c @@ -0,0 +1,2 @@ + +e8e35ff42f328d6b391adbf829da26593711052b {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/cookie","integrity":"sha512-QyyYf7ngy/I4X5gdPT16wlY08le80ppBVviiNzZCfjGpp/ZS27XMR61sENbcIKQ8NRNp4gW2itgzP8iEqVddNw==","time":1623764916098,"size":7744,"metadata":{"url":"https://registry.npmjs.org/cookie","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:cookie"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["7744"],"connection":["keep-alive"],"cf-ray":["65fc41c53c6608b8-EZE"],"accept-ranges":["bytes"],"age":["1743"],"cache-control":["public, max-age=300"],"etag":["\"4be72740988c989f2a592254fe770bd0\""],"last-modified":["Wed, 22 Apr 2020 03:24:00 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876f45000008b8fd362000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/13/e9/d8a5ca9982f2e05619f576150cd1389c6f4469e06b226c2100be85eb39a6 b/data_node_red/.npm/_cacache/index-v5/13/e9/d8a5ca9982f2e05619f576150cd1389c6f4469e06b226c2100be85eb39a6 new file mode 100644 index 0000000..fdcb3d6 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/13/e9/d8a5ca9982f2e05619f576150cd1389c6f4469e06b226c2100be85eb39a6 @@ -0,0 +1,2 @@ + +fe8fc0ac119069edc9dc6ca86d9e1a6ca84cd4be {"key":"pacote:range-manifest:https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz:sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917035,"size":1,"metadata":{"id":"engine.io-client@3.5.2","manifest":{"name":"engine.io-client","version":"3.5.2","dependencies":{"component-emitter":"~1.3.0","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.2.0","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","ws":"~7.4.2","xmlhttprequest-ssl":"~1.6.2","yeast":"0.1.2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"babel-core":"^6.24.0","babel-eslint":"4.1.7","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.0","blob":"^0.0.4","concat-stream":"^1.6.0","del":"^2.2.2","derequire":"^2.0.6","engine.io":"3.4.0","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"^0.3.1","express":"4.15.2","gulp":"3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.0","gulp-task-listing":"1.0.1","istanbul":"^0.4.5","mocha":"^3.2.0","webpack":"1.12.12","webpack-stream":"^3.2.0","zuul":"3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz","_integrity":"sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==","_shasum":"0ef473621294004e9ceebe73cef0af9e36f2f5fa","_shrinkwrap":null,"_id":"engine.io-client@3.5.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/13/f2/1d8e1e9a9b0c3aff3e423db7d3cb226c019639062c702349c21268eb144a b/data_node_red/.npm/_cacache/index-v5/13/f2/1d8e1e9a9b0c3aff3e423db7d3cb226c019639062c702349c21268eb144a new file mode 100644 index 0000000..f4abae4 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/13/f2/1d8e1e9a9b0c3aff3e423db7d3cb226c019639062c702349c21268eb144a @@ -0,0 +1,2 @@ + +d5e376ff454cb17f34df8e1f5b923777d6d37c48 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz","integrity":"sha512-oaApDGBXypXIRJ8Tg9uLWGlxBaqDD5FDBdjLK9oFjMuNt7LQqsnQZLeNc8zHIu84PelLdOWnDLD1XYUd7h8xwg==","time":1623764912688,"size":1221242,"metadata":{"url":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:node-red-dashboard@https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/octet-stream"],"content-length":["1221242"],"connection":["keep-alive"],"cf-ray":["65fc41ae389408c0-EZE"],"accept-ranges":["bytes"],"age":["216474"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"7cb543ce2f3158958e2aee77b6b50161\""],"last-modified":["Sat, 12 Jun 2021 15:27:38 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18760f4000008c004af2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/14/5f/6e2956b950b124b9bf3d0e3b14a8ffb59cd858fd75ac433405cc316cc14f b/data_node_red/.npm/_cacache/index-v5/14/5f/6e2956b950b124b9bf3d0e3b14a8ffb59cd858fd75ac433405cc316cc14f new file mode 100644 index 0000000..2bad03d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/14/5f/6e2956b950b124b9bf3d0e3b14a8ffb59cd858fd75ac433405cc316cc14f @@ -0,0 +1,2 @@ + +0097e9cd8c330dba40947a5bb2cf1020944aafda {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime","integrity":"sha512-NLPtbk9wWBtKLSlw2u9qxi1uIKWx2wAGMjJ/QuDhufufQhG24of/EP8ioNuVxfeOIGEHMM1tInARJirNn1DXfA==","time":1623764914908,"size":25401,"metadata":{"url":"https://registry.npmjs.org/mime","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:mime"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["25401"],"connection":["keep-alive"],"cf-ray":["65fc41bd7ded08b8-EZE"],"accept-ranges":["bytes"],"age":["3009"],"cache-control":["public, max-age=300"],"etag":["\"e6e84a3c457df37ceeaa3f2546a93060\""],"last-modified":["Wed, 17 Feb 2021 17:59:03 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a67000008b89cba2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/16/8a/16de4427109597311a8f6e1becf15d34f1f72d401bb5efb9e839e4f86252 b/data_node_red/.npm/_cacache/index-v5/16/8a/16de4427109597311a8f6e1becf15d34f1f72d401bb5efb9e839e4f86252 new file mode 100644 index 0000000..2df16b3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/16/8a/16de4427109597311a8f6e1becf15d34f1f72d401bb5efb9e839e4f86252 @@ -0,0 +1,2 @@ + +82c5ee1184fd4ec2e841ee2b8cb85e62d63f1064 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/has-binary2","integrity":"sha512-90WeBxJ6LW9bq9PfRo/G6xivrNaoq9gcCNEzWfWkzG+eqreQoURTV9qGEDwt2ZA/3OwZC9YVXPOGWN0eFI2piw==","time":1623764915656,"size":3711,"metadata":{"url":"https://registry.npmjs.org/has-binary2","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:has-binary2"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3711"],"connection":["keep-alive"],"cf-ray":["65fc41c24bf108d9-EZE"],"accept-ranges":["bytes"],"age":["1077"],"cache-control":["public, max-age=300"],"etag":["\"945ac77894d7e1528dbf767ba0fc957f\""],"last-modified":["Thu, 16 Apr 2020 14:59:46 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d6e000008d9c5995000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/16/a1/68403287b2e82b7a7e50338730239119b4728d7412a66cab615202e9ecb6 b/data_node_red/.npm/_cacache/index-v5/16/a1/68403287b2e82b7a7e50338730239119b4728d7412a66cab615202e9ecb6 new file mode 100644 index 0000000..494f4a5 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/16/a1/68403287b2e82b7a7e50338730239119b4728d7412a66cab615202e9ecb6 @@ -0,0 +1,2 @@ + +adfb2099aaab88146d00e99f0e91a3d7b9f288e0 {"key":"pacote:range-manifest:https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz:sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914590,"size":1,"metadata":{"id":"encodeurl@1.0.2","manifest":{"name":"encodeurl","version":"1.0.2","engines":{"node":">= 0.8"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.8.0","eslint-plugin-node":"5.2.1","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz","_integrity":"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=","_shasum":"ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59","_shrinkwrap":null,"_id":"encodeurl@1.0.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/16/f2/05200b79f3434382bb8fb4b34d7e469400999552c9cf63fe2568dc6f3ffa b/data_node_red/.npm/_cacache/index-v5/16/f2/05200b79f3434382bb8fb4b34d7e469400999552c9cf63fe2568dc6f3ffa new file mode 100644 index 0000000..72c2bff --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/16/f2/05200b79f3434382bb8fb4b34d7e469400999552c9cf63fe2568dc6f3ffa @@ -0,0 +1,2 @@ + +d23424b829ef287b37ccd4761014770c0e94ba46 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz","integrity":"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=","time":1623764914572,"size":3260,"metadata":{"url":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:encodeurl@https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["3260"],"connection":["keep-alive"],"cf-ray":["65fc41bbcff508d9-EZE"],"accept-ranges":["bytes"],"age":["1986104"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"150b36de9deff219af051490b05dc211\""],"last-modified":["Sat, 26 May 2018 23:32:17 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187695c000008d91c2e2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/18/ba/47333a62e13e2de70e6916efb4b16f74e50b214928aa55c1fa3397ede71a b/data_node_red/.npm/_cacache/index-v5/18/ba/47333a62e13e2de70e6916efb4b16f74e50b214928aa55c1fa3397ede71a new file mode 100644 index 0000000..04799db --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/18/ba/47333a62e13e2de70e6916efb4b16f74e50b214928aa55c1fa3397ede71a @@ -0,0 +1,2 @@ + +83f8dc51f308cacd305c37cb95b7ba4528d8495b {"key":"pacote:version-manifest:https://registry.npmjs.org/debug/-/debug-2.6.9.tgz:sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913569,"size":1,"metadata":{"id":"debug@2.6.9","manifest":{"name":"debug","version":"2.6.9","dependencies":{"ms":"2.0.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"browserify":"9.0.3","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","_integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","_shasum":"5d128515df134ff327e90a4c93f4e077a536341f","_shrinkwrap":null,"_id":"debug@2.6.9"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/18/ef/78d3f128164221e4e4208bf4396e8171ae8bdb4ccb3582ed65c965330026 b/data_node_red/.npm/_cacache/index-v5/18/ef/78d3f128164221e4e4208bf4396e8171ae8bdb4ccb3582ed65c965330026 new file mode 100644 index 0000000..217f311 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/18/ef/78d3f128164221e4e4208bf4396e8171ae8bdb4ccb3582ed65c965330026 @@ -0,0 +1,2 @@ + +b31c19213f73edba455a4f6d4db9fecce0a8fe96 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io-client","integrity":"sha512-ZGGKuy3uI+BR3lV2PRqH8Oe36XootEkTT6IfwESOQTb9jU+yppNGGRryLl9+UqwFilPuKoTOE+cg5nEevpkX0g==","time":1623764916844,"size":133431,"metadata":{"url":"https://registry.npmjs.org/engine.io-client","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:engine.io-client"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["133431"],"connection":["keep-alive"],"cf-ray":["65fc41c9ba6008d9-EZE"],"accept-ranges":["bytes"],"age":["3141"],"cache-control":["public, max-age=300"],"etag":["\"c91dadd0d18ac1dad37a55a72d42fd34\""],"last-modified":["Tue, 11 May 2021 06:34:56 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877216000008d91c3cb000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1a/11/d87281141c1a2c7facdd3777b285d064368da9e6797e8fde5cac24270bab b/data_node_red/.npm/_cacache/index-v5/1a/11/d87281141c1a2c7facdd3777b285d064368da9e6797e8fde5cac24270bab new file mode 100644 index 0000000..9000a6e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1a/11/d87281141c1a2c7facdd3777b285d064368da9e6797e8fde5cac24270bab @@ -0,0 +1,2 @@ + +70b4dfcaaf426270a336d2492a363d5446cbe236 {"key":"pacote:range-manifest:https://registry.npmjs.org/etag/-/etag-1.8.1.tgz:sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915063,"size":1,"metadata":{"id":"etag@1.8.1","manifest":{"name":"etag","version":"1.8.1","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5","safe-buffer":"5.1.1","seedrandom":"2.4.3"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","_integrity":"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=","_shasum":"41ae2eeb65efa62268aebfea83ac7d79299b0887","_shrinkwrap":null,"_id":"etag@1.8.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1a/8e/6c62cacdbe7d25c439d4efa360bd44e0b982dc0ffc01b7af358154350149 b/data_node_red/.npm/_cacache/index-v5/1a/8e/6c62cacdbe7d25c439d4efa360bd44e0b982dc0ffc01b7af358154350149 new file mode 100644 index 0000000..a771202 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1a/8e/6c62cacdbe7d25c439d4efa360bd44e0b982dc0ffc01b7af358154350149 @@ -0,0 +1,2 @@ + +d20f5918c92e5e388068ee810e2b5d73c1551c8d {"key":"pacote:version-manifest:https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz:sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916187,"size":1,"metadata":{"id":"base64id@2.0.0","manifest":{"name":"base64id","version":"2.0.0","engines":{"node":"^4.5.0 || >= 5.9"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz","_integrity":"sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==","_shasum":"2770ac6bc47d312af97a8bf9a634342e0cd25cb6","_shrinkwrap":null,"_id":"base64id@2.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1a/fc/12b20d392978484a9916582b19a5077077c16e3554636a3085f63f59e51b b/data_node_red/.npm/_cacache/index-v5/1a/fc/12b20d392978484a9916582b19a5077077c16e3554636a3085f63f59e51b new file mode 100644 index 0000000..041bb11 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1a/fc/12b20d392978484a9916582b19a5077077c16e3554636a3085f63f59e51b @@ -0,0 +1,2 @@ + +c112f39af8ac4b919b20af03da949a776e3c51f2 {"key":"pacote:range-manifest:https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz:sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915837,"size":1,"metadata":{"id":"has-binary2@1.0.3","manifest":{"name":"has-binary2","version":"1.0.3","dependencies":{"isarray":"2.0.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"better-assert":"^1.0.2","mocha":"^3.2.0","semistandard":"^9.2.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz","_integrity":"sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==","_shasum":"7776ac627f3ea77250cfc332dab7ddf5e4f5d11d","_shrinkwrap":null,"_id":"has-binary2@1.0.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1d/1f/88b0a149279a8fbcd7de14e7dd584b3ac509cb8477d7b4f3f7d91321cd92 b/data_node_red/.npm/_cacache/index-v5/1d/1f/88b0a149279a8fbcd7de14e7dd584b3ac509cb8477d7b4f3f7d91321cd92 new file mode 100644 index 0000000..c5df0b0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1d/1f/88b0a149279a8fbcd7de14e7dd584b3ac509cb8477d7b4f3f7d91321cd92 @@ -0,0 +1,2 @@ + +e0a8e5ba571742028be25b870360c32ae2dd59ab {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","integrity":"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","time":1623764838930,"size":25689,"metadata":{"url":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:readable-stream@https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["25689"],"connection":["keep-alive"],"cf-ray":["65fc3fe2ba2608d9-EZE"],"accept-ranges":["bytes"],"age":["1986570"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"f060c259b513e887f551d073950f12f9\""],"last-modified":["Sun, 05 Jan 2020 17:13:42 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18641b7000008d934ba5000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1d/52/73f9528f85d52104b7edd5ae5aff0bb404388e9cc6e89afcbd417ff2ee9f b/data_node_red/.npm/_cacache/index-v5/1d/52/73f9528f85d52104b7edd5ae5aff0bb404388e9cc6e89afcbd417ff2ee9f new file mode 100644 index 0000000..7842f3e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1d/52/73f9528f85d52104b7edd5ae5aff0bb404388e9cc6e89afcbd417ff2ee9f @@ -0,0 +1,2 @@ + +70a1772fff59407157066067038032a581aacd41 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz","integrity":"sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==","time":1623764917006,"size":46204,"metadata":{"url":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:engine.io-client@https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["46204"],"connection":["keep-alive"],"cf-ray":["65fc41caba0008c0-EZE"],"accept-ranges":["bytes"],"age":["909042"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0dbbc6c8a1e162f0eb08db83d6c6d5f2\""],"last-modified":["Wed, 05 May 2021 20:31:49 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772b8000008c0dd8d9000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1d/66/4c69aba00431d506e9b53306eba6929ed6581502d7e8c77cb340635745a1 b/data_node_red/.npm/_cacache/index-v5/1d/66/4c69aba00431d506e9b53306eba6929ed6581502d7e8c77cb340635745a1 new file mode 100644 index 0000000..b594797 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1d/66/4c69aba00431d506e9b53306eba6929ed6581502d7e8c77cb340635745a1 @@ -0,0 +1,2 @@ + +29217162261a03ede785a78f7042b1d66766cee8 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==","time":1623764838928,"size":9822,"metadata":{"url":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:safe-buffer@https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["9822"],"connection":["keep-alive"],"cf-ray":["65fc3fe2cc3208b8-EZE"],"accept-ranges":["bytes"],"age":["1987080"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"dc7142b470e0957c5c34098b6fced0ab\""],"last-modified":["Sun, 27 May 2018 16:29:17 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18641b9000008b8a0302000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/1f/88/f3abfc802250c4e711bc4ff41cd412a90e8cc672862084c2b6b37e95e349 b/data_node_red/.npm/_cacache/index-v5/1f/88/f3abfc802250c4e711bc4ff41cd412a90e8cc672862084c2b6b37e95e349 new file mode 100644 index 0000000..c013dab --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/1f/88/f3abfc802250c4e711bc4ff41cd412a90e8cc672862084c2b6b37e95e349 @@ -0,0 +1,2 @@ + +bb99c0a82f25352a891fd0ffb1bcd1df2d6b90f7 {"key":"pacote:version-manifest:https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz:sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838947,"size":1,"metadata":{"id":"readable-stream@2.3.7","manifest":{"name":"readable-stream","version":"2.3.7","dependencies":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"assert":"^1.4.0","babel-polyfill":"^6.9.1","buffer":"^4.9.0","lolex":"^2.3.2","nyc":"^6.4.0","tap":"^0.7.0","tape":"^4.8.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","_integrity":"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","_shasum":"1eca1cf711aef814c04f62252a36a62f6cb23b57","_shrinkwrap":null,"_id":"readable-stream@2.3.7"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/20/95/99e8078ca5efa2cb200e981c5ae7b564ecf334aa492611d8a195a4172b5d b/data_node_red/.npm/_cacache/index-v5/20/95/99e8078ca5efa2cb200e981c5ae7b564ecf334aa492611d8a195a4172b5d new file mode 100644 index 0000000..07291b0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/20/95/99e8078ca5efa2cb200e981c5ae7b564ecf334aa492611d8a195a4172b5d @@ -0,0 +1,2 @@ + +9e7b16bc5cbd3aa801564c0de9b6e8798ad51c5d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz","integrity":"sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==","time":1623764913255,"size":270840,"metadata":{"url":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:gridstack@https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["270840"],"connection":["keep-alive"],"cf-ray":["65fc41b2ee7f08f5-EZE"],"accept-ranges":["bytes"],"age":["670128"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"07874c0c5571eadf0972725da4bf0a9e\""],"last-modified":["Mon, 17 Feb 2020 15:20:59 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18763d5000008f5ad88d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/21/11/c5701e96f87e1e4fa9fc2ea48dec6667c522df85f7be77bbb7caaeb415ba b/data_node_red/.npm/_cacache/index-v5/21/11/c5701e96f87e1e4fa9fc2ea48dec6667c522df85f7be77bbb7caaeb415ba new file mode 100644 index 0000000..c9071e4 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/21/11/c5701e96f87e1e4fa9fc2ea48dec6667c522df85f7be77bbb7caaeb415ba @@ -0,0 +1,2 @@ + +a03acd823be598f1426b87e533b1e15ff684d949 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io","integrity":"sha512-mxvJ1TXe66VJs2Si5rdTElger3dcSgMLhg3/v9KHcwpCdKz7R9w0/q36QkeiSapgWX9DJzrmnoXAApANz+IjPQ==","time":1623764913094,"size":88091,"metadata":{"url":"https://registry.npmjs.org/socket.io","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:socket.io"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["88091"],"connection":["keep-alive"],"cf-ray":["65fc41b21cd008b8-EZE"],"accept-ranges":["bytes"],"age":["754"],"cache-control":["public, max-age=300"],"etag":["\"51fbbf6e9d04537b093567b876f11581\""],"last-modified":["Mon, 17 May 2021 21:18:57 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876353000008b80a383000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/21/5c/43bc4bbdabf8ae0454ee7075000f4ba27acf124106cdb71a445723bbc8c9 b/data_node_red/.npm/_cacache/index-v5/21/5c/43bc4bbdabf8ae0454ee7075000f4ba27acf124106cdb71a445723bbc8c9 new file mode 100644 index 0000000..5abf8db --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/21/5c/43bc4bbdabf8ae0454ee7075000f4ba27acf124106cdb71a445723bbc8c9 @@ -0,0 +1,2 @@ + +3b63d1734c639e22848077a0a543c42228768632 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=","time":1623764839236,"size":2021,"metadata":{"url":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:isarray@https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["2021"],"connection":["keep-alive"],"cf-ray":["65fc3fe4ab8f08c0-EZE"],"accept-ranges":["bytes"],"age":["1986570"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"c24471c617803171eed93b3516624c97\""],"last-modified":["Sun, 27 May 2018 05:00:15 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642f1000008c0bf073000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/21/68/568d54ce607f71f7b0bc50cf5d081ee4b63facd653e39a6eac12a76ddf1a b/data_node_red/.npm/_cacache/index-v5/21/68/568d54ce607f71f7b0bc50cf5d081ee4b63facd653e39a6eac12a76ddf1a new file mode 100644 index 0000000..594255d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/21/68/568d54ce607f71f7b0bc50cf5d081ee4b63facd653e39a6eac12a76ddf1a @@ -0,0 +1,2 @@ + +ae5ea0c0aa3a4fdbbeb01c4e60b6f64d678c5e26 {"key":"pacote:version-manifest:https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz:sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917035,"size":1,"metadata":{"id":"parseuri@0.0.6","manifest":{"name":"parseuri","version":"0.0.6","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"better-assert":"~1.0.0","mocha":"1.17.1","expect.js":"^0.3.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz","_integrity":"sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==","_shasum":"e1496e829e3ac2ff47f39a4dd044b32823c4a25a","_shrinkwrap":null,"_id":"parseuri@0.0.6"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/21/a7/bd8af8e4938b9fee217abddb09ce52db330434e323c828aeabe5bd909ae7 b/data_node_red/.npm/_cacache/index-v5/21/a7/bd8af8e4938b9fee217abddb09ce52db330434e323c828aeabe5bd909ae7 new file mode 100644 index 0000000..a87472b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/21/a7/bd8af8e4938b9fee217abddb09ce52db330434e323c828aeabe5bd909ae7 @@ -0,0 +1,2 @@ + +e313a234b52aad26f7d98a2b3105e2ae79325768 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","time":1623764915995,"size":2967,"metadata":{"url":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:ms@https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["2967"],"connection":["keep-alive"],"cf-ray":["65fc41c49de508b4-EZE"],"accept-ranges":["bytes"],"age":["1987576"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"a50e4bf82f754914316bfca3dfbcf352\""],"last-modified":["Tue, 08 Dec 2020 13:54:40 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876ee1000008b4cb9a6000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/22/7d/52a6c0870e5f4ba745b186ebdd55e711d926ca5de29f941823ee95f9d7a8 b/data_node_red/.npm/_cacache/index-v5/22/7d/52a6c0870e5f4ba745b186ebdd55e711d926ca5de29f941823ee95f9d7a8 new file mode 100644 index 0000000..008be11 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/22/7d/52a6c0870e5f4ba745b186ebdd55e711d926ca5de29f941823ee95f9d7a8 @@ -0,0 +1,2 @@ + +6069186ffca219e7d41daa4cc5710e306c065df0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-bind","integrity":"sha512-B7DqtmNVeCnko1yuCXLr2Y2kQEshVW892m7ply35sQFaYeWwLCHP5pJSrywRNH4MyhDMpB+15QvQyLGpDFg7YA==","time":1623764916849,"size":346,"metadata":{"url":"https://registry.npmjs.org/component-bind","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:component-bind"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["346"],"connection":["keep-alive"],"cf-ray":["65fc41c9ba4d08d9-EZE"],"accept-ranges":["bytes"],"age":["1079"],"cache-control":["public, max-age=300"],"etag":["\"3ed162ee4f2d3b37bf985177aec138e8\""],"last-modified":["Fri, 14 Feb 2020 07:56:24 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877211000008d9c5a0d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/23/35/b5293107f85fe1d5bd5ff27d1cf477088cd290b45600128d794bfb023461 b/data_node_red/.npm/_cacache/index-v5/23/35/b5293107f85fe1d5bd5ff27d1cf477088cd290b45600128d794bfb023461 new file mode 100644 index 0000000..907adba --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/23/35/b5293107f85fe1d5bd5ff27d1cf477088cd290b45600128d794bfb023461 @@ -0,0 +1,2 @@ + +ca8e5a59ba703ae6736c81e3fbaee5d5f093365a {"key":"pacote:range-manifest:https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz:sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839343,"size":1,"metadata":{"id":"string_decoder@1.1.1","manifest":{"name":"string_decoder","version":"1.1.1","dependencies":{"safe-buffer":"~5.1.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"babel-polyfill":"^6.23.0","core-util-is":"^1.0.2","inherits":"^2.0.3","tap":"~0.4.8"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","_integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","_shasum":"9cf1611ba62685d7030ae9e4ba34149c3af03fc8","_shrinkwrap":null,"_id":"string_decoder@1.1.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/23/4d/d3bfdb27386c213833add8ac3cbaf10e7bd44707ed28c90ce465b752f898 b/data_node_red/.npm/_cacache/index-v5/23/4d/d3bfdb27386c213833add8ac3cbaf10e7bd44707ed28c90ce465b752f898 new file mode 100644 index 0000000..941d765 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/23/4d/d3bfdb27386c213833add8ac3cbaf10e7bd44707ed28c90ce465b752f898 @@ -0,0 +1,2 @@ + +543b09bc978c8598f97569805ced3b3f3d541b98 {"key":"pacote:version-manifest:https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz:sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915913,"size":1,"metadata":{"id":"socket.io-client@2.4.0","manifest":{"name":"socket.io-client","version":"2.4.0","dependencies":{"backo2":"1.0.2","component-bind":"1.0.0","component-emitter":"~1.3.0","debug":"~3.1.0","engine.io-client":"~3.5.0","has-binary2":"~1.0.2","indexof":"0.0.1","parseqs":"0.0.6","parseuri":"0.0.6","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","base64-arraybuffer":"^0.1.5","concat-stream":"^1.6.0","derequire":"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1","gulp":"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","has-cors":"^1.1.0","imports-loader":"^0.7.1","istanbul":"^0.4.5","mocha":"^3.3.0","socket.io":"2.3.0","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0","zuul":"~3.11.1","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz","_integrity":"sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==","_shasum":"aafb5d594a3c55a34355562fc8aea22ed9119a35","_shrinkwrap":null,"_id":"socket.io-client@2.4.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/23/f1/2f144eecd2cb130b6a46d528adddd07b4288f3aea88bfee2d81c35f5c97f b/data_node_red/.npm/_cacache/index-v5/23/f1/2f144eecd2cb130b6a46d528adddd07b4288f3aea88bfee2d81c35f5c97f new file mode 100644 index 0000000..75c70b5 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/23/f1/2f144eecd2cb130b6a46d528adddd07b4288f3aea88bfee2d81c35f5c97f @@ -0,0 +1,2 @@ + +9c49daac0e14f515560a42e6aa8f006220810d98 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz","integrity":"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=","time":1623764915066,"size":4552,"metadata":{"url":"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:on-finished@https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["4552"],"connection":["keep-alive"],"cf-ray":["65fc41bec93708d9-EZE"],"accept-ranges":["bytes"],"age":["1986106"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"745329d06dcc1e7d0c3bb19c98db92ff\""],"last-modified":["Sun, 27 May 2018 11:10:48 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b3a000008d9c1333000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/25/75/14a12f483b52f549748170634aaa1c97cb07a48963a163c75cf5913ffe7d b/data_node_red/.npm/_cacache/index-v5/25/75/14a12f483b52f549748170634aaa1c97cb07a48963a163c75cf5913ffe7d new file mode 100644 index 0000000..76db92e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/25/75/14a12f483b52f549748170634aaa1c97cb07a48963a163c75cf5913ffe7d @@ -0,0 +1,2 @@ + +16eb168d4d31736d84ee6bba057ede46bff4a85d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz","integrity":"sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==","time":1623764915901,"size":395975,"metadata":{"url":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:socket.io-client@https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["395975"],"connection":["keep-alive"],"cf-ray":["65fc41c37fc108d9-EZE"],"accept-ranges":["bytes"],"age":["1984393"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"7677afde01b490c007d971fac3aaf44c\""],"last-modified":["Mon, 04 Jan 2021 22:41:44 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876e2b000008d9e489f000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/29/3c/8dd49d2ab3172500299bb52e874420d5054e18cbf370a965dd39e9c54c3e b/data_node_red/.npm/_cacache/index-v5/29/3c/8dd49d2ab3172500299bb52e874420d5054e18cbf370a965dd39e9c54c3e new file mode 100644 index 0000000..099e1c5 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/29/3c/8dd49d2ab3172500299bb52e874420d5054e18cbf370a965dd39e9c54c3e @@ -0,0 +1,2 @@ + +b7a3cc9306a1bcc589eb7129e50acbd369586781 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz","integrity":"sha1-AI4G2AlDIMNy28L47XagymyKxBk=","time":1623764917198,"size":3073,"metadata":{"url":"https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:yeast@https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/octet-stream"],"content-length":["3073"],"connection":["keep-alive"],"cf-ray":["65fc41cc499308b8-EZE"],"accept-ranges":["bytes"],"age":["1984410"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"84327f7f32def0537749732ce0c2147d\""],"last-modified":["Sun, 27 May 2018 22:37:37 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18773ac000008b8a51ea000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/29/a0/086f9710571bc90939f43ecfa9ed14ef590cc492dc3f93db31d179e749e7 b/data_node_red/.npm/_cacache/index-v5/29/a0/086f9710571bc90939f43ecfa9ed14ef590cc492dc3f93db31d179e749e7 new file mode 100644 index 0000000..678d95b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/29/a0/086f9710571bc90939f43ecfa9ed14ef590cc492dc3f93db31d179e749e7 @@ -0,0 +1,2 @@ + +0470f041592bd858e8df2cd7b9b2eda848e8ef4f {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz","integrity":"sha1-MasayLEpNjRj41s+u2n038+6eUc=","time":1623764917005,"size":1515,"metadata":{"url":"https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:backo2@https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["1515"],"connection":["keep-alive"],"cf-ray":["65fc41cacd3f08d9-EZE"],"accept-ranges":["bytes"],"age":["19918630"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"e4047b797086efffbb26d1320d6542e5\""],"last-modified":["Sat, 26 May 2018 18:04:49 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772bc000008d9cf387000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/29/f0/2f1edd4373313cbd899bdfb10fa0acdf376a25dd5eabb8cac8170302cdb8 b/data_node_red/.npm/_cacache/index-v5/29/f0/2f1edd4373313cbd899bdfb10fa0acdf376a25dd5eabb8cac8170302cdb8 new file mode 100644 index 0000000..232cf41 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/29/f0/2f1edd4373313cbd899bdfb10fa0acdf376a25dd5eabb8cac8170302cdb8 @@ -0,0 +1,2 @@ + +0b4384648509808dab2a38d31612c5fd68f883a7 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","integrity":"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=","time":1623764915499,"size":2733,"metadata":{"url":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:ee-first@https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["2733"],"connection":["keep-alive"],"cf-ray":["65fc41c1aa1408f9-EZE"],"accept-ranges":["bytes"],"age":["1986105"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"28731200888ff19ce1053590822317b8\""],"last-modified":["Sat, 26 May 2018 22:47:21 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d07000008f913096000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2a/18/5575a102af3cd4dfd110caafbda0a446bb213fe2c87895afdeb82d8c5f36 b/data_node_red/.npm/_cacache/index-v5/2a/18/5575a102af3cd4dfd110caafbda0a446bb213fe2c87895afdeb82d8c5f36 new file mode 100644 index 0000000..4df8f8d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2a/18/5575a102af3cd4dfd110caafbda0a446bb213fe2c87895afdeb82d8c5f36 @@ -0,0 +1,2 @@ + +d806d63d690b167188286a90e359dd497a95c576 {"key":"pacote:range-manifest:https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz:sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913275,"size":1,"metadata":{"id":"socket.io@2.4.1","manifest":{"name":"socket.io","version":"2.4.1","dependencies":{"debug":"~4.1.0","engine.io":"~3.5.0","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.4.0","socket.io-parser":"~3.4.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"expect.js":"0.3.1","mocha":"^3.5.3","nyc":"^11.2.1","superagent":"^3.8.2","supertest":"^3.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz","_integrity":"sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==","_shasum":"95ad861c9a52369d7f1a68acf0d4a1b16da451d2","_shrinkwrap":null,"_id":"socket.io@2.4.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2a/6c/a347b014871f34e93840f753754757e851d163f71b7e572c65095954c52a b/data_node_red/.npm/_cacache/index-v5/2a/6c/a347b014871f34e93840f753754757e851d163f71b7e572c65095954c52a new file mode 100644 index 0000000..fc7f622 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2a/6c/a347b014871f34e93840f753754757e851d163f71b7e572c65095954c52a @@ -0,0 +1,2 @@ + +a1784b8aa5afdd36357683e4d25776a3f63201f7 {"key":"pacote:version-manifest:https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz:sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917234,"size":1,"metadata":{"id":"component-inherit@0.0.3","manifest":{"name":"component-inherit","version":"0.0.3","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz","_integrity":"sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=","_shasum":"645fc4adf58b72b649d5cae65135619db26ff143","_shrinkwrap":null,"_id":"component-inherit@0.0.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2a/75/93d95aa459ff86f38f6bda2beb329310a7d11d75976417f8332452eb784a b/data_node_red/.npm/_cacache/index-v5/2a/75/93d95aa459ff86f38f6bda2beb329310a7d11d75976417f8332452eb784a new file mode 100644 index 0000000..f8efac3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2a/75/93d95aa459ff86f38f6bda2beb329310a7d11d75976417f8332452eb784a @@ -0,0 +1,2 @@ + +73a8856fb09c4c3e52a96e850a19c5f54fef7ea0 {"key":"pacote:range-manifest:https://registry.npmjs.org/ws/-/ws-7.4.6.tgz:sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916222,"size":1,"metadata":{"id":"ws@7.4.6","manifest":{"name":"ws","version":"7.4.6","engines":{"node":">=8.3.0"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}},"devDependencies":{"benchmark":"^2.1.4","bufferutil":"^4.0.1","eslint":"^7.2.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.0.1","mocha":"^7.0.0","nyc":"^15.0.0","prettier":"^2.0.5","utf-8-validate":"^5.0.2"},"bundleDependencies":false,"peerDependencies":{"bufferutil":"^4.0.1","utf-8-validate":"^5.0.2"},"deprecated":false,"_resolved":"https://registry.npmjs.org/ws/-/ws-7.4.6.tgz","_integrity":"sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==","_shasum":"5654ca8ecdeee47c33a9a4bf6d28e2be2980377c","_shrinkwrap":null,"_id":"ws@7.4.6"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2a/7f/d054517822a51ddd85fa4b08ae1bd6fbdf9bc852463e74719884a3a9dae6 b/data_node_red/.npm/_cacache/index-v5/2a/7f/d054517822a51ddd85fa4b08ae1bd6fbdf9bc852463e74719884a3a9dae6 new file mode 100644 index 0000000..178d5e5 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2a/7f/d054517822a51ddd85fa4b08ae1bd6fbdf9bc852463e74719884a3a9dae6 @@ -0,0 +1,2 @@ + +f41377c08f52ab0bde667a3c8204e16b69cb7edb {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==","time":1623764915066,"size":3603,"metadata":{"url":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:range-parser@https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["3603"],"connection":["keep-alive"],"cf-ray":["65fc41becdb808b4-EZE"],"accept-ranges":["bytes"],"age":["1986107"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"03ee4757f00d0b3ddd2e31f1abde6bcd\""],"last-modified":["Sat, 11 May 2019 00:27:41 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b40000008b4fb124000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2c/9b/9593c4c4044297c6354f793a5de6ffac0552b5da591d3fed05425e81ce12 b/data_node_red/.npm/_cacache/index-v5/2c/9b/9593c4c4044297c6354f793a5de6ffac0552b5da591d3fed05425e81ce12 new file mode 100644 index 0000000..68b70bc --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2c/9b/9593c4c4044297c6354f793a5de6ffac0552b5da591d3fed05425e81ce12 @@ -0,0 +1,2 @@ + +55f86af69988c41d2ffb55c5946146ef8fa6f8a4 {"key":"pacote:range-manifest:https://registry.npmjs.org/debug/-/debug-4.1.1.tgz:sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915722,"size":1,"metadata":{"id":"debug@4.1.1","manifest":{"name":"debug","version":"4.1.1","dependencies":{"ms":"^2.1.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/preset-env":"^7.0.0","browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^3.0.2","istanbul":"^0.4.5","karma":"^3.0.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","mocha":"^5.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","xo":"^0.23.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":"Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)","_resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","_integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","_shasum":"3b72260255109c6b589cee050f1d516139664791","_shrinkwrap":null,"_id":"debug@4.1.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2d/e4/92f069bbeda3511ebb7d77bd5c9e972578d8a5e16d7f8e1556a529b60a09 b/data_node_red/.npm/_cacache/index-v5/2d/e4/92f069bbeda3511ebb7d77bd5c9e972578d8a5e16d7f8e1556a529b60a09 new file mode 100644 index 0000000..6f52219 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2d/e4/92f069bbeda3511ebb7d77bd5c9e972578d8a5e16d7f8e1556a529b60a09 @@ -0,0 +1,2 @@ + +030e8a856559bd306c520d2a6ff07b301aa4d064 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz","integrity":"sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==","time":1623764838794,"size":101542,"metadata":{"url":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:bignumber.js@https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["101542"],"connection":["keep-alive"],"cf-ray":["65fc3fe1e99608b8-EZE"],"accept-ranges":["bytes"],"age":["1972687"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"69480162e2b982c4e9b12679eabd1b43\""],"last-modified":["Mon, 27 May 2019 17:20:31 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab186412e000008b8dc951000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/2f/1f/6c2d93ee917150fccca8b98903a82ed71fc8fd4b9d6d0c0597837183582e b/data_node_red/.npm/_cacache/index-v5/2f/1f/6c2d93ee917150fccca8b98903a82ed71fc8fd4b9d6d0c0597837183582e new file mode 100644 index 0000000..fa979e7 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/2f/1f/6c2d93ee917150fccca8b98903a82ed71fc8fd4b9d6d0c0597837183582e @@ -0,0 +1,2 @@ + +268321ec8354c56370aa3812e0da1143d21b939e {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","integrity":"sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","time":1623764913254,"size":8519,"metadata":{"url":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:serve-static@https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["8519"],"connection":["keep-alive"],"cf-ray":["65fc41b2ef3608c0-EZE"],"accept-ranges":["bytes"],"age":["1986106"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1b9c9e0080bc03f6832d78356423d371\""],"last-modified":["Sat, 11 May 2019 03:40:44 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18763d1000008c014399000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/30/8e/bf983c4aa09423d8e58debab8c40d5bab27727d378a9921a8f76f43cf0e1 b/data_node_red/.npm/_cacache/index-v5/30/8e/bf983c4aa09423d8e58debab8c40d5bab27727d378a9921a8f76f43cf0e1 new file mode 100644 index 0000000..1eaa9b5 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/30/8e/bf983c4aa09423d8e58debab8c40d5bab27727d378a9921a8f76f43cf0e1 @@ -0,0 +1,2 @@ + +826f3ef6ae010bc104011c28b0cb1652da768c7a {"key":"pacote:version-manifest:https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz:sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838828,"size":1,"metadata":{"id":"bignumber.js@9.0.0","manifest":{"name":"bignumber.js","version":"9.0.0","engines":{"node":"*"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz","_integrity":"sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==","_shasum":"805880f84a329b5eac6e7cb6f8274b6d82bdf075","_shrinkwrap":null,"_id":"bignumber.js@9.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/31/82/7069e8c9ba7974dadf59bc0d5f8f60b941908a0897157ef5e43360f5a29a b/data_node_red/.npm/_cacache/index-v5/31/82/7069e8c9ba7974dadf59bc0d5f8f60b941908a0897157ef5e43360f5a29a new file mode 100644 index 0000000..020696e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/31/82/7069e8c9ba7974dadf59bc0d5f8f60b941908a0897157ef5e43360f5a29a @@ -0,0 +1,2 @@ + +089e9d63786886a57cc897b8a46ec558e650fe78 {"key":"pacote:version-manifest:https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz:sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917346,"size":1,"metadata":{"id":"component-emitter@1.2.1","manifest":{"name":"component-emitter","version":"1.2.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"*","should":"*"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz","_integrity":"sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=","_shasum":"137918d6d78283f7df7a6b7c5a63e140e69425e6","_shrinkwrap":null,"_id":"component-emitter@1.2.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/33/61/b25f71e94c58e2b76f0a00ec021a6d5ec6bb015dedfbb236ed370841d698 b/data_node_red/.npm/_cacache/index-v5/33/61/b25f71e94c58e2b76f0a00ec021a6d5ec6bb015dedfbb236ed370841d698 new file mode 100644 index 0000000..ad7b82c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/33/61/b25f71e94c58e2b76f0a00ec021a6d5ec6bb015dedfbb236ed370841d698 @@ -0,0 +1,2 @@ + +9c705abcb9fb2000f5f68c30d8350f6d2f262b57 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/negotiator","integrity":"sha512-ERHZsEI3U9jvwfSDd6w3FU4RH1iuF0L7ZAfbVXZ5VfXRI9FpcURXAPzwh79s2CY05GTO/wdYrZVM5PZ4VMpRRQ==","time":1623764913727,"size":7633,"metadata":{"url":"https://registry.npmjs.org/negotiator","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:negotiator"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["7633"],"connection":["keep-alive"],"cf-ray":["65fc41b688d908d9-EZE"],"accept-ranges":["bytes"],"age":["6079"],"cache-control":["public, max-age=300"],"etag":["\"3fb4dc9c7a2009e5b6669c1ed23f45b9\""],"last-modified":["Fri, 14 Feb 2020 23:26:38 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876614000008d9ff3ff000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/35/bb/7ceabd3303229a525ebed08370be6a2a2506591c322b1e7144b8b7fbeb0a b/data_node_red/.npm/_cacache/index-v5/35/bb/7ceabd3303229a525ebed08370be6a2a2506591c322b1e7144b8b7fbeb0a new file mode 100644 index 0000000..f166403 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/35/bb/7ceabd3303229a525ebed08370be6a2a2506591c322b1e7144b8b7fbeb0a @@ -0,0 +1,2 @@ + +ced52d16d121c684269d9ca235ecc185c59d9763 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/to-array","integrity":"sha512-t6IlKCV/1KZ8ke7g030160NQRHJ90BfOjzJE0be03uNU6eJMGnV41RR+Una7msodC24UwjfQjDpwF8544rO94w==","time":1623764916852,"size":1156,"metadata":{"url":"https://registry.npmjs.org/to-array","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:to-array"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1156"],"connection":["keep-alive"],"cf-ray":["65fc41c9bb2c08f5-EZE"],"accept-ranges":["bytes"],"age":["1093"],"cache-control":["public, max-age=300"],"etag":["\"b6b5bde2f57a16276baac9c00d97ece7\""],"last-modified":["Sat, 15 Feb 2020 17:03:38 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187721b000008f5a4395000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/36/30/a3ae08fe998bf960a406e1456b8391cc0e3b551d215adfabf7d5862dbece b/data_node_red/.npm/_cacache/index-v5/36/30/a3ae08fe998bf960a406e1456b8391cc0e3b551d215adfabf7d5862dbece new file mode 100644 index 0000000..03d9f71 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/36/30/a3ae08fe998bf960a406e1456b8391cc0e3b551d215adfabf7d5862dbece @@ -0,0 +1,2 @@ + +0da4bff0ebb169862c5d3d15ef61b3e4c24fbd06 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/backo2","integrity":"sha512-DQ3Vyt0wRzrUNtwStacOi18a8B+S4b03H9bE5iFmb5xE/msU/V4wUYsymwuEOpnIOPlzRDakYMYoOXO0Uxy27Q==","time":1623764916845,"size":529,"metadata":{"url":"https://registry.npmjs.org/backo2","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:backo2"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["529"],"connection":["keep-alive"],"cf-ray":["65fc41c9bd3408b4-EZE"],"accept-ranges":["bytes"],"age":["2879"],"cache-control":["public, max-age=300"],"etag":["\"36a5918a1ebf1d4146a77bb9cc5f6731\""],"last-modified":["Fri, 14 Feb 2020 05:14:53 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877214000008b4e828d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/37/92/e818c7d8b7c82df51a6485bed4155a8bc48774c70d38b41ca1332d530719 b/data_node_red/.npm/_cacache/index-v5/37/92/e818c7d8b7c82df51a6485bed4155a8bc48774c70d38b41ca1332d530719 new file mode 100644 index 0000000..e3fea83 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/37/92/e818c7d8b7c82df51a6485bed4155a8bc48774c70d38b41ca1332d530719 @@ -0,0 +1,2 @@ + +275dd8d022b7380986986a7aa05c70517707211b {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/accepts","integrity":"sha512-Jl42Br6u2Jt2x7lN+gE9VBLKf2P1ApN+gHyS7qXORSLBGeKu9Nz6GT3ut+M17n+PgTNSVpIrEoF1w/Gf7xFXRw==","time":1623764913447,"size":14240,"metadata":{"url":"https://registry.npmjs.org/accepts","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:accepts"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["14240"],"connection":["keep-alive"],"cf-ray":["65fc41b46bcf08b8-EZE"],"accept-ranges":["bytes"],"age":["1740"],"cache-control":["public, max-age=300"],"etag":["\"9d857542a4d388d2d9959c045aaf81af\""],"last-modified":["Fri, 14 Feb 2020 03:07:11 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18764c3000008b89cb00000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/37/b8/e8e59a03056791001695a45e7214666b78b47dfb6b848a4f3cbf022765b2 b/data_node_red/.npm/_cacache/index-v5/37/b8/e8e59a03056791001695a45e7214666b78b47dfb6b848a4f3cbf022765b2 new file mode 100644 index 0000000..978bed2 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/37/b8/e8e59a03056791001695a45e7214666b78b47dfb6b848a4f3cbf022765b2 @@ -0,0 +1,2 @@ + +c3b589ced554604c0b5bc7ef355d2bc3284a506e {"key":"pacote:range-manifest:https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz:sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916924,"size":1,"metadata":{"id":"socket.io-parser@3.3.2","manifest":{"name":"socket.io-parser","version":"3.3.2","dependencies":{"component-emitter":"~1.3.0","debug":"~3.1.0","isarray":"2.0.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz","_integrity":"sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==","_shasum":"ef872009d0adcf704f2fbe830191a14752ad50b6","_shrinkwrap":null,"_id":"socket.io-parser@3.3.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/37/e7/e8ecf05496eb114fa90bf9fb3966c907265c4b58ab19892581c90bcbf6f2 b/data_node_red/.npm/_cacache/index-v5/37/e7/e8ecf05496eb114fa90bf9fb3966c907265c4b58ab19892581c90bcbf6f2 new file mode 100644 index 0000000..06c1d49 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/37/e7/e8ecf05496eb114fa90bf9fb3966c907265c4b58ab19892581c90bcbf6f2 @@ -0,0 +1,2 @@ + +d9a703c02a2b2dfecca1ccc68fb21196257ce38e {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz","integrity":"sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==","time":1623764914366,"size":433592,"metadata":{"url":"https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:jquery@https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["433592"],"connection":["keep-alive"],"cf-ray":["65fc41b9ebd108b8-EZE"],"accept-ranges":["bytes"],"age":["1984698"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"5de9baa892dfc5f6aca79f9578367caf\""],"last-modified":["Tue, 02 Mar 2021 17:12:15 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876836000008b8f7b9e000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/38/c1/a3258dca7a9b5f012aebc722961262e91dd4c7d7170ef10b36e252ace94d b/data_node_red/.npm/_cacache/index-v5/38/c1/a3258dca7a9b5f012aebc722961262e91dd4c7d7170ef10b36e252ace94d new file mode 100644 index 0000000..8369f2b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/38/c1/a3258dca7a9b5f012aebc722961262e91dd4c7d7170ef10b36e252ace94d @@ -0,0 +1,2 @@ + +56bdfa8ef41980e594e0dabecac08fe432263961 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz","integrity":"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=","time":1623764915004,"size":2331,"metadata":{"url":"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:destroy@https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["2331"],"connection":["keep-alive"],"cf-ray":["65fc41be4a0008f5-EZE"],"accept-ranges":["bytes"],"age":["1986103"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"8739ecad471c4e32cdabb7e49a2a7810\""],"last-modified":["Sat, 26 May 2018 22:01:33 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876af0000008f587816000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/3a/50/a3acc089d96804320d14f41700ac8b5201636ffa4c8656c4fbc93ef4d14d b/data_node_red/.npm/_cacache/index-v5/3a/50/a3acc089d96804320d14f41700ac8b5201636ffa4c8656c4fbc93ef4d14d new file mode 100644 index 0000000..6f746c3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/3a/50/a3acc089d96804320d14f41700ac8b5201636ffa4c8656c4fbc93ef4d14d @@ -0,0 +1,2 @@ + +bac8b5eaebcc6d2f0b9be08490bc736f8a62f2f8 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz","integrity":"sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==","time":1623764917251,"size":10134,"metadata":{"url":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:xmlhttprequest-ssl@https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/octet-stream"],"content-length":["10134"],"connection":["keep-alive"],"cf-ray":["65fc41cc9ab308fd-EZE"],"accept-ranges":["bytes"],"age":["2517684"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"90224be50214a37483982671334d13ec\""],"last-modified":["Mon, 17 May 2021 10:03:50 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18773db000008fda6378000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/3b/b7/c2abc932f2e331e26ed9c18045c7296fe0454f1b47950ff09ee14c868f5b b/data_node_red/.npm/_cacache/index-v5/3b/b7/c2abc932f2e331e26ed9c18045c7296fe0454f1b47950ff09ee14c868f5b new file mode 100644 index 0000000..759b734 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/3b/b7/c2abc932f2e331e26ed9c18045c7296fe0454f1b47950ff09ee14c868f5b @@ -0,0 +1,2 @@ + +f5f77085ac4ee1cf9c45011e3f6b2f7ff0e63002 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","time":1623764916849,"size":17183,"metadata":{"url":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:debug@https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["binary/octet-stream"],"content-length":["17183"],"connection":["keep-alive"],"cf-ray":["65fc41c9bbb108e1-EZE"],"accept-ranges":["bytes"],"age":["1986105"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"41a9ea3ea524cb88db57c72ebad75ec6\""],"last-modified":["Tue, 05 Jun 2018 13:50:26 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877217000008e185be8000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/3b/bf/ba514a104fae8dde9700ea815873d7e582c4e62593b2ebb78f117fbb7ff7 b/data_node_red/.npm/_cacache/index-v5/3b/bf/ba514a104fae8dde9700ea815873d7e582c4e62593b2ebb78f117fbb7ff7 new file mode 100644 index 0000000..b6895c6 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/3b/bf/ba514a104fae8dde9700ea815873d7e582c4e62593b2ebb78f117fbb7ff7 @@ -0,0 +1,2 @@ + +57c90864e5e51b45b1d613ce19ec31e612d48041 {"key":"pacote:version-manifest:https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz:sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838946,"size":1,"metadata":{"id":"safe-buffer@5.1.2","manifest":{"name":"safe-buffer","version":"5.1.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"standard":"*","tape":"^4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","_integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==","_shasum":"991ec69d296e0313747d59bdfd2b745c35f8828d","_shrinkwrap":null,"_id":"safe-buffer@5.1.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/3b/c3/37cceb8f4508656ab66f1e33ff6fa27b6a4cc5b3539266ffcf9e6b7c4c81 b/data_node_red/.npm/_cacache/index-v5/3b/c3/37cceb8f4508656ab66f1e33ff6fa27b6a4cc5b3539266ffcf9e6b7c4c81 new file mode 100644 index 0000000..332cc68 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/3b/c3/37cceb8f4508656ab66f1e33ff6fa27b6a4cc5b3539266ffcf9e6b7c4c81 @@ -0,0 +1,2 @@ + +6673ead206c23e26a115965e1e202252c05bfb63 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/jquery","integrity":"sha512-pj6+49THRIJ+DUrIn2APW2rxr0Y6VS/kEB9Hp4UYpzN91N99TDzE2OPTT8hNNVTbwT+nm0AWs5LvK15PBic+8Q==","time":1623764914202,"size":43667,"metadata":{"url":"https://registry.npmjs.org/jquery","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:jquery"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["43667"],"connection":["keep-alive"],"cf-ray":["65fc41b97c7908c0-EZE"],"accept-ranges":["bytes"],"age":["1943"],"cache-control":["public, max-age=300"],"etag":["\"dfe65d280a480fcc7413ff4293e9ee85\""],"last-modified":["Tue, 02 Mar 2021 17:12:19 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18767ed000008c0ea2e9000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/3e/29/efa0ba3be1304a4c786f731b668d3d6526d57957d6fe7fe27ed3309c18b5 b/data_node_red/.npm/_cacache/index-v5/3e/29/efa0ba3be1304a4c786f731b668d3d6526d57957d6fe7fe27ed3309c18b5 new file mode 100644 index 0000000..f0423eb --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/3e/29/efa0ba3be1304a4c786f731b668d3d6526d57957d6fe7fe27ed3309c18b5 @@ -0,0 +1,2 @@ + +7ceb214c3957de27617bbadd72295c01295b0aaf {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/fresh","integrity":"sha512-EM0mqTvPUmub1rbL89gad3fj5R4ss2QH3lDsIJjGJyHgP7YWTOXEYJkDQ6O3RhSbhPtMfRe+JVGPLTe5r7mjlg==","time":1623764914858,"size":3705,"metadata":{"url":"https://registry.npmjs.org/fresh","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:fresh"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3705"],"connection":["keep-alive"],"cf-ray":["65fc41bd6cfa08d9-EZE"],"accept-ranges":["bytes"],"age":["6471"],"cache-control":["public, max-age=300"],"etag":["\"5bec24b60fdaf992040596858ad714d4\""],"last-modified":["Fri, 14 Feb 2020 13:22:37 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a63000008d934a37000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/40/cb/9c7967f3b8ca30bc891a3d867197a739fda2b6820f63e80be2af3b7e87f1 b/data_node_red/.npm/_cacache/index-v5/40/cb/9c7967f3b8ca30bc891a3d867197a739fda2b6820f63e80be2af3b7e87f1 new file mode 100644 index 0000000..007ba7b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/40/cb/9c7967f3b8ca30bc891a3d867197a739fda2b6820f63e80be2af3b7e87f1 @@ -0,0 +1,2 @@ + +df264a5a26fd737681f8527e70e13dfc51742dc4 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/safe-buffer","integrity":"sha512-2fN9+SBhKsusTTtyhFXlOqSUCypYdcZ+sA7ItMe7K8Zqro4fUlOmiMqtRNE9nTk7ARpvW2vP925e4sPuVhNfYw==","time":1623764838795,"size":6437,"metadata":{"url":"https://registry.npmjs.org/safe-buffer","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:safe-buffer"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["6437"],"connection":["keep-alive"],"cf-ray":["65fc3fe1eb6208c0-EZE"],"accept-ranges":["bytes"],"age":["5572"],"cache-control":["public, max-age=300"],"etag":["\"9161dbe788191cd651729aa61ed73525\""],"last-modified":["Sun, 10 May 2020 16:37:34 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864139000008c007077000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/41/7b/12f2f7af7f950c23d4cdb66d81b57e5ffd679a24f66f54f69674376024a5 b/data_node_red/.npm/_cacache/index-v5/41/7b/12f2f7af7f950c23d4cdb66d81b57e5ffd679a24f66f54f69674376024a5 new file mode 100644 index 0000000..4c91e11 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/41/7b/12f2f7af7f950c23d4cdb66d81b57e5ffd679a24f66f54f69674376024a5 @@ -0,0 +1,2 @@ + +96767bfc6c54e2d37cc116165d0ffc55282bd424 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-client","integrity":"sha512-94/hA0B0KmQyA3xCDMHh9I2m8TerYjGXS559Ev+NuHSUE6IZinPq/zW3FmRYT3kphj4GHY9uU/MILlbNf41H0g==","time":1623764915683,"size":111152,"metadata":{"url":"https://registry.npmjs.org/socket.io-client","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:socket.io-client"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["111152"],"connection":["keep-alive"],"cf-ray":["65fc41c24a5208fd-EZE"],"accept-ranges":["bytes"],"age":["3144"],"cache-control":["public, max-age=300"],"etag":["\"07421ce8871689d67d5ad7cfeea99b1d\""],"last-modified":["Mon, 17 May 2021 21:10:48 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d73000008fdd48c8000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/43/98/735319b896d47d32af44b36cf237900cacf6d3f4d2ce3371779d87c9a4e2 b/data_node_red/.npm/_cacache/index-v5/43/98/735319b896d47d32af44b36cf237900cacf6d3f4d2ce3371779d87c9a4e2 new file mode 100644 index 0000000..75a06d3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/43/98/735319b896d47d32af44b36cf237900cacf6d3f4d2ce3371779d87c9a4e2 @@ -0,0 +1,2 @@ + +0a35bbc6110d8f75aba3b8b1336b280d0f14810f {"key":"pacote:version-manifest:https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz:sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917035,"size":1,"metadata":{"id":"parseqs@0.0.6","manifest":{"name":"parseqs","version":"0.0.6","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"1.17.1","better-assert":"~1.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz","_integrity":"sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==","_shasum":"8e4bb5a19d1cdc844a08ac974d34e273afa670d5","_shrinkwrap":null,"_id":"parseqs@0.0.6"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/43/ea/aa8d3182979b4f8a7d4d95c893ff4987bceca1bed58fe9ce54cd44934636 b/data_node_red/.npm/_cacache/index-v5/43/ea/aa8d3182979b4f8a7d4d95c893ff4987bceca1bed58fe9ce54cd44934636 new file mode 100644 index 0000000..f4ebcbf --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/43/ea/aa8d3182979b4f8a7d4d95c893ff4987bceca1bed58fe9ce54cd44934636 @@ -0,0 +1,2 @@ + +5c2ead9a4ee38eb07ddc8d3033596dd4a748c88d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/indexof","integrity":"sha512-ansvLsjTRIGpQAw1HoXK0w8A021x+JonZuLJKFKQ9dO+91ii6E153n3FqluzLiOzkwTv5V0sc0soQ7UfPmrxRA==","time":1623764916847,"size":273,"metadata":{"url":"https://registry.npmjs.org/indexof","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:indexof"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["273"],"connection":["keep-alive"],"cf-ray":["65fc41c9b9db08b8-EZE"],"accept-ranges":["bytes"],"age":["1078"],"cache-control":["public, max-age=300"],"etag":["\"24e82e5d2fd8f8c81b6eca1c4306d66b\""],"last-modified":["Fri, 14 Feb 2020 17:19:05 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877214000008b808040000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/43/ff/efafd6158190a9030d70422c3070dc3aac2a7f5b2aa1d49b4823dc857b3d b/data_node_red/.npm/_cacache/index-v5/43/ff/efafd6158190a9030d70422c3070dc3aac2a7f5b2aa1d49b4823dc857b3d new file mode 100644 index 0000000..dc1ba61 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/43/ff/efafd6158190a9030d70422c3070dc3aac2a7f5b2aa1d49b4823dc857b3d @@ -0,0 +1,2 @@ + +674766e56489e14eabd54ba5a9224dc621e46d1f {"key":"pacote:range-manifest:https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz:sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914588,"size":1,"metadata":{"id":"parseurl@1.3.3","manifest":{"name":"parseurl","version":"1.3.3","engines":{"node":">= 0.8"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.1","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","fast-url-parser":"1.1.3","istanbul":"0.4.5","mocha":"6.1.3"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","_integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==","_shasum":"9da19e7bee8d12dff0513ed5b76957793bc2e8d4","_shrinkwrap":null,"_id":"parseurl@1.3.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/44/7c/7d21c38230dbe2cd221b314cae84e737355717d304bf48501d91f51b9f35 b/data_node_red/.npm/_cacache/index-v5/44/7c/7d21c38230dbe2cd221b314cae84e737355717d304bf48501d91f51b9f35 new file mode 100644 index 0000000..4b53173 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/44/7c/7d21c38230dbe2cd221b314cae84e737355717d304bf48501d91f51b9f35 @@ -0,0 +1,2 @@ + +411e6c8355ebd7d01e8b4db83e2ed4964f63d3f4 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-parser","integrity":"sha512-DeRWZKI0y62VaKoS2NwZNZvXin9FHNneh/KoZ8YF1JjMvjs7IWXWW7xQMdtmORE3nWo7mqvXCcDZEIBehxHUCg==","time":1623764915656,"size":32446,"metadata":{"url":"https://registry.npmjs.org/socket.io-parser","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:socket.io-parser"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["32446"],"connection":["keep-alive"],"cf-ray":["65fc41c24be408d9-EZE"],"accept-ranges":["bytes"],"age":["3952"],"cache-control":["public, max-age=300"],"etag":["\"87fc2317ae7c7aac048b0d21237c0d68\""],"last-modified":["Fri, 15 Jan 2021 00:46:10 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d6a000008d907bd4000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/45/da/b37d20333a56f4c889ba93b726b0687a8046bb81298296d4be8c019c5da6 b/data_node_red/.npm/_cacache/index-v5/45/da/b37d20333a56f4c889ba93b726b0687a8046bb81298296d4be8c019c5da6 new file mode 100644 index 0000000..375c2bd --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/45/da/b37d20333a56f4c889ba93b726b0687a8046bb81298296d4be8c019c5da6 @@ -0,0 +1,2 @@ + +52b2d2ce5c4da47f6f46f4f156326e6d155675ec {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","integrity":"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","time":1623764913539,"size":5400,"metadata":{"url":"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:accepts@https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["5400"],"connection":["keep-alive"],"cf-ray":["65fc41b53e0308b8-EZE"],"accept-ranges":["bytes"],"age":["1986105"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"6372725d8cc12df577f5f717d7609403\""],"last-modified":["Tue, 30 Apr 2019 03:41:06 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876540000008b8f50a6000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/45/fb/b58af0b01ae98743714d8e9d3bcad0edb4bea698e997a24bef2ddbe9e155 b/data_node_red/.npm/_cacache/index-v5/45/fb/b58af0b01ae98743714d8e9d3bcad0edb4bea698e997a24bef2ddbe9e155 new file mode 100644 index 0000000..2cee3cb --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/45/fb/b58af0b01ae98743714d8e9d3bcad0edb4bea698e997a24bef2ddbe9e155 @@ -0,0 +1,2 @@ + +8a25eff8fc3cfc48f248cf9b8ec3320bdc558d96 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/compression","integrity":"sha512-MVk6nyuxUvjBWNUG3C9lNbNPuAEg2DTk1sWC2NciSsnyUDPowgIoVXKOHyXMtJKsIaZ7N0RaLbcb16UVanLTsg==","time":1623764912909,"size":18671,"metadata":{"url":"https://registry.npmjs.org/compression","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:compression"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["18671"],"connection":["keep-alive"],"cf-ray":["65fc41b16a7e08c0-EZE"],"accept-ranges":["bytes"],"age":["6263"],"cache-control":["public, max-age=300"],"etag":["\"85c7486e62452d6f10ebe10521153b53\""],"last-modified":["Fri, 14 Feb 2020 07:58:57 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18762de000008c0d3a9e000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/46/b3/3d15bb50b75b21e94837be0b830f143588e46710a66a4d6e323a4c0bcfb3 b/data_node_red/.npm/_cacache/index-v5/46/b3/3d15bb50b75b21e94837be0b830f143588e46710a66a4d6e323a4c0bcfb3 new file mode 100644 index 0000000..2c70da0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/46/b3/3d15bb50b75b21e94837be0b830f143588e46710a66a4d6e323a4c0bcfb3 @@ -0,0 +1,2 @@ + +c6631685f9bf2d65c757046b33c28e38d41e79e6 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=","time":1623764839239,"size":7016,"metadata":{"url":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:core-util-is@https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["7016"],"connection":["keep-alive"],"cf-ray":["65fc3fe4b85108f5-EZE"],"accept-ranges":["bytes"],"age":["1986570"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"36dbf1e4e5f3cbec553c074cbd5939fd\""],"last-modified":["Sat, 26 May 2018 21:08:01 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642fc000008f57b92d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/47/89/81e153e7564cdd9b4ed14fb54845f4e8e069565a6a906f0f00b24566ca1a b/data_node_red/.npm/_cacache/index-v5/47/89/81e153e7564cdd9b4ed14fb54845f4e8e069565a6a906f0f00b24566ca1a new file mode 100644 index 0000000..62a8014 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/47/89/81e153e7564cdd9b4ed14fb54845f4e8e069565a6a906f0f00b24566ca1a @@ -0,0 +1,2 @@ + +db2b82d38cc615ec7254694720ab3c5bd7b2c909 {"key":"pacote:range-manifest:https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz:sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913273,"size":1,"metadata":{"id":"serve-static@1.14.1","manifest":{"name":"serve-static","version":"1.14.1","engines":{"node":">= 0.8.0"},"dependencies":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.3","send":"0.17.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","safe-buffer":"5.1.2","supertest":"4.0.2"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","_integrity":"sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","_shasum":"666e636dc4f010f7ef29970a88a674320898b2f9","_shrinkwrap":null,"_id":"serve-static@1.14.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/48/63/16e58b2afd943204268c55ba12efa95db50bfa6fba5f4d72d4c2226a81bd b/data_node_red/.npm/_cacache/index-v5/48/63/16e58b2afd943204268c55ba12efa95db50bfa6fba5f4d72d4c2226a81bd new file mode 100644 index 0000000..120c313 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/48/63/16e58b2afd943204268c55ba12efa95db50bfa6fba5f4d72d4c2226a81bd @@ -0,0 +1,2 @@ + +3d173a192413aa802629b8a32a3f7a32e3153d22 {"key":"pacote:version-manifest:https://registry.npmjs.org/mime/-/mime-1.6.0.tgz:sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915189,"size":1,"metadata":{"id":"mime@1.6.0","manifest":{"name":"mime","version":"1.6.0","engines":{"node":">=4"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"github-release-notes":"0.13.1","mime-db":"1.31.0","mime-score":"1.1.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz","_integrity":"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==","_shasum":"32cd9e5c64553bd58d19a568af452acff04981b1","_shrinkwrap":null,"bin":{"mime":"cli.js"},"_id":"mime@1.6.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/49/d8/397bfe3debd89d33c3a74484a8816f9de71c0147f252d18bde4adeb00c23 b/data_node_red/.npm/_cacache/index-v5/49/d8/397bfe3debd89d33c3a74484a8816f9de71c0147f252d18bde4adeb00c23 new file mode 100644 index 0000000..5a1e3c3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/49/d8/397bfe3debd89d33c3a74484a8816f9de71c0147f252d18bde4adeb00c23 @@ -0,0 +1,2 @@ + +772a23b77a1509cf10e8023145d6a42193f371a0 {"key":"pacote:range-manifest:https://registry.npmjs.org/compression/-/compression-1.7.4.tgz:sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913095,"size":1,"metadata":{"id":"compression@1.7.4","manifest":{"name":"compression","version":"1.7.4","engines":{"node":">= 0.8.0"},"dependencies":{"accepts":"~1.3.5","bytes":"3.0.0","compressible":"~2.0.16","debug":"2.6.9","on-headers":"~1.0.2","safe-buffer":"5.1.2","vary":"~1.1.2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"after":"0.8.2","eslint":"5.15.1","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"7.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.0.2","supertest":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","_integrity":"sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","_shasum":"95523eff170ca57c29a0ca41e6fe131f41e5bb8f","_shrinkwrap":null,"_id":"compression@1.7.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/4b/ff/30f1f3b13515e518acab7e2a859591f1b17cbfdd73db188b24013f66127e b/data_node_red/.npm/_cacache/index-v5/4b/ff/30f1f3b13515e518acab7e2a859591f1b17cbfdd73db188b24013f66127e new file mode 100644 index 0000000..5961e35 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/4b/ff/30f1f3b13515e518acab7e2a859591f1b17cbfdd73db188b24013f66127e @@ -0,0 +1,2 @@ + +68e096e27e566e8746d8d00716c9347f6e14a3c6 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz","integrity":"sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==","time":1623764913255,"size":14069,"metadata":{"url":"https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:socket.io@https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["14069"],"connection":["keep-alive"],"cf-ray":["65fc41b30e0308d9-EZE"],"accept-ranges":["bytes"],"age":["13748224"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"2d60a6e09845f7b4836c2991c77a004d\""],"last-modified":["Thu, 07 Jan 2021 10:00:34 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18763e3000008d9e1a9c000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/4d/77/ab010f52200e059a6c5446933fec5074876d6966a5b29974363d4e6c12fb b/data_node_red/.npm/_cacache/index-v5/4d/77/ab010f52200e059a6c5446933fec5074876d6966a5b29974363d4e6c12fb new file mode 100644 index 0000000..baf0a01 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/4d/77/ab010f52200e059a6c5446933fec5074876d6966a5b29974363d4e6c12fb @@ -0,0 +1,2 @@ + +cf9427e8df03d3e20346e993d069521d96412a79 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz","integrity":"sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==","time":1623764917006,"size":3102,"metadata":{"url":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:component-emitter@https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["3102"],"connection":["keep-alive"],"cf-ray":["65fc41cacd7c08fd-EZE"],"accept-ranges":["bytes"],"age":["1986105"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"6b8517f3d7ad46e95c97b6d453f82189\""],"last-modified":["Mon, 15 Apr 2019 20:48:15 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772c1000008fd9c3ec000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/4f/69/6b6c1a428140c2d14ea51e2445816f8ec27907ce04cf30f67a3679d505da b/data_node_red/.npm/_cacache/index-v5/4f/69/6b6c1a428140c2d14ea51e2445816f8ec27907ce04cf30f67a3679d505da new file mode 100644 index 0000000..c3c977b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/4f/69/6b6c1a428140c2d14ea51e2445816f8ec27907ce04cf30f67a3679d505da @@ -0,0 +1,2 @@ + +8c6bc2f7f8fd0064778a17f47ee907673c76be59 {"key":"pacote:range-manifest:https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz:sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913820,"size":1,"metadata":{"id":"mime-types@2.1.31","manifest":{"name":"mime-types","version":"2.1.31","engines":{"node":">= 0.6"},"dependencies":{"mime-db":"1.48.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"7.27.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.23.4","eslint-plugin-markdown":"2.2.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.1.0","eslint-plugin-standard":"4.1.0","mocha":"8.4.0","nyc":"15.1.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz","_integrity":"sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==","_shasum":"a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b","_shrinkwrap":null,"_id":"mime-types@2.1.31"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/50/be/eec9e4c33de2c53adcccffdedfc016583fa61e83a0f32c6acc885e8c2a7d b/data_node_red/.npm/_cacache/index-v5/50/be/eec9e4c33de2c53adcccffdedfc016583fa61e83a0f32c6acc885e8c2a7d new file mode 100644 index 0000000..f818320 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/50/be/eec9e4c33de2c53adcccffdedfc016583fa61e83a0f32c6acc885e8c2a7d @@ -0,0 +1,2 @@ + +f9ab545b7e1a82b07d144d694546267613f139d4 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-emitter","integrity":"sha512-NlxkkzpiS97bHd8evuhb4nZWu/j431X41/vO+8woVA0gjnLJ52RYOOYCwshs3SPiFae2tpFOyNau2k2FiWZVsQ==","time":1623764916845,"size":2406,"metadata":{"url":"https://registry.npmjs.org/component-emitter","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:component-emitter"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2406"],"connection":["keep-alive"],"cf-ray":["65fc41c9bf0e08c0-EZE"],"accept-ranges":["bytes"],"age":["821"],"cache-control":["public, max-age=300"],"etag":["\"183fe745a75723c500164a1001e3bc13\""],"last-modified":["Fri, 14 Feb 2020 07:56:38 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877211000008c0c4bee000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/51/37/62e59a65e3fa96dc48d3adedfd2df02db2590274fa133fea39fbe8edd547 b/data_node_red/.npm/_cacache/index-v5/51/37/62e59a65e3fa96dc48d3adedfd2df02db2590274fa133fea39fbe8edd547 new file mode 100644 index 0000000..64f2abf --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/51/37/62e59a65e3fa96dc48d3adedfd2df02db2590274fa133fea39fbe8edd547 @@ -0,0 +1,2 @@ + +0c9630ed1f5d442dd1f5a600b70173674d8afd7a {"key":"pacote:range-manifest:https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz:sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917038,"size":1,"metadata":{"id":"component-emitter@1.3.0","manifest":{"name":"component-emitter","version":"1.3.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"*","should":"*"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz","_integrity":"sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==","_shasum":"16e4070fba8ae29b679f2215853ee181ab2eabc0","_shrinkwrap":null,"_id":"component-emitter@1.3.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/51/7d/25e51f2ab1bbcdf5455baaafe3c3a6309de5f615f2ffae63c19c9ae06cf3 b/data_node_red/.npm/_cacache/index-v5/51/7d/25e51f2ab1bbcdf5455baaafe3c3a6309de5f615f2ffae63c19c9ae06cf3 new file mode 100644 index 0000000..59db2f3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/51/7d/25e51f2ab1bbcdf5455baaafe3c3a6309de5f615f2ffae63c19c9ae06cf3 @@ -0,0 +1,2 @@ + +316deb8f6c289db833587917c4f0ddffb1e1a5e0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/bignumber.js","integrity":"sha512-YZa9I/KTDy5CvpQLy9xDI/n6X2IjkVmnVCyis1dvZXfb4H8+HkZ2oRRVaOTmduMwzAQGBiH6jLHTm/29ue31xw==","time":1623764838672,"size":23184,"metadata":{"url":"https://registry.npmjs.org/bignumber.js","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:bignumber.js"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["23184"],"connection":["keep-alive"],"cf-ray":["65fc3fe16ff408b8-EZE"],"accept-ranges":["bytes"],"age":["5535"],"cache-control":["public, max-age=300"],"etag":["\"13d576f77839dbd60d9fdfce0c74f008\""],"last-modified":["Mon, 28 Sep 2020 20:19:02 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18640df000008b8dc945000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/51/d3/7697273802dffa158119427da833e251b88e0e9d4c73d8f5f964476884f4 b/data_node_red/.npm/_cacache/index-v5/51/d3/7697273802dffa158119427da833e251b88e0e9d4c73d8f5f964476884f4 new file mode 100644 index 0000000..933104d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/51/d3/7697273802dffa158119427da833e251b88e0e9d4c73d8f5f964476884f4 @@ -0,0 +1,2 @@ + +8b47070323faef4db6f16ba869c2d630be9f8b24 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","integrity":"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==","time":1623764915360,"size":1922,"metadata":{"url":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:setprototypeof@https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["1922"],"connection":["keep-alive"],"cf-ray":["65fc41c0af4308e1-EZE"],"accept-ranges":["bytes"],"age":["1986107"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1bd91f06700e768a1a80cfccacdfed54\""],"last-modified":["Fri, 04 Jan 2019 18:22:04 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876c68000008e122a01000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/51/fa/a6a079afd3dd1f324310e7c47c3e23758cab72a45186d1fd22669816616c b/data_node_red/.npm/_cacache/index-v5/51/fa/a6a079afd3dd1f324310e7c47c3e23758cab72a45186d1fd22669816616c new file mode 100644 index 0000000..d958259 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/51/fa/a6a079afd3dd1f324310e7c47c3e23758cab72a45186d1fd22669816616c @@ -0,0 +1,2 @@ + +8a45b79c3645e58ae6a9c1c951120f5ed54d1499 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/depd/-/depd-1.1.2.tgz","integrity":"sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=","time":1623764915064,"size":9026,"metadata":{"url":"https://registry.npmjs.org/depd/-/depd-1.1.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:depd@https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["9026"],"connection":["keep-alive"],"cf-ray":["65fc41be88a008d9-EZE"],"accept-ranges":["bytes"],"age":["1987221"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"b18f932b694413126a04262fd6e148c8\""],"last-modified":["Sat, 26 May 2018 21:59:06 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b18000008d9f8bd8000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/53/d4/75e48de49f813f8a01acd3e429375b4aa5044853828c1f8b10016050c036 b/data_node_red/.npm/_cacache/index-v5/53/d4/75e48de49f813f8a01acd3e429375b4aa5044853828c1f8b10016050c036 new file mode 100644 index 0000000..a4daf73 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/53/d4/75e48de49f813f8a01acd3e429375b4aa5044853828c1f8b10016050c036 @@ -0,0 +1,2 @@ + +656d21f2db285dc56206dd568e7be92d8908ae4b {"key":"pacote:version-manifest:https://registry.npmjs.org/send/-/send-0.17.1.tgz:sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914588,"size":1,"metadata":{"id":"send@0.17.1","manifest":{"name":"send","version":"0.17.1","engines":{"node":">= 0.8.0"},"dependencies":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.7.2","mime":"1.6.0","ms":"2.1.1","on-finished":"~2.3.0","range-parser":"~1.2.1","statuses":"~1.5.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4","supertest":"4.0.2"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/send/-/send-0.17.1.tgz","_integrity":"sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","_shasum":"c1d8b059f7900f7466dd4938bdc44e11ddb376c8","_shrinkwrap":null,"_id":"send@0.17.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/55/ba/5e16eab8d10e0c61838d3194a21a80e240db12a1e4f37ff4e435211edac6 b/data_node_red/.npm/_cacache/index-v5/55/ba/5e16eab8d10e0c61838d3194a21a80e240db12a1e4f37ff4e435211edac6 new file mode 100644 index 0000000..b96da5e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/55/ba/5e16eab8d10e0c61838d3194a21a80e240db12a1e4f37ff4e435211edac6 @@ -0,0 +1,2 @@ + +d153540bfbc85820c3c9340704c59d5c6dafe6ad {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/yeast","integrity":"sha512-qbheeU1e8SYPCLlmToWCVRdmthFCwkzdVBBuftxcIcF/oDUYzfTa+52Os+P+1Rc0Z6d9Cx43qbpJHepDcDygMQ==","time":1623764917137,"size":874,"metadata":{"url":"https://registry.npmjs.org/yeast","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:yeast"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["874"],"connection":["keep-alive"],"cf-ray":["65fc41cbd83a08d9-EZE"],"accept-ranges":["bytes"],"age":["748"],"cache-control":["public, max-age=300"],"etag":["\"4d7e4cf00de1f8e27b27099bad5c1adb\""],"last-modified":["Wed, 12 May 2021 19:27:37 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877367000008d9dd10d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/56/a9/43c35dafd2a54d8c905cf39f8a2163b7fc4a792c551996d9e1ea8347c866 b/data_node_red/.npm/_cacache/index-v5/56/a9/43c35dafd2a54d8c905cf39f8a2163b7fc4a792c551996d9e1ea8347c866 new file mode 100644 index 0000000..889a01c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/56/a9/43c35dafd2a54d8c905cf39f8a2163b7fc4a792c551996d9e1ea8347c866 @@ -0,0 +1,2 @@ + +df0315750a3131fddee7f0faf93677046fd1587f {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz","integrity":"sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==","time":1623764913814,"size":5521,"metadata":{"url":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:mime-types@https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["5521"],"connection":["keep-alive"],"cf-ray":["65fc41b70b1108b8-EZE"],"accept-ranges":["bytes"],"age":["1196339"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"6cdb136892f2899167ccd90dd74976b6\""],"last-modified":["Tue, 01 Jun 2021 17:29:11 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876660000008b8a90e7000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/57/b7/2772f8c4daa4b31074e03545f8e473b547e88ef3141501fe2a54e1abdfc4 b/data_node_red/.npm/_cacache/index-v5/57/b7/2772f8c4daa4b31074e03545f8e473b547e88ef3141501fe2a54e1abdfc4 new file mode 100644 index 0000000..fb8979a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/57/b7/2772f8c4daa4b31074e03545f8e473b547e88ef3141501fe2a54e1abdfc4 @@ -0,0 +1,2 @@ + +e7b83f4941569e0ae77c2874effeccae3e4d599e {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/bytes","integrity":"sha512-W3dLT93gQTD3sLYic2TLN/mXPjBC+WwgJaiZN2d8sjS7DY3MD48zbWPZ29Kc4xQiNyWwgdxoB7WZ/HBc9QBXNA==","time":1623764913405,"size":4672,"metadata":{"url":"https://registry.npmjs.org/bytes","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:bytes"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4672"],"connection":["keep-alive"],"cf-ray":["65fc41b46bcf08c0-EZE"],"accept-ranges":["bytes"],"age":["1746"],"cache-control":["public, max-age=300"],"etag":["\"426bee583f41e2b759765662e9b7ab67\""],"last-modified":["Fri, 14 Feb 2020 06:32:13 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18764bf000008c00d3f6000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/58/fa/df286fe93b5111954d6a69ee73cfc3035325538bae498027945862ceefc4 b/data_node_red/.npm/_cacache/index-v5/58/fa/df286fe93b5111954d6a69ee73cfc3035325538bae498027945862ceefc4 new file mode 100644 index 0000000..238e052 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/58/fa/df286fe93b5111954d6a69ee73cfc3035325538bae498027945862ceefc4 @@ -0,0 +1,2 @@ + +b0635fe66722bde1de6178dfed97f9ce3d5df5ba {"key":"pacote:range-manifest:https://registry.npmjs.org/ms/-/ms-2.1.3.tgz:sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916000,"size":1,"metadata":{"id":"ms@2.1.3","manifest":{"name":"ms","version":"2.1.3","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"4.18.2","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1","prettier":"2.0.5"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","_integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","_shasum":"574c8138ce1d2b5861f0b44579dbadd60c6615b2","_shrinkwrap":null,"_id":"ms@2.1.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/59/c7/e3e828dab5caadbdbe18a2032795dc4156d8fd554095158308751f987967 b/data_node_red/.npm/_cacache/index-v5/59/c7/e3e828dab5caadbdbe18a2032795dc4156d8fd554095158308751f987967 new file mode 100644 index 0000000..2db6cd0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/59/c7/e3e828dab5caadbdbe18a2032795dc4156d8fd554095158308751f987967 @@ -0,0 +1,2 @@ + +2cbd3de14b95b1500e8ffa0fc9df7e4208876a57 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/send/-/send-0.17.1.tgz","integrity":"sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","time":1623764914570,"size":15022,"metadata":{"url":"https://registry.npmjs.org/send/-/send-0.17.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:send@https://registry.npmjs.org/send/-/send-0.17.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["15022"],"connection":["keep-alive"],"cf-ray":["65fc41bb9bac08c0-EZE"],"accept-ranges":["bytes"],"age":["1986107"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"38b802cd3d2d6aa969eba0eedb12f8e7\""],"last-modified":["Sat, 11 May 2019 01:40:59 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876942000008c0db978000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/5a/6c/cbedfba7f1f2603383e2c9389a4536ad7d88a7498f9ccce633b760e037dd b/data_node_red/.npm/_cacache/index-v5/5a/6c/cbedfba7f1f2603383e2c9389a4536ad7d88a7498f9ccce633b760e037dd new file mode 100644 index 0000000..dc6e4d1 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/5a/6c/cbedfba7f1f2603383e2c9389a4536ad7d88a7498f9ccce633b760e037dd @@ -0,0 +1,3 @@ + +779a6c32320e9a7f81fd1fb05cba83fbb5811a99 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/isarray","integrity":"sha512-CNGf6B++5/7qMAbbi95m4bAcjiwoWwy3YC/AfSAvsnvtjsHe4pJ51VGaozxIenYOVvt4oPs85PveKaK8vcKM7Q==","time":1623764839101,"size":3430,"metadata":{"url":"https://registry.npmjs.org/isarray","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:isarray"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3430"],"connection":["keep-alive"],"cf-ray":["65fc3fe3e95208c0-EZE"],"accept-ranges":["bytes"],"age":["736"],"cache-control":["public, max-age=300"],"etag":["\"57b46186b98e0a61d2d06ab5552b2f89\""],"last-modified":["Fri, 14 Feb 2020 17:46:23 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864272000008c0233f1000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} +272d4aaf41f1dfddabc4027a9b09930fcc0d770a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/isarray","integrity":"sha512-CNGf6B++5/7qMAbbi95m4bAcjiwoWwy3YC/AfSAvsnvtjsHe4pJ51VGaozxIenYOVvt4oPs85PveKaK8vcKM7Q==","time":1623764916615,"size":3430,"metadata":{"url":"https://registry.npmjs.org/isarray","reqHeaders":{"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:isarray"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"connection":["keep-alive"],"cf-ray":["65fc41c88fcc08e1-EZE"],"age":["813"],"cache-control":["public, max-age=300"],"etag":["\"57b46186b98e0a61d2d06ab5552b2f89\""],"last-modified":["Fri, 14 Feb 2020 17:46:23 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877156000008e1742ad000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"],"x-local-cache":["%2Fdata%2F.npm%2F_cacache"],"x-local-cache-key":["make-fetch-happen%3Arequest-cache%3Ahttps%3A%2F%2Fregistry.npmjs.org%2Fisarray"],"x-local-cache-hash":["sha512-CNGf6B%2B%2B5%2F7qMAbbi95m4bAcjiwoWwy3YC%2FAfSAvsnvtjsHe4pJ51VGaozxIenYOVvt4oPs85PveKaK8vcKM7Q%3D%3D"],"x-local-cache-time":["Tue, 15 Jun 2021 13:47:19 GMT"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/5c/36/adae04ac4fbbd58939adc28f43dc6ad7d34e5536e852d1715a5be112e064 b/data_node_red/.npm/_cacache/index-v5/5c/36/adae04ac4fbbd58939adc28f43dc6ad7d34e5536e852d1715a5be112e064 new file mode 100644 index 0000000..921c440 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/5c/36/adae04ac4fbbd58939adc28f43dc6ad7d34e5536e852d1715a5be112e064 @@ -0,0 +1,2 @@ + +d2f89ab2b4b6bfdf3b153e65c03b115d25a92a77 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz","integrity":"sha1-F+bBH3PdTz10zaek/zI46a2b+JA=","time":1623764917006,"size":1468,"metadata":{"url":"https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:to-array@https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["1468"],"connection":["keep-alive"],"cf-ray":["65fc41cadd7b08d9-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"490713e49181b7c303ee7f3d35689a5a\""],"last-modified":["Sun, 27 May 2018 19:40:39 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772cb000008d9f2aea000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/5c/ca/9f49d5822f17d335f0e7c29f9594c6e46b365dab8a67831cc10e56ad9684 b/data_node_red/.npm/_cacache/index-v5/5c/ca/9f49d5822f17d335f0e7c29f9594c6e46b365dab8a67831cc10e56ad9684 new file mode 100644 index 0000000..d8d2f33 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/5c/ca/9f49d5822f17d335f0e7c29f9594c6e46b365dab8a67831cc10e56ad9684 @@ -0,0 +1,2 @@ + +20677caa83dfcd3c6c7357b548417aa6f4c8f6da {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime/-/mime-1.6.0.tgz","integrity":"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==","time":1623764915158,"size":15686,"metadata":{"url":"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:mime@https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["binary/octet-stream"],"content-length":["15686"],"connection":["keep-alive"],"cf-ray":["65fc41be998c08b8-EZE"],"accept-ranges":["bytes"],"age":["1987219"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"b1da6ca980d44a31d3b64a6b951c9712\""],"last-modified":["Tue, 05 Jun 2018 13:49:26 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b21000008b8fe8cb000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/5e/fc/0989b8fc498227980548d88ec9e6c0fb7f75d15bade3bad855e90dc540ce b/data_node_red/.npm/_cacache/index-v5/5e/fc/0989b8fc498227980548d88ec9e6c0fb7f75d15bade3bad855e90dc540ce new file mode 100644 index 0000000..d51e8ab --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/5e/fc/0989b8fc498227980548d88ec9e6c0fb7f75d15bade3bad855e90dc540ce @@ -0,0 +1,2 @@ + +87c98ea409aca7afe8fd3c9b267e3f234804f5c8 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz","integrity":"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=","time":1623764914992,"size":4229,"metadata":{"url":"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:fresh@https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["binary/octet-stream"],"content-length":["4229"],"connection":["keep-alive"],"cf-ray":["65fc41be4fcf08d9-EZE"],"accept-ranges":["bytes"],"age":["1986104"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"2a40d6543d99d22ed619187b3669a099\""],"last-modified":["Tue, 05 Jun 2018 13:49:25 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876ae9000008d92c869000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/60/62/b0393e74576d59d5178ae1830c14f4430ab8d5e46bc5008ce48ec1ce3ea0 b/data_node_red/.npm/_cacache/index-v5/60/62/b0393e74576d59d5178ae1830c14f4430ab8d5e46bc5008ce48ec1ce3ea0 new file mode 100644 index 0000000..0054643 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/60/62/b0393e74576d59d5178ae1830c14f4430ab8d5e46bc5008ce48ec1ce3ea0 @@ -0,0 +1,2 @@ + +1bc019604b4a35298346071abcf8b3f89c19895f {"key":"pacote:range-manifest:https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz:sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915899,"size":1,"metadata":{"id":"engine.io@3.5.0","manifest":{"name":"engine.io","version":"3.5.0","engines":{"node":">=8.0.0"},"dependencies":{"accepts":"~1.3.4","base64id":"2.0.0","cookie":"~0.4.1","debug":"~4.1.0","engine.io-parser":"~2.2.0","ws":"~7.4.2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"babel-eslint":"^8.0.2","babel-preset-es2015":"^6.24.0","engine.io-client":"3.5.0","eslint":"^4.5.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","expect.js":"^0.3.1","mocha":"^4.0.1","s":"0.1.1","superagent":"^3.8.1","uws":"~9.14.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz","_integrity":"sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==","_shasum":"9d6b985c8a39b1fe87cd91eb014de0552259821b","_shrinkwrap":null,"_id":"engine.io@3.5.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/61/7b/d393dcef971553f8c243550bbb1114185e6cbf8fb00a6c5980aea93047f5 b/data_node_red/.npm/_cacache/index-v5/61/7b/d393dcef971553f8c243550bbb1114185e6cbf8fb00a6c5980aea93047f5 new file mode 100644 index 0000000..c30d291 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/61/7b/d393dcef971553f8c243550bbb1114185e6cbf8fb00a6c5980aea93047f5 @@ -0,0 +1,2 @@ + +c2026eb817d860915e7357aede6003dd688910ae {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz","integrity":"sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==","time":1623764916845,"size":5594,"metadata":{"url":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:socket.io-parser@https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["5594"],"connection":["keep-alive"],"cf-ray":["65fc41c9ca7208d9-EZE"],"accept-ranges":["bytes"],"age":["13562864"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"cd711f963dc23dfbdd8880e7db6a34ca\""],"last-modified":["Sat, 09 Jan 2021 13:52:38 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187721a000008d9f88a6000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/62/a4/240e51038b4ee8f6a972b479d4356876f0248190c76efb04719b3c69a444 b/data_node_red/.npm/_cacache/index-v5/62/a4/240e51038b4ee8f6a972b479d4356876f0248190c76efb04719b3c69a444 new file mode 100644 index 0000000..efc7325 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/62/a4/240e51038b4ee8f6a972b479d4356876f0248190c76efb04719b3c69a444 @@ -0,0 +1,2 @@ + +1a2797a2548107617235abb2f0f2db22fd88e212 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz","integrity":"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=","time":1623764916689,"size":1602,"metadata":{"url":"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:isarray@https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["1602"],"connection":["keep-alive"],"cf-ray":["65fc41c9084308d9-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"c86ebdd2087ead4ce3614392c569fbd0\""],"last-modified":["Sun, 27 May 2018 05:00:15 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18771a6000008d9190ea000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/62/a6/02a0a2339d89eb2c58e363fa94ffff05a5fdf264c86bd53f132babfca9a2 b/data_node_red/.npm/_cacache/index-v5/62/a6/02a0a2339d89eb2c58e363fa94ffff05a5fdf264c86bd53f132babfca9a2 new file mode 100644 index 0000000..ef21ea4 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/62/a6/02a0a2339d89eb2c58e363fa94ffff05a5fdf264c86bd53f132babfca9a2 @@ -0,0 +1,2 @@ + +4137f4bf2399e0bc20a381ec0e5818cb1b9c3693 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/after/-/after-0.8.2.tgz","integrity":"sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=","time":1623764916410,"size":2995,"metadata":{"url":"https://registry.npmjs.org/after/-/after-0.8.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:after@https://registry.npmjs.org/after/-/after-0.8.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["2995"],"connection":["keep-alive"],"cf-ray":["65fc41c74abd08f9-EZE"],"accept-ranges":["bytes"],"age":["1984389"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0501d6a9a19940d07098469928729c07\""],"last-modified":["Sat, 26 May 2018 16:16:30 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187708a000008f972988000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/62/e9/2c17d0516cf9964dee4af48c49c49a536e4e24905a2adcb26400bf3514a6 b/data_node_red/.npm/_cacache/index-v5/62/e9/2c17d0516cf9964dee4af48c49c49a536e4e24905a2adcb26400bf3514a6 new file mode 100644 index 0000000..5eefae7 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/62/e9/2c17d0516cf9964dee4af48c49c49a536e4e24905a2adcb26400bf3514a6 @@ -0,0 +1,2 @@ + +ab11e0e49e9cbe7461381ffbafd9e9a58486f0ba {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/base64-arraybuffer","integrity":"sha512-UevpGBokdsXxdTaNCLq+I+CgSVmKltkK3v2GD/M7OLqUMd6h5xoxK7uJ4pohdjwXviBnIeTXLWFdoIf7ydIHYg==","time":1623764916306,"size":3167,"metadata":{"url":"https://registry.npmjs.org/base64-arraybuffer","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:base64-arraybuffer"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3167"],"connection":["keep-alive"],"cf-ray":["65fc41c6995208d9-EZE"],"accept-ranges":["bytes"],"age":["3941"],"cache-control":["public, max-age=300"],"etag":["\"a07f7457764c29c6703fa9c3a542ffce\""],"last-modified":["Fri, 14 Feb 2020 05:21:29 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877024000008d9f2aac000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/63/8c/e8dc06f31becd92bae126de087e60f5241ff4733d6ea18ccf3e358a51432 b/data_node_red/.npm/_cacache/index-v5/63/8c/e8dc06f31becd92bae126de087e60f5241ff4733d6ea18ccf3e358a51432 new file mode 100644 index 0000000..d8562fe --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/63/8c/e8dc06f31becd92bae126de087e60f5241ff4733d6ea18ccf3e358a51432 @@ -0,0 +1,2 @@ + +f8c8870155f509e21a37b70af444ce5bd5cf764b {"key":"pacote:version-manifest:https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz:sha512-oaApDGBXypXIRJ8Tg9uLWGlxBaqDD5FDBdjLK9oFjMuNt7LQqsnQZLeNc8zHIu84PelLdOWnDLD1XYUd7h8xwg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764912703,"size":1,"metadata":{"id":"node-red-dashboard@2.29.3","manifest":{"name":"node-red-dashboard","version":"2.29.3","engines":{"node":">=8"},"dependencies":{"compression":"^1.7.4","gridstack":"^0.6.4","serve-static":"^1.14.1","socket.io":"~2.4.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"angular":"~1.8.2","angular-animate":"~1.8.2","angular-aria":"~1.8.2","angular-chart.js":"^1.1.1","angular-material":"~1.2.1","angular-material-icons":"^0.7.1","angular-messages":"~1.8.2","angular-mocks":"~1.8.2","angular-route":"~1.8.2","angular-sanitize":"~1.8.2","angular-touch":"~1.8.2","angularjs-color-picker":"^3.4.8","chart.js":"~2.3.0","d3":"^3.5.17","font-awesome":"^4.7.0","gulp":"~4.0.2","gulp-angular-templatecache":"~3.0.0","gulp-clean-css":"^4.3.0","gulp-concat":"^2.6.1","gulp-concat-css":"^3.1.0","gulp-debug":"^4.0.0","gulp-eol":"^0.2.0","gulp-header":"^2.0.9","gulp-html-replace":"^1.6.2","gulp-html-src":"^1.0.0","gulp-htmlmin":"^5.0.1","gulp-if":"^3.0.0","gulp-jscs":"^4.1.0","gulp-jshint":"^2.1.0","gulp-manifest3":"^0.1.2","gulp-rename":"^1.4.0","gulp-replace":"^1.1.3","gulp-sass":"^4.1.0","gulp-uglify":"~3.0.2","gulp-util":"^3.0.8","jquery":"^3.6.0","jshint":"~2.12.0","justgage":"~1.4.3","less":"^3.13.1","material-design-icons-iconfont":"~6.1.0","moment":"~2.29.1","sprintf-js":"^1.1.2","streamqueue":"~1.1.2","svg-morpheus":"^0.3.0","tinycolor2":"1.4.2","weather-icons-lite":"^1.6.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz","_integrity":"sha512-oaApDGBXypXIRJ8Tg9uLWGlxBaqDD5FDBdjLK9oFjMuNt7LQqsnQZLeNc8zHIu84PelLdOWnDLD1XYUd7h8xwg==","_shasum":"480dceeafb952b04f216171709a5004dca7f5adf","_shrinkwrap":null,"_id":"node-red-dashboard@2.29.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/63/c4/ed7136798524f2beacf63620dd6a7ad9bfd5ddab9e389cd6892a682b4b6e b/data_node_red/.npm/_cacache/index-v5/63/c4/ed7136798524f2beacf63620dd6a7ad9bfd5ddab9e389cd6892a682b4b6e new file mode 100644 index 0000000..380437d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/63/c4/ed7136798524f2beacf63620dd6a7ad9bfd5ddab9e389cd6892a682b4b6e @@ -0,0 +1,2 @@ + +a9b2283d96dfd91f884781d6868194edb08c3796 {"key":"pacote:range-manifest:https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz:sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915105,"size":1,"metadata":{"id":"http-errors@1.7.3","manifest":{"name":"http-errors","version":"1.7.3","engines":{"node":">= 0.6"},"dependencies":{"depd":"~1.1.2","inherits":"2.0.4","setprototypeof":"1.1.1","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.18.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","_integrity":"sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","_shasum":"6c619e4f9c60308c38519498c14fbb10aacebb06","_shrinkwrap":null,"_id":"http-errors@1.7.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/64/17/566b3f51b41fae7dbf0388b1e25646a6b71607252abb83dba47dae5334da b/data_node_red/.npm/_cacache/index-v5/64/17/566b3f51b41fae7dbf0388b1e25646a6b71607252abb83dba47dae5334da new file mode 100644 index 0000000..b495540 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/64/17/566b3f51b41fae7dbf0388b1e25646a6b71607252abb83dba47dae5334da @@ -0,0 +1,2 @@ + +4657dc25e449e15d599b44a93dc5190a934c5beb {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=","time":1623764914129,"size":2874,"metadata":{"url":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:ms@https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["binary/octet-stream"],"content-length":["2874"],"connection":["keep-alive"],"cf-ray":["65fc41b8ff5408f9-EZE"],"accept-ranges":["bytes"],"age":["1986831"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"9615634070dd7751f127b2a0fb362484\""],"last-modified":["Tue, 05 Jun 2018 13:46:54 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876797000008f936158000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/65/e3/8be27779e89331661cd48086054d6a6b0870e61fae77d2170f7d5098ecee b/data_node_red/.npm/_cacache/index-v5/65/e3/8be27779e89331661cd48086054d6a6b0870e61fae77d2170f7d5098ecee new file mode 100644 index 0000000..c104515 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/65/e3/8be27779e89331661cd48086054d6a6b0870e61fae77d2170f7d5098ecee @@ -0,0 +1,2 @@ + +072c674bcc83023cbcf73628d2341a8ffba3de31 {"key":"pacote:version-manifest:https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz:sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838948,"size":1,"metadata":{"id":"sqlstring@2.3.1","manifest":{"name":"sqlstring","version":"2.3.1","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"4.18.1","eslint-plugin-markdown":"1.0.0-beta.6","nyc":"10.3.2","urun":"0.0.8","utest":"0.0.8"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz","_integrity":"sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=","_shasum":"475393ff9e91479aea62dcaf0ca3d14983a7fb40","_shrinkwrap":null,"_id":"sqlstring@2.3.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/66/76/ae373a8873069aa592834533810cf9543ee82ee36d5d7ff1e4c6b05f28f3 b/data_node_red/.npm/_cacache/index-v5/66/76/ae373a8873069aa592834533810cf9543ee82ee36d5d7ff1e4c6b05f28f3 new file mode 100644 index 0000000..1491be9 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/66/76/ae373a8873069aa592834533810cf9543ee82ee36d5d7ff1e4c6b05f28f3 @@ -0,0 +1,2 @@ + +5823ae4452d7be1f06393e5b2250d421aaf0ab7a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/has-cors","integrity":"sha512-/pLeuT6jnshIvs3toJrIV2ob7iG9pj4uwwmMxwbvV/gU4XfB5acB+WyzguLLLTvw0j215Nb5JYrPMClcHcalNA==","time":1623764917149,"size":589,"metadata":{"url":"https://registry.npmjs.org/has-cors","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:has-cors"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["589"],"connection":["keep-alive"],"cf-ray":["65fc41cbd9a608f5-EZE"],"accept-ranges":["bytes"],"age":["951"],"cache-control":["public, max-age=300"],"etag":["\"0f617179d158bd78832a48539e8f8ea1\""],"last-modified":["Fri, 14 Feb 2020 15:57:53 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877368000008f58b1ff000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/66/78/0d345bf0aeab3372ce58d17e12a11cc75443ca5538b1a75a7bd3b8f0e1cd b/data_node_red/.npm/_cacache/index-v5/66/78/0d345bf0aeab3372ce58d17e12a11cc75443ca5538b1a75a7bd3b8f0e1cd new file mode 100644 index 0000000..e52f010 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/66/78/0d345bf0aeab3372ce58d17e12a11cc75443ca5538b1a75a7bd3b8f0e1cd @@ -0,0 +1,2 @@ + +8c02e02886a4d495a0ec57d3a340716e0681a0c7 {"key":"pacote:range-manifest:https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz:sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838573,"size":1,"metadata":{"id":"mysql@2.18.1","manifest":{"name":"mysql","version":"2.18.1","engines":{"node":">= 0.6"},"dependencies":{"bignumber.js":"9.0.0","readable-stream":"2.3.7","safe-buffer":"5.1.2","sqlstring":"2.3.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"after":"0.8.2","eslint":"5.16.0","seedrandom":"3.0.5","timezone-mock":"0.0.7","urun":"0.0.8","utest":"0.0.8"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz","_integrity":"sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==","_shasum":"2254143855c5a8c73825e4522baf2ea021766717","_shrinkwrap":null,"_id":"mysql@2.18.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/67/99/2bcf3ae67e125dd7c37e505d5400dc8c1525210991853efeb91fff9e8e5b b/data_node_red/.npm/_cacache/index-v5/67/99/2bcf3ae67e125dd7c37e505d5400dc8c1525210991853efeb91fff9e8e5b new file mode 100644 index 0000000..e002471 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/67/99/2bcf3ae67e125dd7c37e505d5400dc8c1525210991853efeb91fff9e8e5b @@ -0,0 +1,2 @@ + +c609c08e1bf712cc04df49e176275c1d76be6498 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/xmlhttprequest-ssl","integrity":"sha512-7vAy7hb8GS5GndG3EHhk/mAGPRUU/f63mJ4/eKxJ5vNwl2i+Ab+t8lL7E+6jrYF4VMM2u9KleVgChfGeXhEj/g==","time":1623764917172,"size":6929,"metadata":{"url":"https://registry.npmjs.org/xmlhttprequest-ssl","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:xmlhttprequest-ssl"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["6929"],"connection":["keep-alive"],"cf-ray":["65fc41cbdd6d08c0-EZE"],"accept-ranges":["bytes"],"age":["3140"],"cache-control":["public, max-age=300"],"etag":["\"18a556103d5533b33a48d81e92fe1483\""],"last-modified":["Mon, 17 May 2021 10:03:50 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877368000008c0b0b31000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/69/4e/fd82df133d32aabacff68d98a605eb61a4a3069858ca2084dc62a7fc72b9 b/data_node_red/.npm/_cacache/index-v5/69/4e/fd82df133d32aabacff68d98a605eb61a4a3069858ca2084dc62a7fc72b9 new file mode 100644 index 0000000..2a7777e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/69/4e/fd82df133d32aabacff68d98a605eb61a4a3069858ca2084dc62a7fc72b9 @@ -0,0 +1,2 @@ + +5429959195de47d795e2c29a9b78f349591f00a0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz","integrity":"sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==","time":1623764915837,"size":5624,"metadata":{"url":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:socket.io-parser@https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["5624"],"connection":["keep-alive"],"cf-ray":["65fc41c35f5108d9-EZE"],"accept-ranges":["bytes"],"age":["19938624"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"32f0df96ad0de595b3e63febd9f3af81\""],"last-modified":["Wed, 13 May 2020 06:00:17 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876e18000008d9321bf000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/69/b0/bf1852d0783ec94b05403978a38b9d741ba57dbcc41290e546e8cb61d731 b/data_node_red/.npm/_cacache/index-v5/69/b0/bf1852d0783ec94b05403978a38b9d741ba57dbcc41290e546e8cb61d731 new file mode 100644 index 0000000..cd75062 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/69/b0/bf1852d0783ec94b05403978a38b9d741ba57dbcc41290e546e8cb61d731 @@ -0,0 +1,2 @@ + +e600d44a97bef13185201ac5de537b019671cd79 {"key":"pacote:range-manifest:https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz:sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839269,"size":1,"metadata":{"id":"core-util-is@1.0.2","manifest":{"name":"core-util-is","version":"1.0.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tap":"^2.3.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","_integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=","_shasum":"b5fd54220aa2bc5ab57aab7140c940754503c1a7","_shrinkwrap":null,"_id":"core-util-is@1.0.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6a/7a/7e65b81dbecaf4d331f0e6e8ba560c717e3e7af8a4926f6955bb3427a84c b/data_node_red/.npm/_cacache/index-v5/6a/7a/7e65b81dbecaf4d331f0e6e8ba560c717e3e7af8a4926f6955bb3427a84c new file mode 100644 index 0000000..50f3687 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6a/7a/7e65b81dbecaf4d331f0e6e8ba560c717e3e7af8a4926f6955bb3427a84c @@ -0,0 +1,2 @@ + +6355b5d458875b653e680ebc905f8f40c0fa045d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz","integrity":"sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==","time":1623764838566,"size":121754,"metadata":{"url":"https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:mysql@https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["121754"],"connection":["keep-alive"],"cf-ray":["65fc3fe07ccc08b8-EZE"],"accept-ranges":["bytes"],"age":["1972692"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0bab280ff1ee0b0861068e9417debd7d\""],"last-modified":["Thu, 23 Jan 2020 18:09:23 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864047000008b802b73000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6b/f8/40426e8a5c62f0eb0c23c340ab3ad34b3b4089a1dfc77809e70bcce0d76d b/data_node_red/.npm/_cacache/index-v5/6b/f8/40426e8a5c62f0eb0c23c340ab3ad34b3b4089a1dfc77809e70bcce0d76d new file mode 100644 index 0000000..fd74508 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6b/f8/40426e8a5c62f0eb0c23c340ab3ad34b3b4089a1dfc77809e70bcce0d76d @@ -0,0 +1,2 @@ + +5b3de23bc3e9069532384320587d88b46196084d {"key":"pacote:range-manifest:https://registry.npmjs.org/vary/-/vary-1.1.2.tgz:sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913648,"size":1,"metadata":{"id":"vary@1.1.2","manifest":{"name":"vary","version":"1.1.2","engines":{"node":">= 0.8"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","_integrity":"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=","_shasum":"2299f02c6ded30d4a5961b0b9f74524a18f634fc","_shrinkwrap":null,"_id":"vary@1.1.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6c/6f/8e7e8934679b7b49b8240b1f2dcb66c25a5bd17f9629f8fe0ea634cab93c b/data_node_red/.npm/_cacache/index-v5/6c/6f/8e7e8934679b7b49b8240b1f2dcb66c25a5bd17f9629f8fe0ea634cab93c new file mode 100644 index 0000000..7a2a039 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6c/6f/8e7e8934679b7b49b8240b1f2dcb66c25a5bd17f9629f8fe0ea634cab93c @@ -0,0 +1,2 @@ + +3e8cc5c94b47c7c00be8d4bbab62a18654d02397 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=","time":1623764839332,"size":2246,"metadata":{"url":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:util-deprecate@https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["2246"],"connection":["keep-alive"],"cf-ray":["65fc3fe57dac08c0-EZE"],"accept-ranges":["bytes"],"age":["1987061"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"280e304a953ba3a89f52cc6ad616b284\""],"last-modified":["Sun, 27 May 2018 20:38:18 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864370000008c0b0a4d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6c/b8/bf3defaf56a777b0a2db86bdc94ecb2191281a9ae7585d3ff39ed841c8f5 b/data_node_red/.npm/_cacache/index-v5/6c/b8/bf3defaf56a777b0a2db86bdc94ecb2191281a9ae7585d3ff39ed841c8f5 new file mode 100644 index 0000000..a3c5a4c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6c/b8/bf3defaf56a777b0a2db86bdc94ecb2191281a9ae7585d3ff39ed841c8f5 @@ -0,0 +1,2 @@ + +6466e0cb7dac3be477f6e9e6318244f77c50ee87 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/statuses","integrity":"sha512-QTC4QQhzTZrZ/Mt6kr10OU6QmocHByB1yetX19nDnbnwhYfVYulkDZsg9AMwqA2wdt49n5uRan4b0HRIoTuUuA==","time":1623764914982,"size":7058,"metadata":{"url":"https://registry.npmjs.org/statuses","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:statuses"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["7058"],"connection":["keep-alive"],"cf-ray":["65fc41bdfb9508b4-EZE"],"accept-ranges":["bytes"],"age":["1745"],"cache-control":["public, max-age=300"],"etag":["\"48074cca4d0c5f2c2b1e9596b6c95c4e\""],"last-modified":["Sun, 03 Jan 2021 06:37:52 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876abb000008b4169f0000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6c/d2/cf101dd99f03f363c73a90f7808b304d954b971da8f61645462fc62813e8 b/data_node_red/.npm/_cacache/index-v5/6c/d2/cf101dd99f03f363c73a90f7808b304d954b971da8f61645462fc62813e8 new file mode 100644 index 0000000..4323603 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6c/d2/cf101dd99f03f363c73a90f7808b304d954b971da8f61645462fc62813e8 @@ -0,0 +1,2 @@ + +3f7125065504bcbdaba70a7b1610689965427b97 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz","integrity":"sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==","time":1623764916387,"size":2194,"metadata":{"url":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:arraybuffer.slice@https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["2194"],"connection":["keep-alive"],"cf-ray":["65fc41c729ef08b8-EZE"],"accept-ranges":["bytes"],"age":["1984389"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"22322e892dff51e4fc00e674287c556b\""],"last-modified":["Sat, 26 May 2018 17:22:43 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877079000008b8e1165000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6e/b6/2f4672114ef1fc362d474be6b6ea509429339b919d384f4d6c70445b7695 b/data_node_red/.npm/_cacache/index-v5/6e/b6/2f4672114ef1fc362d474be6b6ea509429339b919d384f4d6c70445b7695 new file mode 100644 index 0000000..6a801be --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6e/b6/2f4672114ef1fc362d474be6b6ea509429339b919d384f4d6c70445b7695 @@ -0,0 +1,2 @@ + +580fd22a5a455bd0670ecd8be27680914a69e9a5 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-inherit","integrity":"sha512-W6w7OTCSgomx6PUv1/SRAn1kOPW2tglG3s+4tJxjB9bIVeFvoqGTHjxBI36du9ahlj30pxnrtEOuKqb+N6wpvg==","time":1623764917126,"size":313,"metadata":{"url":"https://registry.npmjs.org/component-inherit","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:component-inherit"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["313"],"connection":["keep-alive"],"cf-ray":["65fc41cbdb0f08b4-EZE"],"accept-ranges":["bytes"],"age":["950"],"cache-control":["public, max-age=300"],"etag":["\"616b325c194eb0f0d8f82c107e31b3c4\""],"last-modified":["Fri, 14 Feb 2020 07:56:47 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877364000008b4f6941000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6f/4d/6b1b841253055569edbc6bd34ae5a2d072c7dd96a2845409c92269267cc6 b/data_node_red/.npm/_cacache/index-v5/6f/4d/6b1b841253055569edbc6bd34ae5a2d072c7dd96a2845409c92269267cc6 new file mode 100644 index 0000000..ad2e1c9 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6f/4d/6b1b841253055569edbc6bd34ae5a2d072c7dd96a2845409c92269267cc6 @@ -0,0 +1,2 @@ + +c567ff9fc6afccea57a5926b0900d117ec917e80 {"key":"pacote:version-manifest:https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz:sha1-AI4G2AlDIMNy28L47XagymyKxBk=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917203,"size":1,"metadata":{"id":"yeast@0.1.2","manifest":{"name":"yeast","version":"0.1.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"assume":"1.3.x","istanbul":"0.3.x","mocha":"2.3.x","pre-commit":"1.1.x","zuul":"3.4.x"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz","_integrity":"sha1-AI4G2AlDIMNy28L47XagymyKxBk=","_shasum":"008e06d8094320c372dbc2f8ed76a0ca6c8ac419","_shrinkwrap":null,"_id":"yeast@0.1.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6f/5e/d77fe33dcb9422b5a37faad5396354b1848c0f784cb1a6eda6007697589a b/data_node_red/.npm/_cacache/index-v5/6f/5e/d77fe33dcb9422b5a37faad5396354b1848c0f784cb1a6eda6007697589a new file mode 100644 index 0000000..84be6d4 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6f/5e/d77fe33dcb9422b5a37faad5396354b1848c0f784cb1a6eda6007697589a @@ -0,0 +1,2 @@ + +a38e8fc4fd37096eab338f0336a677fece69ea7c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/blob","integrity":"sha512-3Tzgk0biO2DtErFFzSEFGTvuXFJxiZqvBmeg2B3BfptStD8OpCeqQtn4GNQ012Dse6uwCCbuy2fpk71keLl6Fw==","time":1623764916326,"size":3772,"metadata":{"url":"https://registry.npmjs.org/blob","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:blob"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3772"],"connection":["keep-alive"],"cf-ray":["65fc41c6ada808c0-EZE"],"accept-ranges":["bytes"],"age":["949"],"cache-control":["public, max-age=300"],"etag":["\"added93c1c63729e9449b30e345d56b7\""],"last-modified":["Fri, 14 Feb 2020 05:51:16 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187702b000008c00c9b5000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/6f/dd/32f04b38b6c9f60a396da1a7270b7f778617d00596bc416d9bae0c041755 b/data_node_red/.npm/_cacache/index-v5/6f/dd/32f04b38b6c9f60a396da1a7270b7f778617d00596bc416d9bae0c041755 new file mode 100644 index 0000000..e8ab92a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/6f/dd/32f04b38b6c9f60a396da1a7270b7f778617d00596bc416d9bae0c041755 @@ -0,0 +1,2 @@ + +42fd16e84fd3c581f7b0f7c6c10dc4d1894f11de {"key":"pacote:version-manifest:https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz:sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917037,"size":1,"metadata":{"id":"component-bind@1.0.0","manifest":{"name":"component-bind","version":"1.0.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"*","should":"*"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz","_integrity":"sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=","_shasum":"00c608ab7dcd93897c0009651b1d3a8e1e73bbd1","_shrinkwrap":null,"_id":"component-bind@1.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/79/24/ee716b0ca52b95c7076cd219e60bdefaeb53643a73b5c28cd7b2ec2cf5ae b/data_node_red/.npm/_cacache/index-v5/79/24/ee716b0ca52b95c7076cd219e60bdefaeb53643a73b5c28cd7b2ec2cf5ae new file mode 100644 index 0000000..b7dceb8 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/79/24/ee716b0ca52b95c7076cd219e60bdefaeb53643a73b5c28cd7b2ec2cf5ae @@ -0,0 +1,2 @@ + +c5e20ed7e72faedd037bd8f3ef9c61e60889db93 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz","integrity":"sha512-I9WqrlHG/QZN0LVaomZNwu2vXj/2D6yvsifT8+sbHzofzQDviqEO9dEKEE2RRf6HL7bYpYKlHlx78m5r2fwksg==","time":1627492720758,"size":345514,"metadata":{"url":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["97f63fc8736349ad"],"referer":["install node-red-node-ui-table@0.3.11"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:node-red-node-ui-table@https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz"]},"resHeaders":{"date":["Wed, 28 Jul 2021 17:18:40 GMT"],"content-type":["application/octet-stream"],"content-length":["345514"],"connection":["keep-alive"],"cf-ray":["675fc49b1a5e08e5-EZE"],"accept-ranges":["bytes"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"5d4f9a8c0d76fdbe41e58ed36a6bf297\""],"last-modified":["Thu, 08 Jul 2021 07:31:27 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["MISS"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/79/55/ae87e4d64c0be80739984ea51aae2617ab9224134e42f3a7a43d2e72674b b/data_node_red/.npm/_cacache/index-v5/79/55/ae87e4d64c0be80739984ea51aae2617ab9224134e42f3a7a43d2e72674b new file mode 100644 index 0000000..91ebbe4 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/79/55/ae87e4d64c0be80739984ea51aae2617ab9224134e42f3a7a43d2e72674b @@ -0,0 +1,2 @@ + +3b7a76779f33db82b18dc5e36dae7d8e5510bb07 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz","integrity":"sha512-+h4av8LpGxxqVIGwv97kUvra8A/KqT6kIpZD0fEI7tjmgYujUABiAMh+QKCJRkqgT/kSB76B1M6g69kcMAEMnA==","time":1623764838301,"size":4448,"metadata":{"url":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:node-red-node-mysql@https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["4448"],"connection":["keep-alive"],"cf-ray":["65fc3fdeefcf08b8-EZE"],"accept-ranges":["bytes"],"age":["10024"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"9b9527dbc6646f6052684eef1457565e\""],"last-modified":["Sun, 09 May 2021 21:02:32 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1863f55000008b8a3a5b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/79/e4/91955ecd05880c316e8690b1ef9fb5840c478855816b347289ac5067dde2 b/data_node_red/.npm/_cacache/index-v5/79/e4/91955ecd05880c316e8690b1ef9fb5840c478855816b347289ac5067dde2 new file mode 100644 index 0000000..2e28fb7 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/79/e4/91955ecd05880c316e8690b1ef9fb5840c478855816b347289ac5067dde2 @@ -0,0 +1,2 @@ + +ff1fbd8269da52e01b0facd33a4d96d3571a0a83 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz","integrity":"sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=","time":1623764838931,"size":6330,"metadata":{"url":"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:sqlstring@https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/octet-stream"],"content-length":["6330"],"connection":["keep-alive"],"cf-ray":["65fc3fe2bdcd08c0-EZE"],"accept-ranges":["bytes"],"age":["19942117"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"bb1cd62211ce873d1c569ae3085ba715\""],"last-modified":["Sun, 27 May 2018 18:05:44 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18641b7000008c0e813b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/7a/83/6be996e7250adf9a97984c85c3a7d3c22c795ce5321c44d257e053fd7442 b/data_node_red/.npm/_cacache/index-v5/7a/83/6be996e7250adf9a97984c85c3a7d3c22c795ce5321c44d257e053fd7442 new file mode 100644 index 0000000..4394462 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/7a/83/6be996e7250adf9a97984c85c3a7d3c22c795ce5321c44d257e053fd7442 @@ -0,0 +1,2 @@ + +a394e1297b41e30430b38501855ee08820f051ed {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/http-errors","integrity":"sha512-rS9la125n7ugmE9WW7jFPh2tuIq7lCnGT9vlaBKgoZshPK8+S283BpuI7nIT5nwMDE9rp5G9/eGs79o5Ht8AIw==","time":1623764914886,"size":16402,"metadata":{"url":"https://registry.npmjs.org/http-errors","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:http-errors"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["16402"],"connection":["keep-alive"],"cf-ray":["65fc41bd7dde08f9-EZE"],"accept-ranges":["bytes"],"age":["1747"],"cache-control":["public, max-age=300"],"etag":["\"81ebb3149ed82d1803fef30b464351f3\""],"last-modified":["Mon, 29 Jun 2020 05:41:20 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a6d000008f984191000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/7d/db/f4f425498ed40ffcbfae955431cea0a4013d561541f6a7e5892b64bffb61 b/data_node_red/.npm/_cacache/index-v5/7d/db/f4f425498ed40ffcbfae955431cea0a4013d561541f6a7e5892b64bffb61 new file mode 100644 index 0000000..59d7a61 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/7d/db/f4f425498ed40ffcbfae955431cea0a4013d561541f6a7e5892b64bffb61 @@ -0,0 +1,2 @@ + +b4af063b856708fc81cd9bbb27a415355585166c {"key":"pacote:version-manifest:https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz:sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916398,"size":1,"metadata":{"id":"base64-arraybuffer@0.1.4","manifest":{"name":"base64-arraybuffer","version":"0.1.4","engines":{"node":">= 0.6.0"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"grunt":"^0.4.5","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-watch":"^0.6.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz","_integrity":"sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=","_shasum":"9818c79e059b1355f97e0428a017c838e90ba812","_shrinkwrap":null,"_id":"base64-arraybuffer@0.1.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/7d/e8/5446c5cdae0493e4ad3b10347b77c8df4b17b5fbe14834f5c6b06faa9f95 b/data_node_red/.npm/_cacache/index-v5/7d/e8/5446c5cdae0493e4ad3b10347b77c8df4b17b5fbe14834f5c6b06faa9f95 new file mode 100644 index 0000000..659a8aa --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/7d/e8/5446c5cdae0493e4ad3b10347b77c8df4b17b5fbe14834f5c6b06faa9f95 @@ -0,0 +1,2 @@ + +0ca808400976b282e5377199b7261b367390aa05 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ws","integrity":"sha512-ZFRZO789CVydSK2JducHNM6h+VTj+s47vnDYuoK60D9P6e3MDrRT1552LOiWIpMPxXwDpIAkxBCiel4BS7uXzg==","time":1623764916126,"size":91576,"metadata":{"url":"https://registry.npmjs.org/ws","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:ws"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["91576"],"connection":["keep-alive"],"cf-ray":["65fc41c54c8908fd-EZE"],"accept-ranges":["bytes"],"age":["1117"],"cache-control":["public, max-age=300"],"etag":["\"d52303c6d66c5066335cce522696f06c\""],"last-modified":["Tue, 08 Jun 2021 19:31:18 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876f50000008fdc3886000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/7f/c3/dc0657b650edb6ea8e350ae8c6dd6cee5ca84fcc91d9d0b666cf225a139b b/data_node_red/.npm/_cacache/index-v5/7f/c3/dc0657b650edb6ea8e350ae8c6dd6cee5ca84fcc91d9d0b666cf225a139b new file mode 100644 index 0000000..59a7843 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/7f/c3/dc0657b650edb6ea8e350ae8c6dd6cee5ca84fcc91d9d0b666cf225a139b @@ -0,0 +1,2 @@ + +d52a2d87f8ec87a277d1eb918442ceaf28de611d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ms","integrity":"sha512-qfL2q9NkGFH2c9lS7SDgk+97Z/ITQNRUhzWpFc069HVMiiAPqNUEOt2xfp4btLjn3adNUh5L81qMXTHibJOHUA==","time":1623764914043,"size":6986,"metadata":{"url":"https://registry.npmjs.org/ms","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:ms"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["6986"],"connection":["keep-alive"],"cf-ray":["65fc41b87e4b08d9-EZE"],"accept-ranges":["bytes"],"age":["3672"],"cache-control":["public, max-age=300"],"etag":["\"aeeb8d70007e6b00b84812ead0079403\""],"last-modified":["Fri, 11 Jun 2021 15:28:52 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187674f000008d9349ed000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/81/98/a9cdc47392bcd6229857e2ff6be37d617be278a9907afcec546d550a6dfc b/data_node_red/.npm/_cacache/index-v5/81/98/a9cdc47392bcd6229857e2ff6be37d617be278a9907afcec546d550a6dfc new file mode 100644 index 0000000..bf1d7af --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/81/98/a9cdc47392bcd6229857e2ff6be37d617be278a9907afcec546d550a6dfc @@ -0,0 +1,2 @@ + +e7f610cf8a27b0cd5684c2d3364e05ce9c4d701a {"key":"pacote:version-manifest:https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz:sha1-MasayLEpNjRj41s+u2n038+6eUc=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917035,"size":1,"metadata":{"id":"backo2@1.0.2","manifest":{"name":"backo2","version":"1.0.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"*","should":"*"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz","_integrity":"sha1-MasayLEpNjRj41s+u2n038+6eUc=","_shasum":"31ab1ac8b129363463e35b3ebb69f4dfcfba7947","_shrinkwrap":null,"_id":"backo2@1.0.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/82/1f/bc6ddfe7826874158ab240154ebbd8569ff129493af149bcc64cca3537c1 b/data_node_red/.npm/_cacache/index-v5/82/1f/bc6ddfe7826874158ab240154ebbd8569ff129493af149bcc64cca3537c1 new file mode 100644 index 0000000..b840055 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/82/1f/bc6ddfe7826874158ab240154ebbd8569ff129493af149bcc64cca3537c1 @@ -0,0 +1,2 @@ + +6f8a6fa3718408249932bbda3afda0f0c11b14b0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","integrity":"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=","time":1623764913634,"size":3772,"metadata":{"url":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:vary@https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["3772"],"connection":["keep-alive"],"cf-ray":["65fc41b5df7408f5-EZE"],"accept-ranges":["bytes"],"age":["1986108"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"b571ab240474977c792dd29d4f812ca3\""],"last-modified":["Sun, 27 May 2018 20:45:37 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18765ac000008f5bfa6c000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/82/f4/7e803dac6b1950d64dd4952fdd1e7ada0ef2539086acc7a88ca9fe1a3f38 b/data_node_red/.npm/_cacache/index-v5/82/f4/7e803dac6b1950d64dd4952fdd1e7ada0ef2539086acc7a88ca9fe1a3f38 new file mode 100644 index 0000000..8ca7308 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/82/f4/7e803dac6b1950d64dd4952fdd1e7ada0ef2539086acc7a88ca9fe1a3f38 @@ -0,0 +1,2 @@ + +9550b8746f0d8ff58045c1c249f52640725001f7 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz","integrity":"sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=","time":1623764917008,"size":1321,"metadata":{"url":"https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:component-bind@https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["1321"],"connection":["keep-alive"],"cf-ray":["65fc41cade9d08f9-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"d917775c762e42325d4dbcded7e0d057\""],"last-modified":["Sat, 26 May 2018 20:24:17 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772cc000008f920126000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/85/de/a85eb8ab69de91c2b063293386caace8256186f89dbb465f946885be4ff9 b/data_node_red/.npm/_cacache/index-v5/85/de/a85eb8ab69de91c2b063293386caace8256186f89dbb465f946885be4ff9 new file mode 100644 index 0000000..4a6cf9a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/85/de/a85eb8ab69de91c2b063293386caace8256186f89dbb465f946885be4ff9 @@ -0,0 +1,2 @@ + +05471c2949b410603e66ad66b5470768cf6bf648 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/gridstack","integrity":"sha512-T2xzkVQy3cSyQk2XoJJVNS6Mq0Uabf0LXWvbRT3sHmCyjORhBgDzWx+Y/4CpAt8fk2kAU1RnDy2wa/TEaqnBkw==","time":1623764913060,"size":99067,"metadata":{"url":"https://registry.npmjs.org/gridstack","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:gridstack"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["99067"],"connection":["keep-alive"],"cf-ray":["65fc41b1eaa408d9-EZE"],"accept-ranges":["bytes"],"age":["7123"],"cache-control":["public, max-age=300"],"etag":["\"fc6792ccb5655305631d8a3349fcb261\""],"last-modified":["Mon, 31 May 2021 14:53:33 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187632e000008d9fdb15000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/86/20/cfc5738536015e4c701639358f0f03856856ef2771efa60a46b9278b593e b/data_node_red/.npm/_cacache/index-v5/86/20/cfc5738536015e4c701639358f0f03856856ef2771efa60a46b9278b593e new file mode 100644 index 0000000..9d4ce0d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/86/20/cfc5738536015e4c701639358f0f03856856ef2771efa60a46b9278b593e @@ -0,0 +1,2 @@ + +e3824c1a66a07efaf5b7fb808ca64a312f82490b {"key":"pacote:range-manifest:https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz:sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916396,"size":1,"metadata":{"id":"arraybuffer.slice@0.0.7","manifest":{"name":"arraybuffer.slice","version":"0.0.7","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz","_integrity":"sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==","_shasum":"3bbc4275dd584cc1b10809b89d4e8b63a69e7675","_shrinkwrap":null,"_id":"arraybuffer.slice@0.0.7"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/86/26/564d3b09ad58ce5f599ffc5acf6c5c083d420c384fab173d7739199a8d63 b/data_node_red/.npm/_cacache/index-v5/86/26/564d3b09ad58ce5f599ffc5acf6c5c083d420c384fab173d7739199a8d63 new file mode 100644 index 0000000..389629c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/86/26/564d3b09ad58ce5f599ffc5acf6c5c083d420c384fab173d7739199a8d63 @@ -0,0 +1,2 @@ + +516162f1053a0ba5f2640fefd2c76641c392b27b {"key":"pacote:version-manifest:https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz:sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915368,"size":1,"metadata":{"id":"setprototypeof@1.1.1","manifest":{"name":"setprototypeof","version":"1.1.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"^5.2.0","standard":"^12.0.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","_integrity":"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==","_shasum":"7e95acb24aa92f5885e0abef5ba131330d4ae683","_shrinkwrap":null,"_id":"setprototypeof@1.1.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/88/5c/1235bd51fed105a3b0212c9cecd0b76a5a88bed266b5d3931e39f48ce470 b/data_node_red/.npm/_cacache/index-v5/88/5c/1235bd51fed105a3b0212c9cecd0b76a5a88bed266b5d3931e39f48ce470 new file mode 100644 index 0000000..cc9a323 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/88/5c/1235bd51fed105a3b0212c9cecd0b76a5a88bed266b5d3931e39f48ce470 @@ -0,0 +1,2 @@ + +b194660022dd26584f48ec669213b591188081bb {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz","integrity":"sha512-8fdkrEgOJ0Cvkgw9a0BhnIFZ/8GAXQSvdLVVkrTgRSWMWJ/FHDwLyqEjeqfXRbFuzIfhT5fd2c7AXAS2vovpFw==","time":1627653652205,"size":7943,"metadata":{"url":"https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["73e396fb59b8d06c"],"referer":["install node-red-node-ping@0.3.1"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:node-red-node-ping@https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz"]},"resHeaders":{"date":["Fri, 30 Jul 2021 14:00:52 GMT"],"content-type":["application/octet-stream"],"content-length":["7943"],"connection":["keep-alive"],"cf-ray":["676f1d9ddaa308e5-EZE"],"accept-ranges":["bytes"],"age":["75354"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"9bcd3d0696caf680f165897acd316b74\""],"last-modified":["Thu, 08 Apr 2021 16:07:56 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/8a/3d/d3ea4d92d91ac1dc76b6ad174e8a28cd1edaf219a12ff19bf3d852b275e6 b/data_node_red/.npm/_cacache/index-v5/8a/3d/d3ea4d92d91ac1dc76b6ad174e8a28cd1edaf219a12ff19bf3d852b275e6 new file mode 100644 index 0000000..c955481 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/8a/3d/d3ea4d92d91ac1dc76b6ad174e8a28cd1edaf219a12ff19bf3d852b275e6 @@ -0,0 +1,2 @@ + +827a7796a2daefb066c4f8ce0e834bb7c88c49b7 {"key":"pacote:range-manifest:https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz:sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839345,"size":1,"metadata":{"id":"util-deprecate@1.0.2","manifest":{"name":"util-deprecate","version":"1.0.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","_integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=","_shasum":"450d4dc9fa70de732762fbd2d4a28981419a0ccf","_shrinkwrap":null,"_id":"util-deprecate@1.0.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/8b/13/6fa1a537142a270024f4b5610c19fa304cefd38be62f1ac225367f83a95d b/data_node_red/.npm/_cacache/index-v5/8b/13/6fa1a537142a270024f4b5610c19fa304cefd38be62f1ac225367f83a95d new file mode 100644 index 0000000..6a2a810 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/8b/13/6fa1a537142a270024f4b5610c19fa304cefd38be62f1ac225367f83a95d @@ -0,0 +1,2 @@ + +54e37ca76d9140486b655aaaf333ded0992bb98d {"key":"pacote:range-manifest:https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz:sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839266,"size":1,"metadata":{"id":"isarray@1.0.0","manifest":{"name":"isarray","version":"1.0.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tape":"~2.13.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","_integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=","_shasum":"bb935d48582cba168c06834957a54a3e07124f11","_shrinkwrap":null,"_id":"isarray@1.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/8b/31/bc01d265bae3ca83af69c0d83a12d6131c1075830ffa93b7ea52768a7363 b/data_node_red/.npm/_cacache/index-v5/8b/31/bc01d265bae3ca83af69c0d83a12d6131c1075830ffa93b7ea52768a7363 new file mode 100644 index 0000000..5211dd0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/8b/31/bc01d265bae3ca83af69c0d83a12d6131c1075830ffa93b7ea52768a7363 @@ -0,0 +1,2 @@ + +50fe7be9758a557265c96a0a369dd2a0b515073d {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io","integrity":"sha512-K09EOq/QnPNuMW/Q2x+oOCy04bdg5OYqH4pjPyfuRCFB3iE26XTMM3PJD0JrF1yY52lp/hPdeU3EfZgupNl9mg==","time":1623764915659,"size":82410,"metadata":{"url":"https://registry.npmjs.org/engine.io","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:engine.io"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["82410"],"connection":["keep-alive"],"cf-ray":["65fc41c24c6608b8-EZE"],"accept-ranges":["bytes"],"age":["3952"],"cache-control":["public, max-age=300"],"etag":["\"b2aeda50510c7b591504e07cbb6b4121\""],"last-modified":["Sun, 16 May 2021 22:32:08 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d6b000008b8c010c000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/8f/24/8f14e1b233fafd463e3cc81f71ac8951e995c0e0dafcf29c51d540815c17 b/data_node_red/.npm/_cacache/index-v5/8f/24/8f14e1b233fafd463e3cc81f71ac8951e995c0e0dafcf29c51d540815c17 new file mode 100644 index 0000000..1a332de --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/8f/24/8f14e1b233fafd463e3cc81f71ac8951e995c0e0dafcf29c51d540815c17 @@ -0,0 +1,2 @@ + +e8757bee68ea149889f36aca41edaffcdd17b27d {"key":"pacote:version-manifest:https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz:sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915072,"size":1,"metadata":{"id":"fresh@0.5.2","manifest":{"name":"fresh","version":"0.5.2","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"3.19.0","eslint-config-standard":"10.2.1","eslint-plugin-import":"2.7.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"5.1.1","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz","_integrity":"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=","_shasum":"3d8cadd90d976569fa835ab1f8e4b23a105605a7","_shrinkwrap":null,"_id":"fresh@0.5.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/90/81/b282fc65fba2629a78ffb2c85ff35c7028db687a67d0498adaaa3f3215c1 b/data_node_red/.npm/_cacache/index-v5/90/81/b282fc65fba2629a78ffb2c85ff35c7028db687a67d0498adaaa3f3215c1 new file mode 100644 index 0000000..3aec8c3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/90/81/b282fc65fba2629a78ffb2c85ff35c7028db687a67d0498adaaa3f3215c1 @@ -0,0 +1,2 @@ + +77a25d2607abb95601e35c87b65579f9b6ce0b9a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/depd","integrity":"sha512-4LnpbjdJ7Aia2yIhzsT7YFDSNUEVWhe/86Ht3cEAtvX2HpV81Cy1rWTq0sU9ujYWVGoahyyL4FoJZZCjs7CzJg==","time":1623764914898,"size":6665,"metadata":{"url":"https://registry.npmjs.org/depd","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:depd"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["6665"],"connection":["keep-alive"],"cf-ray":["65fc41bd7d1e08d9-EZE"],"accept-ranges":["bytes"],"age":["1826"],"cache-control":["public, max-age=300"],"etag":["\"3055d66bc6287feed9c71c3a2464dde1\""],"last-modified":["Fri, 14 Feb 2020 09:38:56 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a69000008d907b85000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/92/82/38ae20c605cd6ae3e12b6042078142dde1d1a3782b7bf0a86584d109a53d b/data_node_red/.npm/_cacache/index-v5/92/82/38ae20c605cd6ae3e12b6042078142dde1d1a3782b7bf0a86584d109a53d new file mode 100644 index 0000000..9c003dc --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/92/82/38ae20c605cd6ae3e12b6042078142dde1d1a3782b7bf0a86584d109a53d @@ -0,0 +1,2 @@ + +68a0aeb1959227631a08b2a0f2e492b1a54ecd11 {"key":"pacote:version-manifest:https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz:sha512-I9WqrlHG/QZN0LVaomZNwu2vXj/2D6yvsifT8+sbHzofzQDviqEO9dEKEE2RRf6HL7bYpYKlHlx78m5r2fwksg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1627492720770,"size":1,"metadata":{"id":"node-red-node-ui-table@0.3.11","manifest":{"name":"node-red-node-ui-table","version":"0.3.11","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{"node-red-dashboard":">2.16.0"},"deprecated":false,"_resolved":"https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz","_integrity":"sha512-I9WqrlHG/QZN0LVaomZNwu2vXj/2D6yvsifT8+sbHzofzQDviqEO9dEKEE2RRf6HL7bYpYKlHlx78m5r2fwksg==","_shasum":"7b66ebbc4dcddd92c31e757b73b356fedcba421f","_shrinkwrap":null,"_id":"node-red-node-ui-table@0.3.11"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/93/c9/a0dbbd75ae853d67c5f17925e577e7c57bbe2b2ab879ccf8537edd7bad8f b/data_node_red/.npm/_cacache/index-v5/93/c9/a0dbbd75ae853d67c5f17925e577e7c57bbe2b2ab879ccf8537edd7bad8f new file mode 100644 index 0000000..b567a0d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/93/c9/a0dbbd75ae853d67c5f17925e577e7c57bbe2b2ab879ccf8537edd7bad8f @@ -0,0 +1,2 @@ + +0b04e811a823b020380af84952b175d5ba1e8d93 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/process-nextick-args","integrity":"sha512-GHp7jy2dDUlca8TCPCDbqO0In8lpNbrlKfEetLDKEq/kAHZgQ86Mz3UFuMKkl8monr2gFON+H+rykyxuzszAcg==","time":1623764839101,"size":3770,"metadata":{"url":"https://registry.npmjs.org/process-nextick-args","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:process-nextick-args"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3770"],"connection":["keep-alive"],"cf-ray":["65fc3fe3ed7008d9-EZE"],"accept-ranges":["bytes"],"age":["1167"],"cache-control":["public, max-age=300"],"etag":["\"c01c0e705a43b968aec931351cacc276\""],"last-modified":["Sat, 15 Feb 2020 09:14:20 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864275000008d9ff2b2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/95/b4/7782f9643c1df3856099543ca69548139a0d25926e974fb159b12cc43588 b/data_node_red/.npm/_cacache/index-v5/95/b4/7782f9643c1df3856099543ca69548139a0d25926e974fb159b12cc43588 new file mode 100644 index 0000000..76e916e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/95/b4/7782f9643c1df3856099543ca69548139a0d25926e974fb159b12cc43588 @@ -0,0 +1,2 @@ + +5b49e2ba6ba1b0428b554e40ba121e1cb0735565 {"key":"pacote:range-manifest:https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz:sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913535,"size":1,"metadata":{"id":"compressible@2.0.18","manifest":{"name":"compressible","version":"2.0.18","engines":{"node":">= 0.6"},"dependencies":{"mime-db":">= 1.43.0 < 2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"6.8.0","eslint-config-standard":"14.1.0","eslint-plugin-import":"2.19.1","eslint-plugin-markdown":"1.0.1","eslint-plugin-node":"11.0.0","eslint-plugin-promise":"4.2.1","eslint-plugin-standard":"4.0.1","mocha":"7.0.0","nyc":"15.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz","_integrity":"sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==","_shasum":"af53cca6b070d4c3c0750fbd77286a6d7cc46fba","_shrinkwrap":null,"_id":"compressible@2.0.18"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/96/c5/cfd4f290453cd7201716a3217433fe76e994d06ad3a598a6ab5772d5280f b/data_node_red/.npm/_cacache/index-v5/96/c5/cfd4f290453cd7201716a3217433fe76e994d06ad3a598a6ab5772d5280f new file mode 100644 index 0000000..f89a181 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/96/c5/cfd4f290453cd7201716a3217433fe76e994d06ad3a598a6ab5772d5280f @@ -0,0 +1,2 @@ + +07f5b2208cee5643d24a9725e8e9397f6655294a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/range-parser","integrity":"sha512-M+QGkDQpYfLDJfRBYX8Z0cTB2fKHnmNoJdP4fHAqqBjrcwP7BZirPX/nGDyxgOSIEWc2hPy8f7ZBVXNV/FmMMg==","time":1623764914977,"size":4488,"metadata":{"url":"https://registry.npmjs.org/range-parser","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:range-parser"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4488"],"connection":["keep-alive"],"cf-ray":["65fc41be0dfe08fd-EZE"],"accept-ranges":["bytes"],"age":["1739"],"cache-control":["public, max-age=300"],"etag":["\"6be1f2b790e5c8602dee13f13ae6e198\""],"last-modified":["Sat, 15 Feb 2020 10:04:42 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876ac5000008fda6267000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/96/de/b2313c5680bb0f0473a3b6bb995b306a2d95a396f87105cfd22ee08be398 b/data_node_red/.npm/_cacache/index-v5/96/de/b2313c5680bb0f0473a3b6bb995b306a2d95a396f87105cfd22ee08be398 new file mode 100644 index 0000000..9ad8eac --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/96/de/b2313c5680bb0f0473a3b6bb995b306a2d95a396f87105cfd22ee08be398 @@ -0,0 +1,2 @@ + +8bdcf74a18ba8c208a7f425dbeb0badb8fb571fa {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-dashboard","integrity":"sha512-3eOWrf2HAQYk81CpHnBugWPcIP/4owmXK7ccQFFM1X5CCMeGEjom1AjwOgJ4717fLynkWibfp25JVpzNfv5PHA==","time":1623764912309,"size":196432,"metadata":{"url":"https://registry.npmjs.org/node-red-dashboard","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:node-red-dashboard"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["196432"],"connection":["keep-alive"],"cf-ray":["65fc41acdbb508c0-EZE"],"accept-ranges":["bytes"],"age":["7134"],"cache-control":["public, max-age=300"],"etag":["\"56ce169e896c82ff2efe955c7b7473b5\""],"last-modified":["Sat, 12 Jun 2021 15:47:19 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876008000008c0e8349000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/99/7b/bb864e5ee467386404b7d703d97a34d09b8b19dadefbcc14f2414db1c0f3 b/data_node_red/.npm/_cacache/index-v5/99/7b/bb864e5ee467386404b7d703d97a34d09b8b19dadefbcc14f2414db1c0f3 new file mode 100644 index 0000000..b43c91a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/99/7b/bb864e5ee467386404b7d703d97a34d09b8b19dadefbcc14f2414db1c0f3 @@ -0,0 +1,2 @@ + +81607ce6e4e2588d8455d2709364bf90666ea776 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/on-finished","integrity":"sha512-4XJu5hnWcmqHeG882JKltLIVFz1DxCEFns8Bw0w0ti/fChBu1SnwD/eqwWLOKwsDMfImpaRCdZlEXYBJWStEvw==","time":1623764914930,"size":1879,"metadata":{"url":"https://registry.npmjs.org/on-finished","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:on-finished"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1879"],"connection":["keep-alive"],"cf-ray":["65fc41bdde8708d9-EZE"],"accept-ranges":["bytes"],"age":["6267"],"cache-control":["public, max-age=300"],"etag":["\"e5bc164017e18ac14ab2505dc4962c23\""],"last-modified":["Sat, 15 Feb 2020 07:28:50 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876aa4000008d90e245000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/9f/da/f7ae5128341e8be6a414b2ff18919cb6c0b5e5392b7fe3b66b26448cf68a b/data_node_red/.npm/_cacache/index-v5/9f/da/f7ae5128341e8be6a414b2ff18919cb6c0b5e5392b7fe3b66b26448cf68a new file mode 100644 index 0000000..6d3832f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/9f/da/f7ae5128341e8be6a414b2ff18919cb6c0b5e5392b7fe3b66b26448cf68a @@ -0,0 +1,2 @@ + +1738c22bc8bbab2b762c471968b640541d2efea3 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","integrity":"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=","time":1623764914673,"size":1917,"metadata":{"url":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:escape-html@https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["1917"],"connection":["keep-alive"],"cf-ray":["65fc41bbb94608b8-EZE"],"accept-ranges":["bytes"],"age":["1987421"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0e644d0c31d5f4c2eeeaef9566add5e9\""],"last-modified":["Sat, 26 May 2018 23:42:58 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876965000008b8e48b7000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a0/c6/040205eebe8a1469c51bd2cf204508de0c8c99d31041c9481a8f7a10adb3 b/data_node_red/.npm/_cacache/index-v5/a0/c6/040205eebe8a1469c51bd2cf204508de0c8c99d31041c9481a8f7a10adb3 new file mode 100644 index 0000000..41911a6 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a0/c6/040205eebe8a1469c51bd2cf204508de0c8c99d31041c9481a8f7a10adb3 @@ -0,0 +1,2 @@ + +a015f1b1a5bf89e76093a5e463ab3ea4b6af5338 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/debug","integrity":"sha512-pIV8Z+1SznCSXpZzv+PKXcLc2T4qa4o9RVKhSLl998qOanFXaAJOFxImLshTrFTmNm9zxZC4tW+3BIypGvq1lA==","time":1623764913403,"size":48597,"metadata":{"url":"https://registry.npmjs.org/debug","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:debug"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["48597"],"connection":["keep-alive"],"cf-ray":["65fc41b46a6008d9-EZE"],"accept-ranges":["bytes"],"age":["217"],"cache-control":["public, max-age=300"],"etag":["\"d3aeb29a7908b103880dcdecc338dc84\""],"last-modified":["Fri, 16 Apr 2021 13:52:46 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18764bf000008d92d1e8000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a3/ae/2ccb5f819fbbf05ce2c91ae15319c019e2ff1c15db704863d975efbba2a2 b/data_node_red/.npm/_cacache/index-v5/a3/ae/2ccb5f819fbbf05ce2c91ae15319c019e2ff1c15db704863d975efbba2a2 new file mode 100644 index 0000000..db7ba0e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a3/ae/2ccb5f819fbbf05ce2c91ae15319c019e2ff1c15db704863d975efbba2a2 @@ -0,0 +1,2 @@ + +3514077ac39f5cb1d5f8d10a6308c949f82d2838 {"key":"pacote:version-manifest:https://registry.npmjs.org/blob/-/blob-0.0.5.tgz:sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916446,"size":1,"metadata":{"id":"blob@0.0.5","manifest":{"name":"blob","version":"0.0.5","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"1.17.1","expect.js":"0.2.0","zuul":"1.10.2","browserify":"4.2.3"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/blob/-/blob-0.0.5.tgz","_integrity":"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==","_shasum":"d680eeef25f8cd91ad533f5b01eed48e64caf683","_shrinkwrap":null,"_id":"blob@0.0.5"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a4/73/2ff9bb0ed5ce6e72f49eb72d970df3a0bc292ccdfc3547bb9655fa55519a b/data_node_red/.npm/_cacache/index-v5/a4/73/2ff9bb0ed5ce6e72f49eb72d970df3a0bc292ccdfc3547bb9655fa55519a new file mode 100644 index 0000000..4464004 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a4/73/2ff9bb0ed5ce6e72f49eb72d970df3a0bc292ccdfc3547bb9655fa55519a @@ -0,0 +1,2 @@ + +629693e81bc7c7e7f3afbdc475101b6f6763efc0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz","integrity":"sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==","time":1623764915836,"size":21029,"metadata":{"url":"https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:engine.io@https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["21029"],"connection":["keep-alive"],"cf-ray":["65fc41c35f4b08f9-EZE"],"accept-ranges":["bytes"],"age":["1982926"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"ccae3dd585655b159ad7800c0233d9be\""],"last-modified":["Wed, 30 Dec 2020 08:52:13 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876e1b000008f9309a1000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a4/e1/a8f08f97dd2aea1537e74712a3a10819ca0bdabfa861b2ed1e83987f3f7a b/data_node_red/.npm/_cacache/index-v5/a4/e1/a8f08f97dd2aea1537e74712a3a10819ca0bdabfa861b2ed1e83987f3f7a new file mode 100644 index 0000000..7083913 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a4/e1/a8f08f97dd2aea1537e74712a3a10819ca0bdabfa861b2ed1e83987f3f7a @@ -0,0 +1,2 @@ + +8db1df24de86ff6608bef864de642f5044771e29 {"key":"pacote:version-manifest:https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz:sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913969,"size":1,"metadata":{"id":"mime-db@1.48.0","manifest":{"name":"mime-db","version":"1.48.0","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"bluebird":"3.7.2","co":"4.6.0","cogent":"1.0.1","csv-parse":"4.15.4","eslint":"7.27.0","eslint-config-standard":"15.0.1","eslint-plugin-import":"2.23.4","eslint-plugin-markdown":"2.2.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.1.0","eslint-plugin-standard":"4.1.0","gnode":"0.1.2","mocha":"8.4.0","nyc":"15.1.0","raw-body":"2.4.1","stream-to-array":"2.3.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz","_integrity":"sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==","_shasum":"e35b31045dd7eada3aaad537ed88a33afbef2d1d","_shrinkwrap":null,"_id":"mime-db@1.48.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a5/8e/ba4e23e3ee6516fc20e94d62be57e0a89ed21cfaa275fa3883383cdc0e75 b/data_node_red/.npm/_cacache/index-v5/a5/8e/ba4e23e3ee6516fc20e94d62be57e0a89ed21cfaa275fa3883383cdc0e75 new file mode 100644 index 0000000..73fa59e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a5/8e/ba4e23e3ee6516fc20e94d62be57e0a89ed21cfaa275fa3883383cdc0e75 @@ -0,0 +1,2 @@ + +84b5f456dff7488b9aae1e038a0676dfdc060fb5 {"key":"pacote:range-manifest:https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz:sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915170,"size":1,"metadata":{"id":"destroy@1.0.4","manifest":{"name":"destroy","version":"1.0.4","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"istanbul":"0.4.2","mocha":"2.3.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz","_integrity":"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=","_shasum":"978857442c44749e4206613e37946205826abd80","_shrinkwrap":null,"_id":"destroy@1.0.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a6/2c/4b4723dcd80be479aba62cbbb953e06424a87820b5d5674c14f4dc9a9bcf b/data_node_red/.npm/_cacache/index-v5/a6/2c/4b4723dcd80be479aba62cbbb953e06424a87820b5d5674c14f4dc9a9bcf new file mode 100644 index 0000000..98f144e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a6/2c/4b4723dcd80be479aba62cbbb953e06424a87820b5d5674c14f4dc9a9bcf @@ -0,0 +1,2 @@ + +792a7da6ecbd279dcc89601345fd69a413b2e433 {"key":"pacote:range-manifest:https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz:sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915900,"size":1,"metadata":{"id":"socket.io-parser@3.4.1","manifest":{"name":"socket.io-parser","version":"3.4.1","dependencies":{"debug":"~4.1.0","component-emitter":"1.2.1","isarray":"2.0.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"@babel/core":"~7.9.6","@babel/preset-env":"~7.9.6","babelify":"~10.0.0","benchmark":"2.1.2","expect.js":"0.3.1","mocha":"3.2.0","socket.io-browsers":"^1.0.0","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz","_integrity":"sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==","_shasum":"b06af838302975837eab2dc980037da24054d64a","_shrinkwrap":null,"_id":"socket.io-parser@3.4.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a6/f8/8dba7bb60250ce43d2546e3db2fe8c0f1bf4383294e5fb43a6c8545a400d b/data_node_red/.npm/_cacache/index-v5/a6/f8/8dba7bb60250ce43d2546e3db2fe8c0f1bf4383294e5fb43a6c8545a400d new file mode 100644 index 0000000..9fdfd3a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a6/f8/8dba7bb60250ce43d2546e3db2fe8c0f1bf4383294e5fb43a6c8545a400d @@ -0,0 +1,2 @@ + +013e61fa62f417ed0e672f9aa751c35557402cad {"key":"pacote:version-manifest:https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz:sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915358,"size":1,"metadata":{"id":"toidentifier@1.0.0","manifest":{"name":"toidentifier","version":"1.0.0","engines":{"node":">=0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.11.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.7.0","eslint-plugin-standard":"3.1.0","mocha":"1.21.5","nyc":"11.8.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","_integrity":"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==","_shasum":"7e1be3470f1e77948bc43d94a3c8f4d7752ba553","_shrinkwrap":null,"_id":"toidentifier@1.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a7/02/2a512783001403565cf7460ec142510337da7589c82f0d17b3f0c10f204a b/data_node_red/.npm/_cacache/index-v5/a7/02/2a512783001403565cf7460ec142510337da7589c82f0d17b3f0c10f204a new file mode 100644 index 0000000..024ab9f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a7/02/2a512783001403565cf7460ec142510337da7589c82f0d17b3f0c10f204a @@ -0,0 +1,2 @@ + +d3b1aee1a1d2dc93c5880eb5273ed7febffdfad1 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/on-headers","integrity":"sha512-/DLH7n+zPmxJAVBHXx63MhZPfzL3HNvOGXBL8J+oulyIB8ZCgooMAAqBg8BhOQQkJC2wOwOq3WY9Zh4+JbV+8Q==","time":1623764913538,"size":2504,"metadata":{"url":"https://registry.npmjs.org/on-headers","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:on-headers"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2504"],"connection":["keep-alive"],"cf-ray":["65fc41b50b8b08f9-EZE"],"accept-ranges":["bytes"],"age":["6261"],"cache-control":["public, max-age=300"],"etag":["\"49af7d4708150ca673dd1bf5aaf34347\""],"last-modified":["Sat, 15 Feb 2020 07:28:51 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876525000008f97f03d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a8/05/51f7f11ccb2610431fa0f8bffe1009c5dd10cf2ae7ab35699edaba44ff41 b/data_node_red/.npm/_cacache/index-v5/a8/05/51f7f11ccb2610431fa0f8bffe1009c5dd10cf2ae7ab35699edaba44ff41 new file mode 100644 index 0000000..c3097df --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a8/05/51f7f11ccb2610431fa0f8bffe1009c5dd10cf2ae7ab35699edaba44ff41 @@ -0,0 +1,2 @@ + +da8d672c7c21188422d7deebbc7cb5050432a753 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz","integrity":"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==","time":1623764916207,"size":6511,"metadata":{"url":"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:cookie@https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["6511"],"connection":["keep-alive"],"cf-ray":["65fc41c5df4308e1-EZE"],"accept-ranges":["bytes"],"age":["1985364"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"c3f143715326182bacc25f75bd62b7e5\""],"last-modified":["Wed, 22 Apr 2020 03:24:00 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876faa000008e16ca3b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a8/05/549b4a73b2df921cfb1da13a113057ce79598cbe5cb03dd6f46b3f8d97f1 b/data_node_red/.npm/_cacache/index-v5/a8/05/549b4a73b2df921cfb1da13a113057ce79598cbe5cb03dd6f46b3f8d97f1 new file mode 100644 index 0000000..8bbb4c0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a8/05/549b4a73b2df921cfb1da13a113057ce79598cbe5cb03dd6f46b3f8d97f1 @@ -0,0 +1,2 @@ + +d9632c48d682e66c3fefb2b3d51f4201d271c650 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/destroy","integrity":"sha512-7jekQ46sWTYHBJBuVsmKYn1tgY1uoE9ybUt5WgvXBDwkQseUGCpz1QeGUh443KrR4eBDxAwxJ5gT85tVjPxbRw==","time":1623764914866,"size":548,"metadata":{"url":"https://registry.npmjs.org/destroy","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:destroy"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["548"],"connection":["keep-alive"],"cf-ray":["65fc41bd7f2b08f5-EZE"],"accept-ranges":["bytes"],"age":["6260"],"cache-control":["public, max-age=300"],"etag":["\"e1bef873b4be399b333bd5b6c5e04e4b\""],"last-modified":["Fri, 14 Feb 2020 09:42:29 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a67000008f5e78cf000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/a8/0f/fc02bb0ac6515df00b3d80a5894687e166cdcb4ce2ec27609168d2d9c610 b/data_node_red/.npm/_cacache/index-v5/a8/0f/fc02bb0ac6515df00b3d80a5894687e166cdcb4ce2ec27609168d2d9c610 new file mode 100644 index 0000000..622143a --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/a8/0f/fc02bb0ac6515df00b3d80a5894687e166cdcb4ce2ec27609168d2d9c610 @@ -0,0 +1,2 @@ + +577ae8a88ee901235f41e56734783c9d4dff38f8 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","integrity":"sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","time":1623764915064,"size":5908,"metadata":{"url":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:http-errors@https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["5908"],"connection":["keep-alive"],"cf-ray":["65fc41be689f08f9-EZE"],"accept-ranges":["bytes"],"age":["1985356"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"2ddfa724affe5341be5bfd65ebd4ee79\""],"last-modified":["Mon, 24 Jun 2019 23:21:23 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b07000008f9773e0000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ab/a3/6abc84291759cb5b5ed9f06186f33ea909a68cd960206d57e16032623327 b/data_node_red/.npm/_cacache/index-v5/ab/a3/6abc84291759cb5b5ed9f06186f33ea909a68cd960206d57e16032623327 new file mode 100644 index 0000000..99e65c6 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ab/a3/6abc84291759cb5b5ed9f06186f33ea909a68cd960206d57e16032623327 @@ -0,0 +1,2 @@ + +ec63e455ec44460da5c9fcbf1897fd63c29766a0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/util-deprecate","integrity":"sha512-ejQ/lAxnj4wqstQUlbxMQwHiOydGSW5cV7V31BiaaYKciHh7wNWkSzO4oM5LCFNaasdNaWj/RnB5bF83Z8DVfw==","time":1623764839237,"size":689,"metadata":{"url":"https://registry.npmjs.org/util-deprecate","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:util-deprecate"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["689"],"connection":["keep-alive"],"cf-ray":["65fc3fe4aa7e08bc-EZE"],"accept-ranges":["bytes"],"age":["2734"],"cache-control":["public, max-age=300"],"etag":["\"c5fae95341c0c6b73869c962a59b1030\""],"last-modified":["Sat, 15 Feb 2020 18:15:18 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642ee000008bc6127d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ad/54/75452b140a876a507deb6db79be6d8eca56a08de9eaf2dc740baa8c11e64 b/data_node_red/.npm/_cacache/index-v5/ad/54/75452b140a876a507deb6db79be6d8eca56a08de9eaf2dc740baa8c11e64 new file mode 100644 index 0000000..56980a1 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ad/54/75452b140a876a507deb6db79be6d8eca56a08de9eaf2dc740baa8c11e64 @@ -0,0 +1,2 @@ + +ae99bc8550e948629baf91aca472b68ca1657c39 {"key":"pacote:range-manifest:https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz:sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913647,"size":1,"metadata":{"id":"on-headers@1.0.2","manifest":{"name":"on-headers","version":"1.0.2","engines":{"node":">= 0.8"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"5.14.1","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.0.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.0.1","supertest":"3.4.2"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","_integrity":"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==","_shasum":"772b0ae6aaa525c399e489adfad90c403eb3c28f","_shrinkwrap":null,"_id":"on-headers@1.0.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ad/61/8dddf2bd79472c4ffce70d15930b9ad34a6b139ee6817c5af0547186b82c b/data_node_red/.npm/_cacache/index-v5/ad/61/8dddf2bd79472c4ffce70d15930b9ad34a6b139ee6817c5af0547186b82c new file mode 100644 index 0000000..95d766b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ad/61/8dddf2bd79472c4ffce70d15930b9ad34a6b139ee6817c5af0547186b82c @@ -0,0 +1,2 @@ + +62a3ad78408cbcfc25e405b5cf11da4078beb16c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/base64id","integrity":"sha512-je81bODcvuq4+MSeA4mzK/UwMHX388lSjkMumsQU+zS6rY8pXlZRMvYxdFmRo54+iPxLfBzkCb43k0W75CaQ8w==","time":1623764916078,"size":1783,"metadata":{"url":"https://registry.npmjs.org/base64id","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:base64id"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1783"],"connection":["keep-alive"],"cf-ray":["65fc41c53d1608d9-EZE"],"accept-ranges":["bytes"],"age":["3947"],"cache-control":["public, max-age=300"],"etag":["\"d6ad4d084aa079283226ab97405b6670\""],"last-modified":["Fri, 14 Feb 2020 05:21:41 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876f43000008d9c0be9000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ae/47/ae396bbb9d6732155cb720104c76a82a2a24d43a5c5661f17652143191cf b/data_node_red/.npm/_cacache/index-v5/ae/47/ae396bbb9d6732155cb720104c76a82a2a24d43a5c5661f17652143191cf new file mode 100644 index 0000000..005ad83 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ae/47/ae396bbb9d6732155cb720104c76a82a2a24d43a5c5661f17652143191cf @@ -0,0 +1,2 @@ + +707492e960c3df3f0cad4f69855c7998549d1864 {"key":"pacote:version-manifest:https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz:sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915507,"size":1,"metadata":{"id":"ee-first@1.1.1","manifest":{"name":"ee-first","version":"1.1.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"istanbul":"0.3.9","mocha":"2.2.5"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","_integrity":"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=","_shasum":"590c61156b0ae2f4f0255732a158b266bc56b21d","_shrinkwrap":null,"_id":"ee-first@1.1.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/af/a1/ab9d77cb026b86ef88670d9957d0288759ae1f0ae20a97de8e3182495128 b/data_node_red/.npm/_cacache/index-v5/af/a1/ab9d77cb026b86ef88670d9957d0288759ae1f0ae20a97de8e3182495128 new file mode 100644 index 0000000..e68f540 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/af/a1/ab9d77cb026b86ef88670d9957d0288759ae1f0ae20a97de8e3182495128 @@ -0,0 +1,2 @@ + +8aeb44b916de3a3958b01b2a5e011d596fb7e21e {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/vary","integrity":"sha512-JM3sRB56rwllt2I+OH6Lc1O/cfzPbTAsL/N3wZL3qb85T9wFRMvo2i8jMvYtPn15oblKg2wSMXPKbxRIUtl1pQ==","time":1623764913536,"size":2420,"metadata":{"url":"https://registry.npmjs.org/vary","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:vary"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2420"],"connection":["keep-alive"],"cf-ray":["65fc41b4fc4008d9-EZE"],"accept-ranges":["bytes"],"age":["6261"],"cache-control":["public, max-age=300"],"etag":["\"8b519bf45a4f388648d2a24be12e451e\""],"last-modified":["Sat, 15 Feb 2020 18:26:42 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876520000008d9f332b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b0/4a/c18a99a2710b49b5a3a1121226be4940f623f8ba056f8108a634ed347da9 b/data_node_red/.npm/_cacache/index-v5/b0/4a/c18a99a2710b49b5a3a1121226be4940f623f8ba056f8108a634ed347da9 new file mode 100644 index 0000000..139efda --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b0/4a/c18a99a2710b49b5a3a1121226be4940f623f8ba056f8108a634ed347da9 @@ -0,0 +1,2 @@ + +09d677424a801f5b2660f6201f7bff84a36d2fcb {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime-types","integrity":"sha512-sdv6k6QLsRas9l+o+v5EvT9Ti2GBTb3PzJN7XzH2cBz3MKnjzMGIZCSSpsjvinPYVMLpEc9vdSD7LlLcwCK74w==","time":1623764913730,"size":32783,"metadata":{"url":"https://registry.npmjs.org/mime-types","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:mime-types"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["32783"],"connection":["keep-alive"],"cf-ray":["65fc41b6884508f9-EZE"],"accept-ranges":["bytes"],"age":["1514"],"cache-control":["public, max-age=300"],"etag":["\"14e03fcb04bac64ce89e8411ccffbc16\""],"last-modified":["Tue, 01 Jun 2021 17:29:11 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876613000008f933b8f000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b0/99/12b452011c4ea2096699735e8f2065b6d41019713c14f1a4206c2082726c b/data_node_red/.npm/_cacache/index-v5/b0/99/12b452011c4ea2096699735e8f2065b6d41019713c14f1a4206c2082726c new file mode 100644 index 0000000..f7acdea --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b0/99/12b452011c4ea2096699735e8f2065b6d41019713c14f1a4206c2082726c @@ -0,0 +1,2 @@ + +e6e7ab2ee10340e8aca30c10d4f02aa70c5f5399 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz","integrity":"sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=","time":1623764917220,"size":1497,"metadata":{"url":"https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:has-cors@https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/octet-stream"],"content-length":["1497"],"connection":["keep-alive"],"cf-ray":["65fc41cc4b5108e1-EZE"],"accept-ranges":["bytes"],"age":["1984407"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1368b0007be1d4007b6989084c8dcbd0\""],"last-modified":["Sun, 27 May 2018 03:34:14 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18773b0000008e13b8f7000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b1/60/d2b619e1cd49beab363fee4701bb832f42c404546b55006e6dd2eb51f841 b/data_node_red/.npm/_cacache/index-v5/b1/60/d2b619e1cd49beab363fee4701bb832f42c404546b55006e6dd2eb51f841 new file mode 100644 index 0000000..f3b8a2e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b1/60/d2b619e1cd49beab363fee4701bb832f42c404546b55006e6dd2eb51f841 @@ -0,0 +1,2 @@ + +ca5c599188191ae8d075bc8568db89a12e59093a {"key":"pacote:range-manifest:https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz:sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915188,"size":1,"metadata":{"id":"statuses@1.5.0","manifest":{"name":"statuses","version":"1.5.0","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"csv-parse":"1.2.4","eslint":"4.19.1","eslint-config-standard":"11.0.0","eslint-plugin-import":"2.9.0","eslint-plugin-markdown":"1.0.0-beta.6","eslint-plugin-node":"6.0.1","eslint-plugin-promise":"3.7.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"1.21.5","raw-body":"2.3.2","stream-to-array":"2.3.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","_integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=","_shasum":"161c7dac177659fd9811f43771fa99381478628c","_shrinkwrap":null,"_id":"statuses@1.5.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b2/0e/ee24f8091292dff96578652b9ca119e3a9b9b26e6df79ecc0ac86816a9c2 b/data_node_red/.npm/_cacache/index-v5/b2/0e/ee24f8091292dff96578652b9ca119e3a9b9b26e6df79ecc0ac86816a9c2 new file mode 100644 index 0000000..895b2cc --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b2/0e/ee24f8091292dff96578652b9ca119e3a9b9b26e6df79ecc0ac86816a9c2 @@ -0,0 +1,2 @@ + +0a9d7bd5f94a52d79dd88120a9fc1ea5984e1567 {"key":"pacote:range-manifest:https://registry.npmjs.org/depd/-/depd-1.1.2.tgz:sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915088,"size":1,"metadata":{"id":"depd@1.1.2","manifest":{"name":"depd","version":"1.1.2","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"benchmark":"2.1.4","beautify-benchmark":"0.2.4","eslint":"3.19.0","eslint-config-standard":"7.1.0","eslint-plugin-markdown":"1.0.0-beta.7","eslint-plugin-promise":"3.6.0","eslint-plugin-standard":"3.0.1","istanbul":"0.4.5","mocha":"~1.21.5"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/depd/-/depd-1.1.2.tgz","_integrity":"sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=","_shasum":"9bcd52e14c097763e749b274c4346ed2e560b5a9","_shrinkwrap":null,"_id":"depd@1.1.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b3/f6/284d996f905cdb9b7e7902af3db80dad07217e960544856dd356fad5e39e b/data_node_red/.npm/_cacache/index-v5/b3/f6/284d996f905cdb9b7e7902af3db80dad07217e960544856dd356fad5e39e new file mode 100644 index 0000000..d65832f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b3/f6/284d996f905cdb9b7e7902af3db80dad07217e960544856dd356fad5e39e @@ -0,0 +1,2 @@ + +923b528ed9ea3c08409289647054a415e0bd4f9a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-ping","integrity":"sha512-309uOBMuK6VeoEUFry+2Ri0/3tlxo//PmeYMOVEWB4PPOoSB0AYSbazvgkjEA80gdpqLzX6Gkl2tGvPvzE40ZQ==","time":1627653652089,"size":11980,"metadata":{"url":"https://registry.npmjs.org/node-red-node-ping","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["73e396fb59b8d06c"],"referer":["install node-red-node-ping@0.3.1"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:node-red-node-ping"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Fri, 30 Jul 2021 14:00:51 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["11980"],"connection":["keep-alive"],"cf-ray":["676f1d97ca6208e5-EZE"],"accept-ranges":["bytes"],"cache-control":["public, max-age=300"],"etag":["\"cdd018a8c1509d351ba96b393b706e01\""],"last-modified":["Thu, 08 Apr 2021 16:07:56 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["REVALIDATED"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b4/0c/95fcab298b208bfa97e6a4ba87c0b72def0415a285edc2179df9a5b54ecd b/data_node_red/.npm/_cacache/index-v5/b4/0c/95fcab298b208bfa97e6a4ba87c0b72def0415a285edc2179df9a5b54ecd new file mode 100644 index 0000000..2db2ed3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b4/0c/95fcab298b208bfa97e6a4ba87c0b72def0415a285edc2179df9a5b54ecd @@ -0,0 +1,2 @@ + +829047f33d4b7f5f5092d12469a74bcfbd90ce2e {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/etag","integrity":"sha512-rUOpM69/4emGZymW/Vcx5d9SIIimj7+2I0d+niiBE1ENvm+p9JsB0ALCwfu7k8Gzs7HNds9/TS8ZEo/Sql21bg==","time":1623764914842,"size":4907,"metadata":{"url":"https://registry.npmjs.org/etag","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:etag"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4907"],"connection":["keep-alive"],"cf-ray":["65fc41bd68c408c0-EZE"],"accept-ranges":["bytes"],"age":["6262"],"cache-control":["public, max-age=300"],"etag":["\"e81f6a0219b5cc535653adec3c88e8a3\""],"last-modified":["Fri, 14 Feb 2020 11:53:35 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876a63000008c0ecb1b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b5/65/83f0dbc0184353d5b6d9c34e9668bd285244688658b1a7f5313fdc098731 b/data_node_red/.npm/_cacache/index-v5/b5/65/83f0dbc0184353d5b6d9c34e9668bd285244688658b1a7f5313fdc098731 new file mode 100644 index 0000000..cea03d8 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b5/65/83f0dbc0184353d5b6d9c34e9668bd285244688658b1a7f5313fdc098731 @@ -0,0 +1,2 @@ + +64c878c71258c05c0ed1e820b7700289597ec6be {"key":"pacote:version-manifest:https://registry.npmjs.org/ms/-/ms-2.0.0.tgz:sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764914135,"size":1,"metadata":{"id":"ms@2.0.0","manifest":{"name":"ms","version":"2.0.0","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"3.19.0","expect.js":"0.3.1","husky":"0.13.3","lint-staged":"3.4.1","mocha":"3.4.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","_integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=","_shasum":"5608aeadfc00be6c2901df5f9861788de0d597c8","_shrinkwrap":null,"_id":"ms@2.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b5/90/d06ec4d3d605fd2bb31e7b70f39c06d6430c5b389ee5e584f1a080db51b0 b/data_node_red/.npm/_cacache/index-v5/b5/90/d06ec4d3d605fd2bb31e7b70f39c06d6430c5b389ee5e584f1a080db51b0 new file mode 100644 index 0000000..6d8939b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b5/90/d06ec4d3d605fd2bb31e7b70f39c06d6430c5b389ee5e584f1a080db51b0 @@ -0,0 +1,2 @@ + +187fda01faab910dff0b3d855efbfc6f38bf7528 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/encodeurl","integrity":"sha512-zoB+C+uuHSIgiUXc4lOZQUhk6qaBwTl2RG1d6UeGtRBx8BawMHChncfE2/ZBC975nPrmc0wPmpoO47sk0dCREw==","time":1623764914489,"size":1297,"metadata":{"url":"https://registry.npmjs.org/encodeurl","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:encodeurl"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1297"],"connection":["keep-alive"],"cf-ray":["65fc41bb1ee108f5-EZE"],"accept-ranges":["bytes"],"age":["6263"],"cache-control":["public, max-age=300"],"etag":["\"9801f457f24aa6e7e4e1470f2c5c8268\""],"last-modified":["Fri, 14 Feb 2020 11:21:43 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18768ef000008f57bae3000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b6/a6/a6d38a4f93eafa546e92ce8a39e56a3c916a3c053dd7edd2804dda9f1f15 b/data_node_red/.npm/_cacache/index-v5/b6/a6/a6d38a4f93eafa546e92ce8a39e56a3c916a3c053dd7edd2804dda9f1f15 new file mode 100644 index 0000000..a10a01d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b6/a6/a6d38a4f93eafa546e92ce8a39e56a3c916a3c053dd7edd2804dda9f1f15 @@ -0,0 +1,2 @@ + +c79e98bb2b07f033f470dc18570c5793e3343aba {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz","integrity":"sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=","time":1623764917341,"size":2964,"metadata":{"url":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:component-emitter@https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:37 GMT"],"content-type":["application/octet-stream"],"content-length":["2964"],"connection":["keep-alive"],"cf-ray":["65fc41cd2c4408d9-EZE"],"accept-ranges":["bytes"],"age":["1984216"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"435a09f6f03cab49c075ae1fc85fe606\""],"last-modified":["Sat, 26 May 2018 20:24:27 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877439000008d928151000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b6/b2/2e584a135dcde6b60d56fa94f34167d7f0dcbe8d3fb1bbb66231f1d709e5 b/data_node_red/.npm/_cacache/index-v5/b6/b2/2e584a135dcde6b60d56fa94f34167d7f0dcbe8d3fb1bbb66231f1d709e5 new file mode 100644 index 0000000..593c023 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b6/b2/2e584a135dcde6b60d56fa94f34167d7f0dcbe8d3fb1bbb66231f1d709e5 @@ -0,0 +1,2 @@ + +00ea2d67cc3ac0346f76e1e67360cb70b4ee5851 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz","integrity":"sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==","time":1623764915764,"size":2232,"metadata":{"url":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:has-binary2@https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["2232"],"connection":["keep-alive"],"cf-ray":["65fc41c32f8c08f5-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"a8cdcb3808d5f5560127ed2f61784d5a\""],"last-modified":["Sun, 27 May 2018 03:34:14 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876df7000008f57bb69000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b7/60/3d01a52fc75fbc123ca1c033c9c19dde51d131fb99de261be5f5c4940480 b/data_node_red/.npm/_cacache/index-v5/b7/60/3d01a52fc75fbc123ca1c033c9c19dde51d131fb99de261be5f5c4940480 new file mode 100644 index 0000000..52b10fc --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b7/60/3d01a52fc75fbc123ca1c033c9c19dde51d131fb99de261be5f5c4940480 @@ -0,0 +1,2 @@ + +76933ff63c43a0455dd420d8497d9e1c9c146693 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz","integrity":"sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=","time":1623764916388,"size":2401,"metadata":{"url":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:base64-arraybuffer@https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["2401"],"connection":["keep-alive"],"cf-ray":["65fc41c72a2508fd-EZE"],"accept-ranges":["bytes"],"age":["1984403"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"20596298b2f6a1d5bb83eb0186152bd7\""],"last-modified":["Sat, 26 May 2018 18:09:35 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187707c000008fdc1a99000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b7/db/d00f8af6bd424a81e4be925b70165f2959fee554783e4a067bb0fee3d75e b/data_node_red/.npm/_cacache/index-v5/b7/db/d00f8af6bd424a81e4be925b70165f2959fee554783e4a067bb0fee3d75e new file mode 100644 index 0000000..766e4db --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b7/db/d00f8af6bd424a81e4be925b70165f2959fee554783e4a067bb0fee3d75e @@ -0,0 +1,2 @@ + +66ed2929ea4214bd8bea5e77fc367b26034ed5be {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/after","integrity":"sha512-yYz3+3/tEMRUQ4MSaC72oQ0eHAqbE4kfxwGVtlFp63y96nfkUxY30OQWMWVIuxQKsveUyjJ7pzrZFHKDLTTWyw==","time":1623764916332,"size":4375,"metadata":{"url":"https://registry.npmjs.org/after","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:after"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4375"],"connection":["keep-alive"],"cf-ray":["65fc41c6a98308d9-EZE"],"accept-ranges":["bytes"],"age":["949"],"cache-control":["public, max-age=300"],"etag":["\"197cba61893af46fb069035b74c5d812\""],"last-modified":["Fri, 14 Feb 2020 03:20:40 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187702c000008d908376000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b7/e9/ba98f95c486d8dfb83ffc649c1574f54582fc504e3bcc304b45d15b778fd b/data_node_red/.npm/_cacache/index-v5/b7/e9/ba98f95c486d8dfb83ffc649c1574f54582fc504e3bcc304b45d15b778fd new file mode 100644 index 0000000..1f9147c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b7/e9/ba98f95c486d8dfb83ffc649c1574f54582fc504e3bcc304b45d15b778fd @@ -0,0 +1,2 @@ + +c87c5289f45ae81577b5f29db9e9c986873155fd {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mysql","integrity":"sha512-M73FAXpIqjULjR26/sXdg2jYVFpXyzGY7ar+79Y49i5ySDRwGKs9yvvLFduZe4PAwlctay43LDkRzUNILdK3fA==","time":1623764838425,"size":28981,"metadata":{"url":"https://registry.npmjs.org/mysql","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:mysql"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["28981"],"connection":["keep-alive"],"cf-ray":["65fc3fdfcae108b8-EZE"],"accept-ranges":["bytes"],"age":["5536"],"cache-control":["public, max-age=300"],"etag":["\"5d32cac4c14780ae2ec48680a66ff072\""],"last-modified":["Fri, 14 Feb 2020 23:09:40 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1863fe2000008b8c1122000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b8/2a/c36dc76be58320d64ff3119ec9390122e6b9c71ad9dc1507dc9d9310c78f b/data_node_red/.npm/_cacache/index-v5/b8/2a/c36dc76be58320d64ff3119ec9390122e6b9c71ad9dc1507dc9d9310c78f new file mode 100644 index 0000000..61eff7e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b8/2a/c36dc76be58320d64ff3119ec9390122e6b9c71ad9dc1507dc9d9310c78f @@ -0,0 +1,2 @@ + +62abb4752dfcbe212fe0187d7e52b3090ff59cc3 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz","integrity":"sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==","time":1623764917003,"size":1851,"metadata":{"url":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:parseqs@https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["1851"],"connection":["keep-alive"],"cf-ray":["65fc41cacd3a08d9-EZE"],"accept-ranges":["bytes"],"age":["1984407"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1c0f9699fcdf98bbfcb48c4adf9d41e2\""],"last-modified":["Sun, 06 Sep 2020 19:07:11 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772bb000008d9cb902000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b9/73/469da539f6f336e366cb9edec72814077ffd341100a28dfb8cca1408d9af b/data_node_red/.npm/_cacache/index-v5/b9/73/469da539f6f336e366cb9edec72814077ffd341100a28dfb8cca1408d9af new file mode 100644 index 0000000..aea650f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b9/73/469da539f6f336e366cb9edec72814077ffd341100a28dfb8cca1408d9af @@ -0,0 +1,2 @@ + +caf212fed402723dc46614874d5fca9f133bb5a7 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","time":1623764839331,"size":4831,"metadata":{"url":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["4831"],"connection":["keep-alive"],"cf-ray":["65fc3fe57a1a08d9-EZE"],"accept-ranges":["bytes"],"age":["1986570"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"7b93eea8153258fea64c3192922effaa\""],"last-modified":["Sun, 27 May 2018 18:25:37 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab186436e000008d9d92eb000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b9/85/a61e4faf2fa57d9503508bed591c594eb5609999d7fe0d23f010cd1c4cc5 b/data_node_red/.npm/_cacache/index-v5/b9/85/a61e4faf2fa57d9503508bed591c594eb5609999d7fe0d23f010cd1c4cc5 new file mode 100644 index 0000000..1fa87ae --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b9/85/a61e4faf2fa57d9503508bed591c594eb5609999d7fe0d23f010cd1c4cc5 @@ -0,0 +1,2 @@ + +a6f10985a002991e0b47086f9cbca6f09c91f6c0 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/send","integrity":"sha512-N1H3R8p/MC/ZImY0Xjip+HEZJgRdf/umN64b7qeudq5pngQ6m1HucKl6xC2K2yqN0ctwTHebk6dJGsm83LPmew==","time":1623764914461,"size":31834,"metadata":{"url":"https://registry.npmjs.org/send","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:send"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["31834"],"connection":["keep-alive"],"cf-ray":["65fc41bb1e8808f9-EZE"],"accept-ranges":["bytes"],"age":["6471"],"cache-control":["public, max-age=300"],"etag":["\"14d56752d12ad4b7ac3f2fff5c96b5c8\""],"last-modified":["Sat, 15 Feb 2020 13:41:54 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18768ee000008f90d281000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/b9/de/c7ccbe139231637ae2e5431511e792cb69adaa46bf9b37195f87a17f3b9c b/data_node_red/.npm/_cacache/index-v5/b9/de/c7ccbe139231637ae2e5431511e792cb69adaa46bf9b37195f87a17f3b9c new file mode 100644 index 0000000..740a026 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/b9/de/c7ccbe139231637ae2e5431511e792cb69adaa46bf9b37195f87a17f3b9c @@ -0,0 +1,2 @@ + +e6a8b6a4ee58a97cae73bf6d16cb46fbf2844e87 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io-parser","integrity":"sha512-R4R5RX1gCcIzMkuiV8XYY2sk6KsQWyODU6OTDU3ChjFbfix4AcTj3aUTz54UAy3twSfAoXvjNZHNSqT+XpG9Bw==","time":1623764916090,"size":24750,"metadata":{"url":"https://registry.npmjs.org/engine.io-parser","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:engine.io-parser"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["24750"],"connection":["keep-alive"],"cf-ray":["65fc41c5397708c0-EZE"],"accept-ranges":["bytes"],"age":["3947"],"cache-control":["public, max-age=300"],"etag":["\"cdca9ce7dca1755d9e8e21c3141d9541\""],"last-modified":["Mon, 07 Dec 2020 09:14:24 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876f44000008c0cd8bc000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ba/5e/cb33f007c3088b236318edb33f550733ae839cc0b1dc574b40c344eb50d4 b/data_node_red/.npm/_cacache/index-v5/ba/5e/cb33f007c3088b236318edb33f550733ae839cc0b1dc574b40c344eb50d4 new file mode 100644 index 0000000..940a302 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ba/5e/cb33f007c3088b236318edb33f550733ae839cc0b1dc574b40c344eb50d4 @@ -0,0 +1,2 @@ + +02a34b488c499082fca49e4637d113dca39545c9 {"key":"pacote:version-manifest:https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz:sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913798,"size":1,"metadata":{"id":"negotiator@0.6.2","manifest":{"name":"negotiator","version":"0.6.2","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"5.16.0","eslint-plugin-markdown":"1.0.0","mocha":"6.1.4","nyc":"14.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","_integrity":"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==","_shasum":"feacf7ccf525a77ae9634436a64883ffeca346fb","_shrinkwrap":null,"_id":"negotiator@0.6.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/bc/96/32683f7ffb7731d6518f96344b35c74b7e49ed661d40e28ab211841d1e09 b/data_node_red/.npm/_cacache/index-v5/bc/96/32683f7ffb7731d6518f96344b35c74b7e49ed661d40e28ab211841d1e09 new file mode 100644 index 0000000..b0f8837 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/bc/96/32683f7ffb7731d6518f96344b35c74b7e49ed661d40e28ab211841d1e09 @@ -0,0 +1,2 @@ + +0f76a31fa1ca02f372840405e5095e449c10696a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/string_decoder","integrity":"sha512-o59PBU4faODgRwSajuKrr3oPEUAa8Fy8KFRFuA0ukEg/k41arizjirvq4AlNDAPomKAobs+DDieSO7A/EABPkw==","time":1623764839236,"size":7047,"metadata":{"url":"https://registry.npmjs.org/string_decoder","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:string_decoder"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["7047"],"connection":["keep-alive"],"cf-ray":["65fc3fe4aa1c08e9-EZE"],"accept-ranges":["bytes"],"age":["3507"],"cache-control":["public, max-age=300"],"etag":["\"8f4888940b1fe1b5a471ecd26f226d87\""],"last-modified":["Sat, 15 Feb 2020 15:29:10 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642ed000008e95003b000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/bd/12/2937f0abc26f9973382cb3afa8b4b1d233a6a47ad4f3c5917ddb4997cddb b/data_node_red/.npm/_cacache/index-v5/bd/12/2937f0abc26f9973382cb3afa8b4b1d233a6a47ad4f3c5917ddb4997cddb new file mode 100644 index 0000000..02e6cf7 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/bd/12/2937f0abc26f9973382cb3afa8b4b1d233a6a47ad4f3c5917ddb4997cddb @@ -0,0 +1,2 @@ + +5fbe4d66987ea516b8f559702c293453e3b090b1 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","time":1623764839238,"size":2030,"metadata":{"url":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:inherits@https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/octet-stream"],"content-length":["2030"],"connection":["keep-alive"],"cf-ray":["65fc3fe4bafd08b8-EZE"],"accept-ranges":["bytes"],"age":["1987061"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"bf725b87e6485c1d9db0279cce76a4a7\""],"last-modified":["Wed, 19 Jun 2019 20:18:57 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18642f0000008b8ea9c2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/be/aa/05ead1dadda8b961ef7dd5aa3a50e4547bf158f64db4363c6e1870a86842 b/data_node_red/.npm/_cacache/index-v5/be/aa/05ead1dadda8b961ef7dd5aa3a50e4547bf158f64db4363c6e1870a86842 new file mode 100644 index 0000000..f105261 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/be/aa/05ead1dadda8b961ef7dd5aa3a50e4547bf158f64db4363c6e1870a86842 @@ -0,0 +1,2 @@ + +0ce7411b8469837934afe72743b45e200488c73c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz","integrity":"sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==","time":1623764916167,"size":2294,"metadata":{"url":"https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:base64id@https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["2294"],"connection":["keep-alive"],"cf-ray":["65fc41c5df4b08f5-EZE"],"accept-ranges":["bytes"],"age":["1984402"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"f3ac9542d4b3ff33325080445883488c\""],"last-modified":["Mon, 27 May 2019 11:12:48 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876fa6000008f57bb96000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/bf/94/90784ad9dc6c0691884d83994d91ec35ae0410883c905c46d4bb76a26dfc b/data_node_red/.npm/_cacache/index-v5/bf/94/90784ad9dc6c0691884d83994d91ec35ae0410883c905c46d4bb76a26dfc new file mode 100644 index 0000000..3a02e74 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/bf/94/90784ad9dc6c0691884d83994d91ec35ae0410883c905c46d4bb76a26dfc @@ -0,0 +1,2 @@ + +905dda6160ca1d09b3479e26d8d7eccdceb6ae25 {"key":"pacote:range-manifest:https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz:sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917256,"size":1,"metadata":{"id":"xmlhttprequest-ssl@1.6.3","manifest":{"name":"xmlhttprequest-ssl","version":"1.6.3","engines":{"node":">=0.4.0"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz","_integrity":"sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==","_shasum":"03b713873b01659dfa2c1c5d056065b27ddc2de6","_shrinkwrap":null,"_id":"xmlhttprequest-ssl@1.6.3"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c1/72/9bf7ae417e2270c4dc8f20b7579cbd33f366a63d4a293f438a42cdb5834c b/data_node_red/.npm/_cacache/index-v5/c1/72/9bf7ae417e2270c4dc8f20b7579cbd33f366a63d4a293f438a42cdb5834c new file mode 100644 index 0000000..d08e61c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c1/72/9bf7ae417e2270c4dc8f20b7579cbd33f366a63d4a293f438a42cdb5834c @@ -0,0 +1,2 @@ + +46ad7778f861487872f1c78c3f6795c0eb715ca1 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=","time":1623764915160,"size":5482,"metadata":{"url":"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:statuses@https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["5482"],"connection":["keep-alive"],"cf-ray":["65fc41bf18f908fd-EZE"],"accept-ranges":["bytes"],"age":["1986108"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"9d462cf8c2a4d47ec51e193c5b7492d6\""],"last-modified":["Sun, 27 May 2018 18:14:13 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876b6f000008fdd4050000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c1/82/cef694242bcc825bdaafb625f550ff8afb2e5dfc1afba0715a6aa4c00c37 b/data_node_red/.npm/_cacache/index-v5/c1/82/cef694242bcc825bdaafb625f550ff8afb2e5dfc1afba0715a6aa4c00c37 new file mode 100644 index 0000000..326133e --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c1/82/cef694242bcc825bdaafb625f550ff8afb2e5dfc1afba0715a6aa4c00c37 @@ -0,0 +1,2 @@ + +97b71a2970ead8536fc648bd56746c95ae83684b {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","integrity":"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==","time":1623764913793,"size":6650,"metadata":{"url":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:negotiator@https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["6650"],"connection":["keep-alive"],"cf-ray":["65fc41b6fcc108c0-EZE"],"accept-ranges":["bytes"],"age":["1986104"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"b769da51259f513f0f202643e8f2911a\""],"last-modified":["Tue, 30 Apr 2019 00:30:34 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187665a000008c0b424f000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c1/8e/b2d9565fe60306da42efbbd6978e09bc583a7fa954ad3b148dc9c4793e51 b/data_node_red/.npm/_cacache/index-v5/c1/8e/b2d9565fe60306da42efbbd6978e09bc583a7fa954ad3b148dc9c4793e51 new file mode 100644 index 0000000..769cedd --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c1/8e/b2d9565fe60306da42efbbd6978e09bc583a7fa954ad3b148dc9c4793e51 @@ -0,0 +1,2 @@ + +29ea3739b0a76457d322b9cdbe5c111beb76e4dd {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/readable-stream","integrity":"sha512-9IKxlR2wHEVGs2YntciBH+rOr93K5Ckup6qaayRSWL2CvixgFNHZ4H2+wmV0u+Vcx1wornL8YdkyX5w1VQU7UA==","time":1623764838796,"size":69234,"metadata":{"url":"https://registry.npmjs.org/readable-stream","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:readable-stream"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["69234"],"connection":["keep-alive"],"cf-ray":["65fc3fe1f81e08f5-EZE"],"accept-ranges":["bytes"],"age":["6043"],"cache-control":["public, max-age=300"],"etag":["\"34fce557f7011fd6e65a26ca1d494a53\""],"last-modified":["Thu, 13 Feb 2020 19:42:09 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864138000008f5cb277000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c1/b7/17b72f7a86e0747dd419d193655a66876b34311e7b774f52707ef30f7aa2 b/data_node_red/.npm/_cacache/index-v5/c1/b7/17b72f7a86e0747dd419d193655a66876b34311e7b774f52707ef30f7aa2 new file mode 100644 index 0000000..24dffed --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c1/b7/17b72f7a86e0747dd419d193655a66876b34311e7b774f52707ef30f7aa2 @@ -0,0 +1,2 @@ + +cc74197ee8d825a410903f25536f4d3fd55006ae {"key":"pacote:range-manifest:https://registry.npmjs.org/debug/-/debug-3.1.0.tgz:sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916925,"size":1,"metadata":{"id":"debug@3.1.0","manifest":{"name":"debug","version":"3.1.0","dependencies":{"ms":"2.0.0"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"browserify":"14.4.0","chai":"^3.5.0","concurrently":"^3.1.0","coveralls":"^2.11.15","eslint":"^3.12.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chai":"^0.1.0","karma-mocha":"^1.3.0","karma-phantomjs-launcher":"^1.0.2","karma-sinon":"^1.0.5","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0","rimraf":"^2.5.4","sinon":"^1.17.6","sinon-chai":"^2.8.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","_integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","_shasum":"5bb5a0672628b64149566ba16819e61518c67261","_shrinkwrap":null,"_id":"debug@3.1.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c2/ff/01a1c9d3bd9a7f597ba59c92069319c266eb614df9ca33b3c1efed7c734d b/data_node_red/.npm/_cacache/index-v5/c2/ff/01a1c9d3bd9a7f597ba59c92069319c266eb614df9ca33b3c1efed7c734d new file mode 100644 index 0000000..7abe20f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c2/ff/01a1c9d3bd9a7f597ba59c92069319c266eb614df9ca33b3c1efed7c734d @@ -0,0 +1,2 @@ + +3f4f61ed477028da229d10e4d9ae1e6c89259411 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz","integrity":"sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=","time":1623764917006,"size":698,"metadata":{"url":"https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:indexof@https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["698"],"connection":["keep-alive"],"cf-ray":["65fc41cacccb08b8-EZE"],"accept-ranges":["bytes"],"age":["1984391"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"eb0285733250a99c7fcd9da73be83ecf\""],"last-modified":["Sun, 27 May 2018 04:37:11 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772b9000008b8dd3d8000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c3/57/6beaf468572b240af1012037fa4941e26c41dd4c73e0fab7a6fcf5591509 b/data_node_red/.npm/_cacache/index-v5/c3/57/6beaf468572b240af1012037fa4941e26c41dd4c73e0fab7a6fcf5591509 new file mode 100644 index 0000000..5bebb4c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c3/57/6beaf468572b240af1012037fa4941e26c41dd4c73e0fab7a6fcf5591509 @@ -0,0 +1,2 @@ + +bc9635a95b2dde8313ed6aaec4784e74239956eb {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz","integrity":"sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==","time":1623764913476,"size":3067,"metadata":{"url":"https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:compressible@https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["3067"],"connection":["keep-alive"],"cf-ray":["65fc41b50cdf08f5-EZE"],"accept-ranges":["bytes"],"age":["1986054"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"0f274109f0e62f1470256c43c70781b1\""],"last-modified":["Mon, 06 Jan 2020 04:50:13 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876523000008f593992000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c3/ae/1314e79200fca71af4663702ee1e676113e408ca8a468a396de5ab6d5d2b b/data_node_red/.npm/_cacache/index-v5/c3/ae/1314e79200fca71af4663702ee1e676113e408ca8a468a396de5ab6d5d2b new file mode 100644 index 0000000..a943271 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c3/ae/1314e79200fca71af4663702ee1e676113e408ca8a468a396de5ab6d5d2b @@ -0,0 +1,2 @@ + +65f550c85e66135965d9e5b025dcb0ea4965315a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","integrity":"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=","time":1623764914985,"size":4386,"metadata":{"url":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:etag@https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["4386"],"connection":["keep-alive"],"cf-ray":["65fc41be2ad808c0-EZE"],"accept-ranges":["bytes"],"age":["19918625"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1ccf0041293792c96d81db7f15c3561d\""],"last-modified":["Sat, 26 May 2018 23:56:55 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876ad5000008c02305d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c5/3e/3ba77e1cf168da1150f7ec339ae2c524cc0ba345fe5fc84488f25dc26de5 b/data_node_red/.npm/_cacache/index-v5/c5/3e/3ba77e1cf168da1150f7ec339ae2c524cc0ba345fe5fc84488f25dc26de5 new file mode 100644 index 0000000..9a0bddb --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c5/3e/3ba77e1cf168da1150f7ec339ae2c524cc0ba345fe5fc84488f25dc26de5 @@ -0,0 +1,2 @@ + +36b82354c77111ea80e4cfef2b6e83190bdb58db {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/compressible","integrity":"sha512-o4sbsIB9rWcbLdi+w40s25HidV24UAo3YypOHWNcIRn7v9uu3P3payhl3MCqIxsVAcOGSb6+kyy6134g5ynEBg==","time":1623764913402,"size":15056,"metadata":{"url":"https://registry.npmjs.org/compressible","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:compressible"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["15056"],"connection":["keep-alive"],"cf-ray":["65fc41b46af308f5-EZE"],"accept-ranges":["bytes"],"age":["660"],"cache-control":["public, max-age=300"],"etag":["\"7eb99a18448a4e195c9d6c903e922b7f\""],"last-modified":["Fri, 14 Feb 2020 07:58:56 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18764c3000008f5e031d000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c7/75/902994d9a5329ded3f4168b8f11f18ba27238ad6f02b7c6e953e9330d68b b/data_node_red/.npm/_cacache/index-v5/c7/75/902994d9a5329ded3f4168b8f11f18ba27238ad6f02b7c6e953e9330d68b new file mode 100644 index 0000000..ff30fa3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c7/75/902994d9a5329ded3f4168b8f11f18ba27238ad6f02b7c6e953e9330d68b @@ -0,0 +1,2 @@ + +b5b731938d5d7d3c5da43960623c7c6cc5f60577 {"key":"pacote:range-manifest:https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz:sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913276,"size":1,"metadata":{"id":"gridstack@0.6.4","manifest":{"name":"gridstack","version":"0.6.4","dependencies":{"jquery":"^1.8 || 2 || 3"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"connect":"^3.6.6","core-js":"^3.0.0","coveralls":"^3.0.3","doctoc":"^1.4.0","grunt":"^1.0.4","grunt-cli":"^1.3.2","grunt-contrib-connect":"^2.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-cssmin":"^3.0.0","grunt-contrib-uglify":"^4.0.1","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^20.1.0","grunt-protractor-runner":"^5.0.0","grunt-protractor-webdriver":"^0.2.5","grunt-sass":"2.1.0","jasmine-core":"^3.3.0","karma":"^4.0.1","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.2","karma-coveralls":"^2.1.0","karma-jasmine":"^2.0.1","puppeteer":"^1.13.0","serve-static":"^1.13.2"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz","_integrity":"sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==","_shasum":"f832903a1323a0e536348dd926d7b5d084ca88eb","_shrinkwrap":null,"_id":"gridstack@0.6.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c7/97/296c78dbda2b11a6c3b9251333b4a96e3c8f304101b6bbd6454a827dcfbe b/data_node_red/.npm/_cacache/index-v5/c7/97/296c78dbda2b11a6c3b9251333b4a96e3c8f304101b6bbd6454a827dcfbe new file mode 100644 index 0000000..70a7eb1 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c7/97/296c78dbda2b11a6c3b9251333b4a96e3c8f304101b6bbd6454a827dcfbe @@ -0,0 +1,2 @@ + +c76270d3a22b528c9826021de0b3988b7699b833 {"key":"pacote:version-manifest:https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz:sha512-+h4av8LpGxxqVIGwv97kUvra8A/KqT6kIpZD0fEI7tjmgYujUABiAMh+QKCJRkqgT/kSB76B1M6g69kcMAEMnA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764838312,"size":1,"metadata":{"id":"node-red-node-mysql@0.1.9","manifest":{"name":"node-red-node-mysql","version":"0.1.9","dependencies":{"mysql":"^2.18.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz","_integrity":"sha512-+h4av8LpGxxqVIGwv97kUvra8A/KqT6kIpZD0fEI7tjmgYujUABiAMh+QKCJRkqgT/kSB76B1M6g69kcMAEMnA==","_shasum":"9e267dd9bc1c3c0cbf14b6e0f21f54b7150da437","_shrinkwrap":null,"_id":"node-red-node-mysql@0.1.9"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/c9/25/7bde6e30d90b081bb90664308bca9d6419dc724d4d12a0746dcde8d866de b/data_node_red/.npm/_cacache/index-v5/c9/25/7bde6e30d90b081bb90664308bca9d6419dc724d4d12a0746dcde8d866de new file mode 100644 index 0000000..e190da8 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/c9/25/7bde6e30d90b081bb90664308bca9d6419dc724d4d12a0746dcde8d866de @@ -0,0 +1,2 @@ + +caf9bb620b3d4c581261aa291c4b48e918b703d3 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz","integrity":"sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==","time":1623764915835,"size":4102,"metadata":{"url":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:socket.io-adapter@https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["4102"],"connection":["keep-alive"],"cf-ray":["65fc41c34f6008e1-EZE"],"accept-ranges":["bytes"],"age":["1984214"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"4925763488794725934ed679b2272e51\""],"last-modified":["Mon, 25 Nov 2019 12:20:13 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876e10000008e13a3a2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/cc/77/a7e1ae0565e761f228f24c06a9131ce31bb8c802e5248224035cf999531d b/data_node_red/.npm/_cacache/index-v5/cc/77/a7e1ae0565e761f228f24c06a9131ce31bb8c802e5248224035cf999531d new file mode 100644 index 0000000..d0968d9 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/cc/77/a7e1ae0565e761f228f24c06a9131ce31bb8c802e5248224035cf999531d @@ -0,0 +1,2 @@ + +04b7616e358a918746958773979047a71cfdf26c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","integrity":"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==","time":1623764913635,"size":3225,"metadata":{"url":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:on-headers@https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["3225"],"connection":["keep-alive"],"cf-ray":["65fc41b5def408d9-EZE"],"accept-ranges":["bytes"],"age":["1986055"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"d81fb97a11d375769455e8eff005746f\""],"last-modified":["Fri, 22 Feb 2019 03:48:58 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18765aa000008d917acf000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/cc/94/424fdcbaf80a2ea61e380b5451ca0d55947289f4238d22c7bc56d3132594 b/data_node_red/.npm/_cacache/index-v5/cc/94/424fdcbaf80a2ea61e380b5451ca0d55947289f4238d22c7bc56d3132594 new file mode 100644 index 0000000..a857900 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/cc/94/424fdcbaf80a2ea61e380b5451ca0d55947289f4238d22c7bc56d3132594 @@ -0,0 +1,2 @@ + +3eb43805ec8e1a2e3f0178fade88518ef5bebf53 {"key":"pacote:version-manifest:https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz:sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764913571,"size":1,"metadata":{"id":"bytes@3.0.0","manifest":{"name":"bytes","version":"3.0.0","engines":{"node":">= 0.8"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"2.5.3","nyc":"10.3.2"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz","_integrity":"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=","_shasum":"d32815404d689699f85a4ea4fa8755dd13a96048","_shrinkwrap":null,"_id":"bytes@3.0.0"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/cf/7d/d9571abb7a98a2996e00742bf013bb725a7a36d282e892cf4896009325db b/data_node_red/.npm/_cacache/index-v5/cf/7d/d9571abb7a98a2996e00742bf013bb725a7a36d282e892cf4896009325db new file mode 100644 index 0000000..eae7067 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/cf/7d/d9571abb7a98a2996e00742bf013bb725a7a36d282e892cf4896009325db @@ -0,0 +1,2 @@ + +4314e40c958774ba496392078919e0cc5c6c96b1 {"key":"pacote:version-manifest:https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz:sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917038,"size":1,"metadata":{"id":"indexof@0.0.1","manifest":{"name":"indexof","version":"0.0.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz","_integrity":"sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=","_shasum":"82dc336d232b9062179d05ab3293a66059fd435d","_shrinkwrap":null,"_id":"indexof@0.0.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d1/2b/ca26f12403fbb7976d20b8480123f0d56cd20d920672acbf7bc1ef3880c8 b/data_node_red/.npm/_cacache/index-v5/d1/2b/ca26f12403fbb7976d20b8480123f0d56cd20d920672acbf7bc1ef3880c8 new file mode 100644 index 0000000..fa18e19 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d1/2b/ca26f12403fbb7976d20b8480123f0d56cd20d920672acbf7bc1ef3880c8 @@ -0,0 +1,2 @@ + +0a15150be901501f1e9c56404d9d5376e68d4dfe {"key":"pacote:version-manifest:https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz:sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916695,"size":1,"metadata":{"id":"isarray@2.0.1","manifest":{"name":"isarray","version":"2.0.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tape":"~2.13.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz","_integrity":"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=","_shasum":"a37d94ed9cda2d59865c9f76fe596ee1f338741e","_shrinkwrap":null,"_id":"isarray@2.0.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d2/8f/2a0976fc83b3455f3bf76793daefc51abfe8bd7168dd33989406a8fd66e2 b/data_node_red/.npm/_cacache/index-v5/d2/8f/2a0976fc83b3455f3bf76793daefc51abfe8bd7168dd33989406a8fd66e2 new file mode 100644 index 0000000..7d06d28 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d2/8f/2a0976fc83b3455f3bf76793daefc51abfe8bd7168dd33989406a8fd66e2 @@ -0,0 +1,2 @@ + +0ef3ab2bcbdea83f3facc98c50ca62ef1bf76f86 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz","integrity":"sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==","time":1623764913963,"size":27679,"metadata":{"url":"https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:mime-db@https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/octet-stream"],"content-length":["27679"],"connection":["keep-alive"],"cf-ray":["65fc41b7fcf808d9-EZE"],"accept-ranges":["bytes"],"age":["1331278"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"c507ad3c4db13cb176c1989c27269405\""],"last-modified":["Mon, 31 May 2021 03:59:05 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18766f9000008d907b33000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d3/1e/c3e4856efd87e8924c232dd12559252d1de08753806290f8e4aa4d2732db b/data_node_red/.npm/_cacache/index-v5/d3/1e/c3e4856efd87e8924c232dd12559252d1de08753806290f8e4aa4d2732db new file mode 100644 index 0000000..0bff77f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d3/1e/c3e4856efd87e8924c232dd12559252d1de08753806290f8e4aa4d2732db @@ -0,0 +1,2 @@ + +a487c603adc80393a88b80d8d115e7649473f991 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/node-red-node-ui-table","integrity":"sha512-ZL6N3OX5sDf5FS33vMFsDVcDPm1k4ZHKB+keJDecnXdtHy+Z9aj65EFWHAgsx9709PrYZX3oQyV8QjECJGooTw==","time":1627492719815,"size":25189,"metadata":{"url":"https://registry.npmjs.org/node-red-node-ui-table","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["97f63fc8736349ad"],"referer":["install node-red-node-ui-table@0.3.11"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:node-red-node-ui-table"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Wed, 28 Jul 2021 17:18:39 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["25189"],"connection":["keep-alive"],"cf-ray":["675fc493cf2908e5-EZE"],"accept-ranges":["bytes"],"cache-control":["public, max-age=300"],"etag":["\"9f0c33159d8daffbd3b82c5dd9f48fd3\""],"last-modified":["Thu, 08 Jul 2021 07:31:27 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["MISS"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d3/ca/cd08b59da056119cb4e9b14eb7ffd580648a8c233b2c6ad79c959df59762 b/data_node_red/.npm/_cacache/index-v5/d3/ca/cd08b59da056119cb4e9b14eb7ffd580648a8c233b2c6ad79c959df59762 new file mode 100644 index 0000000..ffecfd2 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d3/ca/cd08b59da056119cb4e9b14eb7ffd580648a8c233b2c6ad79c959df59762 @@ -0,0 +1,2 @@ + +28544a3bb2958fc7af86ac76428289d310aa4e97 {"key":"pacote:range-manifest:https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz:sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839269,"size":1,"metadata":{"id":"inherits@2.0.4","manifest":{"name":"inherits","version":"2.0.4","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tap":"^14.2.4"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","_integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","_shasum":"0fa2c64f932917c3433a0ded55363aae37416b7c","_shrinkwrap":null,"_id":"inherits@2.0.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d4/cf/7607fcbc24f19afb37e7b1eab6d445183709c61b21e488c0c0e3462aba0f b/data_node_red/.npm/_cacache/index-v5/d4/cf/7607fcbc24f19afb37e7b1eab6d445183709c61b21e488c0c0e3462aba0f new file mode 100644 index 0000000..540166b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d4/cf/7607fcbc24f19afb37e7b1eab6d445183709c61b21e488c0c0e3462aba0f @@ -0,0 +1,2 @@ + +2958b8498f9c15d67691587a4103626f184cfe89 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz","integrity":"sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==","time":1623764916191,"size":9528,"metadata":{"url":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:engine.io-parser@https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["9528"],"connection":["keep-alive"],"cf-ray":["65fc41c5de8608f9-EZE"],"accept-ranges":["bytes"],"age":["1984390"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"416111286beef239f0a6362c2011d392\""],"last-modified":["Wed, 30 Sep 2020 01:09:56 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876fac000008f90d346000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d5/4b/e7e3758c2d19e1b8cf9a59f9a3bb013c0f8040f12ec62bfaa7fb9f279066 b/data_node_red/.npm/_cacache/index-v5/d5/4b/e7e3758c2d19e1b8cf9a59f9a3bb013c0f8040f12ec62bfaa7fb9f279066 new file mode 100644 index 0000000..4bd225b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d5/4b/e7e3758c2d19e1b8cf9a59f9a3bb013c0f8040f12ec62bfaa7fb9f279066 @@ -0,0 +1,2 @@ + +46e10a8c63edfe8ae94bf9ee20c6faaae0d72ad5 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/serve-static","integrity":"sha512-PDpLFo+8TwghK4IS2gNi823zcZTuyVx0+0lq/Q2LjHgcwhj76Mm7EcdT8ErGm0n6FYLHP/k50vI50igDhGlV7w==","time":1623764913057,"size":27652,"metadata":{"url":"https://registry.npmjs.org/serve-static","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:serve-static"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["27652"],"connection":["keep-alive"],"cf-ray":["65fc41b1eb9b08f5-EZE"],"accept-ranges":["bytes"],"age":["6259"],"cache-control":["public, max-age=300"],"etag":["\"24d9dde3a7e0f7c50c444b21b692ffd4\""],"last-modified":["Sat, 15 Feb 2020 13:47:10 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876336000008f5b3b49000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d5/96/db732c082b5a904a7ae935037c08343e50e345e5c26864264d7448eee157 b/data_node_red/.npm/_cacache/index-v5/d5/96/db732c082b5a904a7ae935037c08343e50e345e5c26864264d7448eee157 new file mode 100644 index 0000000..31520dd --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d5/96/db732c082b5a904a7ae935037c08343e50e345e5c26864264d7448eee157 @@ -0,0 +1,2 @@ + +ef7b4107e2546267866db61655fd3eb0a3404316 {"key":"pacote:version-manifest:https://registry.npmjs.org/ms/-/ms-2.1.1.tgz:sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915170,"size":1,"metadata":{"id":"ms@2.1.1","manifest":{"name":"ms","version":"2.1.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"eslint":"4.12.1","expect.js":"0.3.1","husky":"0.14.3","lint-staged":"5.0.0","mocha":"4.0.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","_integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==","_shasum":"30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a","_shrinkwrap":null,"_id":"ms@2.1.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d5/e0/c2272d7175091e9df846535741af3cc795e3f8819eda506eec5047ef33be b/data_node_red/.npm/_cacache/index-v5/d5/e0/c2272d7175091e9df846535741af3cc795e3f8819eda506eec5047ef33be new file mode 100644 index 0000000..e43f7a0 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d5/e0/c2272d7175091e9df846535741af3cc795e3f8819eda506eec5047ef33be @@ -0,0 +1,2 @@ + +7565e723bec500f3404bf89cd202567390ec0d36 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","time":1623764913538,"size":16514,"metadata":{"url":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:debug@https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["binary/octet-stream"],"content-length":["16514"],"connection":["keep-alive"],"cf-ray":["65fc41b50c5508d9-EZE"],"accept-ranges":["bytes"],"age":["1986829"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"cb6cb63ab5843aee3af94d27c60ea476\""],"last-modified":["Tue, 05 Jun 2018 13:50:26 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876524000008d902bce000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d6/47/0b796a99c82c8fcdcdc3380884e2104085a357ad0ac568827bbf53c1f6bf b/data_node_red/.npm/_cacache/index-v5/d6/47/0b796a99c82c8fcdcdc3380884e2104085a357ad0ac568827bbf53c1f6bf new file mode 100644 index 0000000..e2c2c51 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d6/47/0b796a99c82c8fcdcdc3380884e2104085a357ad0ac568827bbf53c1f6bf @@ -0,0 +1,2 @@ + +f78c161b156516262b5f03e7c7e4d9221f4de26c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/core-util-is","integrity":"sha512-2jkcv+tY2Dv/KVpcWIF2pfXkGjhawDSe1UayvRQMAOJftchpUqOO8k2ZYSUrl7sGsooK9p/SUQ3OO3nxjg4y9g==","time":1623764839133,"size":704,"metadata":{"url":"https://registry.npmjs.org/core-util-is","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:core-util-is"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["704"],"connection":["keep-alive"],"cf-ray":["65fc3fe3fdda08f5-EZE"],"accept-ranges":["bytes"],"age":["3218"],"cache-control":["public, max-age=300"],"etag":["\"6b53f41c10da431598acc223dad8208a\""],"last-modified":["Fri, 14 Feb 2020 08:26:02 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864277000008f5b400c000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d9/32/b3e4209dfa41dbe31e1c45a00aa9d9ca4912a83ac41fb540827a0f59bc95 b/data_node_red/.npm/_cacache/index-v5/d9/32/b3e4209dfa41dbe31e1c45a00aa9d9ca4912a83ac41fb540827a0f59bc95 new file mode 100644 index 0000000..d1285b3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d9/32/b3e4209dfa41dbe31e1c45a00aa9d9ca4912a83ac41fb540827a0f59bc95 @@ -0,0 +1,2 @@ + +aaac8c290405bf00c62d995bdc250766e74ba6c6 {"key":"pacote:range-manifest:https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz:sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915106,"size":1,"metadata":{"id":"range-parser@1.2.1","manifest":{"name":"range-parser","version":"1.2.1","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"deep-equal":"1.0.1","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-import":"2.17.2","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","mocha":"6.1.4","nyc":"14.1.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","_integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==","_shasum":"3cf37023d199e1c24d1a55b84800c2f3e6468031","_shrinkwrap":null,"_id":"range-parser@1.2.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/d9/a7/6611a273c2c0b630c9f2dbb2db09f2ff393a58998e8dce72d5c53b87fccd b/data_node_red/.npm/_cacache/index-v5/d9/a7/6611a273c2c0b630c9f2dbb2db09f2ff393a58998e8dce72d5c53b87fccd new file mode 100644 index 0000000..28a0f2c --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/d9/a7/6611a273c2c0b630c9f2dbb2db09f2ff393a58998e8dce72d5c53b87fccd @@ -0,0 +1,2 @@ + +08dc8decbc53da284c13b45dd69d37d704ecabdd {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz","integrity":"sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==","time":1623764917006,"size":2565,"metadata":{"url":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:parseuri@https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["2565"],"connection":["keep-alive"],"cf-ray":["65fc41caceba08e1-EZE"],"accept-ranges":["bytes"],"age":["1984407"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"23a6180dc448970d6c3bce31064ae5a4\""],"last-modified":["Wed, 18 Sep 2019 15:36:29 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18772c0000008e158aa7000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/dd/50/286afc99bace92cde31d73618857aa64e0eea03a21e6918401e647e7ae13 b/data_node_red/.npm/_cacache/index-v5/dd/50/286afc99bace92cde31d73618857aa64e0eea03a21e6918401e647e7ae13 new file mode 100644 index 0000000..f30ee5f --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/dd/50/286afc99bace92cde31d73618857aa64e0eea03a21e6918401e647e7ae13 @@ -0,0 +1,2 @@ + +5ca6d0f7bf43decaaa5d4f48d8c7629c253c3a1b {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseurl","integrity":"sha512-QlCH7+XOoGLhDl6la+/Kwj4YKoTPzm+jrAJIg08sFPSZzTNecqxT+Lla2Q7gnUyZru8hDki0yAtm44+ZkQpoDg==","time":1623764914477,"size":4191,"metadata":{"url":"https://registry.npmjs.org/parseurl","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:parseurl"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4191"],"connection":["keep-alive"],"cf-ray":["65fc41bb1dcb08d9-EZE"],"accept-ranges":["bytes"],"age":["1739"],"cache-control":["public, max-age=300"],"etag":["\"696700923e4e15dcf20edb5fb1008849\""],"last-modified":["Sat, 15 Feb 2020 08:04:41 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18768ef000008d910909000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/df/76/2baed9f89647c5af3edc467fecba967938934732fbd07c23e4afe77789e9 b/data_node_red/.npm/_cacache/index-v5/df/76/2baed9f89647c5af3edc467fecba967938934732fbd07c23e4afe77789e9 new file mode 100644 index 0000000..a4648ba --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/df/76/2baed9f89647c5af3edc467fecba967938934732fbd07c23e4afe77789e9 @@ -0,0 +1,2 @@ + +dd4a671bd77e84e243c2e3411870fe74c32df147 {"key":"pacote:range-manifest:https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz:sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764839255,"size":1,"metadata":{"id":"process-nextick-args@2.0.1","manifest":{"name":"process-nextick-args","version":"2.0.1","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tap":"~0.2.6"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","_integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==","_shasum":"7820d9b16120cc55ca9ae7792680ae7dba6d7fe2","_shrinkwrap":null,"_id":"process-nextick-args@2.0.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e2/0b/e7a95828c3a0abbf0a465684edea4ff38c9d00659712989055a405cd9ef3 b/data_node_red/.npm/_cacache/index-v5/e2/0b/e7a95828c3a0abbf0a465684edea4ff38c9d00659712989055a405cd9ef3 new file mode 100644 index 0000000..79ef0ad --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e2/0b/e7a95828c3a0abbf0a465684edea4ff38c9d00659712989055a405cd9ef3 @@ -0,0 +1,2 @@ + +98e6d6a04af8b0feeedfd503ced80a45370f500f {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseuri","integrity":"sha512-dcjs1EPzDfPeVYu5YlTOZFmq+JsBo13oZrwHKA+Oa3NYeejwlB8AYTolwzJXQm87hYyDz6I60UGalcnruwtWqw==","time":1623764916852,"size":2672,"metadata":{"url":"https://registry.npmjs.org/parseuri","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:parseuri"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2672"],"connection":["keep-alive"],"cf-ray":["65fc41c9bb0408f9-EZE"],"accept-ranges":["bytes"],"age":["1080"],"cache-control":["public, max-age=300"],"etag":["\"f19d0267b90287b8efd3d30918f63398\""],"last-modified":["Sat, 15 Feb 2020 08:04:41 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877219000008f938a69000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e2/58/9f87d0a588ae2a6322c65b0916e3ec5af109671b0eee7b34730cfa1fe013 b/data_node_red/.npm/_cacache/index-v5/e2/58/9f87d0a588ae2a6322c65b0916e3ec5af109671b0eee7b34730cfa1fe013 new file mode 100644 index 0000000..e85d524 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e2/58/9f87d0a588ae2a6322c65b0916e3ec5af109671b0eee7b34730cfa1fe013 @@ -0,0 +1,2 @@ + +d8ef0422f3b6fda918d14ae4d2014ab5dc3c933c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/toidentifier","integrity":"sha512-5LVOtczsmTCeFBBrxa+8DgLfEQv/H/tdvRXzGmB9oA6GU2i+sGpOK2zZl0ngmC2DUKx+DVkggnQHc3u4Udro1Q==","time":1623764915267,"size":2329,"metadata":{"url":"https://registry.npmjs.org/toidentifier","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:toidentifier"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2329"],"connection":["keep-alive"],"cf-ray":["65fc41c02d6608d9-EZE"],"accept-ranges":["bytes"],"age":["1746"],"cache-control":["public, max-age=300"],"etag":["\"b417493bdb811720505975d226838290\""],"last-modified":["Sat, 15 Feb 2020 17:06:01 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876c17000008d920b8f000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e3/57/600db2236b7babc107e0a4133335d573b060586e3e1b8260014f5d743f4b b/data_node_red/.npm/_cacache/index-v5/e3/57/600db2236b7babc107e0a4133335d573b060586e3e1b8260014f5d743f4b new file mode 100644 index 0000000..5ba291b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e3/57/600db2236b7babc107e0a4133335d573b060586e3e1b8260014f5d743f4b @@ -0,0 +1,2 @@ + +b966a7b8d68a05aa20973b7230442790589ca95c {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/socket.io-adapter","integrity":"sha512-qvVaC4Q/QF9dJ+nFA87HYb8ubAo+cXqDY5YEfnPPxaeHx+cloV6LCOx0T2SvpyNvDPZePuq9BycMvsatQ5+IMg==","time":1623764915656,"size":17715,"metadata":{"url":"https://registry.npmjs.org/socket.io-adapter","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:socket.io-adapter"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["17715"],"connection":["keep-alive"],"cf-ray":["65fc41c24f8208b4-EZE"],"accept-ranges":["bytes"],"age":["3952"],"cache-control":["public, max-age=300"],"etag":["\"79464a98f46bab59a15e0433aa839cef\""],"last-modified":["Wed, 19 May 2021 22:48:01 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d6c000008b42faf1000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e3/c0/f5a1e7a4692012f85684076f1d5bb0729e7fea0f60e8f6079ed0d72597ec b/data_node_red/.npm/_cacache/index-v5/e3/c0/f5a1e7a4692012f85684076f1d5bb0729e7fea0f60e8f6079ed0d72597ec new file mode 100644 index 0000000..a153fe3 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e3/c0/f5a1e7a4692012f85684076f1d5bb0729e7fea0f60e8f6079ed0d72597ec @@ -0,0 +1,2 @@ + +bbb51b5adba584a9fc5fae68b058d5c0ff7e4d40 {"key":"pacote:version-manifest:https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz:sha1-F+bBH3PdTz10zaek/zI46a2b+JA=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764917035,"size":1,"metadata":{"id":"to-array@0.1.4","manifest":{"name":"to-array","version":"0.1.4","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"tap":"~0.3.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz","_integrity":"sha1-F+bBH3PdTz10zaek/zI46a2b+JA=","_shasum":"17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890","_shrinkwrap":null,"_id":"to-array@0.1.4"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e4/3d/a38dab7a0f167ab05a5c54b29de142d04c222f4fb2903e0b9bcb243e415b b/data_node_red/.npm/_cacache/index-v5/e4/3d/a38dab7a0f167ab05a5c54b29de142d04c222f4fb2903e0b9bcb243e415b new file mode 100644 index 0000000..ab3a511 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e4/3d/a38dab7a0f167ab05a5c54b29de142d04c222f4fb2903e0b9bcb243e415b @@ -0,0 +1,2 @@ + +203d4b9e4608f5e25251123260dfd91476abaee4 {"key":"pacote:version-manifest:https://registry.npmjs.org/after/-/after-0.8.2.tgz:sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916434,"size":1,"metadata":{"id":"after@0.8.2","manifest":{"name":"after","version":"0.8.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"mocha":"~1.8.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/after/-/after-0.8.2.tgz","_integrity":"sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=","_shasum":"fedb394f9f0e02aa9768e702bda23b505fae7e1f","_shrinkwrap":null,"_id":"after@0.8.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e6/d8/77dce87974bea569c6c30bcdebb05eebf53284d25cc4c8cf1c6650339d9d b/data_node_red/.npm/_cacache/index-v5/e6/d8/77dce87974bea569c6c30bcdebb05eebf53284d25cc4c8cf1c6650339d9d new file mode 100644 index 0000000..2fbf421 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e6/d8/77dce87974bea569c6c30bcdebb05eebf53284d25cc4c8cf1c6650339d9d @@ -0,0 +1,2 @@ + +1f1ef1f5a341636f90b18fcfb2c67c5a3ed1e186 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ws/-/ws-7.4.6.tgz","integrity":"sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==","time":1623764916208,"size":27427,"metadata":{"url":"https://registry.npmjs.org/ws/-/ws-7.4.6.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:ws@https://registry.npmjs.org/ws/-/ws-7.4.6.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/octet-stream"],"content-length":["27427"],"connection":["keep-alive"],"cf-ray":["65fc41c5ff5408d9-EZE"],"accept-ranges":["bytes"],"age":["1804658"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"1b8558e51ca0aee94d10256afc7d8c95\""],"last-modified":["Tue, 25 May 2021 16:30:02 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876fbb000008d9f8862000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e9/22/0cdacf235792ec5c3dedf9182b3124ea1d04ae21e5bcd4b2db42b3462d80 b/data_node_red/.npm/_cacache/index-v5/e9/22/0cdacf235792ec5c3dedf9182b3124ea1d04ae21e5bcd4b2db42b3462d80 new file mode 100644 index 0000000..2933493 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e9/22/0cdacf235792ec5c3dedf9182b3124ea1d04ae21e5bcd4b2db42b3462d80 @@ -0,0 +1,2 @@ + +d98442d288702e90626a35c615052becd7895299 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","integrity":"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==","time":1623764915339,"size":2210,"metadata":{"url":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:toidentifier@https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["2210"],"connection":["keep-alive"],"cf-ray":["65fc41c0987808f5-EZE"],"accept-ranges":["bytes"],"age":["1986108"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"56af4e426b47249fbbe686cfbcbe5b0d\""],"last-modified":["Mon, 09 Jul 2018 15:57:11 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876c62000008f5d0242000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/e9/9c/e08c570e3e80ae400e5f1968161f7d289336ebf879bfc7f78a93a7aa8c7b b/data_node_red/.npm/_cacache/index-v5/e9/9c/e08c570e3e80ae400e5f1968161f7d289336ebf879bfc7f78a93a7aa8c7b new file mode 100644 index 0000000..d36aebc --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/e9/9c/e08c570e3e80ae400e5f1968161f7d289336ebf879bfc7f78a93a7aa8c7b @@ -0,0 +1,2 @@ + +eedc024cfee7c670a38156a6e81b4d012dd8ea8b {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","time":1623764915656,"size":21773,"metadata":{"url":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:debug@https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/octet-stream"],"content-length":["21773"],"connection":["keep-alive"],"cf-ray":["65fc41c2483b08c0-EZE"],"accept-ranges":["bytes"],"age":["1986834"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"01ddc35a76b0e581407d4c53beb7d9f8\""],"last-modified":["Sat, 22 Dec 2018 16:40:26 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876d6e000008c01aa52000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/eb/22/19bb6590f7312f358d7385c3500c0043cd60e890b804af0c9b986c3c5a94 b/data_node_red/.npm/_cacache/index-v5/eb/22/19bb6590f7312f358d7385c3500c0043cd60e890b804af0c9b986c3c5a94 new file mode 100644 index 0000000..ae77e27 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/eb/22/19bb6590f7312f358d7385c3500c0043cd60e890b804af0c9b986c3c5a94 @@ -0,0 +1,2 @@ + +068cee1cd3fdbcd0f68457f73db03e1cef752954 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==","time":1623764914571,"size":3952,"metadata":{"url":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:parseurl@https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/octet-stream"],"content-length":["3952"],"connection":["keep-alive"],"cf-ray":["65fc41bbc8c208f9-EZE"],"accept-ranges":["bytes"],"age":["1986105"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"2fd0b209274d78b79ba9c339fd88b8b2\""],"last-modified":["Tue, 16 Apr 2019 04:16:31 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab187695e000008f973379000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ec/da/4497dc8d2813413abe1f1c72b66bd18f50b6f2f052a7c0eb0dd8c8130496 b/data_node_red/.npm/_cacache/index-v5/ec/da/4497dc8d2813413abe1f1c72b66bd18f50b6f2f052a7c0eb0dd8c8130496 new file mode 100644 index 0000000..c744e49 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ec/da/4497dc8d2813413abe1f1c72b66bd18f50b6f2f052a7c0eb0dd8c8130496 @@ -0,0 +1,2 @@ + +c7d959afe4258ab0160937a66a9d4299ce2465b7 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ee-first","integrity":"sha512-UoPhzKoAZ1JEJHK9yQod0S2tcWKgzq2xNKJi5UbK411QQzl4UkPEcL1z836QgmM/wqXUaEksNPhHKUzTZyHwKQ==","time":1623764915430,"size":1875,"metadata":{"url":"https://registry.npmjs.org/ee-first","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:ee-first"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1875"],"connection":["keep-alive"],"cf-ray":["65fc41c138da08d9-EZE"],"accept-ranges":["bytes"],"age":["6267"],"cache-control":["public, max-age=300"],"etag":["\"0062f92f226099b78097d8f9ed20d2e0\""],"last-modified":["Fri, 14 Feb 2020 10:46:15 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876cc4000008d9170ad000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ed/d4/23dad87b5b999332f6195d5c894a2a4e6fe945034f64cf15e65c96fec4ba b/data_node_red/.npm/_cacache/index-v5/ed/d4/23dad87b5b999332f6195d5c894a2a4e6fe945034f64cf15e65c96fec4ba new file mode 100644 index 0000000..c76ee60 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ed/d4/23dad87b5b999332f6195d5c894a2a4e6fe945034f64cf15e65c96fec4ba @@ -0,0 +1,2 @@ + +aaf1db56f6bccae539a69120d0fd720143c5e241 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==","time":1623764915004,"size":3028,"metadata":{"url":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:ms@https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["binary/octet-stream"],"content-length":["3028"],"connection":["keep-alive"],"cf-ray":["65fc41be2fa208e1-EZE"],"accept-ranges":["bytes"],"age":["1986106"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"44070cdadd7a6a5cc4c7db550faaddcc\""],"last-modified":["Tue, 05 Jun 2018 13:46:54 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876ae1000008e13bbe4000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/f3/2c/80267cf9b394a43404ccabe3e574f5fd89b769b43be625b75ff9b1b4a2ee b/data_node_red/.npm/_cacache/index-v5/f3/2c/80267cf9b394a43404ccabe3e574f5fd89b769b43be625b75ff9b1b4a2ee new file mode 100644 index 0000000..d5c0c24 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/f3/2c/80267cf9b394a43404ccabe3e574f5fd89b769b43be625b75ff9b1b4a2ee @@ -0,0 +1,2 @@ + +32da53b59bc0cf51c302bc58a7abf08eff7df0b1 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/mime-db","integrity":"sha512-Kb5re7Kyq0IeQU3iAMdDVStZQDJfAnwItDhHhRHbEFrflTDf58esmHYikYvNvDxvBIKBEy+rKY+4PRPV41KW7w==","time":1623764913890,"size":42006,"metadata":{"url":"https://registry.npmjs.org/mime-db","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:mime-db"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:33 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["42006"],"connection":["keep-alive"],"cf-ray":["65fc41b78c7b08f5-EZE"],"accept-ranges":["bytes"],"age":["3288"],"cache-control":["public, max-age=300"],"etag":["\"84100981544a0d93af84f477808a9122\""],"last-modified":["Mon, 31 May 2021 03:59:05 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18766b5000008f59586f000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/f4/24/b32ba53db061abc5e01ea295d599a7e46a696d4e356b358eed241e8ea9e1 b/data_node_red/.npm/_cacache/index-v5/f4/24/b32ba53db061abc5e01ea295d599a7e46a696d4e356b358eed241e8ea9e1 new file mode 100644 index 0000000..fb23ada --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/f4/24/b32ba53db061abc5e01ea295d599a7e46a696d4e356b358eed241e8ea9e1 @@ -0,0 +1,2 @@ + +1a13f64f7b8caabdf795f0cf8249a7f9e5436324 {"key":"pacote:range-manifest:https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz:sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764915900,"size":1,"metadata":{"id":"socket.io-adapter@1.1.2","manifest":{"name":"socket.io-adapter","version":"1.1.2","dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz","_integrity":"sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==","_shasum":"ab3f0d6f66b8fc7fca3959ab5991f82221789be9","_shrinkwrap":null,"_id":"socket.io-adapter@1.1.2"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/f4/67/097956b2fe9d0ce94a3e7bb99a602e16ad042f3efbe23cb7cbf9de8cf743 b/data_node_red/.npm/_cacache/index-v5/f4/67/097956b2fe9d0ce94a3e7bb99a602e16ad042f3efbe23cb7cbf9de8cf743 new file mode 100644 index 0000000..bf63a4d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/f4/67/097956b2fe9d0ce94a3e7bb99a602e16ad042f3efbe23cb7cbf9de8cf743 @@ -0,0 +1,2 @@ + +3c89f54997e22ef6baeaf7154d5336ddb7d35184 {"key":"pacote:range-manifest:https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz:sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916214,"size":1,"metadata":{"id":"engine.io-parser@2.2.1","manifest":{"name":"engine.io-parser","version":"2.2.1","dependencies":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.4","blob":"0.0.5","has-binary2":"~1.0.2"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"benchmark":"^2.1.4","expect.js":"0.3.1","mocha":"^5.2.0","socket.io-browsers":"^1.0.2","zuul":"3.11.1","zuul-ngrok":"4.0.0"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz","_integrity":"sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==","_shasum":"57ce5611d9370ee94f99641b589f94c97e4f5da7","_shrinkwrap":null,"_id":"engine.io-parser@2.2.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/f5/26/72962924d01372fc562675b84c487fcecb5a99204f1b0cdfb9a99c80b5ee b/data_node_red/.npm/_cacache/index-v5/f5/26/72962924d01372fc562675b84c487fcecb5a99204f1b0cdfb9a99c80b5ee new file mode 100644 index 0000000..fa43bfb --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/f5/26/72962924d01372fc562675b84c487fcecb5a99204f1b0cdfb9a99c80b5ee @@ -0,0 +1,2 @@ + +03fa4e8c0e856db932eb7548bdd359fb630e5071 {"key":"pacote:range-manifest:https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz:sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==","integrity":"sha512-C2EkHXwXvLsbrucJTRS3xFHv7Mf/y9klmKDxPTE8yevCoH5h8Ae69Y+/lP+ahpW91crnzgO78elOk2E6APJfIQ==","time":1623764916221,"size":1,"metadata":{"id":"cookie@0.4.1","manifest":{"name":"cookie","version":"0.4.1","engines":{"node":">= 0.6"},"dependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","eslint":"6.8.0","eslint-plugin-markdown":"1.0.2","mocha":"7.1.1","nyc":"15.0.1"},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz","_integrity":"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==","_shasum":"afd713fe26ebd21ba95ceb61f9a8116e50a537d1","_shrinkwrap":null,"_id":"cookie@0.4.1"},"type":"finalized-manifest"}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/f6/3d/f2f0f797a9b8bc04ff5a617328dd807c77dc2d1a81c8243f65499cc44d81 b/data_node_red/.npm/_cacache/index-v5/f6/3d/f2f0f797a9b8bc04ff5a617328dd807c77dc2d1a81c8243f65499cc44d81 new file mode 100644 index 0000000..83e4e8b --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/f6/3d/f2f0f797a9b8bc04ff5a617328dd807c77dc2d1a81c8243f65499cc44d81 @@ -0,0 +1,2 @@ + +6aa316b33d47e390d3c99ba0b268f82a454d0302 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/escape-html","integrity":"sha512-O5FXgf4a3lFp6UK+JRq/pAKr8y4+QsDCnzyc7/kjB9wprOk0CBIUI2Uw9vzjnCAEY/QMNeWlCvL2zZMNUn5Ltw==","time":1623764914469,"size":1098,"metadata":{"url":"https://registry.npmjs.org/escape-html","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:escape-html"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:34 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["1098"],"connection":["keep-alive"],"cf-ray":["65fc41bb0dab08d9-EZE"],"accept-ranges":["bytes"],"age":["6342"],"cache-control":["public, max-age=300"],"etag":["\"1bdce7cda1dc7c9ed231b6e9f29e5d7b\""],"last-modified":["Fri, 14 Feb 2020 11:34:47 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab18768e9000008d902821000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/fb/51/8447ea6dbf108b4fcb469058d209f44b8d9716b40fcc759d442e1686f92c b/data_node_red/.npm/_cacache/index-v5/fb/51/8447ea6dbf108b4fcb469058d209f44b8d9716b40fcc759d442e1686f92c new file mode 100644 index 0000000..fd42f3d --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/fb/51/8447ea6dbf108b4fcb469058d209f44b8d9716b40fcc759d442e1686f92c @@ -0,0 +1,2 @@ + +b124f8c792d61362fba60f21da740e47c75f3b19 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","integrity":"sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","time":1623764913055,"size":7824,"metadata":{"url":"https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["tarball"],"pacote-pkg-id":["registry:compression@https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:32 GMT"],"content-type":["application/octet-stream"],"content-length":["7824"],"connection":["keep-alive"],"cf-ray":["65fc41b1dbe708c0-EZE"],"accept-ranges":["bytes"],"age":["1986061"],"cache-control":["public, immutable, max-age=31557600"],"etag":["\"226edb31fd31c765493dbf4d2a5863b9\""],"last-modified":["Mon, 18 Mar 2019 14:43:28 GMT"],"vary":["Accept-Encoding"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876326000008c0bf05c000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/fc/b9/d14641ca9b49399d982314e9297ab3a0c090e2ec773c37b440f9be791ad6 b/data_node_red/.npm/_cacache/index-v5/fc/b9/d14641ca9b49399d982314e9297ab3a0c090e2ec773c37b440f9be791ad6 new file mode 100644 index 0000000..29be028 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/fc/b9/d14641ca9b49399d982314e9297ab3a0c090e2ec773c37b440f9be791ad6 @@ -0,0 +1,2 @@ + +acc8df257a3d81b7da2de85afc9b8419d512c36a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/arraybuffer.slice","integrity":"sha512-bnJymWBrXY2H/TvZaemsz8x2rDG2hlIfoeAKiZ53pZv812VDkvGMaDptBWKf76VQxv/tjFZl1cjx7tpCUU478g==","time":1623764916306,"size":2040,"metadata":{"url":"https://registry.npmjs.org/arraybuffer.slice","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:arraybuffer.slice"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:36 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2040"],"connection":["keep-alive"],"cf-ray":["65fc41c6abf708b4-EZE"],"accept-ranges":["bytes"],"age":["949"],"cache-control":["public, max-age=300"],"etag":["\"fb76c52a7981c02f01f453073531e8d5\""],"last-modified":["Fri, 14 Feb 2020 04:27:09 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1877026000008b42fb3a000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/fd/51/5bf9d842e1ecfea484079ce86f5d7bf7ceddbcc1711c7b29270cb9913b31 b/data_node_red/.npm/_cacache/index-v5/fd/51/5bf9d842e1ecfea484079ce86f5d7bf7ceddbcc1711c7b29270cb9913b31 new file mode 100644 index 0000000..925f9c8 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/fd/51/5bf9d842e1ecfea484079ce86f5d7bf7ceddbcc1711c7b29270cb9913b31 @@ -0,0 +1,2 @@ + +daae8485f153f15ee467226c6786546e082d19ac {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/setprototypeof","integrity":"sha512-gY6ZrSM9PjOrKHEjkzxZFizdohx1qVm/8fBVKyv1Uv78TGssPLXORnJmcgUbX2a2S5+p5ZaEuJYdP9jiUBFfmg==","time":1623764915269,"size":3803,"metadata":{"url":"https://registry.npmjs.org/setprototypeof","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["e841193a6c24ec21"],"referer":["install node-red-dashboard@2.29.3"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:setprototypeof"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:48:35 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["3803"],"connection":["keep-alive"],"cf-ray":["65fc41c0296e08c0-EZE"],"accept-ranges":["bytes"],"age":["1746"],"cache-control":["public, max-age=300"],"etag":["\"f187fedbf20b83c48c9e6b1afac616f8\""],"last-modified":["Sat, 15 Feb 2020 13:52:59 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1876c1b000008c0db9d2000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ff/84/aaf48925b9fb92cbfaaf7767b230abf66f48ebec8f503af76cacd9d7a57d b/data_node_red/.npm/_cacache/index-v5/ff/84/aaf48925b9fb92cbfaaf7767b230abf66f48ebec8f503af76cacd9d7a57d new file mode 100644 index 0000000..0a4a2cf --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ff/84/aaf48925b9fb92cbfaaf7767b230abf66f48ebec8f503af76cacd9d7a57d @@ -0,0 +1,2 @@ + +8983587152a0b26eda1ffac1af892433049552d4 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/sqlstring","integrity":"sha512-gqfzk6hQx0SwwGCi/9rLHjX038kfSfeklcLRRZDNchnlhl1312EZaOaJMQPmwO57GWps8eyIfa9PFnHhc1sWBw==","time":1623764838796,"size":4474,"metadata":{"url":"https://registry.npmjs.org/sqlstring","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:sqlstring"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:18 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["4474"],"connection":["keep-alive"],"cf-ray":["65fc3fe2185d08d9-EZE"],"accept-ranges":["bytes"],"age":["5535"],"cache-control":["public, max-age=300"],"etag":["\"c9acb4a9e140927de45efaac16f796a2\""],"last-modified":["Thu, 16 Apr 2020 02:25:47 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab1864150000008d919139000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/_cacache/index-v5/ff/d3/eca629ba696cac5a91e13f61bb768d7cbf82072f798d17071572ab3943f2 b/data_node_red/.npm/_cacache/index-v5/ff/d3/eca629ba696cac5a91e13f61bb768d7cbf82072f798d17071572ab3943f2 new file mode 100644 index 0000000..2e25ca1 --- /dev/null +++ b/data_node_red/.npm/_cacache/index-v5/ff/d3/eca629ba696cac5a91e13f61bb768d7cbf82072f798d17071572ab3943f2 @@ -0,0 +1,2 @@ + +8f6b74424eb0c54a5b4da655af8ea5796d76169a {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/inherits","integrity":"sha512-Ci7OGitJvcVCVL6lirHqpnKZ6VE3xAl2IYYrnbb/1QXjx6iP4REfqddrPopHTR3zBK3LAQjhyg7WCTKtzpdK2A==","time":1623764839104,"size":2483,"metadata":{"url":"https://registry.npmjs.org/inherits","reqHeaders":{"connection":["keep-alive"],"user-agent":["npm/6.14.12 node/v10.24.1 linux arm"],"npm-in-ci":["false"],"npm-scope":[""],"npm-session":["ac0da125cc96da0e"],"referer":["install node-red-node-mysql@0.1.9"],"pacote-req-type":["packument"],"pacote-pkg-id":["registry:inherits"],"accept":["application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"]},"resHeaders":{"date":["Tue, 15 Jun 2021 13:47:19 GMT"],"content-type":["application/vnd.npm.install-v1+json"],"content-length":["2483"],"connection":["keep-alive"],"cf-ray":["65fc3fe3f88508b8-EZE"],"accept-ranges":["bytes"],"age":["1521"],"cache-control":["public, max-age=300"],"etag":["\"cd6c1972dd388e771d443527342d1243\""],"last-modified":["Fri, 14 Feb 2020 17:21:57 GMT"],"vary":["accept-encoding, accept"],"cf-cache-status":["HIT"],"cf-request-id":["0ab186427b000008b8e2302000000001"],"expect-ct":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],"server":["cloudflare"],"x-fetch-attempts":["1"]}}} \ No newline at end of file diff --git a/data_node_red/.npm/anonymous-cli-metrics.json b/data_node_red/.npm/anonymous-cli-metrics.json new file mode 100644 index 0000000..e28bfe2 --- /dev/null +++ b/data_node_red/.npm/anonymous-cli-metrics.json @@ -0,0 +1 @@ +{"metricId":"fce2c183-454e-4b85-ae77-99e0baee071a","metrics":{"from":"2021-06-15T13:47:19.971Z","to":"2021-07-30T14:00:53.294Z","successfulInstalls":4,"failedInstalls":0}} \ No newline at end of file diff --git a/data_node_red/.sessions.json b/data_node_red/.sessions.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/data_node_red/.sessions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/data_node_red/binarios/BL-800_1.0.0.bin b/data_node_red/binarios/BL-800_1.0.0.bin new file mode 100644 index 0000000..a1666da Binary files /dev/null and b/data_node_red/binarios/BL-800_1.0.0.bin differ diff --git a/data_node_red/binarios/CO2_IOT_200-fix.bin b/data_node_red/binarios/CO2_IOT_200-fix.bin new file mode 100644 index 0000000..bc57961 Binary files /dev/null and b/data_node_red/binarios/CO2_IOT_200-fix.bin differ diff --git a/data_node_red/binarios/CO2_IOT_200-sin-templateID.bin b/data_node_red/binarios/CO2_IOT_200-sin-templateID.bin new file mode 100644 index 0000000..38d56fe Binary files /dev/null and b/data_node_red/binarios/CO2_IOT_200-sin-templateID.bin differ diff --git a/data_node_red/binarios/CO2_firmware_1.1.4.bin b/data_node_red/binarios/CO2_firmware_1.1.4.bin new file mode 100644 index 0000000..2984838 Binary files /dev/null and b/data_node_red/binarios/CO2_firmware_1.1.4.bin differ diff --git a/data_node_red/binarios/EJEMPLO-BINARIO.bin b/data_node_red/binarios/EJEMPLO-BINARIO.bin new file mode 100644 index 0000000..f7c0005 Binary files /dev/null and b/data_node_red/binarios/EJEMPLO-BINARIO.bin differ diff --git a/data_node_red/binarios/FAA-200_v1.0.0.bin b/data_node_red/binarios/FAA-200_v1.0.0.bin new file mode 100644 index 0000000..77a9992 Binary files /dev/null and b/data_node_red/binarios/FAA-200_v1.0.0.bin differ diff --git a/data_node_red/binarios/FAA-200_v1.0.1.bin b/data_node_red/binarios/FAA-200_v1.0.1.bin new file mode 100644 index 0000000..bcc7f6c Binary files /dev/null and b/data_node_red/binarios/FAA-200_v1.0.1.bin differ diff --git a/data_node_red/binarios/FAA-200_v1.0.2.bin b/data_node_red/binarios/FAA-200_v1.0.2.bin new file mode 100644 index 0000000..10f91fd Binary files /dev/null and b/data_node_red/binarios/FAA-200_v1.0.2.bin differ diff --git a/data_node_red/binarios/FAA-200_v1.0.3.bin b/data_node_red/binarios/FAA-200_v1.0.3.bin new file mode 100644 index 0000000..0bd0bc7 Binary files /dev/null and b/data_node_red/binarios/FAA-200_v1.0.3.bin differ diff --git a/data_node_red/binarios/IOT-100_v0.0.1.bin b/data_node_red/binarios/IOT-100_v0.0.1.bin new file mode 100644 index 0000000..4a1604b Binary files /dev/null and b/data_node_red/binarios/IOT-100_v0.0.1.bin differ diff --git a/data_node_red/binarios/IOT-100_v0.0.2.bin b/data_node_red/binarios/IOT-100_v0.0.2.bin new file mode 100644 index 0000000..5bad2ef Binary files /dev/null and b/data_node_red/binarios/IOT-100_v0.0.2.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.0.bin b/data_node_red/binarios/IOT-100_v1.0.0.bin new file mode 100644 index 0000000..750955a Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.0.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.1.bin b/data_node_red/binarios/IOT-100_v1.0.1.bin new file mode 100644 index 0000000..7a2be37 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.1.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.2.bin b/data_node_red/binarios/IOT-100_v1.0.2.bin new file mode 100644 index 0000000..50d95fa Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.2.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.3.bin b/data_node_red/binarios/IOT-100_v1.0.3.bin new file mode 100644 index 0000000..e9238c0 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.3.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.4.bin b/data_node_red/binarios/IOT-100_v1.0.4.bin new file mode 100644 index 0000000..e01f157 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.4.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.0.5.bin b/data_node_red/binarios/IOT-100_v1.0.5.bin new file mode 100644 index 0000000..202010e Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.0.5.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.1.0.bin b/data_node_red/binarios/IOT-100_v1.1.0.bin new file mode 100644 index 0000000..0fd566f Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.1.0.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.1.1.bin b/data_node_red/binarios/IOT-100_v1.1.1.bin new file mode 100644 index 0000000..c2b7157 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.1.1.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.1.2.bin b/data_node_red/binarios/IOT-100_v1.1.2.bin new file mode 100644 index 0000000..6d7b7d8 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.1.2.bin differ diff --git a/data_node_red/binarios/IOT-100_v1.1.3.bin b/data_node_red/binarios/IOT-100_v1.1.3.bin new file mode 100644 index 0000000..18812c7 Binary files /dev/null and b/data_node_red/binarios/IOT-100_v1.1.3.bin differ diff --git a/data_node_red/binarios/IOT-200_v0.0.4.bin b/data_node_red/binarios/IOT-200_v0.0.4.bin new file mode 100644 index 0000000..5d314b5 Binary files /dev/null and b/data_node_red/binarios/IOT-200_v0.0.4.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.0.0.bin b/data_node_red/binarios/IOT-200_v1.0.0.bin new file mode 100644 index 0000000..465b7cf Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.0.0.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.0.1.bin b/data_node_red/binarios/IOT-200_v1.0.1.bin new file mode 100644 index 0000000..4cecbae Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.0.1.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.0.2.bin b/data_node_red/binarios/IOT-200_v1.0.2.bin new file mode 100644 index 0000000..20f31b3 Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.0.2.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.0.3.bin b/data_node_red/binarios/IOT-200_v1.0.3.bin new file mode 100644 index 0000000..8fa1a1a Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.0.3.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.0.5.bin b/data_node_red/binarios/IOT-200_v1.0.5.bin new file mode 100644 index 0000000..a9e2c5a Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.0.5.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.1.0.bin b/data_node_red/binarios/IOT-200_v1.1.0.bin new file mode 100644 index 0000000..c1aa8fc Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.1.0.bin differ diff --git a/data_node_red/binarios/IOT-200_v1.1.3.bin b/data_node_red/binarios/IOT-200_v1.1.3.bin new file mode 100644 index 0000000..6222a2b Binary files /dev/null and b/data_node_red/binarios/IOT-200_v1.1.3.bin differ diff --git a/data_node_red/binarios/IR1000_5.0.0.bin b/data_node_red/binarios/IR1000_5.0.0.bin new file mode 100644 index 0000000..52a5b1d Binary files /dev/null and b/data_node_red/binarios/IR1000_5.0.0.bin differ diff --git a/data_node_red/binarios/IR1000_5.0.1.bin b/data_node_red/binarios/IR1000_5.0.1.bin new file mode 100644 index 0000000..2cdee69 Binary files /dev/null and b/data_node_red/binarios/IR1000_5.0.1.bin differ diff --git a/data_node_red/binarios/IR1000_5.0.2.1.bin b/data_node_red/binarios/IR1000_5.0.2.1.bin new file mode 100644 index 0000000..cbd2839 Binary files /dev/null and b/data_node_red/binarios/IR1000_5.0.2.1.bin differ diff --git a/data_node_red/binarios/IR1000_5.0.2.bin b/data_node_red/binarios/IR1000_5.0.2.bin new file mode 100644 index 0000000..13fce80 Binary files /dev/null and b/data_node_red/binarios/IR1000_5.0.2.bin differ diff --git a/data_node_red/binarios/IR1000_5.0.3.bin b/data_node_red/binarios/IR1000_5.0.3.bin new file mode 100644 index 0000000..403cc23 Binary files /dev/null and b/data_node_red/binarios/IR1000_5.0.3.bin differ diff --git a/data_node_red/binarios/IRR1000_2.0.0.bin b/data_node_red/binarios/IRR1000_2.0.0.bin new file mode 100644 index 0000000..b13f7ad Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.0.0.bin differ diff --git a/data_node_red/binarios/IRR1000_2.1.0.bin b/data_node_red/binarios/IRR1000_2.1.0.bin new file mode 100644 index 0000000..4a66328 Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.1.0.bin differ diff --git a/data_node_red/binarios/IRR1000_2.1.1.bin b/data_node_red/binarios/IRR1000_2.1.1.bin new file mode 100644 index 0000000..5c45628 Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.1.1.bin differ diff --git a/data_node_red/binarios/IRR1000_2.1.2.bin b/data_node_red/binarios/IRR1000_2.1.2.bin new file mode 100644 index 0000000..f7ca811 Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.1.2.bin differ diff --git a/data_node_red/binarios/IRR1000_2.1.3.bin b/data_node_red/binarios/IRR1000_2.1.3.bin new file mode 100644 index 0000000..e5624c7 Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.1.3.bin differ diff --git a/data_node_red/binarios/IRR1000_2.1.4.bin b/data_node_red/binarios/IRR1000_2.1.4.bin new file mode 100644 index 0000000..629e0f8 Binary files /dev/null and b/data_node_red/binarios/IRR1000_2.1.4.bin differ diff --git a/data_node_red/binarios/TAC-1000_v0.0.5.bin b/data_node_red/binarios/TAC-1000_v0.0.5.bin new file mode 100644 index 0000000..a40c563 Binary files /dev/null and b/data_node_red/binarios/TAC-1000_v0.0.5.bin differ diff --git a/data_node_red/binarios/edxMayo.55.png b/data_node_red/binarios/edxMayo.55.png new file mode 100644 index 0000000..94054de Binary files /dev/null and b/data_node_red/binarios/edxMayo.55.png differ diff --git a/data_node_red/binarios/ejemplobd.bin b/data_node_red/binarios/ejemplobd.bin new file mode 100644 index 0000000..f7c0005 Binary files /dev/null and b/data_node_red/binarios/ejemplobd.bin differ diff --git a/data_node_red/flows.json b/data_node_red/flows.json new file mode 100644 index 0000000..9a79b5b --- /dev/null +++ b/data_node_red/flows.json @@ -0,0 +1 @@ +[{"id":"6250d7a0.2d62e8","type":"tab","label":"OTA update","disabled":false,"info":""},{"id":"62051268.8937ac","type":"tab","label":"Dashboard","disabled":false,"info":""},{"id":"402e352d.79d1dc","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"d1d5ce25.67cc6","type":"tab","label":"Chaleco","disabled":false,"info":""},{"id":"bdf7265d.d181a8","type":"MySQLdatabase","name":"","host":"db","port":"3306","db":"main_database","tz":"","charset":"UTF8"},{"id":"6ed961cf.e226d","type":"ui_tab","name":"Nuevo device","icon":"dashboard","disabled":false,"hidden":false},{"id":"df418b8a.02a728","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","reset":false},"themeState":{"base-color":{"default":"#0094CE","value":"#0094CE","edited":true},"page-titlebar-backgroundColor":{"value":"#0094CE","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#ffffff","edited":false},"group-textColor":{"value":"#1bbfff","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#0094ce","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey","palette":"light"}},"site":{"name":"FANIoT Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"71b4f020.58093","type":"ui_group","name":"Agregar Dispositivo","tab":"6ed961cf.e226d","order":1,"disp":true,"width":"6","collapse":false},{"id":"7cba5717.c4ee98","type":"ui_group","name":"Estadisticas","tab":"6ed961cf.e226d","order":2,"disp":true,"width":"6","collapse":false},{"id":"4a39f6ab.e86eb8","type":"ui_spacer","name":"spacer","group":"7cba5717.c4ee98","order":1,"width":1,"height":1},{"id":"2116c966.928d66","type":"ui_spacer","name":"spacer","group":"7cba5717.c4ee98","order":3,"width":1,"height":1},{"id":"73c240a7.6209e","type":"ui_tab","name":"Admin","icon":"build","order":2,"disabled":false,"hidden":false},{"id":"2446fdf8.239892","type":"ui_group","name":"Nuevo Firmware","tab":"73c240a7.6209e","order":1,"disp":true,"width":"6","collapse":false},{"id":"cd74ed6a.1f417","type":"mqtt-broker","name":"","broker":"mqtt","port":"1883","clientid":"NodeRED","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"d17c23db.54daf","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/update","method":"get","upload":false,"swaggerDoc":"","x":100,"y":320,"wires":[["f51c0174.a2067"]]},{"id":"73a0fad6.d83bc4","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":490,"y":340,"wires":[]},{"id":"3cf74d3d.1a9332","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/octet-stream"},"x":860,"y":380,"wires":[]},{"id":"f51c0174.a2067","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload.product_id)\n{\n msg.topic = \"SELECT `filepath` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `product`='\"+msg.payload.product_id+\"' \";\n msg.topic += \"AND `etiqueta`='latest' LIMIT 1;\";\n}\nelse\n{\n msg.topic = \"SELECT `filepath` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n}\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":320,"wires":[["9d52a12e.fe17a","e70974bc.76b448"]]},{"id":"a022dcd3.f3c5c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":850,"y":340,"wires":[]},{"id":"aa3dcdfe.5c38","type":"file in","z":"6250d7a0.2d62e8","name":"ArchivBin","filename":"","format":"","chunk":false,"sendError":false,"encoding":"none","x":660,"y":380,"wires":[["a022dcd3.f3c5c","3cf74d3d.1a9332"]]},{"id":"9d52a12e.fe17a","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":430,"y":260,"wires":[]},{"id":"6fc03cb1.eed7a4","type":"catch","z":"6250d7a0.2d62e8","name":"Catch ArchivoBin","scope":["aa3dcdfe.5c38"],"uncaught":false,"x":680,"y":440,"wires":[["9c45eede.11ce3","ca075ff.3f1c6a"]]},{"id":"9c45eede.11ce3","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":850,"y":480,"wires":[]},{"id":"ca075ff.3f1c6a","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"404","headers":{},"x":860,"y":440,"wires":[]},{"id":"da4dce46.efe94","type":"comment","z":"6250d7a0.2d62e8","name":"Envio el binario segun chip ID","info":"Envio el binario.","x":140,"y":220,"wires":[]},{"id":"c4ece9e3.b03fc8","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/firmwareversion","method":"get","upload":false,"swaggerDoc":"","x":130,"y":160,"wires":[["1e187bfa.cf7174","4afd3e0b.8c118"]]},{"id":"e0f843d8.7f1c6","type":"comment","z":"6250d7a0.2d62e8","name":"Obtener Ultima version de Firmware.","info":"Obtener Ultima version de Firmware.","x":160,"y":80,"wires":[]},{"id":"1e187bfa.cf7174","type":"function","z":"6250d7a0.2d62e8","name":"","func":"\n//msg.payload.chip_id\n//SELECT `device_id`, `date`, `chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update` FROM `main_database`.`devices` WHERE `device_id`=3;\n//SELECT `firmware_id`, `date`, `product_id`, `firmware_version`, `etiqueta` FROM `main_database`.`firmwares` WHERE `firmware_id`=2;\n//msg.topic = \"SELECT `firmware_id`, `date`, `product_id`, `firmware_version`, `etiqueta`\";\n//msg.topic += \"FROM `main_database`.`firmwares` \";\n//msg.topic += \"WHERE `firmware_id`=2;\";\n\nmsg.topic = \"SELECT `firmware_version` \";\nmsg.topic += \"FROM `main_database`.`getFirmwareVersion` \";\nmsg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":160,"wires":[["87e2c1b.761964"]]},{"id":"4afd3e0b.8c118","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":120,"wires":[]},{"id":"87e2c1b.761964","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":520,"y":160,"wires":[["1fa31fc2.7d5b7","d056a3.cd25b96"]]},{"id":"d056a3.cd25b96","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":670,"y":120,"wires":[]},{"id":"51211ad.61c61e4","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/json"},"x":860,"y":160,"wires":[]},{"id":"1fa31fc2.7d5b7","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\n msg.payload = msg.payload[0];\nelse\n msg.payload = {firmware_version: \" \"};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":160,"wires":[["51211ad.61c61e4"]]},{"id":"e70974bc.76b448","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":320,"y":380,"wires":[["73a0fad6.d83bc4","c8382129.662a8"]]},{"id":"c8382129.662a8","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\nmsg.filename = msg.payload[0].filepath;\nelse\nmsg.filename = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":380,"wires":[["162619a1.f3c116","aa3dcdfe.5c38"]]},{"id":"162619a1.f3c116","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":340,"wires":[]},{"id":"61ff7d15.076a64","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/ota/update","method":"post","upload":false,"swaggerDoc":"","x":100,"y":580,"wires":[["77ef7ca5.8f7274","bc9172c3.9632c"]]},{"id":"edb0df8a.91458","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":740,"wires":[]},{"id":"bc9172c3.9632c","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{},"x":280,"y":580,"wires":[]},{"id":"77ef7ca5.8f7274","type":"function","z":"6250d7a0.2d62e8","name":"get product_id y el firmware_id","func":"if(msg.payload.product_id)\n{\n msg.topic = \"SELECT `firmware_id`, `product_id` \";\n msg.topic += \"FROM `main_database`.`getFilepath` \";\n msg.topic += \"WHERE `product`='\"+msg.payload.product_id+\"' \";\n msg.topic += \"AND `etiqueta`='latest';\";\n}\nelse\n{\n msg.topic = \"SELECT `firmware_id_update` \";\n msg.topic += \"FROM `main_database`.`devices` \";\n msg.topic += \"WHERE `chip_id`='\"+msg.payload.chip_id+\"';\";\n}\nmsg.device = {};\n\nmsg.device.chip_id = msg.payload.chip_id;\nmsg.device.product = msg.payload.product_id;\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":620,"wires":[["e6d73d81.b336a","52c6a438.afc65c"]]},{"id":"e6d73d81.b336a","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":680,"wires":[["25444fbf.ff98c","3cb14a20.1b3626"]]},{"id":"52c6a438.afc65c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":620,"wires":[]},{"id":"25444fbf.ff98c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":680,"wires":[]},{"id":"3cb14a20.1b3626","type":"function","z":"6250d7a0.2d62e8","name":"UPDATE Firmware actual","func":"if(msg.device.product)\n{\n msg.topic = \"INSERT INTO `main_database`.`devices`\";\n msg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`)\";\n msg.topic += \"VALUES('\" + msg.device.chip_id + \"' , '\" + msg.payload[0].product_id + \"' , '\" + msg.payload[0].firmware_id + \"', '\" + msg.payload[0].firmware_id + \"' );\";\n}\nelse\n{\n msg.topic = \"UPDATE `main_database`.`devices` \";\n msg.topic += \"SET `firmware_id_act`='\" + msg.payload[0].firmware_id_update + \"' \";\n msg.topic += \"WHERE `chip_id`='\"+msg.device.chip_id+\"';\";\n}\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":740,"wires":[["edb0df8a.91458","98a7fa9.0903708"]]},{"id":"98a7fa9.0903708","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":800,"wires":[["f49f4eef.985d8"]]},{"id":"f49f4eef.985d8","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":800,"wires":[]},{"id":"fece2b0d.fb8d88","type":"function","z":"6250d7a0.2d62e8","name":"INSERT si no existe","func":"if(!(msg.payload.affectedRows > 0))\n{\n msg.topic = \"INSERT INTO `main_database`.`devices`\";\n msg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`)\";\n msg.topic += \"VALUES('\" + msg.device.chip_id + \"' , '\" + msg.device.product_id + \"' , '\" + msg.device.firmware_id + \"', '\" + msg.device.firmware_id + \"' );\";\n}\nelse\n{\n msg.topic = \"\";\n}\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;\n\n\n ","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":880,"wires":[["692a5d77.63b504","3e341316.4f169c"]]},{"id":"692a5d77.63b504","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":880,"wires":[]},{"id":"3e341316.4f169c","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":280,"y":940,"wires":[["b961cf12.88a52"]]},{"id":"b961cf12.88a52","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":940,"wires":[]},{"id":"fe5baa80.bcce28","type":"comment","z":"6250d7a0.2d62e8","name":"Actualiza el registro de firmware actual o crea nueva entrada","info":"Envio el binario.","x":240,"y":520,"wires":[]},{"id":"de076312.de3ca","type":"http in","z":"6250d7a0.2d62e8","name":"","url":"/download","method":"get","upload":false,"swaggerDoc":"","x":120,"y":1120,"wires":[["c086326f.d5d56"]]},{"id":"48abb27e.b5fa3c","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":1140,"wires":[]},{"id":"bfe6d652.d4b218","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"200","headers":{"content-type":"application/octet-stream"},"x":880,"y":1180,"wires":[]},{"id":"c086326f.d5d56","type":"function","z":"6250d7a0.2d62e8","name":"","func":"msg.topic = \"SELECT `filepath`,`firmware_id`,`product_id` \";\nmsg.topic += \"FROM `main_database`.`getFilepathInsert` \";\nmsg.topic += \"WHERE `product`='\"+msg.payload.product+\"' LIMIT 1;\";\n\nmsg.chip_id = msg.payload.chip_id;\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":1120,"wires":[["cc73afc4.03a03","18865107.d9d00f"]]},{"id":"f6f11313.2ca04","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":1140,"wires":[]},{"id":"db6aa3da.5fc8a","type":"file in","z":"6250d7a0.2d62e8","name":"ArchivBin","filename":"","format":"","chunk":false,"sendError":false,"encoding":"none","x":680,"y":1180,"wires":[["f6f11313.2ca04","bfe6d652.d4b218"]]},{"id":"cc73afc4.03a03","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":450,"y":1060,"wires":[]},{"id":"de2a4b92.886e18","type":"catch","z":"6250d7a0.2d62e8","name":"Catch ArchivoBin","scope":["db6aa3da.5fc8a"],"uncaught":false,"x":700,"y":1240,"wires":[["b5a4b350.45175","2e5b848c.7c37ec"]]},{"id":"b5a4b350.45175","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":1280,"wires":[]},{"id":"2e5b848c.7c37ec","type":"http response","z":"6250d7a0.2d62e8","name":"","statusCode":"304","headers":{},"x":880,"y":1240,"wires":[]},{"id":"18865107.d9d00f","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":340,"y":1180,"wires":[["48abb27e.b5fa3c","d1823532.0379e8","a2e1df28.d541b"]]},{"id":"a2e1df28.d541b","type":"function","z":"6250d7a0.2d62e8","name":"","func":"if(msg.payload[0])\nmsg.filename = msg.payload[0].filepath;\nelse\nmsg.filename = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1180,"wires":[["14c95f5e.484f71","db6aa3da.5fc8a"]]},{"id":"14c95f5e.484f71","type":"debug","z":"6250d7a0.2d62e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":670,"y":1140,"wires":[]},{"id":"d1823532.0379e8","type":"function","z":"6250d7a0.2d62e8","name":"Insert device","func":"msg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + msg.chip_id + \"', '\" + msg.payload[0].product_id + \"', '\" + msg.payload[0].firmware_id + \"', '\" + msg.payload[0].firmware_id + \"');\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":1240,"wires":[["35a9271d.1d01a8"]]},{"id":"35a9271d.1d01a8","type":"mysql","z":"6250d7a0.2d62e8","mydb":"bdf7265d.d181a8","name":"","x":460,"y":1300,"wires":[["14a4f23b.5bec4e"]]},{"id":"14a4f23b.5bec4e","type":"debug","z":"6250d7a0.2d62e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":630,"y":1300,"wires":[]},{"id":"8b54e4d8.bff278","type":"comment","z":"6250d7a0.2d62e8","name":"Primer envio de binario segun producto","info":"Envio el binario.","x":190,"y":1060,"wires":[]},{"id":"63987b2e.220f14","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":400,"wires":[]},{"id":"31291e50.500cd2","type":"ui_dropdown","z":"62051268.8937ac","name":"","label":"Producto","tooltip":"","place":"Select option","group":"71b4f020.58093","order":1,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":280,"y":160,"wires":[["d3057464.99b7c8"]]},{"id":"eee74b39.1df488","type":"ui_dropdown","z":"62051268.8937ac","d":true,"name":"","label":"Firmware","tooltip":"","place":"Select option","group":"71b4f020.58093","order":2,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":320,"y":1300,"wires":[["dac37797.cef188"]]},{"id":"56387adc.9ccdb4","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1300,"wires":[]},{"id":"23420e83.b93162","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":340,"wires":[]},{"id":"1b672662.65707a","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese CHIP ID","tooltip":"","group":"71b4f020.58093","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":300,"y":340,"wires":[["12055074.c8909"]]},{"id":"6b2a87d3.439798","type":"ui_button","z":"62051268.8937ac","name":"","group":"71b4f020.58093","order":4,"width":0,"height":0,"passthru":false,"label":"Ingresar","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":280,"y":400,"wires":[["e88e017f.aed7"]]},{"id":"e88e017f.aed7","type":"function","z":"62051268.8937ac","name":"","func":"var productID = flow.get(\"productID\");\nvar firmwareID = flow.get(\"firmwareID\");\nvar chipID = flow.get(\"chipID\");\n\nif(chipID === undefined || chipID === \"\")\n return null;\n\nmsg.device = {\n \"chip_id\" : chipID,\n \"product_id\" : productID,\n \"firmware_id_act\" : firmwareID,\n \"firmware_id_update\" : firmwareID\n};\n\nmsg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + chipID + \"', '\" + productID + \"', '\" + firmwareID + \"', '\" + firmwareID + \"');\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":400,"wires":[["63987b2e.220f14","7e8f8271.3c85cc"]]},{"id":"4ec547ed.9329b8","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].product] = msg.payload[i].product_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nmsg.payload = 0;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":120,"y":160,"wires":[["31291e50.500cd2"]]},{"id":"ba2c5eb6.0e3b5","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":300,"y":100,"wires":[["cdf44006.1ec37","4ec547ed.9329b8"]]},{"id":"639a3366.80b05c","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"SELECT product_id, product FROM main_database.products","payload":"","payloadType":"date","x":130,"y":100,"wires":[["ba2c5eb6.0e3b5"]]},{"id":"cdf44006.1ec37","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":470,"y":100,"wires":[]},{"id":"17099f40.ba8e01","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":500,"y":220,"wires":[["eab99093.20401"]]},{"id":"d3057464.99b7c8","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"productID\", msg.payload);\n\nmsg.topic = \"SELECT firmware_id, firmware_version \";\nmsg.topic += \"FROM main_database.firmwares \";\nmsg.topic += \"WHERE product_id=\" + msg.payload + \" ORDER BY `firmware_id` DESC LIMIT 1;\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":160,"wires":[["17099f40.ba8e01"]]},{"id":"3aafc8aa.cd2c88","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":280,"wires":[]},{"id":"969d6fa5.1a8bf","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].firmware_version] = msg.payload[i].firmware_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":140,"y":1300,"wires":[["eee74b39.1df488"]]},{"id":"dac37797.cef188","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareID\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1300,"wires":[["56387adc.9ccdb4"]]},{"id":"12055074.c8909","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"chipID\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":340,"wires":[["23420e83.b93162"]]},{"id":"8234b7ea.3cf3b8","type":"comment","z":"62051268.8937ac","name":"Nuevo Device","info":"Crear nuevo dispositivo en Base de Datos","x":110,"y":40,"wires":[]},{"id":"7e8f8271.3c85cc","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":500,"y":460,"wires":[["66005164.05fb9"]]},{"id":"66005164.05fb9","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":460,"wires":[]},{"id":"9562b161.b6cf1","type":"ui_toast","z":"62051268.8937ac","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":680,"y":580,"wires":[]},{"id":"ae5a9ee7.4769a","type":"catch","z":"62051268.8937ac","name":"","scope":["7e8f8271.3c85cc"],"uncaught":false,"x":470,"y":520,"wires":[["5dcc2ca2.806bd4","9dc0256.0eb7cd8"]]},{"id":"5dcc2ca2.806bd4","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":520,"wires":[]},{"id":"9dc0256.0eb7cd8","type":"function","z":"62051268.8937ac","name":"","func":"msg.payload = msg.error.message;\nmsg.topic = \"DATABASE\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":580,"wires":[["9562b161.b6cf1"]]},{"id":"eab99093.20401","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareID\", msg.payload[0].firmware_id);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":280,"wires":[["3aafc8aa.cd2c88"]]},{"id":"cd0741f9.6840e","type":"function","z":"62051268.8937ac","name":"","func":"//SELECT product,COUNT(DISTINCT(chip_id)) FROM `main_database`.`getProductChipId` GROUP BY product;\n \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":620,"wires":[[]]},{"id":"921decf1.854fb","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"SELECT product,COUNT(DISTINCT(chip_id)) as \"cantidad\" FROM `main_database`.`getProductChipId` GROUP BY product;","payload":"","payloadType":"date","x":170,"y":660,"wires":[["9deb908e.4e48b"]]},{"id":"9deb908e.4e48b","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":360,"y":660,"wires":[["29b63526.98633a"]]},{"id":"50fd5cd7.5170b4","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":700,"wires":[]},{"id":"5f114e14.f17f","type":"ui_table","z":"62051268.8937ac","group":"7cba5717.c4ee98","name":"Dispositivos","order":2,"width":4,"height":5,"columns":[],"outputs":0,"cts":false,"x":710,"y":660,"wires":[]},{"id":"29b63526.98633a","type":"function","z":"62051268.8937ac","name":"","func":"let array = [];\n\nlet obj= {};\n\nfor(let i in msg.payload)\n{\n obj = {\n \"dispositivo\": msg.payload[i].product,\n \"cantidad\": msg.payload[i].cantidad\n };\n array.push(obj);\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":660,"wires":[["5f114e14.f17f","50fd5cd7.5170b4"]]},{"id":"c7317eb5.203c8","type":"comment","z":"62051268.8937ac","name":"Tabla Devices","info":"Crear nuevo dispositivo en Base de Datos","x":110,"y":620,"wires":[]},{"id":"244de0c3.e2e13","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1060,"wires":[]},{"id":"36162568.906eca","type":"ui_dropdown","z":"62051268.8937ac","name":"","label":"Producto","tooltip":"","place":"Select option","group":"2446fdf8.239892","order":1,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"topic","topicType":"msg","x":320,"y":820,"wires":[["13d2d5a9.0da5ba"]]},{"id":"6a9dfcf2.21c2e4","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":940,"wires":[]},{"id":"5226c81e.0858d8","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese etiqueta","tooltip":"","group":"2446fdf8.239892","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":340,"y":940,"wires":[["79de81bf.1addd"]]},{"id":"82459776.7b3a08","type":"ui_button","z":"62051268.8937ac","name":"","group":"2446fdf8.239892","order":5,"width":0,"height":0,"passthru":false,"label":"Ingresar","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":320,"y":1060,"wires":[["2c6c5bf8.f26ca4"]]},{"id":"2c6c5bf8.f26ca4","type":"function","z":"62051268.8937ac","name":"","func":"var productID = flow.get(\"productIDAdm\");\nvar firmwareVersion = flow.get(\"firmwareVersionAdm\");\nvar etiqueta = flow.get(\"etiquetaAdm\");\nvar filename = flow.get(\"filenameAdm\");\n\n\nif(chipID === undefined || chipID === \"\")\n return null;\n\nmsg.device = {\n \"chip_id\" : chipID,\n \"product_id\" : productID,\n \"firmware_id_act\" : firmwareID,\n \"firmware_id_update\" : firmwareID\n};\n\nmsg.topic = \"INSERT INTO `main_database`.`devices` \";\nmsg.topic += \"(`chip_id`, `product_id`, `firmware_id_act`, `firmware_id_update`) \";\nmsg.topic += \"VALUES ('\" + chipID + \"', '\" + productID + \"', '\" + firmwareID + \"', '\" + firmwareID + \"');\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1060,"wires":[["244de0c3.e2e13"]]},{"id":"36df2732.b69a18","type":"function","z":"62051268.8937ac","name":"","func":"let data_choices = [];\n\nlet obj = {};\n//obj[msg.payload[3].product] = msg.payload[3].product_id;\n\nfor (let i = 0 ; i < msg.payload.length ; i++) {\n obj = {};\n obj[msg.payload[i].product] = msg.payload[i].product_id;\n data_choices.push(obj);\n}\nmsg.options = data_choices;\nmsg.payload = 0;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":160,"y":820,"wires":[["36162568.906eca"]]},{"id":"9f2a227.79b4ce","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":340,"y":760,"wires":[["ce6846d9.3d80c8","36df2732.b69a18"]]},{"id":"ab1f4128.ba981","type":"inject","z":"62051268.8937ac","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"SELECT product_id, product FROM main_database.products","payload":"","payloadType":"date","x":170,"y":760,"wires":[["9f2a227.79b4ce"]]},{"id":"ce6846d9.3d80c8","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":760,"wires":[]},{"id":"13d2d5a9.0da5ba","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"productIDAdm\", msg.payload);\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":820,"wires":[[]]},{"id":"79de81bf.1addd","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"etiquetaAdm\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":940,"wires":[["6a9dfcf2.21c2e4"]]},{"id":"4a7d910e.7fe1e","type":"mysql","z":"62051268.8937ac","mydb":"bdf7265d.d181a8","name":"","x":540,"y":1120,"wires":[["5b8416d0.f2bb28"]]},{"id":"5b8416d0.f2bb28","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1120,"wires":[]},{"id":"1cf3b01a.f78aa","type":"ui_toast","z":"62051268.8937ac","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":720,"y":1240,"wires":[]},{"id":"6fd8ce51.eebd7","type":"catch","z":"62051268.8937ac","name":"","scope":["4a7d910e.7fe1e"],"uncaught":false,"x":510,"y":1180,"wires":[["d2701b42.e448e8","4608a3f7.fa475c"]]},{"id":"d2701b42.e448e8","type":"debug","z":"62051268.8937ac","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1180,"wires":[]},{"id":"4608a3f7.fa475c","type":"function","z":"62051268.8937ac","name":"","func":"msg.payload = msg.error.message;\nmsg.topic = \"DATABASE\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1240,"wires":[["1cf3b01a.f78aa"]]},{"id":"a1aef455.557888","type":"comment","z":"62051268.8937ac","name":"Nuevo Firmware","info":"Crear nuevo dispositivo en Base de Datos","x":120,"y":720,"wires":[]},{"id":"1b0183e7.200a3c","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese Firmware Version","tooltip":"","group":"2446fdf8.239892","order":2,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":370,"y":880,"wires":[["743ea08c.76b57"]]},{"id":"743ea08c.76b57","type":"function","z":"62051268.8937ac","name":"","func":"flow.set(\"firmwareVersionAdm\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":880,"wires":[["c9223ca4.040b2"]]},{"id":"c9223ca4.040b2","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":880,"wires":[]},{"id":"240e02c5.59ff8e","type":"debug","z":"62051268.8937ac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":1000,"wires":[]},{"id":"6a56394c.70c788","type":"ui_text_input","z":"62051268.8937ac","name":"","label":"Ingrese Filename","tooltip":"","group":"2446fdf8.239892","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"topic","topicType":"msg","x":350,"y":1000,"wires":[["b5af7df8.39131"]]},{"id":"b5af7df8.39131","type":"function","z":"62051268.8937ac","name":"","func":"\nflow.set(\"filenameAdm\", \"/data/binarios/\" + msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1000,"wires":[["240e02c5.59ff8e"]]},{"id":"cd2815e4.d47d88","type":"ping","z":"402e352d.79d1dc","protocol":"Automatic","mode":"timed","name":"","host":"www.google.com","timer":"60","inputs":0,"x":120,"y":220,"wires":[["cedbf3b0.beb6f"]]},{"id":"cedbf3b0.beb6f","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":160,"wires":[]},{"id":"3a7f2b27.15b3b4","type":"function","z":"402e352d.79d1dc","name":"","func":"let url = msg.topic;\nlet ping = msg.payload;\n\nmsg.topic = \"INSERT INTO `main_database`.`pings` \";\nmsg.topic += \"(`url`, `ping`) \";\nmsg.topic += \"VALUES ('\" + url + \"', '\" + ping + \"');\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":220,"wires":[["f0bad261.7fbc6","1f24ae5d.7729b2"]]},{"id":"f0bad261.7fbc6","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":180,"wires":[]},{"id":"1f24ae5d.7729b2","type":"mysql","z":"402e352d.79d1dc","mydb":"bdf7265d.d181a8","name":"","x":540,"y":220,"wires":[["75c09e28.f1ae4"]]},{"id":"75c09e28.f1ae4","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":220,"wires":[]},{"id":"76a11136.4d052","type":"http request","z":"402e352d.79d1dc","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":450,"y":380,"wires":[["d9e0da9e.aa9278","de2c46e1.52e328"]]},{"id":"a62879bf.c02498","type":"function","z":"402e352d.79d1dc","name":"","func":"\nmsg.url = \"http://franciscotimez.com.ar:1880/ping\";\nmsg.method = \"GET\";\nmsg.requestTimeout = 20000;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":380,"wires":[["76a11136.4d052"]]},{"id":"47721816.20e708","type":"inject","z":"402e352d.79d1dc","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":380,"wires":[[]]},{"id":"d9e0da9e.aa9278","type":"debug","z":"402e352d.79d1dc","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":610,"y":440,"wires":[]},{"id":"de2c46e1.52e328","type":"function","z":"402e352d.79d1dc","name":"","func":"msg.topic = msg.url;\nmsg.payload = msg.statusCode;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":380,"wires":[["3a7f2b27.15b3b4"]]},{"id":"24770838.3d5d18","type":"ui_chart","z":"402e352d.79d1dc","name":"","group":"2446fdf8.239892","order":4,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#0f92f0","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"x":610,"y":680,"wires":[[]]},{"id":"686d8e58.e8b0d","type":"function","z":"402e352d.79d1dc","name":"","func":"array = [];\n\nobj = {};\n\nobj[\"series\"] = [ \"Google\"];\nobj[\"data\"] = [];\nobj[\"labels\"] = [\"\"];\n\nfor(let i in msg.payload)\n{\n obj[\"data\"].push(msg.payload[i].ping);\n}\n\narray.push(obj);\nmsg.payload = array;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":600,"wires":[["90009c37.9e39","24770838.3d5d18"]]},{"id":"359f063f.03372a","type":"function","z":"402e352d.79d1dc","name":"","func":"\nmsg.topic = \"SELECT `date`, `ping` \";\nmsg.topic += \"FROM `main_database`.`pings` \";\nmsg.topic += \"WHERE url = 'www.google.com' \";\nmsg.topic += \"ORDER BY `ping_id` ASC LIMIT 1000;\";\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":260,"y":480,"wires":[["8e3b574b.86afe8"]]},{"id":"8e3b574b.86afe8","type":"mysql","z":"402e352d.79d1dc","mydb":"bdf7265d.d181a8","name":"","x":460,"y":480,"wires":[["a09b92fd.41e0e","686d8e58.e8b0d"]]},{"id":"3da7874d.ea7f78","type":"inject","z":"402e352d.79d1dc","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":480,"wires":[["359f063f.03372a"]]},{"id":"a09b92fd.41e0e","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":500,"wires":[]},{"id":"90009c37.9e39","type":"debug","z":"402e352d.79d1dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":600,"wires":[]},{"id":"ae641d57.dfbe98","type":"inject","z":"d1d5ce25.67cc6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"DROP TABLE Chaleco_30AEA4EFDC5C;","payload":"","payloadType":"date","x":120,"y":260,"wires":[[]]},{"id":"484764e.b97e21c","type":"comment","z":"d1d5ce25.67cc6","name":"Envio datos http a database","info":"Envio el binario.","x":160,"y":40,"wires":[]},{"id":"5eee8a99.ad5054","type":"http in","z":"d1d5ce25.67cc6","name":"","url":"/logs","method":"post","upload":false,"swaggerDoc":"","x":100,"y":80,"wires":[["5611646a.2a0d04","9d44ce1d.539a7","2c4de125.741426"]]},{"id":"5611646a.2a0d04","type":"http response","z":"d1d5ce25.67cc6","name":"","statusCode":"200","headers":{},"x":300,"y":80,"wires":[]},{"id":"9d44ce1d.539a7","type":"function","z":"d1d5ce25.67cc6","name":"Data al database","func":"\ncolumn_title = msg.payload;\nvar os = new Date();\n//var os = \"157\";\nconsole.log(os);\n\n//if (msg.payload.Op_cafe==null && msg.payload.Energy_Total!=null){\n// msg.topic = \"INSERT INTO powerx (Potencia , COFI, ENERGIA_Wh, HORA, FECHA) VALUES ('\"+msg.payload.Active_Power+\"','\"+msg.payload.Power_Factor+\"','\"+msg.payload.Energy_Total+\"','\"+msg.payload.Op_hora+\"', '\"+msg.payload.Op_fecha+\"')\";\n// return msg; \n//}\n\n\n //{\"chipid\":\"30AEA4EFDC5C\",\"hour\":14,\"min\":35,\"sec\":13,\"lat\":-27.37025,\"long\":-55.99204,\"pitch\":168.1814,\"beat\":0,\"temperatura\":23.125,\"bateria\":100}\n //Hora,Latitud[掳],Longitud[掳],Pitch[掳],Beat[bpm],Temperatura[掳C],Bater铆a[%]\n\n//msg.topic += \"FROM `main_database`.`getFirmwareVersion` \";\n\n//msg.topic = \"INSERT INTO Chaleco (CHIPID, HORA, LATITUD, LONGITUD, PITCH, BEAT, TEMPERATURA, BATERIA ) VALUES ('\"+msg.payload.chipid+\"','\"+msg.payload.hour+\"','\"+msg.payload.min+\"','\"+msg.payload.sec+\"','\"+msg.payload.lat+\"','\"+msg.payload.long+\"','\"+msg.payload.pitch+\"','\"+msg.payload.beat+\"','\"+msg.payload.temperatura+\"','\"+msg.payload.bateria+\"')\";\nmsg.topic = \"INSERT INTO Chaleco_\";\nmsg.topic += msg.payload.chipid;\nmsg.topic += \" (HORA, LATITUD, LONGITUD, PITCH, BEAT, TEMPERATURA, BATERIA ) \";\nmsg.topic += \"VALUES ('\"+msg.payload.hour+\"','\";\nmsg.topic += msg.payload.lat+\"','\"+msg.payload.long+\"','\";\nmsg.topic += msg.payload.pitch+\"','\"+msg.payload.beat+\"','\";\nmsg.topic += msg.payload.temperatura+\"','\"+msg.payload.bateria+\"')\";\n\n//msg.topic = \"INSERT INTO testx (SELECCION , OPCION, HORA, FECHA) VALUES ('\"+msg.payload.Op_cafe+\"',\"+msg.payload.Op_num+\",'\"+msg.payload.Op_hora+\"', '\"+msg.payload.Op_fecha+\"')\";\n//msg.topic = \"INSERT INTO testx (OPCION) VALUES ('\"+msg.payload.temp+\"')\";\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":200,"wires":[["e909f8cf.b99cc8","57777a1f.3a44cc"]]},{"id":"e909f8cf.b99cc8","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":200,"wires":[]},{"id":"2c4de125.741426","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":290,"y":140,"wires":[]},{"id":"6a21f271.1310a4","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":400,"wires":[]},{"id":"d16e7ebd.b5d938","type":"catch","z":"d1d5ce25.67cc6","name":"","scope":["57777a1f.3a44cc"],"uncaught":false,"x":110,"y":400,"wires":[["9d9def7.06ac69"]]},{"id":"4dd2784c.1ec838","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":260,"wires":[]},{"id":"9d9def7.06ac69","type":"function","z":"d1d5ce25.67cc6","name":"INSERT si no existe","func":"/*\nCREATE TABLE table_name (\n column1 datatype,\n column2 datatype,\n column3 datatype,\n ....\n); \n*/\n msg.topic = \"CREATE TABLE \";\n msg.topic += \"Chaleco_\"+msg.payload.chipid;\n msg.topic += \" (\"\n //msg.topic += \" CHIPID varchar(255),\"\n msg.topic += \" HORA varchar(255),\"\n msg.topic += \" LATITUD varchar(255),\"\n msg.topic += \" LONGITUD varchar(255),\"\n msg.topic += \" PITCH varchar(255),\"\n msg.topic += \" BEAT int,\"\n msg.topic += \" TEMPERATURA varchar(255),\"\n msg.topic += \" BATERIA int\"\n msg.topic +=\");\"\n\nreturn msg;\n//msg.filename = \"/data/bins/ir1000/ir1000_test2.bin\";\n//return msg;\n//UPDATE `main_database`.`devices` SET `firmware_id_act`='2' WHERE `device_id`=7;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":400,"wires":[["6a21f271.1310a4","ced0fc6f.43cfd8"]]},{"id":"40deb601.5fe368","type":"debug","z":"d1d5ce25.67cc6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":340,"wires":[]},{"id":"57777a1f.3a44cc","type":"mysql","z":"d1d5ce25.67cc6","mydb":"bdf7265d.d181a8","name":"","x":320,"y":260,"wires":[["4dd2784c.1ec838"]]},{"id":"ced0fc6f.43cfd8","type":"mysql","z":"d1d5ce25.67cc6","mydb":"bdf7265d.d181a8","name":"","x":320,"y":340,"wires":[["40deb601.5fe368"]]},{"id":"53b6adf2.ec19ac","type":"http in","z":"d1d5ce25.67cc6","name":"","url":"/logs","method":"get","upload":false,"swaggerDoc":"","x":100,"y":140,"wires":[["2c4de125.741426"]]}] \ No newline at end of file diff --git a/data_node_red/flows_cred.json b/data_node_red/flows_cred.json new file mode 100644 index 0000000..aafd169 --- /dev/null +++ b/data_node_red/flows_cred.json @@ -0,0 +1 @@ +{"$":"03e74e707dd0440991cae3d6043b83c0pAE8pJKKmph00RbnOWG5vGNQER/J9OFr8vk1b8/biF0Nf55azWDn2idVywTtS3PHjwOLLC+zay5HXFi+mT4VgmSzIO8zHHMAZPiGY0oLdiQ3Jw=="} \ No newline at end of file diff --git a/data_node_red/node_modules/.bin/mime b/data_node_red/node_modules/.bin/mime new file mode 100644 index 0000000..20b1ffe --- /dev/null +++ b/data_node_red/node_modules/.bin/mime @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var mime = require('./mime.js'); +var file = process.argv[2]; +var type = mime.lookup(file); + +process.stdout.write(type + '\n'); + diff --git a/data_node_red/node_modules/accepts/HISTORY.md b/data_node_red/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000..0bf0417 --- /dev/null +++ b/data_node_red/node_modules/accepts/HISTORY.md @@ -0,0 +1,236 @@ +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/data_node_red/node_modules/accepts/LICENSE b/data_node_red/node_modules/accepts/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/data_node_red/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/accepts/README.md b/data_node_red/node_modules/accepts/README.md new file mode 100644 index 0000000..66a2f54 --- /dev/null +++ b/data_node_red/node_modules/accepts/README.md @@ -0,0 +1,142 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + + + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts +[travis-image]: https://badgen.net/travis/jshttp/accepts/master +[travis-url]: https://travis-ci.org/jshttp/accepts diff --git a/data_node_red/node_modules/accepts/index.js b/data_node_red/node_modules/accepts/index.js new file mode 100644 index 0000000..e9b2f63 --- /dev/null +++ b/data_node_red/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/data_node_red/node_modules/accepts/package.json b/data_node_red/node_modules/accepts/package.json new file mode 100644 index 0000000..4bc28b6 --- /dev/null +++ b/data_node_red/node_modules/accepts/package.json @@ -0,0 +1,87 @@ +{ + "_from": "accepts@~1.3.5", + "_id": "accepts@1.3.7", + "_inBundle": false, + "_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "_location": "/accepts", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "accepts@~1.3.5", + "name": "accepts", + "escapedName": "accepts", + "rawSpec": "~1.3.5", + "saveSpec": null, + "fetchSpec": "~1.3.5" + }, + "_requiredBy": [ + "/compression", + "/engine.io" + ], + "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "_shasum": "531bc726517a3b2b41f850021c6cc15eaab507cd", + "_spec": "accepts@~1.3.5", + "_where": "/data/node_modules/compression", + "bugs": { + "url": "https://github.com/jshttp/accepts/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "deprecated": false, + "description": "Higher-level content negotiation", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/accepts#readme", + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ], + "license": "MIT", + "name": "accepts", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/accepts.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.3.7" +} diff --git a/data_node_red/node_modules/after/.npmignore b/data_node_red/node_modules/after/.npmignore new file mode 100644 index 0000000..6c78602 --- /dev/null +++ b/data_node_red/node_modules/after/.npmignore @@ -0,0 +1,2 @@ +node_modules +.monitor diff --git a/data_node_red/node_modules/after/.travis.yml b/data_node_red/node_modules/after/.travis.yml new file mode 100644 index 0000000..afd72d0 --- /dev/null +++ b/data_node_red/node_modules/after/.travis.yml @@ -0,0 +1,12 @@ +language: node_js +node_js: + - 0.6 + - 0.8 + - 0.9 + - 0.10 + - 0.12 + - 4.2.4 + - 5.4.1 + - iojs-1 + - iojs-2 + - iojs-3 diff --git a/data_node_red/node_modules/after/LICENCE b/data_node_red/node_modules/after/LICENCE new file mode 100644 index 0000000..7c35130 --- /dev/null +++ b/data_node_red/node_modules/after/LICENCE @@ -0,0 +1,19 @@ +Copyright (c) 2011 Raynos. + +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. \ No newline at end of file diff --git a/data_node_red/node_modules/after/README.md b/data_node_red/node_modules/after/README.md new file mode 100644 index 0000000..fc69096 --- /dev/null +++ b/data_node_red/node_modules/after/README.md @@ -0,0 +1,115 @@ +# After [![Build Status][1]][2] + +Invoke callback after n calls + +## Status: production ready + +## Example + +```js +var after = require("after") +var db = require("./db") // some db. + +var updateUser = function (req, res) { + // use after to run two tasks in parallel, + // namely get request body and get session + // then run updateUser with the results + var next = after(2, updateUser) + var results = {} + + getJSONBody(req, res, function (err, body) { + if (err) return next(err) + + results.body = body + next(null, results) + }) + + getSessionUser(req, res, function (err, user) { + if (err) return next(err) + + results.user = user + next(null, results) + }) + + // now do the thing! + function updateUser(err, result) { + if (err) { + res.statusCode = 500 + return res.end("Unexpected Error") + } + + if (!result.user || result.user.role !== "admin") { + res.statusCode = 403 + return res.end("Permission Denied") + } + + db.put("users:" + req.params.userId, result.body, function (err) { + if (err) { + res.statusCode = 500 + return res.end("Unexpected Error") + } + + res.statusCode = 200 + res.end("Ok") + }) + } +} +``` + +## Naive Example + +```js +var after = require("after") + , next = after(3, logItWorks) + +next() +next() +next() // it works + +function logItWorks() { + console.log("it works!") +} +``` + +## Example with error handling + +```js +var after = require("after") + , next = after(3, logError) + +next() +next(new Error("oops")) // logs oops +next() // does nothing + +// This callback is only called once. +// If there is an error the callback gets called immediately +// this avoids the situation where errors get lost. +function logError(err) { + console.log(err) +} +``` + +## Installation + +`npm install after` + +## Tests + +`npm test` + +## Contributors + + - Raynos + - defunctzombie + +## MIT Licenced + + [1]: https://secure.travis-ci.org/Raynos/after.png + [2]: http://travis-ci.org/Raynos/after + [3]: http://raynos.org/blog/2/Flow-control-in-node.js + [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307 + [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031 + [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419 + [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091 + [8]: http://github.com/Raynos/iterators + [9]: http://github.com/Raynos/composite diff --git a/data_node_red/node_modules/after/index.js b/data_node_red/node_modules/after/index.js new file mode 100644 index 0000000..ec24879 --- /dev/null +++ b/data_node_red/node_modules/after/index.js @@ -0,0 +1,28 @@ +module.exports = after + +function after(count, callback, err_cb) { + var bail = false + err_cb = err_cb || noop + proxy.count = count + + return (count === 0) ? callback() : proxy + + function proxy(err, result) { + if (proxy.count <= 0) { + throw new Error('after called too many times') + } + --proxy.count + + // after first error, rest are passed to err_cb + if (err) { + bail = true + callback(err) + // future error callbacks will go to error handler + callback = err_cb + } else if (proxy.count === 0 && !bail) { + callback(null, result) + } + } +} + +function noop() {} diff --git a/data_node_red/node_modules/after/package.json b/data_node_red/node_modules/after/package.json new file mode 100644 index 0000000..46ae38d --- /dev/null +++ b/data_node_red/node_modules/after/package.json @@ -0,0 +1,63 @@ +{ + "_from": "after@0.8.2", + "_id": "after@0.8.2", + "_inBundle": false, + "_integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "_location": "/after", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "after@0.8.2", + "name": "after", + "escapedName": "after", + "rawSpec": "0.8.2", + "saveSpec": null, + "fetchSpec": "0.8.2" + }, + "_requiredBy": [ + "/engine.io-parser" + ], + "_resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "_shasum": "fedb394f9f0e02aa9768e702bda23b505fae7e1f", + "_spec": "after@0.8.2", + "_where": "/data/node_modules/engine.io-parser", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "bugs": { + "url": "https://github.com/Raynos/after/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Raynos", + "email": "raynos2@gmail.com", + "url": "http://raynos.org" + } + ], + "deprecated": false, + "description": "after - tiny flow control", + "devDependencies": { + "mocha": "~1.8.1" + }, + "homepage": "https://github.com/Raynos/after#readme", + "keywords": [ + "flowcontrol", + "after", + "flow", + "control", + "arch" + ], + "license": "MIT", + "name": "after", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/after.git" + }, + "scripts": { + "test": "mocha --ui tdd --reporter spec test/*.js" + }, + "version": "0.8.2" +} diff --git a/data_node_red/node_modules/after/test/after-test.js b/data_node_red/node_modules/after/test/after-test.js new file mode 100644 index 0000000..0d63f4c --- /dev/null +++ b/data_node_red/node_modules/after/test/after-test.js @@ -0,0 +1,120 @@ +/*global suite, test*/ + +var assert = require("assert") + , after = require("../") + +test("exists", function () { + assert(typeof after === "function", "after is not a function") +}) + +test("after when called with 0 invokes", function (done) { + after(0, done) +}); + +test("after 1", function (done) { + var next = after(1, done) + next() +}) + +test("after 5", function (done) { + var next = after(5, done) + , i = 5 + + while (i--) { + next() + } +}) + +test("manipulate count", function (done) { + var next = after(1, done) + , i = 5 + + next.count = i + while (i--) { + next() + } +}) + +test("after terminates on error", function (done) { + var next = after(2, function(err) { + assert.equal(err.message, 'test'); + done(); + }) + next(new Error('test')) + next(new Error('test2')) +}) + +test('gee', function(done) { + done = after(2, done) + + function cb(err) { + assert.equal(err.message, 1); + done() + } + + var next = after(3, cb, function(err) { + assert.equal(err.message, 2) + done() + }); + + next() + next(new Error(1)) + next(new Error(2)) +}) + +test('eee', function(done) { + done = after(3, done) + + function cb(err) { + assert.equal(err.message, 1); + done() + } + + var next = after(3, cb, function(err) { + assert.equal(err.message, 2) + done() + }); + + next(new Error(1)) + next(new Error(2)) + next(new Error(2)) +}) + +test('gge', function(done) { + function cb(err) { + assert.equal(err.message, 1); + done() + } + + var next = after(3, cb, function(err) { + // should not happen + assert.ok(false); + }); + + next() + next() + next(new Error(1)) +}) + +test('egg', function(done) { + function cb(err) { + assert.equal(err.message, 1); + done() + } + + var next = after(3, cb, function(err) { + // should not happen + assert.ok(false); + }); + + next(new Error(1)) + next() + next() +}) + +test('throws on too many calls', function(done) { + var next = after(1, done); + next() + assert.throws(next, /after called too many times/); +}); + diff --git a/data_node_red/node_modules/arraybuffer.slice/.npmignore b/data_node_red/node_modules/arraybuffer.slice/.npmignore new file mode 100644 index 0000000..cfbee8d --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/.npmignore @@ -0,0 +1,17 @@ +lib-cov +lcov.info +*.seed +*.log +*.csv +*.dat +*.out +*.pid +*.gz + +pids +logs +results +build +.grunt + +node_modules diff --git a/data_node_red/node_modules/arraybuffer.slice/LICENCE b/data_node_red/node_modules/arraybuffer.slice/LICENCE new file mode 100644 index 0000000..35fa375 --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/LICENCE @@ -0,0 +1,18 @@ +Copyright (C) 2013 Rase- + +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. diff --git a/data_node_red/node_modules/arraybuffer.slice/Makefile b/data_node_red/node_modules/arraybuffer.slice/Makefile new file mode 100644 index 0000000..849887f --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/Makefile @@ -0,0 +1,8 @@ + +REPORTER = dot + +test: + @./node_modules/.bin/mocha \ + --reporter $(REPORTER) + +.PHONY: test diff --git a/data_node_red/node_modules/arraybuffer.slice/README.md b/data_node_red/node_modules/arraybuffer.slice/README.md new file mode 100644 index 0000000..15e465e --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/README.md @@ -0,0 +1,17 @@ +# How to +```javascript +var sliceBuffer = require('arraybuffer.slice'); +var ab = (new Int8Array(5)).buffer; +var sliced = sliceBuffer(ab, 1, 3); +sliced = sliceBuffer(ab, 1); +``` + +# Licence (MIT) +Copyright (C) 2013 Rase- + + +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. diff --git a/data_node_red/node_modules/arraybuffer.slice/index.js b/data_node_red/node_modules/arraybuffer.slice/index.js new file mode 100644 index 0000000..11ac556 --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/index.js @@ -0,0 +1,29 @@ +/** + * An abstraction for slicing an arraybuffer even when + * ArrayBuffer.prototype.slice is not supported + * + * @api public + */ + +module.exports = function(arraybuffer, start, end) { + var bytes = arraybuffer.byteLength; + start = start || 0; + end = end || bytes; + + if (arraybuffer.slice) { return arraybuffer.slice(start, end); } + + if (start < 0) { start += bytes; } + if (end < 0) { end += bytes; } + if (end > bytes) { end = bytes; } + + if (start >= bytes || start >= end || bytes === 0) { + return new ArrayBuffer(0); + } + + var abv = new Uint8Array(arraybuffer); + var result = new Uint8Array(end - start); + for (var i = start, ii = 0; i < end; i++, ii++) { + result[ii] = abv[i]; + } + return result.buffer; +}; diff --git a/data_node_red/node_modules/arraybuffer.slice/package.json b/data_node_red/node_modules/arraybuffer.slice/package.json new file mode 100644 index 0000000..f102549 --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/package.json @@ -0,0 +1,44 @@ +{ + "_from": "arraybuffer.slice@~0.0.7", + "_id": "arraybuffer.slice@0.0.7", + "_inBundle": false, + "_integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "_location": "/arraybuffer.slice", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "arraybuffer.slice@~0.0.7", + "name": "arraybuffer.slice", + "escapedName": "arraybuffer.slice", + "rawSpec": "~0.0.7", + "saveSpec": null, + "fetchSpec": "~0.0.7" + }, + "_requiredBy": [ + "/engine.io-parser" + ], + "_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "_shasum": "3bbc4275dd584cc1b10809b89d4e8b63a69e7675", + "_spec": "arraybuffer.slice@~0.0.7", + "_where": "/data/node_modules/engine.io-parser", + "bugs": { + "url": "https://github.com/rase-/arraybuffer.slice/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Exports a function for slicing ArrayBuffers (no polyfilling)", + "devDependencies": { + "expect.js": "0.2.0", + "mocha": "1.17.1" + }, + "homepage": "https://github.com/rase-/arraybuffer.slice", + "license": "MIT", + "name": "arraybuffer.slice", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git" + }, + "version": "0.0.7" +} diff --git a/data_node_red/node_modules/arraybuffer.slice/test/slice-buffer.js b/data_node_red/node_modules/arraybuffer.slice/test/slice-buffer.js new file mode 100644 index 0000000..4778da6 --- /dev/null +++ b/data_node_red/node_modules/arraybuffer.slice/test/slice-buffer.js @@ -0,0 +1,227 @@ +/* + * Test dependencies + */ + +var sliceBuffer = require('../index.js'); +var expect = require('expect.js'); + +/** + * Tests + */ + +describe('sliceBuffer', function() { + describe('using standard slice', function() { + it('should slice correctly with only start provided', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 3); + var sabv = new Uint8Array(sliced); + for (var i = 3, ii = 0; i < abv.length; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with start and end provided', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 3, 8); + var sabv = new Uint8Array(sliced); + for (var i = 3, ii = 0; i < 8; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative start', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, -3); + var sabv = new Uint8Array(sliced); + for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 0, -3); + var sabv = new Uint8Array(sliced); + for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative start and end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, -6, -3); + var sabv = new Uint8Array(sliced); + for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with equal start and end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 1, 1); + expect(sliced.byteLength).to.equal(0); + }); + + it('should slice correctly when end larger than buffer', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 0, 100); + expect(new Uint8Array(sliced)).to.eql(abv); + }); + + it('shoud slice correctly when start larger than end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + + var sliced = sliceBuffer(abv.buffer, 6, 5); + expect(sliced.byteLength).to.equal(0); + }); + }); + + describe('using fallback', function() { + it('should slice correctly with only start provided', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, 3); + var sabv = new Uint8Array(sliced); + for (var i = 3, ii = 0; i < abv.length; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with start and end provided', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + + var sliced = sliceBuffer(ab, 3, 8); + var sabv = new Uint8Array(sliced); + for (var i = 3, ii = 0; i < 8; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative start', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + + var sliced = sliceBuffer(ab, -3); + var sabv = new Uint8Array(sliced); + for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, 0, -3); + var sabv = new Uint8Array(sliced); + for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with negative start and end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, -6, -3); + var sabv = new Uint8Array(sliced); + for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { + expect(abv[i]).to.equal(sabv[ii]); + } + }); + + it('should slice correctly with equal start and end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, 1, 1); + expect(sliced.byteLength).to.equal(0); + }); + + it('should slice correctly when end larger than buffer', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, 0, 100); + var sabv = new Uint8Array(sliced); + for (var i = 0; i < abv.length; i++) { + expect(abv[i]).to.equal(sabv[i]); + } + }); + + it('shoud slice correctly when start larger than end', function() { + var abv = new Uint8Array(10); + for (var i = 0; i < abv.length; i++) { + abv[i] = i; + } + var ab = abv.buffer; + ab.slice = undefined; + + var sliced = sliceBuffer(ab, 6, 5); + expect(sliced.byteLength).to.equal(0); + }); + }); +}); diff --git a/data_node_red/node_modules/backo2/.npmignore b/data_node_red/node_modules/backo2/.npmignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/data_node_red/node_modules/backo2/.npmignore @@ -0,0 +1 @@ +node_modules/ diff --git a/data_node_red/node_modules/backo2/History.md b/data_node_red/node_modules/backo2/History.md new file mode 100644 index 0000000..8eb28b8 --- /dev/null +++ b/data_node_red/node_modules/backo2/History.md @@ -0,0 +1,12 @@ + +1.0.1 / 2014-02-17 +================== + + * go away decimal point + * history + +1.0.0 / 2014-02-17 +================== + + * add jitter option + * Initial commit diff --git a/data_node_red/node_modules/backo2/Makefile b/data_node_red/node_modules/backo2/Makefile new file mode 100644 index 0000000..9987df8 --- /dev/null +++ b/data_node_red/node_modules/backo2/Makefile @@ -0,0 +1,8 @@ + +test: + @./node_modules/.bin/mocha \ + --require should \ + --reporter dot \ + --bail + +.PHONY: test \ No newline at end of file diff --git a/data_node_red/node_modules/backo2/Readme.md b/data_node_red/node_modules/backo2/Readme.md new file mode 100644 index 0000000..0df2a39 --- /dev/null +++ b/data_node_red/node_modules/backo2/Readme.md @@ -0,0 +1,34 @@ +# backo + + Simple exponential backoff because the others seem to have weird abstractions. + +## Installation + +``` +$ npm install backo +``` + +## Options + + - `min` initial timeout in milliseconds [100] + - `max` max timeout [10000] + - `jitter` [0] + - `factor` [2] + +## Example + +```js +var Backoff = require('backo'); +var backoff = new Backoff({ min: 100, max: 20000 }); + +setTimeout(function(){ + something.reconnect(); +}, backoff.duration()); + +// later when something works +backoff.reset() +``` + +# License + + MIT diff --git a/data_node_red/node_modules/backo2/component.json b/data_node_red/node_modules/backo2/component.json new file mode 100644 index 0000000..994845a --- /dev/null +++ b/data_node_red/node_modules/backo2/component.json @@ -0,0 +1,11 @@ +{ + "name": "backo", + "repo": "segmentio/backo", + "dependencies": {}, + "version": "1.0.1", + "description": "simple backoff without the weird abstractions", + "keywords": ["backoff"], + "license": "MIT", + "scripts": ["index.js"], + "main": "index.js" +} diff --git a/data_node_red/node_modules/backo2/index.js b/data_node_red/node_modules/backo2/index.js new file mode 100644 index 0000000..fac4429 --- /dev/null +++ b/data_node_red/node_modules/backo2/index.js @@ -0,0 +1,85 @@ + +/** + * Expose `Backoff`. + */ + +module.exports = Backoff; + +/** + * Initialize backoff timer with `opts`. + * + * - `min` initial timeout in milliseconds [100] + * - `max` max timeout [10000] + * - `jitter` [0] + * - `factor` [2] + * + * @param {Object} opts + * @api public + */ + +function Backoff(opts) { + opts = opts || {}; + this.ms = opts.min || 100; + this.max = opts.max || 10000; + this.factor = opts.factor || 2; + this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; + this.attempts = 0; +} + +/** + * Return the backoff duration. + * + * @return {Number} + * @api public + */ + +Backoff.prototype.duration = function(){ + var ms = this.ms * Math.pow(this.factor, this.attempts++); + if (this.jitter) { + var rand = Math.random(); + var deviation = Math.floor(rand * this.jitter * ms); + ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; + } + return Math.min(ms, this.max) | 0; +}; + +/** + * Reset the number of attempts. + * + * @api public + */ + +Backoff.prototype.reset = function(){ + this.attempts = 0; +}; + +/** + * Set the minimum duration + * + * @api public + */ + +Backoff.prototype.setMin = function(min){ + this.ms = min; +}; + +/** + * Set the maximum duration + * + * @api public + */ + +Backoff.prototype.setMax = function(max){ + this.max = max; +}; + +/** + * Set the jitter + * + * @api public + */ + +Backoff.prototype.setJitter = function(jitter){ + this.jitter = jitter; +}; + diff --git a/data_node_red/node_modules/backo2/package.json b/data_node_red/node_modules/backo2/package.json new file mode 100644 index 0000000..11d5c3f --- /dev/null +++ b/data_node_red/node_modules/backo2/package.json @@ -0,0 +1,47 @@ +{ + "_from": "backo2@1.0.2", + "_id": "backo2@1.0.2", + "_inBundle": false, + "_integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "_location": "/backo2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "backo2@1.0.2", + "name": "backo2", + "escapedName": "backo2", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/socket.io-client" + ], + "_resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "_shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947", + "_spec": "backo2@1.0.2", + "_where": "/data/node_modules/socket.io-client", + "bugs": { + "url": "https://github.com/mokesmokes/backo/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "simple backoff based on segmentio/backo", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "homepage": "https://github.com/mokesmokes/backo#readme", + "keywords": [ + "backoff" + ], + "license": "MIT", + "name": "backo2", + "repository": { + "type": "git", + "url": "git+https://github.com/mokesmokes/backo.git" + }, + "version": "1.0.2" +} diff --git a/data_node_red/node_modules/backo2/test/index.js b/data_node_red/node_modules/backo2/test/index.js new file mode 100644 index 0000000..ea1f6de --- /dev/null +++ b/data_node_red/node_modules/backo2/test/index.js @@ -0,0 +1,18 @@ + +var Backoff = require('..'); +var assert = require('assert'); + +describe('.duration()', function(){ + it('should increase the backoff', function(){ + var b = new Backoff; + + assert(100 == b.duration()); + assert(200 == b.duration()); + assert(400 == b.duration()); + assert(800 == b.duration()); + + b.reset(); + assert(100 == b.duration()); + assert(200 == b.duration()); + }) +}) \ No newline at end of file diff --git a/data_node_red/node_modules/base64-arraybuffer/.npmignore b/data_node_red/node_modules/base64-arraybuffer/.npmignore new file mode 100644 index 0000000..332ee5a --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/.npmignore @@ -0,0 +1,3 @@ +/node_modules/ +Gruntfile.js +/test/ diff --git a/data_node_red/node_modules/base64-arraybuffer/.travis.yml b/data_node_red/node_modules/base64-arraybuffer/.travis.yml new file mode 100644 index 0000000..19259a5 --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/.travis.yml @@ -0,0 +1,19 @@ +language: node_js +node_js: +- '0.12' +- iojs-1 +- iojs-2 +- iojs-3 +- '4.1' +before_script: +- npm install +before_install: npm install -g npm@'>=2.13.5' +deploy: + provider: npm + email: niklasvh@gmail.com + api_key: + secure: oHV9ArprTj5WOk7MP1UF7QMJ70huXw+y7xXb5wF4+V2H8Hyfa5TfE0DiOmqrube1WXTeH1FLgq54shp/sJWi47Hkg/GyeoB5NnsPhYEaJkaON9UG5blML+ODiNVsEnq/1kNBQ8e0+0JItMPLGySKyFmuZ3yflulXKS8O88mfINo= + on: + tags: true + branch: master + repo: niklasvh/base64-arraybuffer diff --git a/data_node_red/node_modules/base64-arraybuffer/LICENSE-MIT b/data_node_red/node_modules/base64-arraybuffer/LICENSE-MIT new file mode 100644 index 0000000..ed27b41 --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) 2012 Niklas von Hertzen + +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. diff --git a/data_node_red/node_modules/base64-arraybuffer/README.md b/data_node_red/node_modules/base64-arraybuffer/README.md new file mode 100644 index 0000000..50009e4 --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/README.md @@ -0,0 +1,20 @@ +# base64-arraybuffer + +[![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer) +[![NPM Downloads](https://img.shields.io/npm/dm/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) +[![NPM Version](https://img.shields.io/npm/v/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) + +Encode/decode base64 data into ArrayBuffers + +## Getting Started +Install the module with: `npm install base64-arraybuffer` + +## API +The library encodes and decodes base64 to and from ArrayBuffers + + - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string + - __decode(str)__ - Decodes base64 string to `ArrayBuffer` + +## License +Copyright (c) 2012 Niklas von Hertzen +Licensed under the MIT license. diff --git a/data_node_red/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js b/data_node_red/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js new file mode 100644 index 0000000..362fbfa --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js @@ -0,0 +1,59 @@ +/* + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ +(function(chars){ + "use strict"; + + exports.encode = function(arraybuffer) { + var bytes = new Uint8Array(arraybuffer), + i, len = bytes.length, base64 = ""; + + for (i = 0; i < len; i+=3) { + base64 += chars[bytes[i] >> 2]; + base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; + base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; + base64 += chars[bytes[i + 2] & 63]; + } + + if ((len % 3) === 2) { + base64 = base64.substring(0, base64.length - 1) + "="; + } else if (len % 3 === 1) { + base64 = base64.substring(0, base64.length - 2) + "=="; + } + + return base64; + }; + + exports.decode = function(base64) { + var bufferLength = base64.length * 0.75, + len = base64.length, i, p = 0, + encoded1, encoded2, encoded3, encoded4; + + if (base64[base64.length - 1] === "=") { + bufferLength--; + if (base64[base64.length - 2] === "=") { + bufferLength--; + } + } + + var arraybuffer = new ArrayBuffer(bufferLength), + bytes = new Uint8Array(arraybuffer); + + for (i = 0; i < len; i+=4) { + encoded1 = chars.indexOf(base64[i]); + encoded2 = chars.indexOf(base64[i+1]); + encoded3 = chars.indexOf(base64[i+2]); + encoded4 = chars.indexOf(base64[i+3]); + + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + + return arraybuffer; + }; +})("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); diff --git a/data_node_red/node_modules/base64-arraybuffer/package.json b/data_node_red/node_modules/base64-arraybuffer/package.json new file mode 100644 index 0000000..93fb198 --- /dev/null +++ b/data_node_red/node_modules/base64-arraybuffer/package.json @@ -0,0 +1,64 @@ +{ + "_from": "base64-arraybuffer@0.1.4", + "_id": "base64-arraybuffer@0.1.4", + "_inBundle": false, + "_integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "_location": "/base64-arraybuffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "base64-arraybuffer@0.1.4", + "name": "base64-arraybuffer", + "escapedName": "base64-arraybuffer", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/engine.io-parser" + ], + "_resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "_shasum": "9818c79e059b1355f97e0428a017c838e90ba812", + "_spec": "base64-arraybuffer@0.1.4", + "_where": "/data/node_modules/engine.io-parser", + "author": { + "name": "Niklas von Hertzen", + "email": "niklasvh@gmail.com", + "url": "http://hertzen.com" + }, + "bugs": { + "url": "https://github.com/niklasvh/base64-arraybuffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Encode/decode base64 data into ArrayBuffers", + "devDependencies": { + "grunt": "^0.4.5", + "grunt-cli": "^0.1.13", + "grunt-contrib-jshint": "^0.11.2", + "grunt-contrib-nodeunit": "^0.4.1", + "grunt-contrib-watch": "^0.6.1" + }, + "engines": { + "node": ">= 0.6.0" + }, + "homepage": "https://github.com/niklasvh/base64-arraybuffer", + "keywords": [], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/niklasvh/base64-arraybuffer/blob/master/LICENSE-MIT" + } + ], + "main": "lib/base64-arraybuffer", + "name": "base64-arraybuffer", + "repository": { + "type": "git", + "url": "git+https://github.com/niklasvh/base64-arraybuffer.git" + }, + "scripts": { + "test": "grunt nodeunit" + }, + "version": "0.1.4" +} diff --git a/data_node_red/node_modules/base64id/CHANGELOG.md b/data_node_red/node_modules/base64id/CHANGELOG.md new file mode 100644 index 0000000..b2b8332 --- /dev/null +++ b/data_node_red/node_modules/base64id/CHANGELOG.md @@ -0,0 +1,16 @@ +# [2.0.0](https://github.com/faeldt/base64id/compare/1.0.0...2.0.0) (2019-05-27) + + +### Code Refactoring + +* **buffer:** replace deprecated Buffer constructor usage ([#11](https://github.com/faeldt/base64id/issues/11)) ([ccfba54](https://github.com/faeldt/base64id/commit/ccfba54)) + + +### BREAKING CHANGES + +* **buffer:** drop support for Node.js 鈮 4.4.x and 5.0.0 - 5.9.x + +See: https://nodejs.org/en/docs/guides/buffer-constructor-deprecation/ + + + diff --git a/data_node_red/node_modules/base64id/LICENSE b/data_node_red/node_modules/base64id/LICENSE new file mode 100644 index 0000000..0d03c83 --- /dev/null +++ b/data_node_red/node_modules/base64id/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2012-2016 Kristian Faeldt + +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. diff --git a/data_node_red/node_modules/base64id/README.md b/data_node_red/node_modules/base64id/README.md new file mode 100644 index 0000000..17689e6 --- /dev/null +++ b/data_node_red/node_modules/base64id/README.md @@ -0,0 +1,18 @@ +base64id +======== + +Node.js module that generates a base64 id. + +Uses crypto.randomBytes when available, falls back to unsafe methods for node.js <= 0.4. + +To increase performance, random bytes are buffered to minimize the number of synchronous calls to crypto.randomBytes. + +## Installation + + $ npm install base64id + +## Usage + + var base64id = require('base64id'); + + var id = base64id.generateId(); diff --git a/data_node_red/node_modules/base64id/lib/base64id.js b/data_node_red/node_modules/base64id/lib/base64id.js new file mode 100644 index 0000000..15afe74 --- /dev/null +++ b/data_node_red/node_modules/base64id/lib/base64id.js @@ -0,0 +1,103 @@ +/*! + * base64id v0.1.0 + */ + +/** + * Module dependencies + */ + +var crypto = require('crypto'); + +/** + * Constructor + */ + +var Base64Id = function() { }; + +/** + * Get random bytes + * + * Uses a buffer if available, falls back to crypto.randomBytes + */ + +Base64Id.prototype.getRandomBytes = function(bytes) { + + var BUFFER_SIZE = 4096 + var self = this; + + bytes = bytes || 12; + + if (bytes > BUFFER_SIZE) { + return crypto.randomBytes(bytes); + } + + var bytesInBuffer = parseInt(BUFFER_SIZE/bytes); + var threshold = parseInt(bytesInBuffer*0.85); + + if (!threshold) { + return crypto.randomBytes(bytes); + } + + if (this.bytesBufferIndex == null) { + this.bytesBufferIndex = -1; + } + + if (this.bytesBufferIndex == bytesInBuffer) { + this.bytesBuffer = null; + this.bytesBufferIndex = -1; + } + + // No buffered bytes available or index above threshold + if (this.bytesBufferIndex == -1 || this.bytesBufferIndex > threshold) { + + if (!this.isGeneratingBytes) { + this.isGeneratingBytes = true; + crypto.randomBytes(BUFFER_SIZE, function(err, bytes) { + self.bytesBuffer = bytes; + self.bytesBufferIndex = 0; + self.isGeneratingBytes = false; + }); + } + + // Fall back to sync call when no buffered bytes are available + if (this.bytesBufferIndex == -1) { + return crypto.randomBytes(bytes); + } + } + + var result = this.bytesBuffer.slice(bytes*this.bytesBufferIndex, bytes*(this.bytesBufferIndex+1)); + this.bytesBufferIndex++; + + return result; +} + +/** + * Generates a base64 id + * + * (Original version from socket.io ) + */ + +Base64Id.prototype.generateId = function () { + var rand = Buffer.alloc(15); // multiple of 3 for base64 + if (!rand.writeInt32BE) { + return Math.abs(Math.random() * Math.random() * Date.now() | 0).toString() + + Math.abs(Math.random() * Math.random() * Date.now() | 0).toString(); + } + this.sequenceNumber = (this.sequenceNumber + 1) | 0; + rand.writeInt32BE(this.sequenceNumber, 11); + if (crypto.randomBytes) { + this.getRandomBytes(12).copy(rand); + } else { + // not secure for node 0.4 + [0, 4, 8].forEach(function(i) { + rand.writeInt32BE(Math.random() * Math.pow(2, 32) | 0, i); + }); + } + return rand.toString('base64').replace(/\//g, '_').replace(/\+/g, '-'); +}; + +/** + * Export + */ + +exports = module.exports = new Base64Id(); diff --git a/data_node_red/node_modules/base64id/package.json b/data_node_red/node_modules/base64id/package.json new file mode 100644 index 0000000..d7cb647 --- /dev/null +++ b/data_node_red/node_modules/base64id/package.json @@ -0,0 +1,47 @@ +{ + "_from": "base64id@2.0.0", + "_id": "base64id@2.0.0", + "_inBundle": false, + "_integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "_location": "/base64id", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "base64id@2.0.0", + "name": "base64id", + "escapedName": "base64id", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/engine.io" + ], + "_resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "_shasum": "2770ac6bc47d312af97a8bf9a634342e0cd25cb6", + "_spec": "base64id@2.0.0", + "_where": "/data/node_modules/engine.io", + "author": { + "name": "Kristian Faeldt", + "email": "faeldt_kristian@cyberagent.co.jp" + }, + "bugs": { + "url": "https://github.com/faeldt/base64id/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Generates a base64 id", + "engines": { + "node": "^4.5.0 || >= 5.9" + }, + "homepage": "https://github.com/faeldt/base64id#readme", + "license": "MIT", + "main": "./lib/base64id.js", + "name": "base64id", + "repository": { + "type": "git", + "url": "git+https://github.com/faeldt/base64id.git" + }, + "version": "2.0.0" +} diff --git a/data_node_red/node_modules/bignumber.js/CHANGELOG.md b/data_node_red/node_modules/bignumber.js/CHANGELOG.md new file mode 100644 index 0000000..e288a93 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/CHANGELOG.md @@ -0,0 +1,266 @@ +#### 9.0.0 +* 27/05/2019 +* For compatibility with legacy browsers, remove `Symbol` references. + +#### 8.1.1 +* 24/02/2019 +* [BUGFIX] #222 Restore missing `var` to `export BigNumber`. +* Allow any key in BigNumber.Instance in *bignumber.d.ts*. + +#### 8.1.0 +* 23/02/2019 +* [NEW FEATURE] #220 Create a BigNumber using `{s, e, c}`. +* [NEW FEATURE] `isBigNumber`: if `BigNumber.DEBUG` is `true`, also check that the BigNumber instance is well-formed. +* Remove `instanceof` checks; just use `_isBigNumber` to identify a BigNumber instance. +* Add `_isBigNumber` to prototype in *bignumber.mjs*. +* Add tests for BigNumber creation from object. +* Update *API.html*. + +#### 8.0.2 +* 13/01/2019 +* #209 `toPrecision` without argument should follow `toString`. +* Improve *Use* section of *README*. +* Optimise `toString(10)`. +* Add verson number to API doc. + +#### 8.0.1 +* 01/11/2018 +* Rest parameter must be array type in *bignumber.d.ts*. + +#### 8.0.0 +* 01/11/2018 +* [NEW FEATURE] Add `BigNumber.sum` method. +* [NEW FEATURE]`toFormat`: add `prefix` and `suffix` options. +* [NEW FEATURE] #178 Pass custom formatting to `toFormat`. +* [BREAKING CHANGE] #184 `toFraction`: return array of BigNumbers not strings. +* [NEW FEATURE] #185 Enable overwrite of `valueOf` to prevent accidental addition to string. +* #183 Add Node.js `crypto` requirement to documentation. +* [BREAKING CHANGE] #198 Disallow signs and whitespace in custom alphabet. +* [NEW FEATURE] #188 Implement `util.inspect.custom` for Node.js REPL. +* #170 Make `isBigNumber` a type guard in *bignumber.d.ts*. +* [BREAKING CHANGE] `BigNumber.min` and `BigNumber.max`: don't accept an array. +* Update *.travis.yml*. +* Remove *bower.json*. + +#### 7.2.1 +* 24/05/2018 +* Add `browser` field to *package.json*. + +#### 7.2.0 +* 22/05/2018 +* #166 Correct *.mjs* file. Remove extension from `main` field in *package.json*. + +#### 7.1.0 +* 18/05/2018 +* Add `module` field to *package.json* for *bignumber.mjs*. + +#### 7.0.2 +* 17/05/2018 +* #165 Bugfix: upper-case letters for bases 11-36 in a custom alphabet. +* Add note to *README* regarding creating BigNumbers from Number values. + +#### 7.0.1 +* 26/04/2018 +* #158 Fix global object variable name typo. + +#### 7.0.0 +* 26/04/2018 +* #143 Remove global BigNumber from typings. +* #144 Enable compatibility with `Object.freeze(Object.prototype)`. +* #148 #123 #11 Only throw on a number primitive with more than 15 significant digits if `BigNumber.DEBUG` is `true`. +* Only throw on an invalid BigNumber value if `BigNumber.DEBUG` is `true`. Return BigNumber `NaN` instead. +* #154 `exponentiatedBy`: allow BigNumber exponent. +* #156 Prevent Content Security Policy *unsafe-eval* issue. +* `toFraction`: allow `Infinity` maximum denominator. +* Comment-out some excess tests to reduce test time. +* Amend indentation and other spacing. + +#### 6.0.0 +* 26/01/2018 +* #137 Implement `APLHABET` configuration option. +* Remove `ERRORS` configuration option. +* Remove `toDigits` method; extend `precision` method accordingly. +* Remove s`round` method; extend `decimalPlaces` method accordingly. +* Remove methods: `ceil`, `floor`, and `truncated`. +* Remove method aliases: `add`, `cmp`, `isInt`, `isNeg`, `trunc`, `mul`, `neg` and `sub`. +* Rename methods: `shift` to `shiftedBy`, `another` to `clone`, `toPower` to `exponentiatedBy`, and `equals` to `isEqualTo`. +* Rename methods: add `is` prefix to `greaterThan`, `greaterThanOrEqualTo`, `lessThan` and `lessThanOrEqualTo`. +* Add methods: `multipliedBy`, `isBigNumber`, `isPositive`, `integerValue`, `maximum` and `minimum`. +* Refactor test suite. +* Add *CHANGELOG.md*. +* Rewrite *bignumber.d.ts*. +* Redo API image. + +#### 5.0.0 +* 27/11/2017 +* #81 Don't throw on constructor call without `new`. + +#### 4.1.0 +* 26/09/2017 +* Remove node 0.6 from *.travis.yml*. +* Add *bignumber.mjs*. + +#### 4.0.4 +* 03/09/2017 +* Add missing aliases to *bignumber.d.ts*. + +#### 4.0.3 +* 30/08/2017 +* Add types: *bignumber.d.ts*. + +#### 4.0.2 +* 03/05/2017 +* #120 Workaround Safari/Webkit bug. + +#### 4.0.1 +* 05/04/2017 +* #121 BigNumber.default to BigNumber['default']. + +#### 4.0.0 +* 09/01/2017 +* Replace BigNumber.isBigNumber method with isBigNumber prototype property. + +#### 3.1.2 +* 08/01/2017 +* Minor documentation edit. + +#### 3.1.1 +* 08/01/2017 +* Uncomment `isBigNumber` tests. +* Ignore dot files. + +#### 3.1.0 +* 08/01/2017 +* Add `isBigNumber` method. + +#### 3.0.2 +* 08/01/2017 +* Bugfix: Possible incorrect value of `ERRORS` after a `BigNumber.another` call (due to `parseNumeric` declaration in outer scope). + +#### 3.0.1 +* 23/11/2016 +* Apply fix for old ipads with `%` issue, see #57 and #102. +* Correct error message. + +#### 3.0.0 +* 09/11/2016 +* Remove `require('crypto')` - leave it to the user. +* Add `BigNumber.set` as `BigNumber.config` alias. +* Default `POW_PRECISION` to `0`. + +#### 2.4.0 +* 14/07/2016 +* #97 Add exports to support ES6 imports. + +#### 2.3.0 +* 07/03/2016 +* #86 Add modulus parameter to `toPower`. + +#### 2.2.0 +* 03/03/2016 +* #91 Permit larger JS integers. + +#### 2.1.4 +* 15/12/2015 +* Correct UMD. + +#### 2.1.3 +* 13/12/2015 +* Refactor re global object and crypto availability when bundling. + +#### 2.1.2 +* 10/12/2015 +* Bugfix: `window.crypto` not assigned to `crypto`. + +#### 2.1.1 +* 09/12/2015 +* Prevent code bundler from adding `crypto` shim. + +#### 2.1.0 +* 26/10/2015 +* For `valueOf` and `toJSON`, include the minus sign with negative zero. + +#### 2.0.8 +* 2/10/2015 +* Internal round function bugfix. + +#### 2.0.6 +* 31/03/2015 +* Add bower.json. Tweak division after in-depth review. + +#### 2.0.5 +* 25/03/2015 +* Amend README. Remove bitcoin address. + +#### 2.0.4 +* 25/03/2015 +* Critical bugfix #58: division. + +#### 2.0.3 +* 18/02/2015 +* Amend README. Add source map. + +#### 2.0.2 +* 18/02/2015 +* Correct links. + +#### 2.0.1 +* 18/02/2015 +* Add `max`, `min`, `precision`, `random`, `shiftedBy`, `toDigits` and `truncated` methods. +* Add the short-forms: `add`, `mul`, `sd`, `sub` and `trunc`. +* Add an `another` method to enable multiple independent constructors to be created. +* Add support for the base 2, 8 and 16 prefixes `0b`, `0o` and `0x`. +* Enable a rounding mode to be specified as a second parameter to `toExponential`, `toFixed`, `toFormat` and `toPrecision`. +* Add a `CRYPTO` configuration property so cryptographically-secure pseudo-random number generation can be specified. +* Add a `MODULO_MODE` configuration property to enable the rounding mode used by the `modulo` operation to be specified. +* Add a `POW_PRECISION` configuration property to enable the number of significant digits calculated by the power operation to be limited. +* Improve code quality. +* Improve documentation. + +#### 2.0.0 +* 29/12/2014 +* Add `dividedToIntegerBy`, `isInteger` and `toFormat` methods. +* Remove the following short-forms: `isF`, `isZ`, `toE`, `toF`, `toFr`, `toN`, `toP`, `toS`. +* Store a BigNumber's coefficient in base 1e14, rather than base 10. +* Add fast path for integers to BigNumber constructor. +* Incorporate the library into the online documentation. + +#### 1.5.0 +* 13/11/2014 +* Add `toJSON` and `decimalPlaces` methods. + +#### 1.4.1 +* 08/06/2014 +* Amend README. + +#### 1.4.0 +* 08/05/2014 +* Add `toNumber`. + +#### 1.3.0 +* 08/11/2013 +* Ensure correct rounding of `sqrt` in all, rather than almost all, cases. +* Maximum radix to 64. + +#### 1.2.1 +* 17/10/2013 +* Sign of zero when x < 0 and x + (-x) = 0. + +#### 1.2.0 +* 19/9/2013 +* Throw Error objects for stack. + +#### 1.1.1 +* 22/8/2013 +* Show original value in constructor error message. + +#### 1.1.0 +* 1/8/2013 +* Allow numbers with trailing radix point. + +#### 1.0.1 +* Bugfix: error messages with incorrect method name + +#### 1.0.0 +* 8/11/2012 +* Initial release diff --git a/data_node_red/node_modules/bignumber.js/LICENCE b/data_node_red/node_modules/bignumber.js/LICENCE new file mode 100644 index 0000000..87a9b15 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/LICENCE @@ -0,0 +1,23 @@ +The MIT Licence. + +Copyright (c) 2019 Michael Mclaughlin + +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. + diff --git a/data_node_red/node_modules/bignumber.js/README.md b/data_node_red/node_modules/bignumber.js/README.md new file mode 100644 index 0000000..fc3c84c --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/README.md @@ -0,0 +1,268 @@ +![bignumber.js](https://raw.githubusercontent.com/MikeMcl/bignumber.js/gh-pages/bignumberjs.png) + +A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic. + +[![Build Status](https://travis-ci.org/MikeMcl/bignumber.js.svg)](https://travis-ci.org/MikeMcl/bignumber.js) + +
+ +## Features + + - Integers and decimals + - Simple API but full-featured + - Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal + - 8 KB minified and gzipped + - Replicates the `toExponential`, `toFixed`, `toPrecision` and `toString` methods of JavaScript's Number type + - Includes a `toFraction` and a correctly-rounded `squareRoot` method + - Supports cryptographically-secure pseudo-random number generation + - No dependencies + - Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only + - Comprehensive [documentation](http://mikemcl.github.io/bignumber.js/) and test set + +![API](https://raw.githubusercontent.com/MikeMcl/bignumber.js/gh-pages/API.png) + +If a smaller and simpler library is required see [big.js](https://github.com/MikeMcl/big.js/). +It's less than half the size but only works with decimal numbers and only has half the methods. +It also does not allow `NaN` or `Infinity`, or have the configuration options of this library. + +See also [decimal.js](https://github.com/MikeMcl/decimal.js/), which among other things adds support for non-integer powers, and performs all operations to a specified number of significant digits. + +## Load + +The library is the single JavaScript file *bignumber.js* (or minified, *bignumber.min.js*). + +Browser: + +```html + +``` + +[Node.js](http://nodejs.org): + +```bash +$ npm install bignumber.js +``` + +```javascript +const BigNumber = require('bignumber.js'); +``` + +ES6 module: + +```javascript +import BigNumber from "./bignumber.mjs" +``` + +AMD loader libraries such as [requireJS](http://requirejs.org/): + +```javascript +require(['bignumber'], function(BigNumber) { + // Use BigNumber here in local scope. No global BigNumber. +}); +``` + +## Use + +The library exports a single constructor function, [`BigNumber`](http://mikemcl.github.io/bignumber.js/#bignumber), which accepts a value of type Number, String or BigNumber, + +```javascript +let x = new BigNumber(123.4567); +let y = BigNumber('123456.7e-3'); +let z = new BigNumber(x); +x.isEqualTo(y) && y.isEqualTo(z) && x.isEqualTo(z); // true +``` + +To get the string value of a BigNumber use [`toString()`](http://mikemcl.github.io/bignumber.js/#toS) or [`toFixed()`](http://mikemcl.github.io/bignumber.js/#toFix). Using `toFixed()` prevents exponential notation being returned, no matter how large or small the value. + +```javascript +let x = new BigNumber('1111222233334444555566'); +x.toString(); // "1.111222233334444555566e+21" +x.toFixed(); // "1111222233334444555566" +``` + +If the limited precision of Number values is not well understood, it is recommended to create BigNumbers from String values rather than Number values to avoid a potential loss of precision. + +*In all further examples below, `let`, semicolons and `toString` calls are not shown. If a commented-out value is in quotes it means `toString` has been called on the preceding expression.* + +```javascript +// Precision loss from using numeric literals with more than 15 significant digits. +new BigNumber(1.0000000000000001) // '1' +new BigNumber(88259496234518.57) // '88259496234518.56' +new BigNumber(99999999999999999999) // '100000000000000000000' + +// Precision loss from using numeric literals outside the range of Number values. +new BigNumber(2e+308) // 'Infinity' +new BigNumber(1e-324) // '0' + +// Precision loss from the unexpected result of arithmetic with Number values. +new BigNumber(0.7 + 0.1) // '0.7999999999999999' +``` + +When creating a BigNumber from a Number, note that a BigNumber is created from a Number's decimal `toString()` value not from its underlying binary value. If the latter is required, then pass the Number's `toString(2)` value and specify base 2. + +```javascript +new BigNumber(Number.MAX_VALUE.toString(2), 2) +``` + +BigNumbers can be created from values in bases from 2 to 36. See [`ALPHABET`](http://mikemcl.github.io/bignumber.js/#alphabet) to extend this range. + +```javascript +a = new BigNumber(1011, 2) // "11" +b = new BigNumber('zz.9', 36) // "1295.25" +c = a.plus(b) // "1306.25" +``` + +Performance is better if base 10 is NOT specified for decimal values. Only specify base 10 when it is desired that the number of decimal places of the input value be limited to the current [`DECIMAL_PLACES`](http://mikemcl.github.io/bignumber.js/#decimal-places) setting. + +A BigNumber is immutable in the sense that it is not changed by its methods. + +```javascript +0.3 - 0.1 // 0.19999999999999998 +x = new BigNumber(0.3) +x.minus(0.1) // "0.2" +x // "0.3" +``` + +The methods that return a BigNumber can be chained. + +```javascript +x.dividedBy(y).plus(z).times(9) +x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').integerValue() +``` + +Some of the longer method names have a shorter alias. + +```javascript +x.squareRoot().dividedBy(y).exponentiatedBy(3).isEqualTo(x.sqrt().div(y).pow(3)) // true +x.modulo(y).multipliedBy(z).eq(x.mod(y).times(z)) // true +``` + +As with JavaScript's Number type, there are [`toExponential`](http://mikemcl.github.io/bignumber.js/#toE), [`toFixed`](http://mikemcl.github.io/bignumber.js/#toFix) and [`toPrecision`](http://mikemcl.github.io/bignumber.js/#toP) methods. + +```javascript +x = new BigNumber(255.5) +x.toExponential(5) // "2.55500e+2" +x.toFixed(5) // "255.50000" +x.toPrecision(5) // "255.50" +x.toNumber() // 255.5 +``` + + A base can be specified for [`toString`](http://mikemcl.github.io/bignumber.js/#toS). Performance is better if base 10 is NOT specified, i.e. use `toString()` not `toString(10)`. Only specify base 10 when it is desired that the number of decimal places be limited to the current [`DECIMAL_PLACES`](http://mikemcl.github.io/bignumber.js/#decimal-places) setting. + + ```javascript + x.toString(16) // "ff.8" + ``` + +There is a [`toFormat`](http://mikemcl.github.io/bignumber.js/#toFor) method which may be useful for internationalisation. + +```javascript +y = new BigNumber('1234567.898765') +y.toFormat(2) // "1,234,567.90" +``` + +The maximum number of decimal places of the result of an operation involving division (i.e. a division, square root, base conversion or negative power operation) is set using the `set` or `config` method of the `BigNumber` constructor. + +The other arithmetic operations always give the exact result. + +```javascript +BigNumber.set({ DECIMAL_PLACES: 10, ROUNDING_MODE: 4 }) + +x = new BigNumber(2) +y = new BigNumber(3) +z = x.dividedBy(y) // "0.6666666667" +z.squareRoot() // "0.8164965809" +z.exponentiatedBy(-3) // "3.3749999995" +z.toString(2) // "0.1010101011" +z.multipliedBy(z) // "0.44444444448888888889" +z.multipliedBy(z).decimalPlaces(10) // "0.4444444445" +``` + +There is a [`toFraction`](http://mikemcl.github.io/bignumber.js/#toFr) method with an optional *maximum denominator* argument + +```javascript +y = new BigNumber(355) +pi = y.dividedBy(113) // "3.1415929204" +pi.toFraction() // [ "7853982301", "2500000000" ] +pi.toFraction(1000) // [ "355", "113" ] +``` + +and [`isNaN`](http://mikemcl.github.io/bignumber.js/#isNaN) and [`isFinite`](http://mikemcl.github.io/bignumber.js/#isF) methods, as `NaN` and `Infinity` are valid `BigNumber` values. + +```javascript +x = new BigNumber(NaN) // "NaN" +y = new BigNumber(Infinity) // "Infinity" +x.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite() // true +``` + +The value of a BigNumber is stored in a decimal floating point format in terms of a coefficient, exponent and sign. + +```javascript +x = new BigNumber(-123.456); +x.c // [ 123, 45600000000000 ] coefficient (i.e. significand) +x.e // 2 exponent +x.s // -1 sign +``` + +For advanced usage, multiple BigNumber constructors can be created, each with their own independent configuration. + +```javascript +// Set DECIMAL_PLACES for the original BigNumber constructor +BigNumber.set({ DECIMAL_PLACES: 10 }) + +// Create another BigNumber constructor, optionally passing in a configuration object +BN = BigNumber.clone({ DECIMAL_PLACES: 5 }) + +x = new BigNumber(1) +y = new BN(1) + +x.div(3) // '0.3333333333' +y.div(3) // '0.33333' +``` + +For further information see the [API](http://mikemcl.github.io/bignumber.js/) reference in the *doc* directory. + +## Test + +The *test/modules* directory contains the test scripts for each method. + +The tests can be run with Node.js or a browser. For Node.js use + + $ npm test + +or + + $ node test/test + +To test a single method, use, for example + + $ node test/methods/toFraction + +For the browser, open *test/test.html*. + +## Build + +For Node, if [uglify-js](https://github.com/mishoo/UglifyJS2) is installed + + npm install uglify-js -g + +then + + npm run build + +will create *bignumber.min.js*. + +A source map will also be created in the root directory. + +## Feedback + +Open an issue, or email + +Michael + +M8ch88l@gmail.com + +## Licence + +The MIT Licence. + +See [LICENCE](https://github.com/MikeMcl/bignumber.js/blob/master/LICENCE). diff --git a/data_node_red/node_modules/bignumber.js/bignumber.d.ts b/data_node_red/node_modules/bignumber.js/bignumber.d.ts new file mode 100644 index 0000000..ac6a3e4 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/bignumber.d.ts @@ -0,0 +1,1829 @@ +// Type definitions for bignumber.js >=8.1.0 +// Project: https://github.com/MikeMcl/bignumber.js +// Definitions by: Michael Mclaughlin +// Definitions: https://github.com/MikeMcl/bignumber.js + +// Documentation: http://mikemcl.github.io/bignumber.js/ +// +// Exports: +// +// class BigNumber (default export) +// type BigNumber.Constructor +// type BigNumber.ModuloMode +// type BigNumber.RoundingMOde +// type BigNumber.Value +// interface BigNumber.Config +// interface BigNumber.Format +// interface BigNumber.Instance +// +// Example: +// +// import {BigNumber} from "bignumber.js" +// //import BigNumber from "bignumber.js" +// +// let rm: BigNumber.RoundingMode = BigNumber.ROUND_UP; +// let f: BigNumber.Format = { decimalSeparator: ',' }; +// let c: BigNumber.Config = { DECIMAL_PLACES: 4, ROUNDING_MODE: rm, FORMAT: f }; +// BigNumber.config(c); +// +// let v: BigNumber.Value = '12345.6789'; +// let b: BigNumber = new BigNumber(v); +// +// The use of compiler option `--strictNullChecks` is recommended. + +export default BigNumber; + +export namespace BigNumber { + + /** See `BigNumber.config` (alias `BigNumber.set`) and `BigNumber.clone`. */ + interface Config { + + /** + * An integer, 0 to 1e+9. Default value: 20. + * + * The maximum number of decimal places of the result of operations involving division, i.e. + * division, square root and base conversion operations, and exponentiation when the exponent is + * negative. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * BigNumber.set({ DECIMAL_PLACES: 5 }) + * ``` + */ + DECIMAL_PLACES?: number; + + /** + * An integer, 0 to 8. Default value: `BigNumber.ROUND_HALF_UP` (4). + * + * The rounding mode used in operations that involve division (see `DECIMAL_PLACES`) and the + * default rounding mode of the `decimalPlaces`, `precision`, `toExponential`, `toFixed`, + * `toFormat` and `toPrecision` methods. + * + * The modes are available as enumerated properties of the BigNumber constructor. + * + * ```ts + * BigNumber.config({ ROUNDING_MODE: 0 }) + * BigNumber.set({ ROUNDING_MODE: BigNumber.ROUND_UP }) + * ``` + */ + ROUNDING_MODE?: BigNumber.RoundingMode; + + /** + * An integer, 0 to 1e+9, or an array, [-1e+9 to 0, 0 to 1e+9]. + * Default value: `[-7, 20]`. + * + * The exponent value(s) at which `toString` returns exponential notation. + * + * If a single number is assigned, the value is the exponent magnitude. + * + * If an array of two numbers is assigned then the first number is the negative exponent value at + * and beneath which exponential notation is used, and the second number is the positive exponent + * value at and above which exponential notation is used. + * + * For example, to emulate JavaScript numbers in terms of the exponent values at which they begin + * to use exponential notation, use `[-7, 20]`. + * + * ```ts + * BigNumber.config({ EXPONENTIAL_AT: 2 }) + * new BigNumber(12.3) // '12.3' e is only 1 + * new BigNumber(123) // '1.23e+2' + * new BigNumber(0.123) // '0.123' e is only -1 + * new BigNumber(0.0123) // '1.23e-2' + * + * BigNumber.config({ EXPONENTIAL_AT: [-7, 20] }) + * new BigNumber(123456789) // '123456789' e is only 8 + * new BigNumber(0.000000123) // '1.23e-7' + * + * // Almost never return exponential notation: + * BigNumber.config({ EXPONENTIAL_AT: 1e+9 }) + * + * // Always return exponential notation: + * BigNumber.config({ EXPONENTIAL_AT: 0 }) + * ``` + * + * Regardless of the value of `EXPONENTIAL_AT`, the `toFixed` method will always return a value in + * normal notation and the `toExponential` method will always return a value in exponential form. + * Calling `toString` with a base argument, e.g. `toString(10)`, will also always return normal + * notation. + */ + EXPONENTIAL_AT?: number | [number, number]; + + /** + * An integer, magnitude 1 to 1e+9, or an array, [-1e+9 to -1, 1 to 1e+9]. + * Default value: `[-1e+9, 1e+9]`. + * + * The exponent value(s) beyond which overflow to Infinity and underflow to zero occurs. + * + * If a single number is assigned, it is the maximum exponent magnitude: values wth a positive + * exponent of greater magnitude become Infinity and those with a negative exponent of greater + * magnitude become zero. + * + * If an array of two numbers is assigned then the first number is the negative exponent limit and + * the second number is the positive exponent limit. + * + * For example, to emulate JavaScript numbers in terms of the exponent values at which they + * become zero and Infinity, use [-324, 308]. + * + * ```ts + * BigNumber.config({ RANGE: 500 }) + * BigNumber.config().RANGE // [ -500, 500 ] + * new BigNumber('9.999e499') // '9.999e+499' + * new BigNumber('1e500') // 'Infinity' + * new BigNumber('1e-499') // '1e-499' + * new BigNumber('1e-500') // '0' + * + * BigNumber.config({ RANGE: [-3, 4] }) + * new BigNumber(99999) // '99999' e is only 4 + * new BigNumber(100000) // 'Infinity' e is 5 + * new BigNumber(0.001) // '0.01' e is only -3 + * new BigNumber(0.0001) // '0' e is -4 + * ``` + * The largest possible magnitude of a finite BigNumber is 9.999...e+1000000000. + * The smallest possible magnitude of a non-zero BigNumber is 1e-1000000000. + */ + RANGE?: number | [number, number]; + + /** + * A boolean: `true` or `false`. Default value: `false`. + * + * The value that determines whether cryptographically-secure pseudo-random number generation is + * used. If `CRYPTO` is set to true then the random method will generate random digits using + * `crypto.getRandomValues` in browsers that support it, or `crypto.randomBytes` if using a + * version of Node.js that supports it. + * + * If neither function is supported by the host environment then attempting to set `CRYPTO` to + * `true` will fail and an exception will be thrown. + * + * If `CRYPTO` is `false` then the source of randomness used will be `Math.random` (which is + * assumed to generate at least 30 bits of randomness). + * + * See `BigNumber.random`. + * + * ```ts + * // Node.js + * global.crypto = require('crypto') + * + * BigNumber.config({ CRYPTO: true }) + * BigNumber.config().CRYPTO // true + * BigNumber.random() // 0.54340758610486147524 + * ``` + */ + CRYPTO?: boolean; + + /** + * An integer, 0, 1, 3, 6 or 9. Default value: `BigNumber.ROUND_DOWN` (1). + * + * The modulo mode used when calculating the modulus: `a mod n`. + * The quotient, `q = a / n`, is calculated according to the `ROUNDING_MODE` that corresponds to + * the chosen `MODULO_MODE`. + * The remainder, `r`, is calculated as: `r = a - n * q`. + * + * The modes that are most commonly used for the modulus/remainder operation are shown in the + * following table. Although the other rounding modes can be used, they may not give useful + * results. + * + * Property | Value | Description + * :------------------|:------|:------------------------------------------------------------------ + * `ROUND_UP` | 0 | The remainder is positive if the dividend is negative. + * `ROUND_DOWN` | 1 | The remainder has the same sign as the dividend. + * | | Uses 'truncating division' and matches JavaScript's `%` operator . + * `ROUND_FLOOR` | 3 | The remainder has the same sign as the divisor. + * | | This matches Python's `%` operator. + * `ROUND_HALF_EVEN` | 6 | The IEEE 754 remainder function. + * `EUCLID` | 9 | The remainder is always positive. + * | | Euclidian division: `q = sign(n) * floor(a / abs(n))` + * + * The rounding/modulo modes are available as enumerated properties of the BigNumber constructor. + * + * See `modulo`. + * + * ```ts + * BigNumber.config({ MODULO_MODE: BigNumber.EUCLID }) + * BigNumber.set({ MODULO_MODE: 9 }) // equivalent + * ``` + */ + MODULO_MODE?: BigNumber.ModuloMode; + + /** + * An integer, 0 to 1e+9. Default value: 0. + * + * The maximum precision, i.e. number of significant digits, of the result of the power operation + * - unless a modulus is specified. + * + * If set to 0, the number of significant digits will not be limited. + * + * See `exponentiatedBy`. + * + * ```ts + * BigNumber.config({ POW_PRECISION: 100 }) + * ``` + */ + POW_PRECISION?: number; + + /** + * An object including any number of the properties shown below. + * + * The object configures the format of the string returned by the `toFormat` method. + * The example below shows the properties of the object that are recognised, and + * their default values. + * + * Unlike the other configuration properties, the values of the properties of the `FORMAT` object + * will not be checked for validity - the existing object will simply be replaced by the object + * that is passed in. + * + * See `toFormat`. + * + * ```ts + * BigNumber.config({ + * FORMAT: { + * // string to prepend + * prefix: '', + * // the decimal separator + * decimalSeparator: '.', + * // the grouping separator of the integer part + * groupSeparator: ',', + * // the primary grouping size of the integer part + * groupSize: 3, + * // the secondary grouping size of the integer part + * secondaryGroupSize: 0, + * // the grouping separator of the fraction part + * fractionGroupSeparator: ' ', + * // the grouping size of the fraction part + * fractionGroupSize: 0, + * // string to append + * suffix: '' + * } + * }) + * ``` + */ + FORMAT?: BigNumber.Format; + + /** + * The alphabet used for base conversion. The length of the alphabet corresponds to the maximum + * value of the base argument that can be passed to the BigNumber constructor or `toString`. + * + * Default value: `'0123456789abcdefghijklmnopqrstuvwxyz'`. + * + * There is no maximum length for the alphabet, but it must be at least 2 characters long, + * and it must not contain whitespace or a repeated character, or the sign indicators '+' and + * '-', or the decimal separator '.'. + * + * ```ts + * // duodecimal (base 12) + * BigNumber.config({ ALPHABET: '0123456789TE' }) + * x = new BigNumber('T', 12) + * x.toString() // '10' + * x.toString(12) // 'T' + * ``` + */ + ALPHABET?: string; + } + + /** See `FORMAT` and `toFormat`. */ + interface Format { + + /** The string to prepend. */ + prefix?: string; + + /** The decimal separator. */ + decimalSeparator?: string; + + /** The grouping separator of the integer part. */ + groupSeparator?: string; + + /** The primary grouping size of the integer part. */ + groupSize?: number; + + /** The secondary grouping size of the integer part. */ + secondaryGroupSize?: number; + + /** The grouping separator of the fraction part. */ + fractionGroupSeparator?: string; + + /** The grouping size of the fraction part. */ + fractionGroupSize?: number; + + /** The string to append. */ + suffix?: string; + } + + interface Instance { + + /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */ + readonly c: number[] | null; + + /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */ + readonly e: number | null; + + /** The sign of the value of this BigNumber, -1, 1, or null. */ + readonly s: number | null; + + [key: string]: any; + } + + type Constructor = typeof BigNumber; + type ModuloMode = 0 | 1 | 3 | 6 | 9; + type RoundingMode = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + type Value = string | number | Instance; +} + +export declare class BigNumber implements BigNumber.Instance { + + /** Used internally to identify a BigNumber instance. */ + private readonly _isBigNumber: true; + + /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */ + readonly c: number[] | null; + + /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */ + readonly e: number | null; + + /** The sign of the value of this BigNumber, -1, 1, or null. */ + readonly s: number | null; + + /** + * Returns a new instance of a BigNumber object with value `n`, where `n` is a numeric value in + * the specified `base`, or base 10 if `base` is omitted or is `null` or `undefined`. + * + * ```ts + * x = new BigNumber(123.4567) // '123.4567' + * // 'new' is optional + * y = BigNumber(x) // '123.4567' + * ``` + * + * If `n` is a base 10 value it can be in normal (fixed-point) or exponential notation. + * Values in other bases must be in normal notation. Values in any base can have fraction digits, + * i.e. digits after the decimal point. + * + * ```ts + * new BigNumber(43210) // '43210' + * new BigNumber('4.321e+4') // '43210' + * new BigNumber('-735.0918e-430') // '-7.350918e-428' + * new BigNumber('123412421.234324', 5) // '607236.557696' + * ``` + * + * Signed `0`, signed `Infinity` and `NaN` are supported. + * + * ```ts + * new BigNumber('-Infinity') // '-Infinity' + * new BigNumber(NaN) // 'NaN' + * new BigNumber(-0) // '0' + * new BigNumber('.5') // '0.5' + * new BigNumber('+2') // '2' + * ``` + * + * String values in hexadecimal literal form, e.g. `'0xff'`, are valid, as are string values with + * the octal and binary prefixs `'0o'` and `'0b'`. String values in octal literal form without the + * prefix will be interpreted as decimals, e.g. `'011'` is interpreted as 11, not 9. + * + * ```ts + * new BigNumber(-10110100.1, 2) // '-180.5' + * new BigNumber('-0b10110100.1') // '-180.5' + * new BigNumber('ff.8', 16) // '255.5' + * new BigNumber('0xff.8') // '255.5' + * ``` + * + * If a base is specified, `n` is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. This includes base 10, so don't include a `base` parameter for decimal + * values unless this behaviour is desired. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * new BigNumber(1.23456789) // '1.23456789' + * new BigNumber(1.23456789, 10) // '1.23457' + * ``` + * + * An error is thrown if `base` is invalid. + * + * There is no limit to the number of digits of a value of type string (other than that of + * JavaScript's maximum array size). See `RANGE` to set the maximum and minimum possible exponent + * value of a BigNumber. + * + * ```ts + * new BigNumber('5032485723458348569331745.33434346346912144534543') + * new BigNumber('4.321e10000000') + * ``` + * + * BigNumber `NaN` is returned if `n` is invalid (unless `BigNumber.DEBUG` is `true`, see below). + * + * ```ts + * new BigNumber('.1*') // 'NaN' + * new BigNumber('blurgh') // 'NaN' + * new BigNumber(9, 2) // 'NaN' + * ``` + * + * To aid in debugging, if `BigNumber.DEBUG` is `true` then an error will be thrown on an + * invalid `n`. An error will also be thrown if `n` is of type number with more than 15 + * significant digits, as calling `toString` or `valueOf` on these numbers may not result in the + * intended value. + * + * ```ts + * console.log(823456789123456.3) // 823456789123456.2 + * new BigNumber(823456789123456.3) // '823456789123456.2' + * BigNumber.DEBUG = true + * // 'Error: Number has more than 15 significant digits' + * new BigNumber(823456789123456.3) + * // 'Error: Not a base 2 number' + * new BigNumber(9, 2) + * ``` + * + * A BigNumber can also be created from an object literal. + * Use `isBigNumber` to check that it is well-formed. + * + * ```ts + * new BigNumber({ s: 1, e: 2, c: [ 777, 12300000000000 ], _isBigNumber: true }) // '777.123' + * ``` + * + * @param n A numeric value. + * @param base The base of `n`, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`). + */ + constructor(n: BigNumber.Value, base?: number); + + /** + * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this + * BigNumber. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber(-0.8) + * x.absoluteValue() // '0.8' + * ``` + */ + absoluteValue(): BigNumber; + + /** + * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this + * BigNumber. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber(-0.8) + * x.abs() // '0.8' + * ``` + */ + abs(): BigNumber; + + /** + * Returns | | + * :-------:|:--------------------------------------------------------------| + * 1 | If the value of this BigNumber is greater than the value of `n` + * -1 | If the value of this BigNumber is less than the value of `n` + * 0 | If this BigNumber and `n` have the same value + * `null` | If the value of either this BigNumber or `n` is `NaN` + * + * ```ts + * + * x = new BigNumber(Infinity) + * y = new BigNumber(5) + * x.comparedTo(y) // 1 + * x.comparedTo(x.minus(1)) // 0 + * y.comparedTo(NaN) // null + * y.comparedTo('110', 2) // -1 + * ``` + * @param n A numeric value. + * @param [base] The base of n. + */ + comparedTo(n: BigNumber.Value, base?: number): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode + * `roundingMode` to a maximum of `decimalPlaces` decimal places. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of + * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is + * 卤`Infinity` or `NaN`. + * + * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(1234.56) + * x.decimalPlaces() // 2 + * x.decimalPlaces(1) // '1234.6' + * x.decimalPlaces(2) // '1234.56' + * x.decimalPlaces(10) // '1234.56' + * x.decimalPlaces(0, 1) // '1234' + * x.decimalPlaces(0, 6) // '1235' + * x.decimalPlaces(1, 1) // '1234.5' + * x.decimalPlaces(1, BigNumber.ROUND_HALF_EVEN) // '1234.6' + * x // '1234.56' + * y = new BigNumber('9.9e-101') + * y.decimalPlaces() // 102 + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + decimalPlaces(): number; + decimalPlaces(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode + * `roundingMode` to a maximum of `decimalPlaces` decimal places. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of + * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is + * 卤`Infinity` or `NaN`. + * + * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(1234.56) + * x.dp() // 2 + * x.dp(1) // '1234.6' + * x.dp(2) // '1234.56' + * x.dp(10) // '1234.56' + * x.dp(0, 1) // '1234' + * x.dp(0, 6) // '1235' + * x.dp(1, 1) // '1234.5' + * x.dp(1, BigNumber.ROUND_HALF_EVEN) // '1234.6' + * x // '1234.56' + * y = new BigNumber('9.9e-101') + * y.dp() // 102 + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + dp(): number; + dp(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * ```ts + * x = new BigNumber(355) + * y = new BigNumber(113) + * x.dividedBy(y) // '3.14159292035398230088' + * x.dividedBy(5) // '71' + * x.dividedBy(47, 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + dividedBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * ```ts + * x = new BigNumber(355) + * y = new BigNumber(113) + * x.div(y) // '3.14159292035398230088' + * x.div(5) // '71' + * x.div(47, 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + div(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + * `n`. + * + * ```ts + * x = new BigNumber(5) + * y = new BigNumber(3) + * x.dividedToIntegerBy(y) // '1' + * x.dividedToIntegerBy(0.7) // '7' + * x.dividedToIntegerBy('0.f', 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + dividedToIntegerBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + * `n`. + * + * ```ts + * x = new BigNumber(5) + * y = new BigNumber(3) + * x.idiv(y) // '1' + * x.idiv(0.7) // '7' + * x.idiv('0.f', 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + idiv(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e. + * raised to the power `n`, and optionally modulo a modulus `m`. + * + * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. + * + * As the number of digits of the result of the power operation can grow so large so quickly, + * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is + * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified). + * + * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant + * digits will be calculated, and that the method's performance will decrease dramatically for + * larger exponents. + * + * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is + * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will + * be performed as `x.exponentiatedBy(n).modulo(m)` with a `POW_PRECISION` of 0. + * + * Throws if `n` is not an integer. + * + * ```ts + * Math.pow(0.7, 2) // 0.48999999999999994 + * x = new BigNumber(0.7) + * x.exponentiatedBy(2) // '0.49' + * BigNumber(3).exponentiatedBy(-2) // '0.11111111111111111111' + * ``` + * + * @param n The exponent, an integer. + * @param [m] The modulus. + */ + exponentiatedBy(n: BigNumber.Value, m?: BigNumber.Value): BigNumber; + exponentiatedBy(n: number, m?: BigNumber.Value): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e. + * raised to the power `n`, and optionally modulo a modulus `m`. + * + * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. + * + * As the number of digits of the result of the power operation can grow so large so quickly, + * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is + * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified). + * + * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant + * digits will be calculated, and that the method's performance will decrease dramatically for + * larger exponents. + * + * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is + * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will + * be performed as `x.pow(n).modulo(m)` with a `POW_PRECISION` of 0. + * + * Throws if `n` is not an integer. + * + * ```ts + * Math.pow(0.7, 2) // 0.48999999999999994 + * x = new BigNumber(0.7) + * x.pow(2) // '0.49' + * BigNumber(3).pow(-2) // '0.11111111111111111111' + * ``` + * + * @param n The exponent, an integer. + * @param [m] The modulus. + */ + pow(n: BigNumber.Value, m?: BigNumber.Value): BigNumber; + pow(n: number, m?: BigNumber.Value): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to an integer using + * rounding mode `rm`. + * + * If `rm` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `rm` is invalid. + * + * ```ts + * x = new BigNumber(123.456) + * x.integerValue() // '123' + * x.integerValue(BigNumber.ROUND_CEIL) // '124' + * y = new BigNumber(-12.7) + * y.integerValue() // '-13' + * x.integerValue(BigNumber.ROUND_DOWN) // '-12' + * ``` + * + * @param {BigNumber.RoundingMode} [rm] The roundng mode, an integer, 0 to 8. + */ + integerValue(rm?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns + * `false`. + * + * As with JavaScript, `NaN` does not equal `NaN`. + * + * ```ts + * 0 === 1e-324 // true + * x = new BigNumber(0) + * x.isEqualTo('1e-324') // false + * BigNumber(-0).isEqualTo(x) // true ( -0 === 0 ) + * BigNumber(255).isEqualTo('ff', 16) // true + * + * y = new BigNumber(NaN) + * y.isEqualTo(NaN) // false + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns + * `false`. + * + * As with JavaScript, `NaN` does not equal `NaN`. + * + * ```ts + * 0 === 1e-324 // true + * x = new BigNumber(0) + * x.eq('1e-324') // false + * BigNumber(-0).eq(x) // true ( -0 === 0 ) + * BigNumber(255).eq('ff', 16) // true + * + * y = new BigNumber(NaN) + * y.eq(NaN) // false + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + eq(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is a finite number, otherwise returns `false`. + * + * The only possible non-finite values of a BigNumber are `NaN`, `Infinity` and `-Infinity`. + * + * ```ts + * x = new BigNumber(1) + * x.isFinite() // true + * y = new BigNumber(Infinity) + * y.isFinite() // false + * ``` + */ + isFinite(): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise + * returns `false`. + * + * ```ts + * 0.1 > (0.3 - 0.2) // true + * x = new BigNumber(0.1) + * x.isGreaterThan(BigNumber(0.3).minus(0.2)) // false + * BigNumber(0).isGreaterThan(x) // false + * BigNumber(11, 3).isGreaterThan(11.1, 2) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isGreaterThan(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise + * returns `false`. + * + * ```ts + * 0.1 > (0.3 - 0 // true + * x = new BigNumber(0.1) + * x.gt(BigNumber(0.3).minus(0.2)) // false + * BigNumber(0).gt(x) // false + * BigNumber(11, 3).gt(11.1, 2) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + gt(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * (0.3 - 0.2) >= 0.1 // false + * x = new BigNumber(0.3).minus(0.2) + * x.isGreaterThanOrEqualTo(0.1) // true + * BigNumber(1).isGreaterThanOrEqualTo(x) // true + * BigNumber(10, 18).isGreaterThanOrEqualTo('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isGreaterThanOrEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * (0.3 - 0.2) >= 0.1 // false + * x = new BigNumber(0.3).minus(0.2) + * x.gte(0.1) // true + * BigNumber(1).gte(x) // true + * BigNumber(10, 18).gte('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + gte(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is an integer, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(1) + * x.isInteger() // true + * y = new BigNumber(123.456) + * y.isInteger() // false + * ``` + */ + isInteger(): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns + * `false`. + * + * ```ts + * (0.3 - 0.2) < 0.1 // true + * x = new BigNumber(0.3).minus(0.2) + * x.isLessThan(0.1) // false + * BigNumber(0).isLessThan(x) // true + * BigNumber(11.1, 2).isLessThan(11, 3) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isLessThan(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns + * `false`. + * + * ```ts + * (0.3 - 0.2) < 0.1 // true + * x = new BigNumber(0.3).minus(0.2) + * x.lt(0.1) // false + * BigNumber(0).lt(x) // true + * BigNumber(11.1, 2).lt(11, 3) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + lt(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * 0.1 <= (0.3 - 0.2) // false + * x = new BigNumber(0.1) + * x.isLessThanOrEqualTo(BigNumber(0.3).minus(0.2)) // true + * BigNumber(-1).isLessThanOrEqualTo(x) // true + * BigNumber(10, 18).isLessThanOrEqualTo('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isLessThanOrEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * 0.1 <= (0.3 - 0.2) // false + * x = new BigNumber(0.1) + * x.lte(BigNumber(0.3).minus(0.2)) // true + * BigNumber(-1).lte(x) // true + * BigNumber(10, 18).lte('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + lte(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is `NaN`, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(NaN) + * x.isNaN() // true + * y = new BigNumber('Infinity') + * y.isNaN() // false + * ``` + */ + isNaN(): boolean; + + /** + * Returns `true` if the value of this BigNumber is negative, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isNegative() // true + * y = new BigNumber(2) + * y.isNegative() // false + * ``` + */ + isNegative(): boolean; + + /** + * Returns `true` if the value of this BigNumber is positive, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isPositive() // false + * y = new BigNumber(2) + * y.isPositive() // true + * ``` + */ + isPositive(): boolean; + + /** + * Returns `true` if the value of this BigNumber is zero or minus zero, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isZero() // true + * ``` + */ + isZero(): boolean; + + /** + * Returns a BigNumber whose value is the value of this BigNumber minus `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.3 - 0.1 // 0.19999999999999998 + * x = new BigNumber(0.3) + * x.minus(0.1) // '0.2' + * x.minus(0.6, 20) // '0' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + minus(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer + * remainder of dividing this BigNumber by `n`. + * + * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE` + * setting of this BigNumber constructor. If it is 1 (default value), the result will have the + * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the + * limits of double precision) and BigDecimal's `remainder` method. + * + * The return value is always exact and unrounded. + * + * See `MODULO_MODE` for a description of the other modulo modes. + * + * ```ts + * 1 % 0.9 // 0.09999999999999998 + * x = new BigNumber(1) + * x.modulo(0.9) // '0.1' + * y = new BigNumber(33) + * y.modulo('a', 33) // '3' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + modulo(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer + * remainder of dividing this BigNumber by `n`. + * + * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE` + * setting of this BigNumber constructor. If it is 1 (default value), the result will have the + * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the + * limits of double precision) and BigDecimal's `remainder` method. + * + * The return value is always exact and unrounded. + * + * See `MODULO_MODE` for a description of the other modulo modes. + * + * ```ts + * 1 % 0.9 // 0.09999999999999998 + * x = new BigNumber(1) + * x.mod(0.9) // '0.1' + * y = new BigNumber(33) + * y.mod('a', 33) // '3' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + mod(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.6 * 3 // 1.7999999999999998 + * x = new BigNumber(0.6) + * y = x.multipliedBy(3) // '1.8' + * BigNumber('7e+500').multipliedBy(y) // '1.26e+501' + * x.multipliedBy('-a', 16) // '-6' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + multipliedBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.6 * 3 // 1.7999999999999998 + * x = new BigNumber(0.6) + * y = x.times(3) // '1.8' + * BigNumber('7e+500').times(y) // '1.26e+501' + * x.times('-a', 16) // '-6' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + times(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber negated, i.e. multiplied by -1. + * + * ```ts + * x = new BigNumber(1.8) + * x.negated() // '-1.8' + * y = new BigNumber(-1.3) + * y.negated() // '1.3' + * ``` + */ + negated(): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber plus `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.1 + 0.2 // 0.30000000000000004 + * x = new BigNumber(0.1) + * y = x.plus(0.2) // '0.3' + * BigNumber(0.7).plus(x).plus(y) // '1' + * x.plus('0.1', 8) // '0.225' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + plus(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns the number of significant digits of the value of this BigNumber, or `null` if the value + * of this BigNumber is 卤`Infinity` or `NaN`. + * + * If `includeZeros` is true then any trailing zeros of the integer part of the value of this + * BigNumber are counted as significant digits, otherwise they are not. + * + * Throws if `includeZeros` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.precision() // 9 + * y = new BigNumber(987000) + * y.precision(false) // 3 + * y.precision(true) // 6 + * ``` + * + * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count. + */ + precision(includeZeros?: boolean): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of + * `significantDigits` significant digits using rounding mode `roundingMode`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.precision(6) // '9876.54' + * x.precision(6, BigNumber.ROUND_UP) // '9876.55' + * x.precision(2) // '9900' + * x.precision(2, 1) // '9800' + * x // '9876.54321' + * ``` + * + * @param significantDigits Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + precision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns the number of significant digits of the value of this BigNumber, + * or `null` if the value of this BigNumber is 卤`Infinity` or `NaN`. + * + * If `includeZeros` is true then any trailing zeros of the integer part of + * the value of this BigNumber are counted as significant digits, otherwise + * they are not. + * + * Throws if `includeZeros` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.sd() // 9 + * y = new BigNumber(987000) + * y.sd(false) // 3 + * y.sd(true) // 6 + * ``` + * + * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count. + */ + sd(includeZeros?: boolean): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of + * `significantDigits` significant digits using rounding mode `roundingMode`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.sd(6) // '9876.54' + * x.sd(6, BigNumber.ROUND_UP) // '9876.55' + * x.sd(2) // '9900' + * x.sd(2, 1) // '9800' + * x // '9876.54321' + * ``` + * + * @param significantDigits Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + sd(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber shifted by `n` places. + * + * The shift is of the decimal point, i.e. of powers of ten, and is to the left if `n` is negative + * or to the right if `n` is positive. + * + * The return value is always exact and unrounded. + * + * Throws if `n` is invalid. + * + * ```ts + * x = new BigNumber(1.23) + * x.shiftedBy(3) // '1230' + * x.shiftedBy(-3) // '0.00123' + * ``` + * + * @param n The shift value, integer, -9007199254740991 to 9007199254740991. + */ + shiftedBy(n: number): BigNumber; + + /** + * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * The return value will be correctly rounded, i.e. rounded as if the result was first calculated + * to an infinite number of correct digits before rounding. + * + * ```ts + * x = new BigNumber(16) + * x.squareRoot() // '4' + * y = new BigNumber(3) + * y.squareRoot() // '1.73205080756887729353' + * ``` + */ + squareRoot(): BigNumber; + + /** + * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * The return value will be correctly rounded, i.e. rounded as if the result was first calculated + * to an infinite number of correct digits before rounding. + * + * ```ts + * x = new BigNumber(16) + * x.sqrt() // '4' + * y = new BigNumber(3) + * y.sqrt() // '1.73205080756887729353' + * ``` + */ + sqrt(): BigNumber; + + /** + * Returns a string representing the value of this BigNumber in exponential notation rounded using + * rounding mode `roundingMode` to `decimalPlaces` decimal places, i.e with one digit before the + * decimal point and `decimalPlaces` digits after it. + * + * If the value of this BigNumber in exponential notation has fewer than `decimalPlaces` fraction + * digits, the return value will be appended with zeros accordingly. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the number of digits after the + * decimal point defaults to the minimum number of digits necessary to represent the value + * exactly. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = 45.6 + * y = new BigNumber(x) + * x.toExponential() // '4.56e+1' + * y.toExponential() // '4.56e+1' + * x.toExponential(0) // '5e+1' + * y.toExponential(0) // '5e+1' + * x.toExponential(1) // '4.6e+1' + * y.toExponential(1) // '4.6e+1' + * y.toExponential(1, 1) // '4.5e+1' (ROUND_DOWN) + * x.toExponential(3) // '4.560e+1' + * y.toExponential(3) // '4.560e+1' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + toExponential(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toExponential(): string; + + /** + * Returns a string representing the value of this BigNumber in normal (fixed-point) notation + * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`. + * + * If the value of this BigNumber in normal notation has fewer than `decimalPlaces` fraction + * digits, the return value will be appended with zeros accordingly. + * + * Unlike `Number.prototype.toFixed`, which returns exponential notation if a number is greater or + * equal to 10**21, this method will always return normal notation. + * + * If `decimalPlaces` is omitted or is `null` or `undefined`, the return value will be unrounded + * and in normal notation. This is also unlike `Number.prototype.toFixed`, which returns the value + * to zero decimal places. It is useful when normal notation is required and the current + * `EXPONENTIAL_AT` setting causes `toString` to return exponential notation. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = 3.456 + * y = new BigNumber(x) + * x.toFixed() // '3' + * y.toFixed() // '3.456' + * y.toFixed(0) // '3' + * x.toFixed(2) // '3.46' + * y.toFixed(2) // '3.46' + * y.toFixed(2, 1) // '3.45' (ROUND_DOWN) + * x.toFixed(5) // '3.45600' + * y.toFixed(5) // '3.45600' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + toFixed(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toFixed(): string; + + /** + * Returns a string representing the value of this BigNumber in normal (fixed-point) notation + * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`, and formatted + * according to the properties of the `format` or `FORMAT` object. + * + * The formatting object may contain some or all of the properties shown in the examples below. + * + * If `decimalPlaces` is omitted or is `null` or `undefined`, then the return value is not + * rounded to a fixed number of decimal places. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * If `format` is omitted or is `null` or `undefined`, `FORMAT` is used. + * + * Throws if `decimalPlaces`, `roundingMode`, or `format` is invalid. + * + * ```ts + * fmt = { + * decimalSeparator: '.', + * groupSeparator: ',', + * groupSize: 3, + * secondaryGroupSize: 0, + * fractionGroupSeparator: ' ', + * fractionGroupSize: 0 + * } + * + * x = new BigNumber('123456789.123456789') + * + * // Set the global formatting options + * BigNumber.config({ FORMAT: fmt }) + * + * x.toFormat() // '123,456,789.123456789' + * x.toFormat(3) // '123,456,789.123' + * + * // If a reference to the object assigned to FORMAT has been retained, + * // the format properties can be changed directly + * fmt.groupSeparator = ' ' + * fmt.fractionGroupSize = 5 + * x.toFormat() // '123 456 789.12345 6789' + * + * // Alternatively, pass the formatting options as an argument + * fmt = { + * decimalSeparator: ',', + * groupSeparator: '.', + * groupSize: 3, + * secondaryGroupSize: 2 + * } + * + * x.toFormat() // '123 456 789.12345 6789' + * x.toFormat(fmt) // '12.34.56.789,123456789' + * x.toFormat(2, fmt) // '12.34.56.789,12' + * x.toFormat(3, BigNumber.ROUND_UP, fmt) // '12.34.56.789,124' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + * @param [format] Formatting options object. See `BigNumber.Format`. + */ + toFormat(decimalPlaces: number, roundingMode: BigNumber.RoundingMode, format?: BigNumber.Format): string; + toFormat(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toFormat(decimalPlaces?: number): string; + toFormat(decimalPlaces: number, format: BigNumber.Format): string; + toFormat(format: BigNumber.Format): string; + + /** + * Returns an array of two BigNumbers 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 `max_denominator`. + * If a maximum denominator, `max_denominator`, is not specified, or is `null` or `undefined`, the + * denominator will be the lowest value necessary to represent the number exactly. + * + * Throws if `max_denominator` is invalid. + * + * ```ts + * x = new BigNumber(1.75) + * x.toFraction() // '7, 4' + * + * pi = new BigNumber('3.14159265358') + * pi.toFraction() // '157079632679,50000000000' + * pi.toFraction(100000) // '312689, 99532' + * pi.toFraction(10000) // '355, 113' + * pi.toFraction(100) // '311, 99' + * pi.toFraction(10) // '22, 7' + * pi.toFraction(1) // '3, 1' + * ``` + * + * @param [max_denominator] The maximum denominator, integer > 0, or Infinity. + */ + toFraction(max_denominator?: BigNumber.Value): [BigNumber, BigNumber]; + + /** As `valueOf`. */ + toJSON(): string; + + /** + * Returns the value of this BigNumber as a JavaScript primitive number. + * + * Using the unary plus operator gives the same result. + * + * ```ts + * x = new BigNumber(456.789) + * x.toNumber() // 456.789 + * +x // 456.789 + * + * y = new BigNumber('45987349857634085409857349856430985') + * y.toNumber() // 4.598734985763409e+34 + * + * z = new BigNumber(-0) + * 1 / z.toNumber() // -Infinity + * 1 / +z // -Infinity + * ``` + */ + toNumber(): number; + + /** + * Returns a string representing the value of this BigNumber rounded to `significantDigits` + * significant digits using rounding mode `roundingMode`. + * + * If `significantDigits` is less than the number of digits necessary to represent the integer + * part of the value in normal (fixed-point) notation, then exponential notation is used. + * + * If `significantDigits` is omitted, or is `null` or `undefined`, then the return value is the + * same as `n.toString()`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = 45.6 + * y = new BigNumber(x) + * x.toPrecision() // '45.6' + * y.toPrecision() // '45.6' + * x.toPrecision(1) // '5e+1' + * y.toPrecision(1) // '5e+1' + * y.toPrecision(2, 0) // '4.6e+1' (ROUND_UP) + * y.toPrecision(2, 1) // '4.5e+1' (ROUND_DOWN) + * x.toPrecision(5) // '45.600' + * y.toPrecision(5) // '45.600' + * ``` + * + * @param [significantDigits] Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer 0 to 8. + */ + toPrecision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): string; + toPrecision(): string; + + /** + * Returns a string representing the value of this BigNumber in base `base`, or base 10 if `base` + * is omitted or is `null` or `undefined`. + * + * For bases above 10, and using the default base conversion alphabet (see `ALPHABET`), values + * from 10 to 35 are represented by a-z (the same as `Number.prototype.toString`). + * + * If a base is specified the value is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings, otherwise it is not. + * + * If a base is not specified, and this BigNumber has a positive exponent that is equal to or + * greater than the positive component of the current `EXPONENTIAL_AT` setting, or a negative + * exponent equal to or less than the negative component of the setting, then exponential notation + * is returned. + * + * If `base` is `null` or `undefined` it is ignored. + * + * Throws if `base` is invalid. + * + * ```ts + * x = new BigNumber(750000) + * x.toString() // '750000' + * BigNumber.config({ EXPONENTIAL_AT: 5 }) + * x.toString() // '7.5e+5' + * + * y = new BigNumber(362.875) + * y.toString(2) // '101101010.111' + * y.toString(9) // '442.77777777777777777778' + * y.toString(32) // 'ba.s' + * + * BigNumber.config({ DECIMAL_PLACES: 4 }); + * z = new BigNumber('1.23456789') + * z.toString() // '1.23456789' + * z.toString(10) // '1.2346' + * ``` + * + * @param [base] The base, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`). + */ + toString(base?: number): string; + + /** + * As `toString`, but does not accept a base argument and includes the minus sign for negative + * zero. + * + * ``ts + * x = new BigNumber('-0') + * x.toString() // '0' + * x.valueOf() // '-0' + * y = new BigNumber('1.777e+457') + * y.valueOf() // '1.777e+457' + * ``` + */ + valueOf(): string; + + /** Helps ES6 import. */ + private static readonly default?: BigNumber.Constructor; + + /** Helps ES6 import. */ + private static readonly BigNumber?: BigNumber.Constructor; + + /** Rounds away from zero. */ + static readonly ROUND_UP: 0; + + /** Rounds towards zero. */ + static readonly ROUND_DOWN: 1; + + /** Rounds towards Infinity. */ + static readonly ROUND_CEIL: 2; + + /** Rounds towards -Infinity. */ + static readonly ROUND_FLOOR: 3; + + /** Rounds towards nearest neighbour. If equidistant, rounds away from zero . */ + static readonly ROUND_HALF_UP: 4; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards zero. */ + static readonly ROUND_HALF_DOWN: 5; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards even neighbour. */ + static readonly ROUND_HALF_EVEN: 6; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards Infinity. */ + static readonly ROUND_HALF_CEIL: 7; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards -Infinity. */ + static readonly ROUND_HALF_FLOOR: 8; + + /** See `MODULO_MODE`. */ + static readonly EUCLID: 9; + + /** + * To aid in debugging, if a `BigNumber.DEBUG` property is `true` then an error will be thrown + * if the BigNumber constructor receives an invalid `BigNumber.Value`, or if `BigNumber.isBigNumber` + * receives a BigNumber instance that is malformed. + * + * ```ts + * // No error, and BigNumber NaN is returned. + * new BigNumber('blurgh') // 'NaN' + * new BigNumber(9, 2) // 'NaN' + * BigNumber.DEBUG = true + * new BigNumber('blurgh') // '[BigNumber Error] Not a number' + * new BigNumber(9, 2) // '[BigNumber Error] Not a base 2 number' + * ``` + * + * An error will also be thrown if a `BigNumber.Value` is of type number with more than 15 + * significant digits, as calling `toString` or `valueOf` on such numbers may not result + * in the intended value. + * + * ```ts + * console.log(823456789123456.3) // 823456789123456.2 + * // No error, and the returned BigNumber does not have the same value as the number literal. + * new BigNumber(823456789123456.3) // '823456789123456.2' + * BigNumber.DEBUG = true + * new BigNumber(823456789123456.3) + * // '[BigNumber Error] Number primitive has more than 15 significant digits' + * ``` + * + * Check that a BigNumber instance is well-formed: + * + * ```ts + * x = new BigNumber(10) + * + * BigNumber.DEBUG = false + * // Change x.c to an illegitimate value. + * x.c = NaN + * // No error, as BigNumber.DEBUG is false. + * BigNumber.isBigNumber(x) // true + * + * BigNumber.DEBUG = true + * BigNumber.isBigNumber(x) // '[BigNumber Error] Invalid BigNumber' + * ``` + */ + static DEBUG?: boolean; + + /** + * Returns a new independent BigNumber constructor with configuration as described by `object`, or + * with the default configuration if object is `null` or `undefined`. + * + * Throws if `object` is not an object. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) + * + * x = new BigNumber(1) + * y = new BN(1) + * + * x.div(3) // 0.33333 + * y.div(3) // 0.333333333 + * + * // BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) is equivalent to: + * BN = BigNumber.clone() + * BN.config({ DECIMAL_PLACES: 9 }) + * ``` + * + * @param [object] The configuration object. + */ + static clone(object?: BigNumber.Config): BigNumber.Constructor; + + /** + * Configures the settings that apply to this BigNumber constructor. + * + * The configuration object, `object`, contains any number of the properties shown in the example + * below. + * + * Returns an object with the above properties and their current values. + * + * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the + * properties. + * + * ```ts + * BigNumber.config({ + * DECIMAL_PLACES: 40, + * ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL, + * EXPONENTIAL_AT: [-10, 20], + * RANGE: [-500, 500], + * CRYPTO: true, + * MODULO_MODE: BigNumber.ROUND_FLOOR, + * POW_PRECISION: 80, + * FORMAT: { + * groupSize: 3, + * groupSeparator: ' ', + * decimalSeparator: ',' + * }, + * ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + * }); + * + * BigNumber.config().DECIMAL_PLACES // 40 + * ``` + * + * @param object The configuration object. + */ + static config(object: BigNumber.Config): BigNumber.Config; + + /** + * Returns `true` if `value` is a BigNumber instance, otherwise returns `false`. + * + * If `BigNumber.DEBUG` is `true`, throws if a BigNumber instance is not well-formed. + * + * ```ts + * x = 42 + * y = new BigNumber(x) + * + * BigNumber.isBigNumber(x) // false + * y instanceof BigNumber // true + * BigNumber.isBigNumber(y) // true + * + * BN = BigNumber.clone(); + * z = new BN(x) + * z instanceof BigNumber // false + * BigNumber.isBigNumber(z) // true + * ``` + * + * @param value The value to test. + */ + static isBigNumber(value: any): value is BigNumber; + + /** + * Returns a BigNumber whose value is the maximum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.maximum(4e9, x, '123456789.9') // '4000000000' + * + * arr = [12, '13', new BigNumber(14)] + * BigNumber.maximum.apply(null, arr) // '14' + * ``` + * + * @param n A numeric value. + */ + static maximum(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the maximum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.max(4e9, x, '123456789.9') // '4000000000' + * + * arr = [12, '13', new BigNumber(14)] + * BigNumber.max.apply(null, arr) // '14' + * ``` + * + * @param n A numeric value. + */ + static max(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the minimum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.minimum(4e9, x, '123456789.9') // '123456789.9' + * + * arr = [2, new BigNumber(-14), '-15.9999', -12] + * BigNumber.minimum.apply(null, arr) // '-15.9999' + * ``` + * + * @param n A numeric value. + */ + static minimum(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the minimum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.min(4e9, x, '123456789.9') // '123456789.9' + * + * arr = [2, new BigNumber(-14), '-15.9999', -12] + * BigNumber.min.apply(null, arr) // '-15.9999' + * ``` + * + * @param n A numeric value. + */ + static min(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a new BigNumber with a pseudo-random value equal to or greater than 0 and less than 1. + * + * The return value will have `decimalPlaces` decimal places, or less if trailing zeros are + * produced. If `decimalPlaces` is omitted, the current `DECIMAL_PLACES` setting will be used. + * + * Depending on the value of this BigNumber constructor's `CRYPTO` setting and the support for the + * `crypto` object in the host environment, the random digits of the return value are generated by + * either `Math.random` (fastest), `crypto.getRandomValues` (Web Cryptography API in recent + * browsers) or `crypto.randomBytes` (Node.js). + * + * To be able to set `CRYPTO` to true when using Node.js, the `crypto` object must be available + * globally: + * + * ```ts + * global.crypto = require('crypto') + * ``` + * + * If `CRYPTO` is true, i.e. one of the `crypto` methods is to be used, the value of a returned + * BigNumber should be cryptographically secure and statistically indistinguishable from a random + * value. + * + * Throws if `decimalPlaces` is invalid. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 10 }) + * BigNumber.random() // '0.4117936847' + * BigNumber.random(20) // '0.78193327636914089009' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + */ + static random(decimalPlaces?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the sum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.sum(4e9, x, '123456789.9') // '7381326134.9378653' + * + * arr = [2, new BigNumber(14), '15.9999', 12] + * BigNumber.sum.apply(null, arr) // '43.9999' + * ``` + * + * @param n A numeric value. + */ + static sum(...n: BigNumber.Value[]): BigNumber; + + /** + * Configures the settings that apply to this BigNumber constructor. + * + * The configuration object, `object`, contains any number of the properties shown in the example + * below. + * + * Returns an object with the above properties and their current values. + * + * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the + * properties. + * + * ```ts + * BigNumber.set({ + * DECIMAL_PLACES: 40, + * ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL, + * EXPONENTIAL_AT: [-10, 20], + * RANGE: [-500, 500], + * CRYPTO: true, + * MODULO_MODE: BigNumber.ROUND_FLOOR, + * POW_PRECISION: 80, + * FORMAT: { + * groupSize: 3, + * groupSeparator: ' ', + * decimalSeparator: ',' + * }, + * ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + * }); + * + * BigNumber.set().DECIMAL_PLACES // 40 + * ``` + * + * @param object The configuration object. + */ + static set(object: BigNumber.Config): BigNumber.Config; +} diff --git a/data_node_red/node_modules/bignumber.js/bignumber.js b/data_node_red/node_modules/bignumber.js/bignumber.js new file mode 100644 index 0000000..f2ea883 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/bignumber.js @@ -0,0 +1,2902 @@ +;(function (globalObject) { + 'use strict'; + +/* + * bignumber.js v9.0.0 + * A JavaScript library for arbitrary-precision arithmetic. + * https://github.com/MikeMcl/bignumber.js + * Copyright (c) 2019 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 | sum + * isPositive | + * isZero | + * minus | + * modulo mod | + * multipliedBy times | + * negated | + * plus | + * precision sd | + * shiftedBy | + * squareRoot sqrt | + * toExponential | + * toFixed | + * toFormat | + * toFraction | + * toJSON | + * toNumber | + * toPrecision | + * toString | + * valueOf | + * + */ + + + var BigNumber, + isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, + mathceil = Math.ceil, + mathfloor = Math.floor, + + 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, + + // 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 + + + /* + * 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 = { + prefix: '', + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ',', + decimalSeparator: '.', + fractionGroupSize: 0, + fractionGroupSeparator: '\xA0', // non-breaking space + suffix: '' + }, + + // The alphabet used for base conversion. It must be at least 2 characters long, with no '+', + // '-', '.', whitespace, or repeated character. + // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; + + + //------------------------------------------------------------------------------------------ + + + // CONSTRUCTOR + + + /* + * The BigNumber constructor and exported function. + * Create and return a new instance of a BigNumber object. + * + * v {number|string|BigNumber} A numeric value. + * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive. + */ + function BigNumber(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, + x = this; + + // Enable constructor call without `new`. + if (!(x instanceof BigNumber)) return new BigNumber(v, b); + + if (b == null) { + + if (v && v._isBigNumber === true) { + x.s = v.s; + + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + + return; + } + + if ((isNum = typeof v == 'number') && v * 0 == 0) { + + // Use `1 / n` to handle minus zero also. + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + + // Fast path for integers, where n < 2147483648 (2**31). + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++); + + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + + return; + } + + str = String(v); + } else { + + if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); + + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + + // Exponential form? + if ((i = str.search(/e/i)) > 0) { + + // Determine exponent. + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + + // Integer. + e = str.length; + } + + } else { + + // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + intCheck(b, 2, ALPHABET.length, '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(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + + str = String(v); + + if (isNum = typeof v == 'number') { + + // Avoid potential interpretation of Infinity and NaN as base 44+ values. + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { + throw Error + (tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + + alphabet = ALPHABET.slice(0, b); + e = i = 0; + + // 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 == '.') { + + // If '.' is not the first character and it has not be found before. + if (i > e) { + e = len; + continue; + } + } 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; + } + } + + return parseNumeric(x, String(v), isNum, b); + } + } + + // Prevent later check for length on converted number. + isNum = false; + str = convertBase(str, b, 10, x.s); + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + else e = str.length; + } + + // Determine leading zeros. + for (i = 0; str.charCodeAt(i) === 48; i++); + + // Determine trailing zeros. + for (len = str.length; str.charCodeAt(--len) === 48;); + + if (str = str.slice(i, ++len)) { + len -= i; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (isNum && BigNumber.DEBUG && + len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error + (tooManyDigits + (x.s * v)); + } + + // Overflow? + if ((e = e - i - 1) > MAX_EXP) { + + // Infinity. + x.c = x.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + + // Transform base + + // 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; // i < 1 + + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + + for (len -= LOG_BASE; i < len;) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + + for (; i--; str += '0'); + x.c.push(+str); + } + } else { + + // Zero. + x.c = [x.e = 0]; + } + } + + + // 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: + * prefix {string} + * groupSize {number} + * secondaryGroupSize {number} + * groupSeparator {string} + * decimalSeparator {string} + * fractionGroupSize {number} + * fractionGroupSeparator {string} + * suffix {string} + * + * (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; + } + + // 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; + } + + // 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 (v && v.pop) { + 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); + } + } + + // 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 (v && v.pop) { + 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); + } + } + } + + // 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; + } + } 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; + } + + // 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; + } + + // 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); + } + + // ALPHABET {string} + // '[BigNumber Error] ALPHABET invalid: {v}' + if (obj.hasOwnProperty(p = 'ALPHABET')) { + v = obj[p]; + + // Disallow if only one character, + // or if it contains '+', '-', '.', whitespace, or a repeated character. + if (typeof v == 'string' && !/^.$|[+-.\s]|(.).*\1/.test(v)) { + ALPHABET = v; + } else { + throw Error + (bignumberError + p + ' invalid: ' + v); + } + } + + } else { + + // '[BigNumber Error] Object expected: {v}' + throw Error + (bignumberError + 'Object expected: ' + obj); + } + } + + 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 + }; + }; + + + /* + * Return true if v is a BigNumber instance, otherwise return false. + * + * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed. + * + * v {any} + * + * '[BigNumber Error] Invalid BigNumber: {v}' + */ + BigNumber.isBigNumber = function (v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber.DEBUG) return true; + + var i, n, + c = v.c, + e = v.e, + s = v.s; + + out: if ({}.toString.call(c) == '[object Array]') { + + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + + // If the first element is zero, the BigNumber value must be zero. + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + + // Calculate number of digits that c[0] should have, based on the exponent. + i = (e + 1) % LOG_BASE; + if (i < 1) i += LOG_BASE; + + // Calculate number of digits of c[0]. + //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) { + if (String(c[0]).length == i) { + + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; + } + + // Last element cannot be zero, unless it is the only element. + if (n !== 0) return true; + } + } + + // Infinity/NaN + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + + throw Error + (bignumberError + 'Invalid BigNumber: ' + v); + }; + + + /* + * 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 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 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 { + + // 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; + throw Error + (bignumberError + 'crypto unavailable'); + } + } + + // 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; + }; + })(); + + + /* + * Return a BigNumber whose value is the sum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.sum = function () { + var i = 1, + args = arguments, + sum = new BigNumber(args[0]); + for (; i < args.length;) sum = sum.plus(args[i++]); + return sum; + }; + + + // PRIVATE FUNCTIONS + + + // 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; + + for (; i < len;) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); + + arr[0] += alphabet.indexOf(str.charAt(i++)); + + for (j = 0; 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(); + } + + // 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. + + 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; + + // Remove trailing zeros. + for (; xc[--k] == 0; xc.pop()); + + // Zero? + if (!xc[0]) return alphabet.charAt(0); + + // 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. + + // 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]; + + // 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)); + + // 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 { + + // Truncate xc to the required number of decimal places. + xc.length = d; + + // Round up? + if (r) { + + // 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); + } + } + } + + // 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++])); + + // 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; + } + + if (carry) x = [carry].concat(x); + + return x; + } + + 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; + + // Subtract b from a. + for (; aL--;) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + + // Remove leading zeros. + for (; !a[0] && a.length > 1; a.splice(0, 1)); + } + + // 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: + // 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; + } + } 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: 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 || ne >= TO_EXP_POS) + ? 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 n, + i = 1, + m = new BigNumber(args[0]); + + for (; i < args.length; i++) { + 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; + } 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; + + // 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); + } + + // '[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); + } + + // NaN + x.s = null; + } + + x.c = x.e = 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 (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]; + } + } + + return x; + } + + + function valueOf(n) { + var str, + e = n.e; + + if (e === null) return n.toString(); + + str = coeffToString(n.c); + + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(str, e) + : toFixedPoint(str, e, '0'); + + return n.s < 0 ? '-' + str : str; + } + + + // 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 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, i, 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: ' + valueOf(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(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(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); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + + 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 (i) { + i = mathfloor(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 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)); + + // 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 = 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; + + // 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; + + // 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; + + // Initialise the result array with zeros. + for (i = xcL + ycL, zc = []; i--; zc.push(0)); + + base = BASE; + sqrtBase = SQRT_BASE; + + for (i = ycL; --i >= 0;) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + + 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; + } + + 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 negated, + * i.e. multiplied by -1. + */ + P.negated = function () { + var x = new BigNumber(this); + x.s = -x.s || null; + return x; + }; + + + /* + * 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); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Return 卤Infinity if either 卤Infinity. + if (!xc || !yc) return new BigNumber(a / 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); + } + + 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(); + } + + a = xc.length; + b = yc.length; + + // Point xc to the longer array, and b to the shorter length. + if (a - b < 0) t = yc, yc = xc, xc = t, b = a; + + // 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; + } + + 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); + }; + + + /* + * 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); + } + + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + + if (v = c[v]) { + + // Subtract the number of trailing zeros of the last element. + for (; v % 10 == 0; v /= 10, n--); + + // Add the number of digits of the first element. + for (v = c[0]; v >= 10; v /= 10, n++); + } + + if (sd && x.e + 1 > n) n = x.e + 1; + + return n; + }; + + + /* + * 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); + }; + + + /* + * 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(+valueOf(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 + ''); + } + + // 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; + } + } + } + } + + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + + + /* + * 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); + }; + + + /* + * 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 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 or FORMAT object (see BigNumber.set). + * + * The formatting object may contain some or all of the properties shown below. + * + * FORMAT = { + * prefix: '', + * groupSize: 3, + * secondaryGroupSize: 0, + * groupSeparator: ',', + * decimalSeparator: '.', + * fractionGroupSize: 0, + * fractionGroupSeparator: '\xA0', // non-breaking space + * suffix: '' + * }; + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * [format] {object} Formatting options. See FORMAT pbject above. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + * '[BigNumber Error] Argument not an object: {format}' + */ + P.toFormat = function (dp, rm, format) { + var str, + x = this; + + if (format == null) { + if (dp != null && rm && typeof rm == 'object') { + format = rm; + rm = null; + } else if (dp && typeof dp == 'object') { + format = dp; + dp = rm = null; + } else { + format = FORMAT; + } + } else if (typeof format != 'object') { + throw Error + (bignumberError + 'Argument not an object: ' + format); + } + + str = x.toFixed(dp, rm); + + if (x.c) { + var i, + arr = str.split('.'), + g1 = +format.groupSize, + g2 = +format.secondaryGroupSize, + groupSeparator = format.groupSeparator || '', + intPart = arr[0], + fractionPart = arr[1], + isNeg = x.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; + } + + return (format.prefix || '') + str + (format.suffix || ''); + }; + + + /* + * Return an array of two BigNumbers 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 d, d0, d1, d2, e, exp, n, n0, n1, q, r, 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: ') + valueOf(n)); + } + } + + if (!xc) return new BigNumber(x); + + 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 = e * 2; + + // Determine which fraction is closer to x, n0/d0 or n1/d1 + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; + + MAX_EXP = exp; + + return r; + }; + + + /* + * Return the value of this BigNumber converted to a number primitive. + */ + P.toNumber = function () { + return +valueOf(this); + }; + + + /* + * 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 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 { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(coeffToString(n.c), e) + : toFixedPoint(coeffToString(n.c), e, '0'); + } else if (b === 10) { + n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, '0'); + } else { + intCheck(b, 2, ALPHABET.length, 'Base'); + str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true); + } + + if (s < 0 && n.c[0]) str = '-' + str; + } + + return str; + }; + + + /* + * Return as toString, but do not accept a base argument, and include the minus sign for + * negative zero. + */ + P.valueOf = P.toJSON = function () { + return valueOf(this); + }; + + + P._isBigNumber = true; + + if (configObject != null) BigNumber.set(configObject); + + return BigNumber; + } + + + // PRIVATE HELPER FUNCTIONS + + // These functions don't need access to variables, + // e.g. DECIMAL_PLACES, in the scope of the `clone` function above. + + + function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 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] + ''; + + for (; i < j;) { + s = a[i++] + ''; + z = LOG_BASE - s.length; + for (; z--; s = '0' + s); + r += s; + } + + // Determine trailing zeros. + for (j = r.length; r.charCodeAt(--j) === 48;); + + return r.slice(0, j + 1 || 1); + } + + + // 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; + + // Either NaN? + if (!i || !j) return null; + + a = xc && !xc[0]; + b = yc && !yc[0]; + + // Either zero? + if (a || b) return a ? b ? 0 : -j : i; + + // Signs differ? + if (i != j) return i; + + a = i < 0; + b = k == l; + + // Either Infinity? + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + + // Compare exponents. + if (!b) return k > l ^ a ? 1 : -1; + + j = (k = xc.length) < (l = yc.length) ? 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; + + // Compare lengths. + return k == l ? 0 : k > l ^ a ? 1 : -1; + } + + + /* + * 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 !== mathfloor(n)) { + throw Error + (bignumberError + (name || 'Argument') + (typeof n == 'number' + ? n < min || n > max ? ' out of range: ' : ' not an integer: ' + : ' not a primitive number: ') + String(n)); + } + } + + + // 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 toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + + (e < 0 ? 'e' : 'e+') + e; + } + + + function toFixedPoint(str, e, z) { + var len, zs; + + // Negative exponent? + if (e < 0) { + + // 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); + } + } + + return str; + } + + + // EXPORT + + + BigNumber = clone(); + BigNumber['default'] = BigNumber.BigNumber = BigNumber; + + // AMD. + if (typeof define == 'function' && define.amd) { + define(function () { return BigNumber; }); + + // Node.js and other environments that support module.exports. + } else if (typeof module != 'undefined' && module.exports) { + module.exports = BigNumber; + + // Browser. + } else { + if (!globalObject) { + globalObject = typeof self != 'undefined' && self ? self : window; + } + + globalObject.BigNumber = BigNumber; + } +})(this); diff --git a/data_node_red/node_modules/bignumber.js/bignumber.min.js b/data_node_red/node_modules/bignumber.js/bignumber.min.js new file mode 100644 index 0000000..2610072 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/bignumber.min.js @@ -0,0 +1 @@ +/* bignumber.js v9.0.0 https://github.com/MikeMcl/bignumber.js/LICENCE */!function(e){"use strict";var r,x=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,L=Math.ceil,U=Math.floor,I="[BigNumber Error] ",T=I+"Number primitive has more than 15 significant digits: ",C=1e14,M=14,G=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],F=1e7,q=1e9;function j(e){var r=0|e;return 0o[s]^n?1:-1;return u==l?0:l(t=e.length)){for(i=n,r-=t;--r;i+=n);e+=i}else ry?c.c=c.e=null:e.ey)c.c=c.e=null;else if(oy?e.c=e.e=null:e.c=n=a.length){if(!t)break e;for(;a.length<=l;a.push(0));u=c=0,s=(o%=M)-M+(i=1)}else{for(u=f=a[l],i=1;10<=f;f/=10,i++);c=(s=(o%=M)-M+i)<0?0:u/h[i-s-1]%10|0}if(t=t||r<0||null!=a[l+1]||(s<0?u:u%h[i-s-1]),t=n<4?(c||t)&&(0==n||n==(e.s<0?3:2)):5y?e.c=e.e=null:e.e>>11))?(n=crypto.getRandomValues(new Uint32Array(2)),r[s]=n[0],r[s+1]=n[1]):(f.push(o%1e14),s+=2);s=i/2}else{if(!crypto.randomBytes)throw b=!1,Error(I+"crypto unavailable");for(r=crypto.randomBytes(i*=7);sn-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(e,r,n,t,i){var o,s,f,u,l,c,a,h,g=e.indexOf("."),p=N,w=O;for(0<=g&&(u=E,E=0,e=e.replace(".",""),c=(h=new B(r)).pow(e.length-g),E=u,h.c=m(X($(c.c),c.e,"0"),10,n,d),h.e=h.c.length),f=u=(a=m(e,r,n,i?(o=S,d):(o=d,S))).length;0==a[--u];a.pop());if(!a[0])return o.charAt(0);if(g<0?--f:(c.c=a,c.e=f,c.s=t,a=(c=v(c,h,p,w,n)).c,l=c.r,f=c.e),g=a[s=f+p+1],u=n/2,l=l||s<0||null!=a[s+1],l=w<4?(null!=g||l)&&(0==w||w==(c.s<0?3:2)):un;)a[s]=0,s||(++f,a=[1].concat(a));for(u=a.length;!a[--u];);for(g=0,e="";g<=u;e+=o.charAt(a[g++]));e=X(e,f,o.charAt(0))}return e}}(),v=function(){function S(e,r,n){var t,i,o,s,f=0,u=e.length,l=r%F,c=r/F|0;for(e=e.slice();u--;)f=((i=l*(o=e[u]%F)+(t=c*o+(s=e[u]/F|0)*l)%F*F+f)/n|0)+(t/F|0)+c*s,e[u]=i%n;return f&&(e=[f].concat(e)),e}function R(e,r,n,t){var i,o;if(n!=t)o=tr[i]?1:-1;break}return o}function _(e,r,n,t){for(var i=0;n--;)e[n]-=i,i=e[n](E[f]||0)&&s--,b<0)g.push(1),u=!0;else{for(v=E.length,O=A.length,b+=2,1<(l=U(i/(A[f=0]+1)))&&(A=S(A,l,i),E=S(E,l,i),O=A.length,v=E.length),m=O,w=(p=E.slice(0,O)).length;w=i/2&&N++;do{if(l=0,(o=R(A,p,O,w))<0){if(d=p[0],O!=w&&(d=d*i+(p[1]||0)),1<(l=U(d/N)))for(i<=l&&(l=i-1),a=(c=S(A,l,i)).length,w=p.length;1==R(c,p,a,w);)l--,_(c,Oo&&(l.c.length=o):t&&(l=l.mod(r))}if(i){if(0===(i=U(i/2)))break;u=i%2}else if(D(e=e.times(n),e.e+1,1),14o&&(c.c.length=o):t&&(c=c.mod(r))}return t?l:(f&&(l=w.div(l)),r?l.mod(r):o?D(l,E,O,void 0):l)},t.integerValue=function(e){var r=new B(this);return null==e?e=O:H(e,0,8),D(r,r.e+1,e)},t.isEqualTo=t.eq=function(e,r){return 0===z(this,new B(e,r))},t.isFinite=function(){return!!this.c},t.isGreaterThan=t.gt=function(e,r){return 0this.c.length-2},t.isLessThan=t.lt=function(e,r){return z(this,new B(e,r))<0},t.isLessThanOrEqualTo=t.lte=function(e,r){return-1===(r=z(this,new B(e,r)))||0===r},t.isNaN=function(){return!this.s},t.isNegative=function(){return this.s<0},t.isPositive=function(){return 0t&&(t=this.e+1),t},t.shiftedBy=function(e){return H(e,-G,G),this.times("1e"+e)},t.squareRoot=t.sqrt=function(){var e,r,n,t,i,o=this,s=o.c,f=o.s,u=o.e,l=N+4,c=new B("0.5");if(1!==f||!s||!s[0])return new B(!f||f<0&&(!s||s[0])?NaN:s?o:1/0);if((n=0==(f=Math.sqrt(+P(o)))||f==1/0?(((r=$(s)).length+u)%2==0&&(r+="0"),f=Math.sqrt(+r),u=j((u+1)/2)-(u<0||u%2),new B(r=f==1/0?"1e"+u:(r=f.toExponential()).slice(0,r.indexOf("e")+1)+u)):new B(f+"")).c[0])for((f=(u=n.e)+l)<3&&(f=0);;)if(i=n,n=c.times(i.plus(v(o,i,l,1))),$(i.c).slice(0,f)===(r=$(n.c)).slice(0,f)){if(n.e + * 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 | sum + * isPositive | + * isZero | + * minus | + * modulo mod | + * multipliedBy times | + * negated | + * plus | + * precision sd | + * shiftedBy | + * squareRoot sqrt | + * toExponential | + * toFixed | + * toFormat | + * toFraction | + * toJSON | + * toNumber | + * toPrecision | + * toString | + * valueOf | + * + */ + + +var + isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, + + mathceil = Math.ceil, + mathfloor = Math.floor, + + 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, + + // 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 + + +/* + * 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 = { + prefix: '', + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ',', + decimalSeparator: '.', + fractionGroupSize: 0, + fractionGroupSeparator: '\xA0', // non-breaking space + suffix: '' + }, + + // The alphabet used for base conversion. It must be at least 2 characters long, with no '+', + // '-', '.', whitespace, or repeated character. + // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; + + + //------------------------------------------------------------------------------------------ + + + // CONSTRUCTOR + + + /* + * The BigNumber constructor and exported function. + * Create and return a new instance of a BigNumber object. + * + * v {number|string|BigNumber} A numeric value. + * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive. + */ + function BigNumber(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, + x = this; + + // Enable constructor call without `new`. + if (!(x instanceof BigNumber)) return new BigNumber(v, b); + + if (b == null) { + + if (v && v._isBigNumber === true) { + x.s = v.s; + + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + + return; + } + + if ((isNum = typeof v == 'number') && v * 0 == 0) { + + // Use `1 / n` to handle minus zero also. + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + + // Fast path for integers, where n < 2147483648 (2**31). + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++); + + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + + return; + } + + str = String(v); + } else { + + if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); + + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + + // Exponential form? + if ((i = str.search(/e/i)) > 0) { + + // Determine exponent. + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + + // Integer. + e = str.length; + } + + } else { + + // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + intCheck(b, 2, ALPHABET.length, '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(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + + str = String(v); + + if (isNum = typeof v == 'number') { + + // Avoid potential interpretation of Infinity and NaN as base 44+ values. + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { + throw Error + (tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + + alphabet = ALPHABET.slice(0, b); + e = i = 0; + + // 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 == '.') { + + // If '.' is not the first character and it has not be found before. + if (i > e) { + e = len; + continue; + } + } 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; + } + } + + return parseNumeric(x, String(v), isNum, b); + } + } + + // Prevent later check for length on converted number. + isNum = false; + str = convertBase(str, b, 10, x.s); + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + else e = str.length; + } + + // Determine leading zeros. + for (i = 0; str.charCodeAt(i) === 48; i++); + + // Determine trailing zeros. + for (len = str.length; str.charCodeAt(--len) === 48;); + + if (str = str.slice(i, ++len)) { + len -= i; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (isNum && BigNumber.DEBUG && + len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error + (tooManyDigits + (x.s * v)); + } + + // Overflow? + if ((e = e - i - 1) > MAX_EXP) { + + // Infinity. + x.c = x.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + + // Transform base + + // 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; // i < 1 + + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + + for (len -= LOG_BASE; i < len;) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + + for (; i--; str += '0'); + x.c.push(+str); + } + } else { + + // Zero. + x.c = [x.e = 0]; + } + } + + + // 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: + * prefix {string} + * groupSize {number} + * secondaryGroupSize {number} + * groupSeparator {string} + * decimalSeparator {string} + * fractionGroupSize {number} + * fractionGroupSeparator {string} + * suffix {string} + * + * (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; + } + + // 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; + } + + // 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 (v && v.pop) { + 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); + } + } + + // 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 (v && v.pop) { + 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); + } + } + } + + // 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; + } + } 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; + } + + // 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; + } + + // 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); + } + + // ALPHABET {string} + // '[BigNumber Error] ALPHABET invalid: {v}' + if (obj.hasOwnProperty(p = 'ALPHABET')) { + v = obj[p]; + + // Disallow if only one character, + // or if it contains '+', '-', '.', whitespace, or a repeated character. + if (typeof v == 'string' && !/^.$|[+-.\s]|(.).*\1/.test(v)) { + ALPHABET = v; + } else { + throw Error + (bignumberError + p + ' invalid: ' + v); + } + } + + } else { + + // '[BigNumber Error] Object expected: {v}' + throw Error + (bignumberError + 'Object expected: ' + obj); + } + } + + 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 + }; + }; + + + /* + * Return true if v is a BigNumber instance, otherwise return false. + * + * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed. + * + * v {any} + * + * '[BigNumber Error] Invalid BigNumber: {v}' + */ + BigNumber.isBigNumber = function (v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber.DEBUG) return true; + + var i, n, + c = v.c, + e = v.e, + s = v.s; + + out: if ({}.toString.call(c) == '[object Array]') { + + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + + // If the first element is zero, the BigNumber value must be zero. + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + + // Calculate number of digits that c[0] should have, based on the exponent. + i = (e + 1) % LOG_BASE; + if (i < 1) i += LOG_BASE; + + // Calculate number of digits of c[0]. + //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) { + if (String(c[0]).length == i) { + + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; + } + + // Last element cannot be zero, unless it is the only element. + if (n !== 0) return true; + } + } + + // Infinity/NaN + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + + throw Error + (bignumberError + 'Invalid BigNumber: ' + v); + }; + + + /* + * 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 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 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 { + + // 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; + throw Error + (bignumberError + 'crypto unavailable'); + } + } + + // 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; + }; + })(); + + + /* + * Return a BigNumber whose value is the sum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.sum = function () { + var i = 1, + args = arguments, + sum = new BigNumber(args[0]); + for (; i < args.length;) sum = sum.plus(args[i++]); + return sum; + }; + + + // PRIVATE FUNCTIONS + + + // 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; + + for (; i < len;) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); + + arr[0] += alphabet.indexOf(str.charAt(i++)); + + for (j = 0; 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(); + } + + // 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. + + 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; + + // Remove trailing zeros. + for (; xc[--k] == 0; xc.pop()); + + // Zero? + if (!xc[0]) return alphabet.charAt(0); + + // 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. + + // 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]; + + // 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)); + + // 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 { + + // Truncate xc to the required number of decimal places. + xc.length = d; + + // Round up? + if (r) { + + // 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); + } + } + } + + // 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++])); + + // 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; + } + + if (carry) x = [carry].concat(x); + + return x; + } + + 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; + + // Subtract b from a. + for (; aL--;) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + + // Remove leading zeros. + for (; !a[0] && a.length > 1; a.splice(0, 1)); + } + + // 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: + // 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; + } + } 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: 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 || ne >= TO_EXP_POS) + ? 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 n, + i = 1, + m = new BigNumber(args[0]); + + for (; i < args.length; i++) { + 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; + } 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; + + // 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); + } + + // '[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); + } + + // NaN + x.s = null; + } + + x.c = x.e = 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 (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]; + } + } + + return x; + } + + + function valueOf(n) { + var str, + e = n.e; + + if (e === null) return n.toString(); + + str = coeffToString(n.c); + + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(str, e) + : toFixedPoint(str, e, '0'); + + return n.s < 0 ? '-' + str : str; + } + + + // 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 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, i, 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: ' + valueOf(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(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(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); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + + 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 (i) { + i = mathfloor(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 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)); + + // 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 = 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; + + // 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; + + // 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; + + // Initialise the result array with zeros. + for (i = xcL + ycL, zc = []; i--; zc.push(0)); + + base = BASE; + sqrtBase = SQRT_BASE; + + for (i = ycL; --i >= 0;) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + + 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; + } + + 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 negated, + * i.e. multiplied by -1. + */ + P.negated = function () { + var x = new BigNumber(this); + x.s = -x.s || null; + return x; + }; + + + /* + * 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); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Return 卤Infinity if either 卤Infinity. + if (!xc || !yc) return new BigNumber(a / 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); + } + + 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(); + } + + a = xc.length; + b = yc.length; + + // Point xc to the longer array, and b to the shorter length. + if (a - b < 0) t = yc, yc = xc, xc = t, b = a; + + // 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; + } + + 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); + }; + + + /* + * 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); + } + + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + + if (v = c[v]) { + + // Subtract the number of trailing zeros of the last element. + for (; v % 10 == 0; v /= 10, n--); + + // Add the number of digits of the first element. + for (v = c[0]; v >= 10; v /= 10, n++); + } + + if (sd && x.e + 1 > n) n = x.e + 1; + + return n; + }; + + + /* + * 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); + }; + + + /* + * 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(+valueOf(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 + ''); + } + + // 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; + } + } + } + } + + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + + + /* + * 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); + }; + + + /* + * 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 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 or FORMAT object (see BigNumber.set). + * + * The formatting object may contain some or all of the properties shown below. + * + * FORMAT = { + * prefix: '', + * groupSize: 3, + * secondaryGroupSize: 0, + * groupSeparator: ',', + * decimalSeparator: '.', + * fractionGroupSize: 0, + * fractionGroupSeparator: '\xA0', // non-breaking space + * suffix: '' + * }; + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * [format] {object} Formatting options. See FORMAT pbject above. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + * '[BigNumber Error] Argument not an object: {format}' + */ + P.toFormat = function (dp, rm, format) { + var str, + x = this; + + if (format == null) { + if (dp != null && rm && typeof rm == 'object') { + format = rm; + rm = null; + } else if (dp && typeof dp == 'object') { + format = dp; + dp = rm = null; + } else { + format = FORMAT; + } + } else if (typeof format != 'object') { + throw Error + (bignumberError + 'Argument not an object: ' + format); + } + + str = x.toFixed(dp, rm); + + if (x.c) { + var i, + arr = str.split('.'), + g1 = +format.groupSize, + g2 = +format.secondaryGroupSize, + groupSeparator = format.groupSeparator || '', + intPart = arr[0], + fractionPart = arr[1], + isNeg = x.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; + } + + return (format.prefix || '') + str + (format.suffix || ''); + }; + + + /* + * Return an array of two BigNumbers 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 d, d0, d1, d2, e, exp, n, n0, n1, q, r, 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: ') + valueOf(n)); + } + } + + if (!xc) return new BigNumber(x); + + 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 = e * 2; + + // Determine which fraction is closer to x, n0/d0 or n1/d1 + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; + + MAX_EXP = exp; + + return r; + }; + + + /* + * Return the value of this BigNumber converted to a number primitive. + */ + P.toNumber = function () { + return +valueOf(this); + }; + + + /* + * 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 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 { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(coeffToString(n.c), e) + : toFixedPoint(coeffToString(n.c), e, '0'); + } else if (b === 10) { + n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, '0'); + } else { + intCheck(b, 2, ALPHABET.length, 'Base'); + str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true); + } + + if (s < 0 && n.c[0]) str = '-' + str; + } + + return str; + }; + + + /* + * Return as toString, but do not accept a base argument, and include the minus sign for + * negative zero. + */ + P.valueOf = P.toJSON = function () { + return valueOf(this); + }; + + + P._isBigNumber = true; + + P[Symbol.toStringTag] = 'BigNumber'; + + // Node.js v10.12.0+ + P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf; + + if (configObject != null) BigNumber.set(configObject); + + return BigNumber; +} + + +// PRIVATE HELPER FUNCTIONS + +// These functions don't need access to variables, +// e.g. DECIMAL_PLACES, in the scope of the `clone` function above. + + +function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 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] + ''; + + for (; i < j;) { + s = a[i++] + ''; + z = LOG_BASE - s.length; + for (; z--; s = '0' + s); + r += s; + } + + // Determine trailing zeros. + for (j = r.length; r.charCodeAt(--j) === 48;); + + return r.slice(0, j + 1 || 1); +} + + +// 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; + + // Either NaN? + if (!i || !j) return null; + + a = xc && !xc[0]; + b = yc && !yc[0]; + + // Either zero? + if (a || b) return a ? b ? 0 : -j : i; + + // Signs differ? + if (i != j) return i; + + a = i < 0; + b = k == l; + + // Either Infinity? + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + + // Compare exponents. + if (!b) return k > l ^ a ? 1 : -1; + + j = (k = xc.length) < (l = yc.length) ? 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; + + // Compare lengths. + return k == l ? 0 : k > l ^ a ? 1 : -1; +} + + +/* + * 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 !== mathfloor(n)) { + throw Error + (bignumberError + (name || 'Argument') + (typeof n == 'number' + ? n < min || n > max ? ' out of range: ' : ' not an integer: ' + : ' not a primitive number: ') + String(n)); + } +} + + +// 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 toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + + (e < 0 ? 'e' : 'e+') + e; +} + + +function toFixedPoint(str, e, z) { + var len, zs; + + // Negative exponent? + if (e < 0) { + + // 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); + } + } + + return str; +} + + +// EXPORT + + +export var BigNumber = clone(); + +export default BigNumber; diff --git a/data_node_red/node_modules/bignumber.js/doc/API.html b/data_node_red/node_modules/bignumber.js/doc/API.html new file mode 100644 index 0000000..1ed4a87 --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/doc/API.html @@ -0,0 +1,2237 @@ + + + + + + +bignumber.js API + + + + + + +
+ +

bignumber.js

+ +

A JavaScript library for arbitrary-precision arithmetic.

+

Hosted on GitHub.

+ +

API

+ +

+ See the README on GitHub for a + quick-start introduction. +

+

+ In all examples below, var and semicolons are not shown, and if a commented-out + value is in quotes it means toString has been called on the preceding expression. +

+ + +

CONSTRUCTOR

+ + +
+ BigNumberBigNumber(n [, base]) ⇒ BigNumber +
+

+ n: number|string|BigNumber
+ base: number: integer, 2 to 36 inclusive. (See + ALPHABET to extend this range). +

+

+ Returns a new instance of a BigNumber object with value n, where n + is a numeric value in the specified base, or base 10 if + base is omitted or is null or undefined. +

+
+x = new BigNumber(123.4567)                // '123.4567'
+// 'new' is optional
+y = BigNumber(x)                           // '123.4567'
+

+ If n is a base 10 value it can be in normal (fixed-point) or + exponential notation. Values in other bases must be in normal notation. Values in any base can + have fraction digits, i.e. digits after the decimal point. +

+
+new BigNumber(43210)                       // '43210'
+new BigNumber('4.321e+4')                  // '43210'
+new BigNumber('-735.0918e-430')            // '-7.350918e-428'
+new BigNumber('123412421.234324', 5)       // '607236.557696'
+

+ Signed 0, signed Infinity and NaN are supported. +

+
+new BigNumber('-Infinity')                 // '-Infinity'
+new BigNumber(NaN)                         // 'NaN'
+new BigNumber(-0)                          // '0'
+new BigNumber('.5')                        // '0.5'
+new BigNumber('+2')                        // '2'
+

+ String values in hexadecimal literal form, e.g. '0xff', are valid, as are + string values with the octal and binary prefixs '0o' and '0b'. + String values in octal literal form without the prefix will be interpreted as + decimals, e.g. '011' is interpreted as 11, not 9. +

+
+new BigNumber(-10110100.1, 2)              // '-180.5'
+new BigNumber('-0b10110100.1')             // '-180.5'
+new BigNumber('ff.8', 16)                  // '255.5'
+new BigNumber('0xff.8')                    // '255.5'
+

+ If a base is specified, n is rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. This includes base + 10 so don't include a base parameter for decimal values unless + this behaviour is wanted. +

+
BigNumber.config({ DECIMAL_PLACES: 5 })
+new BigNumber(1.23456789)                  // '1.23456789'
+new BigNumber(1.23456789, 10)              // '1.23457'
+

An error is thrown if base is invalid. See Errors.

+

+ There is no limit to the number of digits of a value of type string (other than + that of JavaScript's maximum array size). See RANGE to set + the maximum and minimum possible exponent value of a BigNumber. +

+
+new BigNumber('5032485723458348569331745.33434346346912144534543')
+new BigNumber('4.321e10000000')
+

BigNumber NaN is returned if n is invalid + (unless BigNumber.DEBUG is true, see below).

+
+new BigNumber('.1*')                       // 'NaN'
+new BigNumber('blurgh')                    // 'NaN'
+new BigNumber(9, 2)                        // 'NaN'
+

+ To aid in debugging, if BigNumber.DEBUG is true then an error will + be thrown on an invalid n. An error will also be thrown if n is of + type number with more than 15 significant digits, as calling + toString or valueOf on + these numbers may not result in the intended value. +

+
+console.log(823456789123456.3)            //  823456789123456.2
+new BigNumber(823456789123456.3)          // '823456789123456.2'
+BigNumber.DEBUG = true
+// '[BigNumber Error] Number primitive has more than 15 significant digits'
+new BigNumber(823456789123456.3)
+// '[BigNumber Error] Not a base 2 number'
+new BigNumber(9, 2)
+

+ A BigNumber can also be created from an object literal. + Use isBigNumber to check that it is well-formed. +

+
new BigNumber({ s: 1, e: 2, c: [ 777, 12300000000000 ], _isBigNumber: true })    // '777.123'
+ + + + +

Methods

+

The static methods of a BigNumber constructor.

+ + + + +
clone + .clone([object]) ⇒ BigNumber constructor +
+

object: object

+

+ Returns a new independent BigNumber constructor with configuration as described by + object (see config), or with the default + configuration if object is null or undefined. +

+

+ Throws if object is not an object. See Errors. +

+
BigNumber.config({ DECIMAL_PLACES: 5 })
+BN = BigNumber.clone({ DECIMAL_PLACES: 9 })
+
+x = new BigNumber(1)
+y = new BN(1)
+
+x.div(3)                        // 0.33333
+y.div(3)                        // 0.333333333
+
+// BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) is equivalent to:
+BN = BigNumber.clone()
+BN.config({ DECIMAL_PLACES: 9 })
+ + + +
configset([object]) ⇒ object
+

+ object: object: an object that contains some or all of the following + properties. +

+

Configures the settings for this particular BigNumber constructor.

+ +
+
DECIMAL_PLACES
+
+ number: integer, 0 to 1e+9 inclusive
+ Default value: 20 +
+
+ The maximum number of decimal places of the results of operations involving + division, i.e. division, square root and base conversion operations, and power + operations with negative exponents.
+
+
+
BigNumber.config({ DECIMAL_PLACES: 5 })
+BigNumber.set({ DECIMAL_PLACES: 5 })    // equivalent
+
+ + + +
ROUNDING_MODE
+
+ number: integer, 0 to 8 inclusive
+ Default value: 4 (ROUND_HALF_UP) +
+
+ The rounding mode used in the above operations and the default rounding mode of + decimalPlaces, + precision, + toExponential, + toFixed, + toFormat and + toPrecision. +
+
The modes are available as enumerated properties of the BigNumber constructor.
+
+
BigNumber.config({ ROUNDING_MODE: 0 })
+BigNumber.set({ ROUNDING_MODE: BigNumber.ROUND_UP })    // equivalent
+
+ + + +
EXPONENTIAL_AT
+
+ number: integer, magnitude 0 to 1e+9 inclusive, or +
+ number[]: [ integer -1e+9 to 0 inclusive, integer + 0 to 1e+9 inclusive ]
+ Default value: [-7, 20] +
+
+ The exponent value(s) at which toString returns exponential notation. +
+
+ If a single number is assigned, the value is the exponent magnitude.
+ If an array of two numbers is assigned then the first number is the negative exponent + value at and beneath which exponential notation is used, and the second number is the + positive exponent value at and above which the same. +
+
+ For example, to emulate JavaScript numbers in terms of the exponent values at which they + begin to use exponential notation, use [-7, 20]. +
+
+
BigNumber.config({ EXPONENTIAL_AT: 2 })
+new BigNumber(12.3)         // '12.3'        e is only 1
+new BigNumber(123)          // '1.23e+2'
+new BigNumber(0.123)        // '0.123'       e is only -1
+new BigNumber(0.0123)       // '1.23e-2'
+
+BigNumber.config({ EXPONENTIAL_AT: [-7, 20] })
+new BigNumber(123456789)    // '123456789'   e is only 8
+new BigNumber(0.000000123)  // '1.23e-7'
+
+// Almost never return exponential notation:
+BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
+
+// Always return exponential notation:
+BigNumber.config({ EXPONENTIAL_AT: 0 })
+
+
+ Regardless of the value of EXPONENTIAL_AT, the toFixed method + will always return a value in normal notation and the toExponential method + will always return a value in exponential form. +
+
+ Calling toString with a base argument, e.g. toString(10), will + also always return normal notation. +
+ + + +
RANGE
+
+ number: integer, magnitude 1 to 1e+9 inclusive, or +
+ number[]: [ integer -1e+9 to -1 inclusive, integer + 1 to 1e+9 inclusive ]
+ Default value: [-1e+9, 1e+9] +
+
+ The exponent value(s) beyond which overflow to Infinity and underflow to + zero occurs. +
+
+ If a single number is assigned, it is the maximum exponent magnitude: values wth a + positive exponent of greater magnitude become Infinity and those with a + negative exponent of greater magnitude become zero. +
+ If an array of two numbers is assigned then the first number is the negative exponent + limit and the second number is the positive exponent limit. +
+
+ For example, to emulate JavaScript numbers in terms of the exponent values at which they + become zero and Infinity, use [-324, 308]. +
+
+
BigNumber.config({ RANGE: 500 })
+BigNumber.config().RANGE     // [ -500, 500 ]
+new BigNumber('9.999e499')   // '9.999e+499'
+new BigNumber('1e500')       // 'Infinity'
+new BigNumber('1e-499')      // '1e-499'
+new BigNumber('1e-500')      // '0'
+
+BigNumber.config({ RANGE: [-3, 4] })
+new BigNumber(99999)         // '99999'      e is only 4
+new BigNumber(100000)        // 'Infinity'   e is 5
+new BigNumber(0.001)         // '0.01'       e is only -3
+new BigNumber(0.0001)        // '0'          e is -4
+
+
+ The largest possible magnitude of a finite BigNumber is + 9.999...e+1000000000.
+ The smallest possible magnitude of a non-zero BigNumber is 1e-1000000000. +
+ + + +
CRYPTO
+
+ boolean: true or false.
+ Default value: false +
+
+ The value that determines whether cryptographically-secure pseudo-random number + generation is used. +
+
+ If CRYPTO is set to true then the + random method will generate random digits using + crypto.getRandomValues in browsers that support it, or + crypto.randomBytes if using Node.js. +
+
+ If neither function is supported by the host environment then attempting to set + CRYPTO to true will fail and an exception will be thrown. +
+
+ If CRYPTO is false then the source of randomness used will be + Math.random (which is assumed to generate at least 30 bits of + randomness). +
+
See random.
+
+
+// Node.js
+global.crypto = require('crypto')
+
+BigNumber.config({ CRYPTO: true })
+BigNumber.config().CRYPTO       // true
+BigNumber.random()              // 0.54340758610486147524
+
+ + + +
MODULO_MODE
+
+ number: integer, 0 to 9 inclusive
+ Default value: 1 (ROUND_DOWN) +
+
The modulo mode used when calculating the modulus: a mod n.
+
+ The quotient, q = a / n, is calculated according to the + ROUNDING_MODE that corresponds to the chosen + MODULO_MODE. +
+
The remainder, r, is calculated as: r = a - n * q.
+
+ The modes that are most commonly used for the modulus/remainder operation are shown in + the following table. Although the other rounding modes can be used, they may not give + useful results. +
+
+ + + + + + + + + + + + + + + + + + + + + + +
PropertyValueDescription
ROUND_UP0 + The remainder is positive if the dividend is negative, otherwise it is negative. +
ROUND_DOWN1 + The remainder has the same sign as the dividend.
+ This uses 'truncating division' and matches the behaviour of JavaScript's + remainder operator %. +
ROUND_FLOOR3 + The remainder has the same sign as the divisor.
+ This matches Python's % operator. +
ROUND_HALF_EVEN6The IEEE 754 remainder function.
EUCLID9 + The remainder is always positive. Euclidian division:
+ q = sign(n) * floor(a / abs(n)) +
+
+
+ The rounding/modulo modes are available as enumerated properties of the BigNumber + constructor. +
+
See modulo.
+
+
BigNumber.config({ MODULO_MODE: BigNumber.EUCLID })
+BigNumber.config({ MODULO_MODE: 9 })          // equivalent
+
+ + + +
POW_PRECISION
+
+ number: integer, 0 to 1e+9 inclusive.
+ Default value: 0 +
+
+ The maximum precision, i.e. number of significant digits, of the result of the power + operation (unless a modulus is specified). +
+
If set to 0, the number of significant digits will not be limited.
+
See exponentiatedBy.
+
BigNumber.config({ POW_PRECISION: 100 })
+ + + +
FORMAT
+
object
+
+ The FORMAT object configures the format of the string returned by the + toFormat method. +
+
+ The example below shows the properties of the FORMAT object that are + recognised, and their default values. +
+
+ Unlike the other configuration properties, the values of the properties of the + FORMAT object will not be checked for validity. The existing + FORMAT object will simply be replaced by the object that is passed in. + The object can include any number of the properties shown below. +
+
See toFormat for examples of usage.
+
+
+BigNumber.config({
+  FORMAT: {
+    // string to prepend
+    prefix: '',
+    // decimal separator
+    decimalSeparator: '.',
+    // grouping separator of the integer part
+    groupSeparator: ',',
+    // primary grouping size of the integer part
+    groupSize: 3,
+    // secondary grouping size of the integer part
+    secondaryGroupSize: 0,
+    // grouping separator of the fraction part
+    fractionGroupSeparator: ' ',
+    // grouping size of the fraction part
+    fractionGroupSize: 0,
+    // string to append
+    suffix: ''
+  }
+});
+
+ + + +
ALPHABET
+
+ string
+ Default value: '0123456789abcdefghijklmnopqrstuvwxyz' +
+
+ The alphabet used for base conversion. The length of the alphabet corresponds to the + maximum value of the base argument that can be passed to the + BigNumber constructor or + toString. +
+
+ There is no maximum length for the alphabet, but it must be at least 2 characters long, and + it must not contain whitespace or a repeated character, or the sign indicators + '+' and '-', or the decimal separator '.'. +
+
+
// duodecimal (base 12)
+BigNumber.config({ ALPHABET: '0123456789TE' })
+x = new BigNumber('T', 12)
+x.toString()                // '10'
+x.toString(12)              // 'T'
+
+ + + +
+

+

Returns an object with the above properties and their current values.

+

+ Throws if object is not an object, or if an invalid value is assigned to + one or more of the above properties. See Errors. +

+
+BigNumber.config({
+  DECIMAL_PLACES: 40,
+  ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL,
+  EXPONENTIAL_AT: [-10, 20],
+  RANGE: [-500, 500],
+  CRYPTO: true,
+  MODULO_MODE: BigNumber.ROUND_FLOOR,
+  POW_PRECISION: 80,
+  FORMAT: {
+    groupSize: 3,
+    groupSeparator: ' ',
+    decimalSeparator: ','
+  },
+  ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'
+});
+
+obj = BigNumber.config();
+obj.DECIMAL_PLACES        // 40
+obj.RANGE                 // [-500, 500]
+ + + +
+ isBigNumber.isBigNumber(value) ⇒ boolean +
+

value: any

+

+ Returns true if value is a BigNumber instance, otherwise returns + false. +

+
x = 42
+y = new BigNumber(x)
+
+BigNumber.isBigNumber(x)             // false
+y instanceof BigNumber               // true
+BigNumber.isBigNumber(y)             // true
+
+BN = BigNumber.clone();
+z = new BN(x)
+z instanceof BigNumber               // false
+BigNumber.isBigNumber(z)             // true
+

+ If value is a BigNumber instance and BigNumber.DEBUG is true, + then this method will also check if value is well-formed, and throw if it is not. + See Errors. +

+

+ The check can be useful if creating a BigNumber from an object literal. + See BigNumber. +

+
+x = new BigNumber(10)
+
+// Change x.c to an illegitimate value.
+x.c = NaN
+
+BigNumber.DEBUG = false
+
+// No error.
+BigNumber.isBigNumber(x)    // true
+
+BigNumber.DEBUG = true
+
+// Error.
+BigNumber.isBigNumber(x)    // '[BigNumber Error] Invalid BigNumber'
+ + + +
maximum.max(n...) ⇒ BigNumber
+

+ n: number|string|BigNumber
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the maximum of the arguments. +

+

The return value is always exact and unrounded.

+
x = new BigNumber('3257869345.0378653')
+BigNumber.maximum(4e9, x, '123456789.9')      // '4000000000'
+
+arr = [12, '13', new BigNumber(14)]
+BigNumber.max.apply(null, arr)                // '14'
+ + + +
minimum.min(n...) ⇒ BigNumber
+

+ n: number|string|BigNumber
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the minimum of the arguments. +

+

The return value is always exact and unrounded.

+
x = new BigNumber('3257869345.0378653')
+BigNumber.minimum(4e9, x, '123456789.9')      // '123456789.9'
+
+arr = [2, new BigNumber(-14), '-15.9999', -12]
+BigNumber.min.apply(null, arr)                // '-15.9999'
+ + + +
+ random.random([dp]) ⇒ BigNumber +
+

dp: number: integer, 0 to 1e+9 inclusive

+

+ Returns a new BigNumber with a pseudo-random value equal to or greater than 0 and + less than 1. +

+

+ The return value will have dp decimal places (or less if trailing zeros are + produced).
+ If dp is omitted then the number of decimal places will default to the current + DECIMAL_PLACES setting. +

+

+ Depending on the value of this BigNumber constructor's + CRYPTO setting and the support for the + crypto object in the host environment, the random digits of the return value are + generated by either Math.random (fastest), crypto.getRandomValues + (Web Cryptography API in recent browsers) or crypto.randomBytes (Node.js). +

+

+ To be able to set CRYPTO to true when using + Node.js, the crypto object must be available globally: +

+
global.crypto = require('crypto')
+

+ If CRYPTO is true, i.e. one of the + crypto methods is to be used, the value of a returned BigNumber should be + cryptographically-secure and statistically indistinguishable from a random value. +

+

+ Throws if dp is invalid. See Errors. +

+
BigNumber.config({ DECIMAL_PLACES: 10 })
+BigNumber.random()              // '0.4117936847'
+BigNumber.random(20)            // '0.78193327636914089009'
+ + + +
sum.sum(n...) ⇒ BigNumber
+

+ n: number|string|BigNumber
+ See BigNumber for further parameter details. +

+

Returns a BigNumber whose value is the sum of the arguments.

+

The return value is always exact and unrounded.

+
x = new BigNumber('3257869345.0378653')
+BigNumber.sum(4e9, x, '123456789.9')      // '7381326134.9378653'
+
+arr = [2, new BigNumber(14), '15.9999', 12]
+BigNumber.sum.apply(null, arr)            // '43.9999'
+ + + +

Properties

+

+ The library's enumerated rounding modes are stored as properties of the constructor.
+ (They are not referenced internally by the library itself.) +

+

+ Rounding modes 0 to 6 (inclusive) are the same as those of Java's + BigDecimal class. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValueDescription
ROUND_UP0Rounds away from zero
ROUND_DOWN1Rounds towards zero
ROUND_CEIL2Rounds towards Infinity
ROUND_FLOOR3Rounds towards -Infinity
ROUND_HALF_UP4 + Rounds towards nearest neighbour.
+ If equidistant, rounds away from zero +
ROUND_HALF_DOWN5 + Rounds towards nearest neighbour.
+ If equidistant, rounds towards zero +
ROUND_HALF_EVEN6 + Rounds towards nearest neighbour.
+ If equidistant, rounds towards even neighbour +
ROUND_HALF_CEIL7 + Rounds towards nearest neighbour.
+ If equidistant, rounds towards Infinity +
ROUND_HALF_FLOOR8 + Rounds towards nearest neighbour.
+ If equidistant, rounds towards -Infinity +
+
+BigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_CEIL })
+BigNumber.config({ ROUNDING_MODE: 2 })     // equivalent
+ +
DEBUG
+

undefined|false|true

+

+ If BigNumber.DEBUG is set true then an error will be thrown + if this BigNumber constructor receives an invalid value, such as + a value of type number with more than 15 significant digits. + See BigNumber. +

+

+ An error will also be thrown if the isBigNumber + method receives a BigNumber that is not well-formed. + See isBigNumber. +

+
BigNumber.DEBUG = true
+ + +

INSTANCE

+ + +

Methods

+

The methods inherited by a BigNumber instance from its constructor's prototype object.

+

A BigNumber is immutable in the sense that it is not changed by its methods.

+

+ The treatment of ±0, ±Infinity and NaN is + consistent with how JavaScript treats these values. +

+

Many method names have a shorter alias.

+ + + +
absoluteValue.abs() ⇒ BigNumber
+

+ Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of + this BigNumber. +

+

The return value is always exact and unrounded.

+
+x = new BigNumber(-0.8)
+y = x.absoluteValue()           // '0.8'
+z = y.abs()                     // '0.8'
+ + + +
+ comparedTo.comparedTo(n [, base]) ⇒ number +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+ + + + + + + + + + + + + + + + + + +
Returns 
1If the value of this BigNumber is greater than the value of n
-1If the value of this BigNumber is less than the value of n
0If this BigNumber and n have the same value
nullIf the value of either this BigNumber or n is NaN
+
+x = new BigNumber(Infinity)
+y = new BigNumber(5)
+x.comparedTo(y)                 // 1
+x.comparedTo(x.minus(1))        // 0
+y.comparedTo(NaN)               // null
+y.comparedTo('110', 2)          // -1
+ + + +
+ decimalPlaces.dp([dp [, rm]]) ⇒ BigNumber|number +
+

+ dp: number: integer, 0 to 1e+9 inclusive
+ rm: number: integer, 0 to 8 inclusive +

+

+ If dp is a number, returns a BigNumber whose value is the value of this BigNumber + rounded by rounding mode rm to a maximum of dp decimal places. +

+

+ If dp is omitted, or is null or undefined, the return + value is the number of decimal places of the value of this BigNumber, or null if + the value of this BigNumber is ±Infinity or NaN. +

+

+ If rm is omitted, or is null or undefined, + ROUNDING_MODE is used. +

+

+ Throws if dp or rm is invalid. See Errors. +

+
+x = new BigNumber(1234.56)
+x.decimalPlaces(1)                     // '1234.6'
+x.dp()                                 // 2
+x.decimalPlaces(2)                     // '1234.56'
+x.dp(10)                               // '1234.56'
+x.decimalPlaces(0, 1)                  // '1234'
+x.dp(0, 6)                             // '1235'
+x.decimalPlaces(1, 1)                  // '1234.5'
+x.dp(1, BigNumber.ROUND_HALF_EVEN)     // '1234.6'
+x                                      // '1234.56'
+y = new BigNumber('9.9e-101')
+y.dp()                                 // 102
+ + + +
dividedBy.div(n [, base]) ⇒ BigNumber +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the value of this BigNumber divided by + n, rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

+
+x = new BigNumber(355)
+y = new BigNumber(113)
+x.dividedBy(y)                  // '3.14159292035398230088'
+x.div(5)                        // '71'
+x.div(47, 16)                   // '5'
+ + + +
+ dividedToIntegerBy.idiv(n [, base]) ⇒ + BigNumber +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + n. +

+
+x = new BigNumber(5)
+y = new BigNumber(3)
+x.dividedToIntegerBy(y)         // '1'
+x.idiv(0.7)                     // '7'
+x.idiv('0.f', 16)               // '5'
+ + + +
+ exponentiatedBy.pow(n [, m]) ⇒ BigNumber +
+

+ n: number|string|BigNumber: integer
+ m: number|string|BigNumber +

+

+ Returns a BigNumber whose value is the value of this BigNumber exponentiated by + n, i.e. raised to the power n, and optionally modulo a modulus + m. +

+

+ Throws if n is not an integer. See Errors. +

+

+ If n is negative the result is rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

+

+ As the number of digits of the result of the power operation can grow so large so quickly, + e.g. 123.45610000 has over 50000 digits, the number of significant + digits calculated is limited to the value of the + POW_PRECISION setting (unless a modulus + m is specified). +

+

+ By default POW_PRECISION is set to 0. + This means that an unlimited number of significant digits will be calculated, and that the + method's performance will decrease dramatically for larger exponents. +

+

+ If m is specified and the value of m, n and this + BigNumber are integers, and n is positive, then a fast modular exponentiation + algorithm is used, otherwise the operation will be performed as + x.exponentiatedBy(n).modulo(m) with a + POW_PRECISION of 0. +

+
+Math.pow(0.7, 2)                // 0.48999999999999994
+x = new BigNumber(0.7)
+x.exponentiatedBy(2)            // '0.49'
+BigNumber(3).pow(-2)            // '0.11111111111111111111'
+ + + +
+ integerValue.integerValue([rm]) ⇒ BigNumber +
+

+ rm: number: integer, 0 to 8 inclusive +

+

+ Returns a BigNumber whose value is the value of this BigNumber rounded to an integer using + rounding mode rm. +

+

+ If rm is omitted, or is null or undefined, + ROUNDING_MODE is used. +

+

+ Throws if rm is invalid. See Errors. +

+
+x = new BigNumber(123.456)
+x.integerValue()                        // '123'
+x.integerValue(BigNumber.ROUND_CEIL)    // '124'
+y = new BigNumber(-12.7)
+y.integerValue()                        // '-13'
+y.integerValue(BigNumber.ROUND_DOWN)    // '-12'
+

+ The following is an example of how to add a prototype method that emulates JavaScript's + Math.round function. Math.ceil, Math.floor and + Math.trunc can be emulated in the same way with + BigNumber.ROUND_CEIL, BigNumber.ROUND_FLOOR and + BigNumber.ROUND_DOWN respectively. +

+
+BigNumber.prototype.round = function (n) {
+  return n.integerValue(BigNumber.ROUND_HALF_CEIL);
+};
+x.round()                               // '123'
+ + + +
isEqualTo.eq(n [, base]) ⇒ boolean
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns true if the value of this BigNumber is equal to the value of + n, otherwise returns false.
+ As with JavaScript, NaN does not equal NaN. +

+

Note: This method uses the comparedTo method internally.

+
+0 === 1e-324                    // true
+x = new BigNumber(0)
+x.isEqualTo('1e-324')           // false
+BigNumber(-0).eq(x)             // true  ( -0 === 0 )
+BigNumber(255).eq('ff', 16)     // true
+
+y = new BigNumber(NaN)
+y.isEqualTo(NaN)                // false
+ + + +
isFinite.isFinite() ⇒ boolean
+

+ Returns true if the value of this BigNumber is a finite number, otherwise + returns false. +

+

+ The only possible non-finite values of a BigNumber are NaN, Infinity + and -Infinity. +

+
+x = new BigNumber(1)
+x.isFinite()                    // true
+y = new BigNumber(Infinity)
+y.isFinite()                    // false
+

+ Note: The native method isFinite() can be used if + n <= Number.MAX_VALUE. +

+ + + +
isGreaterThan.gt(n [, base]) ⇒ boolean
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns true if the value of this BigNumber is greater than the value of + n, otherwise returns false. +

+

Note: This method uses the comparedTo method internally.

+
+0.1 > (0.3 - 0.2)                             // true
+x = new BigNumber(0.1)
+x.isGreaterThan(BigNumber(0.3).minus(0.2))    // false
+BigNumber(0).gt(x)                            // false
+BigNumber(11, 3).gt(11.1, 2)                  // true
+ + + +
+ isGreaterThanOrEqualTo.gte(n [, base]) ⇒ boolean +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns true if the value of this BigNumber is greater than or equal to the value + of n, otherwise returns false. +

+

Note: This method uses the comparedTo method internally.

+
+(0.3 - 0.2) >= 0.1                     // false
+x = new BigNumber(0.3).minus(0.2)
+x.isGreaterThanOrEqualTo(0.1)          // true
+BigNumber(1).gte(x)                    // true
+BigNumber(10, 18).gte('i', 36)         // true
+ + + +
isInteger.isInteger() ⇒ boolean
+

+ Returns true if the value of this BigNumber is an integer, otherwise returns + false. +

+
+x = new BigNumber(1)
+x.isInteger()                   // true
+y = new BigNumber(123.456)
+y.isInteger()                   // false
+ + + +
isLessThan.lt(n [, base]) ⇒ boolean
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns true if the value of this BigNumber is less than the value of + n, otherwise returns false. +

+

Note: This method uses the comparedTo method internally.

+
+(0.3 - 0.2) < 0.1                       // true
+x = new BigNumber(0.3).minus(0.2)
+x.isLessThan(0.1)                       // false
+BigNumber(0).lt(x)                      // true
+BigNumber(11.1, 2).lt(11, 3)            // true
+ + + +
+ isLessThanOrEqualTo.lte(n [, base]) ⇒ boolean +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns true if the value of this BigNumber is less than or equal to the value of + n, otherwise returns false. +

+

Note: This method uses the comparedTo method internally.

+
+0.1 <= (0.3 - 0.2)                                // false
+x = new BigNumber(0.1)
+x.isLessThanOrEqualTo(BigNumber(0.3).minus(0.2))  // true
+BigNumber(-1).lte(x)                              // true
+BigNumber(10, 18).lte('i', 36)                    // true
+ + + +
isNaN.isNaN() ⇒ boolean
+

+ Returns true if the value of this BigNumber is NaN, otherwise + returns false. +

+
+x = new BigNumber(NaN)
+x.isNaN()                       // true
+y = new BigNumber('Infinity')
+y.isNaN()                       // false
+

Note: The native method isNaN() can also be used.

+ + + +
isNegative.isNegative() ⇒ boolean
+

+ Returns true if the sign of this BigNumber is negative, otherwise returns + false. +

+
+x = new BigNumber(-0)
+x.isNegative()                  // true
+y = new BigNumber(2)
+y.isNegative()                  // false
+

Note: n < 0 can be used if n <= -Number.MIN_VALUE.

+ + + +
isPositive.isPositive() ⇒ boolean
+

+ Returns true if the sign of this BigNumber is positive, otherwise returns + false. +

+
+x = new BigNumber(-0)
+x.isPositive()                  // false
+y = new BigNumber(2)
+y.isPositive()                  // true
+ + + +
isZero.isZero() ⇒ boolean
+

+ Returns true if the value of this BigNumber is zero or minus zero, otherwise + returns false. +

+
+x = new BigNumber(-0)
+x.isZero() && x.isNegative()         // true
+y = new BigNumber(Infinity)
+y.isZero()                      // false
+

Note: n == 0 can be used if n >= Number.MIN_VALUE.

+ + + +
+ minus.minus(n [, base]) ⇒ BigNumber +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

Returns a BigNumber whose value is the value of this BigNumber minus n.

+

The return value is always exact and unrounded.

+
+0.3 - 0.1                       // 0.19999999999999998
+x = new BigNumber(0.3)
+x.minus(0.1)                    // '0.2'
+x.minus(0.6, 20)                // '0'
+ + + +
modulo.mod(n [, base]) ⇒ BigNumber
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the value of this BigNumber modulo n, i.e. + the integer remainder of dividing this BigNumber by n. +

+

+ The value returned, and in particular its sign, is dependent on the value of the + MODULO_MODE setting of this BigNumber constructor. + If it is 1 (default value), the result will have the same sign as this BigNumber, + and it will match that of Javascript's % operator (within the limits of double + precision) and BigDecimal's remainder method. +

+

The return value is always exact and unrounded.

+

+ See MODULO_MODE for a description of the other + modulo modes. +

+
+1 % 0.9                         // 0.09999999999999998
+x = new BigNumber(1)
+x.modulo(0.9)                   // '0.1'
+y = new BigNumber(33)
+y.mod('a', 33)                  // '3'
+ + + +
+ multipliedBy.times(n [, base]) ⇒ BigNumber +
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

+ Returns a BigNumber whose value is the value of this BigNumber multiplied by n. +

+

The return value is always exact and unrounded.

+
+0.6 * 3                         // 1.7999999999999998
+x = new BigNumber(0.6)
+y = x.multipliedBy(3)           // '1.8'
+BigNumber('7e+500').times(y)    // '1.26e+501'
+x.multipliedBy('-a', 16)        // '-6'
+ + + +
negated.negated() ⇒ BigNumber
+

+ Returns a BigNumber whose value is the value of this BigNumber negated, i.e. multiplied by + -1. +

+
+x = new BigNumber(1.8)
+x.negated()                     // '-1.8'
+y = new BigNumber(-1.3)
+y.negated()                     // '1.3'
+ + + +
plus.plus(n [, base]) ⇒ BigNumber
+

+ n: number|string|BigNumber
+ base: number
+ See BigNumber for further parameter details. +

+

Returns a BigNumber whose value is the value of this BigNumber plus n.

+

The return value is always exact and unrounded.

+
+0.1 + 0.2                       // 0.30000000000000004
+x = new BigNumber(0.1)
+y = x.plus(0.2)                 // '0.3'
+BigNumber(0.7).plus(x).plus(y)  // '1'
+x.plus('0.1', 8)                // '0.225'
+ + + +
+ precision.sd([d [, rm]]) ⇒ BigNumber|number +
+

+ d: number|boolean: integer, 1 to 1e+9 + inclusive, or true or false
+ rm: number: integer, 0 to 8 inclusive. +

+

+ If d is a number, returns a BigNumber whose value is the value of this BigNumber + rounded to a precision of d significant digits using rounding mode + rm. +

+

+ If d is omitted or is null or undefined, the return + value is the number of significant digits of the value of this BigNumber, or null + if the value of this BigNumber is ±Infinity or NaN.

+

+

+ If d is true then any trailing zeros of the integer + part of a number are counted as significant digits, otherwise they are not. +

+

+ If rm is omitted or is null or undefined, + ROUNDING_MODE will be used. +

+

+ Throws if d or rm is invalid. See Errors. +

+
+x = new BigNumber(9876.54321)
+x.precision(6)                         // '9876.54'
+x.sd()                                 // 9
+x.precision(6, BigNumber.ROUND_UP)     // '9876.55'
+x.sd(2)                                // '9900'
+x.precision(2, 1)                      // '9800'
+x                                      // '9876.54321'
+y = new BigNumber(987000)
+y.precision()                          // 3
+y.sd(true)                             // 6
+ + + +
shiftedBy.shiftedBy(n) ⇒ BigNumber
+

+ n: number: integer, + -9007199254740991 to 9007199254740991 inclusive +

+

+ Returns a BigNumber whose value is the value of this BigNumber shifted by n + places. +

+ The shift is of the decimal point, i.e. of powers of ten, and is to the left if n + is negative or to the right if n is positive. +

+

The return value is always exact and unrounded.

+

+ Throws if n is invalid. See Errors. +

+
+x = new BigNumber(1.23)
+x.shiftedBy(3)                      // '1230'
+x.shiftedBy(-3)                     // '0.00123'
+ + + +
squareRoot.sqrt() ⇒ BigNumber
+

+ Returns a BigNumber whose value is the square root of the value of this BigNumber, + rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

+

+ The return value will be correctly rounded, i.e. rounded as if the result was first calculated + to an infinite number of correct digits before rounding. +

+
+x = new BigNumber(16)
+x.squareRoot()                  // '4'
+y = new BigNumber(3)
+y.sqrt()                        // '1.73205080756887729353'
+ + + +
+ toExponential.toExponential([dp [, rm]]) ⇒ string +
+

+ dp: number: integer, 0 to 1e+9 inclusive
+ rm: number: integer, 0 to 8 inclusive +

+

+ Returns a string representing the value of this BigNumber in exponential notation rounded + using rounding mode rm to dp decimal places, i.e with one digit + before the decimal point and dp digits after it. +

+

+ If the value of this BigNumber in exponential notation has fewer than dp fraction + digits, the return value will be appended with zeros accordingly. +

+

+ If dp is omitted, or is null or undefined, the number + of digits after the decimal point defaults to the minimum number of digits necessary to + represent the value exactly.
+ If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

+

+ Throws if dp or rm is invalid. See Errors. +

+
+x = 45.6
+y = new BigNumber(x)
+x.toExponential()               // '4.56e+1'
+y.toExponential()               // '4.56e+1'
+x.toExponential(0)              // '5e+1'
+y.toExponential(0)              // '5e+1'
+x.toExponential(1)              // '4.6e+1'
+y.toExponential(1)              // '4.6e+1'
+y.toExponential(1, 1)           // '4.5e+1'  (ROUND_DOWN)
+x.toExponential(3)              // '4.560e+1'
+y.toExponential(3)              // '4.560e+1'
+ + + +
+ toFixed.toFixed([dp [, rm]]) ⇒ string +
+

+ dp: number: integer, 0 to 1e+9 inclusive
+ rm: number: integer, 0 to 8 inclusive +

+

+ Returns a string representing the value of this BigNumber in normal (fixed-point) notation + rounded to dp decimal places using rounding mode rm. +

+

+ If the value of this BigNumber in normal notation has fewer than dp fraction + digits, the return value will be appended with zeros accordingly. +

+

+ Unlike Number.prototype.toFixed, which returns exponential notation if a number + is greater or equal to 1021, this method will always return normal + notation. +

+

+ If dp is omitted or is null or undefined, the return + value will be unrounded and in normal notation. This is also unlike + Number.prototype.toFixed, which returns the value to zero decimal places.
+ It is useful when fixed-point notation is required and the current + EXPONENTIAL_AT setting causes + toString to return exponential notation.
+ If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

+

+ Throws if dp or rm is invalid. See Errors. +

+
+x = 3.456
+y = new BigNumber(x)
+x.toFixed()                     // '3'
+y.toFixed()                     // '3.456'
+y.toFixed(0)                    // '3'
+x.toFixed(2)                    // '3.46'
+y.toFixed(2)                    // '3.46'
+y.toFixed(2, 1)                 // '3.45'  (ROUND_DOWN)
+x.toFixed(5)                    // '3.45600'
+y.toFixed(5)                    // '3.45600'
+ + + +
+ toFormat.toFormat([dp [, rm[, format]]]) ⇒ string +
+

+ dp: number: integer, 0 to 1e+9 inclusive
+ rm: number: integer, 0 to 8 inclusive
+ format: object: see FORMAT +

+

+

+ Returns a string representing the value of this BigNumber in normal (fixed-point) notation + rounded to dp decimal places using rounding mode rm, and formatted + according to the properties of the format object. +

+

+ See FORMAT and the examples below for the properties of the + format object, their types, and their usage. A formatting object may contain + some or all of the recognised properties. +

+

+ If dp is omitted or is null or undefined, then the + return value is not rounded to a fixed number of decimal places.
+ If rm is omitted or is null or undefined, + ROUNDING_MODE is used.
+ If format is omitted or is null or undefined, the + FORMAT object is used. +

+

+ Throws if dp, rm or format is invalid. See + Errors. +

+
+fmt = {
+  prefix = '',
+  decimalSeparator: '.',
+  groupSeparator: ',',
+  groupSize: 3,
+  secondaryGroupSize: 0,
+  fractionGroupSeparator: ' ',
+  fractionGroupSize: 0,
+  suffix = ''
+}
+
+x = new BigNumber('123456789.123456789')
+
+// Set the global formatting options
+BigNumber.config({ FORMAT: fmt })
+
+x.toFormat()                              // '123,456,789.123456789'
+x.toFormat(3)                             // '123,456,789.123'
+
+// If a reference to the object assigned to FORMAT has been retained,
+// the format properties can be changed directly
+fmt.groupSeparator = ' '
+fmt.fractionGroupSize = 5
+x.toFormat()                              // '123 456 789.12345 6789'
+
+// Alternatively, pass the formatting options as an argument
+fmt = {
+  prefix: '=> ',
+  decimalSeparator: ',',
+  groupSeparator: '.',
+  groupSize: 3,
+  secondaryGroupSize: 2
+}
+
+x.toFormat()                              // '123 456 789.12345 6789'
+x.toFormat(fmt)                           // '=> 12.34.56.789,123456789'
+x.toFormat(2, fmt)                        // '=> 12.34.56.789,12'
+x.toFormat(3, BigNumber.ROUND_UP, fmt)    // '=> 12.34.56.789,124'
+ + + +
+ toFraction.toFraction([maximum_denominator]) + ⇒ [BigNumber, BigNumber] +
+

+ maximum_denominator: + number|string|BigNumber: integer >= 1 and <= + Infinity +

+

+ Returns an array of two BigNumbers 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 maximum_denominator. +

+

+ If a maximum_denominator is not specified, or is null or + undefined, the denominator will be the lowest value necessary to represent the + number exactly. +

+

+ Throws if maximum_denominator is invalid. See Errors. +

+
+x = new BigNumber(1.75)
+x.toFraction()                  // '7, 4'
+
+pi = new BigNumber('3.14159265358')
+pi.toFraction()                 // '157079632679,50000000000'
+pi.toFraction(100000)           // '312689, 99532'
+pi.toFraction(10000)            // '355, 113'
+pi.toFraction(100)              // '311, 99'
+pi.toFraction(10)               // '22, 7'
+pi.toFraction(1)                // '3, 1'
+ + + +
toJSON.toJSON() ⇒ string
+

As valueOf.

+
+x = new BigNumber('177.7e+457')
+y = new BigNumber(235.4325)
+z = new BigNumber('0.0098074')
+
+// Serialize an array of three BigNumbers
+str = JSON.stringify( [x, y, z] )
+// "["1.777e+459","235.4325","0.0098074"]"
+
+// Return an array of three BigNumbers
+JSON.parse(str, function (key, val) {
+    return key === '' ? val : new BigNumber(val)
+})
+ + + +
toNumber.toNumber() ⇒ number
+

Returns the value of this BigNumber as a JavaScript number primitive.

+

+ This method is identical to using type coercion with the unary plus operator. +

+
+x = new BigNumber(456.789)
+x.toNumber()                    // 456.789
++x                              // 456.789
+
+y = new BigNumber('45987349857634085409857349856430985')
+y.toNumber()                    // 4.598734985763409e+34
+
+z = new BigNumber(-0)
+1 / z.toNumber()                // -Infinity
+1 / +z                          // -Infinity
+ + + +
+ toPrecision.toPrecision([sd [, rm]]) ⇒ string +
+

+ sd: number: integer, 1 to 1e+9 inclusive
+ rm: number: integer, 0 to 8 inclusive +

+

+ Returns a string representing the value of this BigNumber rounded to sd + significant digits using rounding mode rm. +

+

+ If sd is less than the number of digits necessary to represent the integer part + of the value in normal (fixed-point) notation, then exponential notation is used. +

+

+ If sd is omitted, or is null or undefined, then the + return value is the same as n.toString().
+ If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

+

+ Throws if sd or rm is invalid. See Errors. +

+
+x = 45.6
+y = new BigNumber(x)
+x.toPrecision()                 // '45.6'
+y.toPrecision()                 // '45.6'
+x.toPrecision(1)                // '5e+1'
+y.toPrecision(1)                // '5e+1'
+y.toPrecision(2, 0)             // '4.6e+1'  (ROUND_UP)
+y.toPrecision(2, 1)             // '4.5e+1'  (ROUND_DOWN)
+x.toPrecision(5)                // '45.600'
+y.toPrecision(5)                // '45.600'
+ + + +
toString.toString([base]) ⇒ string
+

+ base: number: integer, 2 to ALPHABET.length + inclusive (see ALPHABET). +

+

+ Returns a string representing the value of this BigNumber in the specified base, or base + 10 if base is omitted or is null or + undefined. +

+

+ For bases above 10, and using the default base conversion alphabet + (see ALPHABET), values from 10 to + 35 are represented by a-z + (as with Number.prototype.toString). +

+

+ If a base is specified the value is rounded according to the current + DECIMAL_PLACES + and ROUNDING_MODE settings. +

+

+ If a base is not specified, and this BigNumber has a positive + exponent that is equal to or greater than the positive component of the + current EXPONENTIAL_AT setting, + or a negative exponent equal to or less than the negative component of the + setting, then exponential notation is returned. +

+

If base is null or undefined it is ignored.

+

+ Throws if base is invalid. See Errors. +

+
+x = new BigNumber(750000)
+x.toString()                    // '750000'
+BigNumber.config({ EXPONENTIAL_AT: 5 })
+x.toString()                    // '7.5e+5'
+
+y = new BigNumber(362.875)
+y.toString(2)                   // '101101010.111'
+y.toString(9)                   // '442.77777777777777777778'
+y.toString(32)                  // 'ba.s'
+
+BigNumber.config({ DECIMAL_PLACES: 4 });
+z = new BigNumber('1.23456789')
+z.toString()                    // '1.23456789'
+z.toString(10)                  // '1.2346'
+ + + +
valueOf.valueOf() ⇒ string
+

+ As toString, but does not accept a base argument and includes + the minus sign for negative zero. +

+
+x = new BigNumber('-0')
+x.toString()                    // '0'
+x.valueOf()                     // '-0'
+y = new BigNumber('1.777e+457')
+y.valueOf()                     // '1.777e+457'
+ + + +

Properties

+

The properties of a BigNumber instance:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionTypeValue
ccoefficient*number[] Array of base 1e14 numbers
eexponentnumberInteger, -1000000000 to 1000000000 inclusive
ssignnumber-1 or 1
+

*significand

+

+ The value of any of the c, e and s properties may also + be null. +

+

+ The above properties are best considered to be read-only. In early versions of this library it + was okay to change the exponent of a BigNumber by writing to its exponent property directly, + but this is no longer reliable as the value of the first element of the coefficient array is + now dependent on the exponent. +

+

+ Note that, as with JavaScript numbers, the original exponent and fractional trailing zeros are + not necessarily preserved. +

+
x = new BigNumber(0.123)              // '0.123'
+x.toExponential()                     // '1.23e-1'
+x.c                                   // '1,2,3'
+x.e                                   // -1
+x.s                                   // 1
+
+y = new Number(-123.4567000e+2)       // '-12345.67'
+y.toExponential()                     // '-1.234567e+4'
+z = new BigNumber('-123.4567000e+2')  // '-12345.67'
+z.toExponential()                     // '-1.234567e+4'
+z.c                                   // '1,2,3,4,5,6,7'
+z.e                                   // 4
+z.s                                   // -1
+ + + +

Zero, NaN and Infinity

+

+ The table below shows how ±0, NaN and + ±Infinity are stored. +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ces
±0[0]0±1
NaNnullnullnull
±Infinitynullnull±1
+
+x = new Number(-0)              // 0
+1 / x == -Infinity              // true
+
+y = new BigNumber(-0)           // '0'
+y.c                             // '0' ( [0].toString() )
+y.e                             // 0
+y.s                             // -1
+ + + +

Errors

+

The table below shows the errors that are thrown.

+

+ The errors are generic Error objects whose message begins + '[BigNumber Error]'. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodThrows
+ BigNumber
+ comparedTo
+ dividedBy
+ dividedToIntegerBy
+ isEqualTo
+ isGreaterThan
+ isGreaterThanOrEqualTo
+ isLessThan
+ isLessThanOrEqualTo
+ minus
+ modulo
+ plus
+ multipliedBy +
Base not a primitive number
Base not an integer
Base out of range
Number primitive has more than 15 significant digits*
Not a base... number*
Not a number*
cloneObject expected
configObject expected
DECIMAL_PLACES not a primitive number
DECIMAL_PLACES not an integer
DECIMAL_PLACES out of range
ROUNDING_MODE not a primitive number
ROUNDING_MODE not an integer
ROUNDING_MODE out of range
EXPONENTIAL_AT not a primitive number
EXPONENTIAL_AT not an integer
EXPONENTIAL_AT out of range
RANGE not a primitive number
RANGE not an integer
RANGE cannot be zero
RANGE cannot be zero
CRYPTO not true or false
crypto unavailable
MODULO_MODE not a primitive number
MODULO_MODE not an integer
MODULO_MODE out of range
POW_PRECISION not a primitive number
POW_PRECISION not an integer
POW_PRECISION out of range
FORMAT not an object
ALPHABET invalid
+ decimalPlaces
+ precision
+ random
+ shiftedBy
+ toExponential
+ toFixed
+ toFormat
+ toPrecision +
Argument not a primitive number
Argument not an integer
Argument out of range
+ decimalPlaces
+ precision +
Argument not true or false
exponentiatedByArgument not an integer
isBigNumberInvalid BigNumber*
+ minimum
+ maximum +
Not a number*
+ random + crypto unavailable
+ toFormat + Argument not an object
toFractionArgument not an integer
Argument out of range
toStringBase not a primitive number
Base not an integer
Base out of range
+

*Only thrown if BigNumber.DEBUG is true.

+

To determine if an exception is a BigNumber Error:

+
+try {
+  // ...
+} catch (e) {
+  if (e instanceof Error && e.message.indexOf('[BigNumber Error]') === 0) {
+      // ...
+  }
+}
+ + + +

Type coercion

+

+ To prevent the accidental use of a BigNumber in primitive number operations, or the + accidental addition of a BigNumber to a string, the valueOf method can be safely + overwritten as shown below. +

+

+ The valueOf method is the same as the + toJSON method, and both are the same as the + toString method except they do not take a base + argument and they include the minus sign for negative zero. +

+
+BigNumber.prototype.valueOf = function () {
+  throw Error('valueOf called!')
+}
+
+x = new BigNumber(1)
+x / 2                    // '[BigNumber Error] valueOf called!'
+x + 'abc'                // '[BigNumber Error] valueOf called!'
+
+ + + +

FAQ

+ +
Why are trailing fractional zeros removed from BigNumbers?
+

+ Some arbitrary-precision libraries retain trailing fractional zeros as they can indicate the + precision of a value. This can be useful but the results of arithmetic operations can be + misleading. +

+
+x = new BigDecimal("1.0")
+y = new BigDecimal("1.1000")
+z = x.add(y)                      // 2.1000
+
+x = new BigDecimal("1.20")
+y = new BigDecimal("3.45000")
+z = x.multiply(y)                 // 4.1400000
+

+ To specify the precision of a value is to specify that the value lies + within a certain range. +

+

+ In the first example, x has a value of 1.0. The trailing zero shows + the precision of the value, implying that it is in the range 0.95 to + 1.05. Similarly, the precision indicated by the trailing zeros of y + indicates that the value is in the range 1.09995 to 1.10005. +

+

+ If we add the two lowest values in the ranges we have, 0.95 + 1.09995 = 2.04995, + and if we add the two highest values we have, 1.05 + 1.10005 = 2.15005, so the + range of the result of the addition implied by the precision of its operands is + 2.04995 to 2.15005. +

+

+ The result given by BigDecimal of 2.1000 however, indicates that the value is in + the range 2.09995 to 2.10005 and therefore the precision implied by + its trailing zeros may be misleading. +

+

+ In the second example, the true range is 4.122744 to 4.157256 yet + the BigDecimal answer of 4.1400000 indicates a range of 4.13999995 + to 4.14000005. Again, the precision implied by the trailing zeros may be + misleading. +

+

+ This library, like binary floating point and most calculators, does not retain trailing + fractional zeros. Instead, the toExponential, toFixed and + toPrecision methods enable trailing zeros to be added if and when required.
+

+
+ + + diff --git a/data_node_red/node_modules/bignumber.js/package.json b/data_node_red/node_modules/bignumber.js/package.json new file mode 100644 index 0000000..ae4087e --- /dev/null +++ b/data_node_red/node_modules/bignumber.js/package.json @@ -0,0 +1,69 @@ +{ + "_from": "bignumber.js@9.0.0", + "_id": "bignumber.js@9.0.0", + "_inBundle": false, + "_integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "_location": "/bignumber.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bignumber.js@9.0.0", + "name": "bignumber.js", + "escapedName": "bignumber.js", + "rawSpec": "9.0.0", + "saveSpec": null, + "fetchSpec": "9.0.0" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "_shasum": "805880f84a329b5eac6e7cb6f8274b6d82bdf075", + "_spec": "bignumber.js@9.0.0", + "_where": "/data/node_modules/mysql", + "author": { + "name": "Michael Mclaughlin", + "email": "M8ch88l@gmail.com" + }, + "browser": "bignumber.js", + "bugs": { + "url": "https://github.com/MikeMcl/bignumber.js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A library for arbitrary-precision decimal and non-decimal arithmetic", + "engines": { + "node": "*" + }, + "homepage": "https://github.com/MikeMcl/bignumber.js#readme", + "keywords": [ + "arbitrary", + "precision", + "arithmetic", + "big", + "number", + "decimal", + "float", + "biginteger", + "bigdecimal", + "bignumber", + "bigint", + "bignum" + ], + "license": "MIT", + "main": "bignumber", + "module": "bignumber.mjs", + "name": "bignumber.js", + "repository": { + "type": "git", + "url": "git+https://github.com/MikeMcl/bignumber.js.git" + }, + "scripts": { + "build": "uglifyjs bignumber.js --source-map -c -m -o bignumber.min.js", + "test": "node test/test" + }, + "types": "bignumber.d.ts", + "version": "9.0.0" +} diff --git a/data_node_red/node_modules/blob/.idea/blob.iml b/data_node_red/node_modules/blob/.idea/blob.iml new file mode 100644 index 0000000..0b872d8 --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/blob.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml b/data_node_red/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..0eefe32 --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/markdown-navigator.xml b/data_node_red/node_modules/blob/.idea/markdown-navigator.xml new file mode 100644 index 0000000..24281af --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/markdown-navigator.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml b/data_node_red/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml new file mode 100644 index 0000000..9c51dfe --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/modules.xml b/data_node_red/node_modules/blob/.idea/modules.xml new file mode 100644 index 0000000..a24a2af --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/vcs.xml b/data_node_red/node_modules/blob/.idea/vcs.xml new file mode 100644 index 0000000..9661ac7 --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/blob/.idea/workspace.xml b/data_node_red/node_modules/blob/.idea/workspace.xml new file mode 100644 index 0000000..31e803b --- /dev/null +++ b/data_node_red/node_modules/blob/.idea/workspace.xml @@ -0,0 +1,390 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + esprima-six + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( typeof elem.contentDocument !== "undefined" ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + } ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + // Support: IE 9-11 only + // Also use offsetWidth/offsetHeight for when box sizing is unreliable + // We use getClientRects() to check for hidden/disconnected. + // In those cases, the computed value can be trusted to be border-box + if ( ( !support.boxSizingReliable() && isBorderBox || + val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url, options ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " +``` + +#### Babel + +[Babel](https://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. + +```js +import $ from "jquery"; +``` + +#### Browserify/Webpack + +There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documentation. In the script, including jQuery will usually look like this... + +```js +var $ = require( "jquery" ); +``` + +#### AMD (Asynchronous Module Definition) + +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](https://requirejs.org/docs/whyamd.html). + +```js +define( [ "jquery" ], function( $ ) { + +} ); +``` + +### Node + +To include jQuery in [Node](https://nodejs.org/), first install with npm. + +```sh +npm install jquery +``` + +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/jsdom/jsdom). This can be useful for testing purposes. + +```js +const { JSDOM } = require( "jsdom" ); +const { window } = new JSDOM( "" ); +const $ = require( "jquery" )( window ); +``` diff --git a/data_node_red/node_modules/jquery/bower.json b/data_node_red/node_modules/jquery/bower.json new file mode 100644 index 0000000..95798d5 --- /dev/null +++ b/data_node_red/node_modules/jquery/bower.json @@ -0,0 +1,14 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ] +} \ No newline at end of file diff --git a/data_node_red/node_modules/jquery/dist/jquery.js b/data_node_red/node_modules/jquery/dist/jquery.js new file mode 100644 index 0000000..fc6c299 --- /dev/null +++ b/data_node_red/node_modules/jquery/dist/jquery.js @@ -0,0 +1,10881 @@ +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.6 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2021-02-16 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " +``` + +Once you have done that then you can also use them more generally, for example +``` + +``` + +You may also create your own set of icons using [Icofont](https://icofont.com/icons). Once downloaded you can serve them locally via Node-RED and add them to the head of the dashboard page by using a ui_template node : e.g. + +``` + +``` +then you can use then as per above by adding the icofont- prefix e.g. `icofont-badge` + +Or just use them in a template + +``` + +
+ +
+``` + + And finally via an image - https://{myserver/path/image.png} + +You can use them in any of the Icon fields. You may also be able to use some of them for example in labels via their inline style eg `` + + +## Loading the Dashboard + +Due to the size of the dashboard libraries it can take a long time to load if you are running on wireless network. It is possible add a custom loading page if you wish. To do so add a file called `loading.html` to the `node_modules/node-red-dashboard/dist/` folder. A simple example could be + +``` +
+ ``` + +## Securing the Dashboard + +You can use the `httpNodeAuth` property in your Node-RED settings.js file to secure the Dashboard as it is +created the same way as other HTTP nodes are. The details can be found at the bottom of this page in the +docs + +## Multiple Users + +This Dashboard does NOT support multiple individual users. It is a view of the status of the underlying +Node-RED flow, which itself is single user. If the state of the flow changes then all clients will get +notified of that change. + +Messages coming from the dashboard **do** have a `msg.socketid`, and updates like change of tab, +notifications, and audio alerts will be directed only to that session. Delete the `msg.sessionid` to send +to all sessions. + +## Discussions and suggestions + +Use the Node-RED Discourse Forum: https://discourse.nodered.org/c/dashboard +or the Dashboard-ui channel in Slack to ask +questions or to discuss new features. + +The current work in progress list is shown in the + Github Project. + +## Contributing + +Before raising a pull-request, please read our +[contributing guide](https://github.com/node-red/node-red-dashboard/blob/master/CONTRIBUTING.md). + +This project adheres to the [Contributor Covenant 1.4](http://contributor-covenant.org/version/1/4/). +By participating, you are expected to uphold this code. Please report unacceptable +behavior to any of the [project's core team](https://github.com/orgs/node-red/teams/core). + +## Developers + +``` +cd ~\.node-red\node_modules +git clone https://github.com/node-red/node-red-dashboard.git +cd node-red-dashboard +npm install +``` +The plugin uses the ```dist``` folder if it exists. Make sure it has been deleted if you want to use the non-minified version while developing. +After finishing changes to the front-end code in the src folder, you can use ```gulp``` to update and rebuild the minified files and update the *appcache* manifest. + + gulp + +We also have suggested *lint* and *js* styles that can be checked with: + + gulp lint + gulp jscs + +If submitting a Pull Request (PR) please do NOT include the minified `/dist` files. + +Thank you. + + diff --git a/data_node_red/node_modules/node-red-dashboard/config-fields.md b/data_node_red/node_modules/node-red-dashboard/config-fields.md new file mode 100644 index 0000000..5420d06 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/config-fields.md @@ -0,0 +1,77 @@ + +## UI Widget configuration via msg.ui_control + +The following configuration properties of ui widget nodes can be set by using a `msg.ui_control` property on a msg. +Multiple properties of the node can be set at the same time. For example you can use a change +node to set msg.ui_control to JSON `{ "min":10, "max":50 }` + +**Note**: It is still recommended that nodes are configured via the editor in order to preset the default values. + +|widget |property |type | notes / example +|--- |--- |--- |--- +|ui_button |color |string | not needed +| |bgcolor |string | not needed +| |icon |string | on refresh +| |format |string | not needed +| |tooltip |string | on refresh +|ui_chart |look |string |"line","bar","horizontalBar","pie","polar-area","radar" +| |legend |boolean |  +| |interpolate |string |"linear","step","bezier" +| |nodata |string |  +| |ymin |number |  +| |ymax |number |  +| |dot |boolean |  +| |xformat |string |"HH:mm:ss" +| |cutout |number |  +| |colors |object | n/a +| |useOneColor |boolean | n/a +| |spanGaps |boolean | n/a +| |animation |string | (Note 1), {duration:1000, easing:"easeInOutSine"} +| |options |object | (Note 2), {scales: {yAxes: [{ticks: {fontSize: 20}}]}} +|ui_colour_picker |format |string | on refresh +| |showPicker |boolean | on refresh +| |showSwatch |boolean | on refresh +| |showValue |boolean | on refresh +| |showAlpha |boolean | on refresh +| |showLightness |boolean | on refresh +|ui_dropdown |place |string |"placeholder text" +| |options |array |[{"label":"foo","value":"0","type":"str"}] +|ui_gauge |gtype |string |"gage", "donut", "compass", "wave" +| |min |number |  +| |seg1 |number |segment 1 limit +| |seg2 |number |segment 2 limit +| |max |number |  +| |colors |array |["blue","#00ff00","#f00"] +| |options |object |(see Note 3 below) +|ui_numeric |min |number |  +| |max |number |  +| |step |number |  +| |format |string |"{{value}}" +|ui_slider |min |number |  +| |max |number |  +| |step |number |  +|ui_switch |onicon |string | all or nothing +| |officon |string | all or nothing +| |oncolor |string | all or nothing +| |offcolor |string | all or nothing +|ui_template |format |string | the script +| |templateScope |string | "local" or "global" +|ui_text |format |string |"{{value}}" +| |layout |string | "row-left", "row-right", etc +|ui_text_input |mode |string | "text", "email", "password", "color" +| |delay |number |  + +**Notes**: + + 1. See http://easings.net/ for examples of easings for chart animation. + + 2. The chart can take many of the angular-chartjs options for changing axes label, scales etc + + 3. The gauge options can accept any of the [Justgage parameters](https://github.com/toorshia/justgage/blob/master/justgage.js#L42) for example: + + {"options":{"pointer":false,"gaugeWidthScale":1.5}} + {"options":{"pointer":true,"gaugeWidthScale":0.4,"reverse":true}} + +Likewise the Wave type gauge can accept [liquidfillgauge config](http://bl.ocks.org/brattonc/5e5ce9beee483220e2f6) options for example: + + {options:{circleColor:"#FF7777", textColor:"#FF4444", waveTextColor:"#FFAAAA", waveColor:"#FFDDDD", circleThickness:0.3, textVertPosition:0.2, waveHeight:0.05, waveCount:8}} diff --git a/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.css b/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.css new file mode 100644 index 0000000..91f8fd8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.css @@ -0,0 +1,32730 @@ +/* */ +/* Copyright 2016,2020 JS Foundation and other contributors, https://js.foundation/ */ +/* Copyright 2016 IBM Corp. */ +/* Copyright 2015 Andrei Tatar */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* */ +/*! + * AngularJS Material Design + * https://github.com/angular/material + * @license MIT + * v1.2.2 + */ + +body, +html { + height: 100%; + position: relative; +} + +body { + margin: 0; + padding: 0; +} + +[tabindex="-1"]:focus { + outline: none; +} + +.inset { + padding: 10px; +} + +a.md-no-style, +button.md-no-style { + font-weight: 400; + background-color: inherit; + text-align: left; + border: none; + padding: 0; + margin: 0; +} + +button, +input, +select, +textarea { + vertical-align: baseline; +} + +button, +html input[type=button], +input[type=reset], +input[type=submit] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[type=button][disabled], +input[type=reset][disabled], +input[type=submit][disabled] { + cursor: default; +} + +textarea { + vertical-align: top; + overflow: auto; +} + +input[type=search] { + -webkit-appearance: textfield; + box-sizing: content-box; + -webkit-box-sizing: content-box; +} + +input[type=search]::-webkit-search-cancel-button, +input[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +input:-webkit-autofill { + text-shadow: none; +} + +.md-visually-hidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + text-transform: none; + width: 1px; +} + +.md-shadow { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + border-radius: inherit; + pointer-events: none; +} + +.md-shadow-bottom-z-1 { + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); +} + +.md-shadow-bottom-z-2 { + box-shadow: 0 4px 8px 0 rgba(0,0,0,.4); +} + +.md-shadow-animated.md-shadow { + transition: box-shadow .28s cubic-bezier(.4,0,.2,1); +} + +.md-ripple-container { + pointer-events: none; + position: absolute; + overflow: hidden; + left: 0; + top: 0; + width: 100%; + height: 100%; + transition: all .55s cubic-bezier(.25,.8,.25,1); +} + +.md-ripple { + position: absolute; + transform: translate(-50%,-50%) scale(0); + transform-origin: 50% 50%; + opacity: 0; + border-radius: 50%; +} + +.md-ripple.md-ripple-placed { + transition: margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1); +} + +.md-ripple.md-ripple-scaled { + transform: translate(-50%,-50%) scale(1); +} + +.md-ripple.md-ripple-active, +.md-ripple.md-ripple-full, +.md-ripple.md-ripple-visible { + opacity: .2; +} + +.md-ripple.md-ripple-remove { + -webkit-animation: md-remove-ripple .9s cubic-bezier(.25,.8,.25,1); + animation: md-remove-ripple .9s cubic-bezier(.25,.8,.25,1); +} + +@-webkit-keyframes md-remove-ripple { + 0% { + opacity: .15; + } + + to { + opacity: 0; + } +} + +@keyframes md-remove-ripple { + 0% { + opacity: .15; + } + + to { + opacity: 0; + } +} + +.md-padding { + padding: 8px; +} + +.md-margin { + margin: 8px; +} + +.md-scroll-mask { + position: absolute; + background-color: transparent; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 50; +} + +.md-scroll-mask>.md-scroll-mask-bar { + display: block; + position: absolute; + background-color: #fafafa; + right: 0; + top: 0; + bottom: 0; + z-index: 65; + box-shadow: inset 0 0 1px rgba(0,0,0,.3); +} + +.md-no-momentum { + -webkit-overflow-scrolling: auto; +} + +.md-no-flicker { + -webkit-filter: blur(0); +} + +@media (min-width:960px) { + .md-padding { + padding: 16px; + } +} + +body[dir=ltr], +body[dir=rtl], +html[dir=ltr], +html[dir=rtl] { + unicode-bidi: embed; +} + +bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; +} + +bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; +} + +@media (max-width:599px) { + .layout-row:not(.layout-xs-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-xs-row>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 16px; + } + + [dir=rtl] .layout-row:not(.layout-xs-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-xs-row>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 0; + margin-right: 16px; + } +} + +@media (min-width:600px) and (max-width:959px) { + .layout-gt-xs-row:not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-row:not(.layout-gt-xs-column):not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-sm-row:not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 16px; + } + + [dir=rtl] .layout-gt-xs-row:not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-row:not(.layout-gt-xs-column):not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-sm-row:not(.layout-sm-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 0; + margin-right: 16px; + } +} + +@media (min-width:960px) and (max-width:1279px) { + .layout-gt-sm-row:not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-md-row:not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 16px; + } + + [dir=rtl] .layout-gt-sm-row:not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-md-row:not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-md-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 0; + margin-right: 16px; + } +} + +@media (min-width:1280px) and (max-width:1919px) { + .layout-gt-md-row:not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-lg-row:not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 16px; + } + + [dir=rtl] .layout-gt-md-row:not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-lg-row:not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 0; + margin-right: 16px; + } +} + +@media (min-width:1920px) { + .layout-gt-lg-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-md-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + .layout-xl-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 16px; + } + + [dir=rtl] .layout-gt-lg-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-md-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child), + [dir=rtl] .layout-xl-row:not(.layout-gt-lg-column):not(.layout-xl-column)>.md-auto-horizontal-margin:not(:first-child) { + margin-left: 0; + margin-right: 16px; + } +} + +body, +html { + -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-touch-callout: default; + min-height: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.md-display-4 { + font-size: 112px; + font-weight: 300; + letter-spacing: -.01em; + line-height: 112px; +} + +.md-display-3 { + font-size: 56px; + font-weight: 400; + letter-spacing: -.005em; + line-height: 56px; +} + +.md-display-2 { + font-size: 45px; + font-weight: 400; + line-height: 64px; +} + +.md-display-1 { + font-size: 34px; + font-weight: 400; + line-height: 40px; +} + +.md-headline { + font-size: 24px; + font-weight: 400; + line-height: 32px; +} + +.md-title { + font-size: 20px; + font-weight: 500; + letter-spacing: .005em; +} + +.md-subhead { + font-size: 16px; + line-height: 24px; +} + +.md-body-1, +.md-subhead { + font-weight: 400; + letter-spacing: .01em; +} + +.md-body-1 { + font-size: 14px; + line-height: 20px; +} + +.md-body-2 { + font-size: 14px; + font-weight: 500; + letter-spacing: .01em; + line-height: 24px; +} + +.md-caption { + font-size: 12px; + letter-spacing: .02em; +} + +.md-button { + letter-spacing: .01em; +} + +button, +html, +input, +select, +textarea { + font-family: Roboto,Helvetica Neue,sans-serif; +} + +button, +input, +select, +textarea { + font-size: 100%; +} + +.md-panel-outer-wrapper { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} + +.md-panel-inner-wrapper { + position: fixed; +} + +._md-panel-offscreen { + left: -9999px; +} + +._md-panel-hidden { + display: none; +} + +._md-panel-shown .md-panel { + opacity: 1; + transition: none; +} + +.md-panel { + opacity: 0; + position: relative; +} + +.md-panel._md-panel-shown { + opacity: 1; + transition: none; +} + +.md-panel._md-panel-animate-enter { + opacity: 1; + transition: all .3s cubic-bezier(0,0,.2,1); +} + +.md-panel._md-panel-animate-leave { + opacity: 1; + transition: all .3s cubic-bezier(.4,0,1,1); +} + +.md-panel._md-panel-animate-fade-out, +.md-panel._md-panel-animate-scale-out { + opacity: 0; +} + +.md-panel._md-panel-backdrop { + height: 100%; + position: fixed; + width: 100%; +} + +.md-panel._md-opaque-enter { + opacity: .48; + transition: opacity .3s cubic-bezier(0,0,.2,1); +} + +.md-panel._md-opaque-leave { + transition: opacity .3s cubic-bezier(.4,0,1,1); +} + +._md-panel-fullscreen { + border-radius: 0; + left: 0; + min-height: 100%; + min-width: 100%; + position: fixed; + top: 0; +} + +md-autocomplete { + border-radius: 2px; + display: block; + height: 40px; + position: relative; + overflow: visible; + min-width: 190px; +} + +md-autocomplete[disabled] input { + cursor: default; +} + +md-autocomplete[md-floating-label] { + border-radius: 0; + background: transparent; + height: auto; +} + +md-autocomplete[md-floating-label] md-input-container { + padding-bottom: 0; +} + +md-autocomplete[md-floating-label] md-autocomplete-wrap { + height: auto; +} + +md-autocomplete[md-floating-label] .md-show-clear-button button { + display: block; + position: absolute; + right: 0; + top: 20px; + width: 30px; + height: 30px; +} + +md-autocomplete[md-floating-label] .md-show-clear-button input { + padding-right: 30px; +} + +[dir=rtl] md-autocomplete[md-floating-label] .md-show-clear-button input { + padding-right: 0; + padding-left: 30px; +} + +md-autocomplete md-autocomplete-wrap { + display: flex; + flex-direction: row; + box-sizing: border-box; + position: relative; + overflow: visible; + height: 40px; +} + +md-autocomplete md-autocomplete-wrap.md-menu-showing { + z-index: 51; +} + +md-autocomplete md-autocomplete-wrap input, +md-autocomplete md-autocomplete-wrap md-input-container { + flex: 1 1 0; + box-sizing: border-box; + min-width: 0; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear { + position: absolute; + bottom: -2px; + left: 0; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline { + bottom: 40px; + right: 2px; + left: 2px; + width: auto; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 3px; + transition: none; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container { + transition: none; + height: 3px; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter { + transition: opacity .15s linear; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active { + opacity: 1; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave { + transition: opacity .15s linear; +} + +md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active { + opacity: 0; +} + +md-autocomplete input:not(.md-input) { + font-size: 14px; + box-sizing: border-box; + border: none; + box-shadow: none; + outline: none; + background: transparent; + width: 100%; + padding: 0 15px; + line-height: 40px; + height: 40px; +} + +md-autocomplete input:not(.md-input)::-ms-clear { + display: none; +} + +md-autocomplete .md-show-clear-button button { + position: relative; + line-height: 20px; + text-align: center; + width: 30px; + height: 30px; + cursor: pointer; + border: none; + border-radius: 50%; + padding: 0; + font-size: 12px; + background: transparent; + margin: auto 5px; +} + +md-autocomplete .md-show-clear-button button:after { + content: ""; + position: absolute; + top: -6px; + right: -6px; + bottom: -6px; + left: -6px; + border-radius: 50%; + transform: scale(0); + opacity: 0; + transition: all .4s cubic-bezier(.25,.8,.25,1); +} + +md-autocomplete .md-show-clear-button button:focus { + outline: none; +} + +md-autocomplete .md-show-clear-button button:focus:after { + transform: scale(1); + opacity: 1; +} + +md-autocomplete .md-show-clear-button button md-icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate3d(-50%,-50%,0) scale(.9); +} + +md-autocomplete .md-show-clear-button button md-icon path { + stroke-width: 0; +} + +md-autocomplete .md-show-clear-button button.ng-enter { + transform: scale(0); + transition: transform .15s ease-out; +} + +md-autocomplete .md-show-clear-button button.ng-enter.ng-enter-active { + transform: scale(1); +} + +md-autocomplete .md-show-clear-button button.ng-leave { + transition: transform .15s ease-out; +} + +md-autocomplete .md-show-clear-button button.ng-leave.ng-leave-active { + transform: scale(0); +} + +@media screen and (-ms-high-contrast:active) { + md-autocomplete input { + border: 1px solid #fff; + } + + md-autocomplete .md-autocomplete-suggestion:focus { + color: #fff; + } +} + +.md-standard-list-container.md-autocomplete-suggestions-container, +.md-virtual-repeat-container.md-autocomplete-suggestions-container { + position: absolute; + box-shadow: 0 2px 5px rgba(0,0,0,.25); + z-index: 100; + height: 100%; +} + +.md-standard-list-container.md-autocomplete-suggestions-container .highlight, +.md-virtual-repeat-container.md-autocomplete-suggestions-container .highlight { + font-weight: 700; +} + +.md-standard-list-container { + box-sizing: border-box; + display: block; + margin: 0; + overflow: hidden; + overflow-y: auto; + padding: 0; +} + +.md-standard-list-container.md-not-found, +.md-virtual-repeat-container.md-not-found { + height: 48px; +} + +.md-autocomplete-suggestions { + margin: 0; + list-style: none; + padding: 0; +} + +.md-autocomplete-suggestions .md-autocomplete-suggestion { + font-size: 14px; + overflow: hidden; + padding: 0 15px; + line-height: 48px; + height: 48px; + transition: background .15s linear; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; +} + +.md-autocomplete-suggestions .md-autocomplete-suggestion:focus { + outline: none; +} + +.md-autocomplete-suggestions .md-autocomplete-suggestion:not(.md-not-found-wrapper) { + cursor: pointer; +} + +@media screen and (-ms-high-contrast:active) { + .md-autocomplete-suggestions, + md-autocomplete { + border: 1px solid #fff; + } +} + +md-backdrop { + transition: opacity .45s; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 50; +} + +md-backdrop.md-menu-backdrop { + position: fixed!important; + z-index: 99; +} + +md-backdrop.md-select-backdrop { + z-index: 81; + transition-duration: 0; +} + +md-backdrop.md-dialog-backdrop { + z-index: 79; +} + +md-backdrop.md-bottom-sheet-backdrop { + z-index: 69; +} + +md-backdrop.md-sidenav-backdrop { + z-index: 59; +} + +md-backdrop.md-click-catcher { + position: absolute; +} + +md-backdrop.md-opaque { + opacity: .48; +} + +md-backdrop.md-opaque.ng-enter { + opacity: 0; +} + +md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active { + opacity: .48; +} + +md-backdrop.md-opaque.ng-leave { + opacity: .48; + transition: opacity .4s; +} + +md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active { + opacity: 0; +} + +md-bottom-sheet { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 8px 16px 88px; + z-index: 70; + border-top-width: 1px; + border-top-style: solid; + transform: translate3d(0,80px,0); + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-property: transform; +} + +md-bottom-sheet.md-has-header { + padding-top: 0; +} + +md-bottom-sheet.ng-enter { + opacity: 0; + transform: translate3d(0,100%,0); +} + +md-bottom-sheet.ng-enter-active { + opacity: 1; + display: block; + transform: translate3d(0,80px,0)!important; +} + +md-bottom-sheet.ng-leave-active { + transform: translate3d(0,100%,0)!important; + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-bottom-sheet .md-subheader { + background-color: transparent; + font-family: Roboto,Helvetica Neue,sans-serif; + line-height: 56px; + padding: 0; + white-space: nowrap; +} + +md-bottom-sheet md-inline-icon { + display: inline-block; + height: 24px; + width: 24px; + fill: #444; +} + +md-bottom-sheet md-list-item { + display: flex; + outline: none; +} + +md-bottom-sheet md-list-item:hover { + cursor: pointer; +} + +md-bottom-sheet.md-list md-list-item { + padding: 0; + align-items: center; + height: 48px; +} + +md-bottom-sheet.md-grid { + padding-left: 24px; + padding-right: 24px; + padding-top: 0; +} + +md-bottom-sheet.md-grid md-list { + display: flex; + flex-direction: row; + flex-wrap: wrap; + transition: all .5s; + align-items: center; +} + +md-bottom-sheet.md-grid md-list-item { + flex-direction: column; + align-items: center; + transition: all .5s; + height: 96px; + margin-top: 8px; + margin-bottom: 8px; +} + +@media (max-width:960px) { + md-bottom-sheet.md-grid md-list-item { + flex: 1 1 33.33333%; + max-width: 33.33333%; + } + + md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1) { + align-items: flex-start; + } + + md-bottom-sheet.md-grid md-list-item:nth-of-type(3n) { + align-items: flex-end; + } +} + +@media (min-width:960px) and (max-width:1279px) { + md-bottom-sheet.md-grid md-list-item { + flex: 1 1 25%; + max-width: 25%; + } +} + +@media (min-width:1280px) and (max-width:1919px) { + md-bottom-sheet.md-grid md-list-item { + flex: 1 1 16.66667%; + max-width: 16.66667%; + } +} + +@media (min-width:1920px) { + md-bottom-sheet.md-grid md-list-item { + flex: 1 1 14.28571%; + max-width: 14.28571%; + } +} + +md-bottom-sheet.md-grid md-list-item:before { + display: none; +} + +md-bottom-sheet.md-grid md-list-item .md-list-item-content { + display: flex; + flex-direction: column; + align-items: center; + width: 48px; + padding-bottom: 16px; +} + +md-bottom-sheet.md-grid md-list-item .md-grid-item-content { + border: 1px solid transparent; + display: flex; + flex-direction: column; + align-items: center; + width: 80px; +} + +md-bottom-sheet.md-grid md-list-item .md-grid-text { + font-weight: 400; + line-height: 16px; + font-size: 13px; + margin: 0; + white-space: nowrap; + width: 64px; + text-align: center; + text-transform: none; + padding-top: 8px; +} + +@media screen and (-ms-high-contrast:active) { + md-bottom-sheet { + border: 1px solid #fff; + } +} + +button.md-button::-moz-focus-inner { + border: 0; +} + +.md-button { + display: inline-block; + position: relative; + cursor: pointer; + min-height: 36px; + min-width: 88px; + line-height: 36px; + vertical-align: middle; + align-items: center; + text-align: center; + border-radius: 2px; + box-sizing: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none; + border: 0; + padding: 0 8px; + margin: 6px 8px; + background: transparent; + color: currentColor; + white-space: nowrap; + text-transform: uppercase; + font-weight: 500; + font-size: 14px; + font-style: inherit; + font-variant: inherit; + font-family: inherit; + text-decoration: none; + overflow: hidden; + transition: box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1); +} + +.md-dense :not(.md-dense-disabled) .md-button:not(.md-dense-disabled), +.md-dense>.md-button:not(.md-dense-disabled) { + min-height: 32px; +} + +.md-dense :not(.md-dense-disabled) .md-button:not(.md-dense-disabled), +.md-dense>.md-button:not(.md-dense-disabled) { + line-height: 32px; +} + +.md-dense :not(.md-dense-disabled) .md-button:not(.md-dense-disabled), +.md-dense>.md-button:not(.md-dense-disabled) { + font-size: 13px; +} + +.md-button:focus { + outline: none; +} + +.md-button:focus, +.md-button:hover { + text-decoration: none; +} + +.md-button.ng-hide, +.md-button.ng-leave { + transition: none; +} + +.md-button.md-cornered { + border-radius: 0; +} + +.md-button.md-icon { + padding: 0; + background: none; +} + +.md-button.md-raised:not([disabled]) { + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); +} + +.md-button.md-icon-button { + margin: 0 6px; + height: 40px; + min-width: 0; + line-height: 24px; + padding: 8px; + width: 40px; + border-radius: 50%; +} + +.md-button.md-fab { + z-index: 20; + line-height: 56px; + min-width: 0; + width: 56px; + height: 56px; + vertical-align: middle; + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); + border-radius: 50%; + background-clip: padding-box; + overflow: hidden; + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-property: background-color,box-shadow,transform; +} + +.md-button.md-fab.md-fab-bottom-right { + top: auto; + right: 20px; + bottom: 20px; + left: auto; + position: absolute; +} + +.md-button.md-fab.md-fab-bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; + position: absolute; +} + +.md-button.md-fab.md-fab-top-right { + top: 20px; + right: 20px; + bottom: auto; + left: auto; + position: absolute; +} + +.md-button.md-fab.md-fab-top-left { + top: 20px; + right: auto; + bottom: auto; + left: 20px; + position: absolute; +} + +.md-button.md-fab.md-mini { + line-height: 40px; + width: 40px; + height: 40px; +} + +.md-button.md-fab.ng-hide, +.md-button.md-fab.ng-leave { + transition: none; +} + +.md-button.md-fab[disabled] { + box-shadow: none; +} + +.md-button:not([disabled]).md-fab.md-focused, +.md-button:not([disabled]).md-raised.md-focused { + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); +} + +.md-button:not([disabled]).md-fab:active, +.md-button:not([disabled]).md-raised:active { + box-shadow: 0 4px 8px 0 rgba(0,0,0,.4); +} + +.md-button .md-ripple-container { + border-radius: inherit; + background-clip: padding-box; + overflow: hidden; + -webkit-transform: translateZ(0); +} + +.md-button.md-icon-button md-icon, +button.md-button.md-fab md-icon { + display: block; +} + +.md-toast-open-top .md-button.md-fab-top-left, +.md-toast-open-top .md-button.md-fab-top-right { + transition: all .4s cubic-bezier(.25,.8,.25,1); + transform: translate3d(0,42px,0); +} + +.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused, +.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover, +.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused, +.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover { + transform: translate3d(0,41px,0); +} + +.md-toast-open-bottom .md-button.md-fab-bottom-left, +.md-toast-open-bottom .md-button.md-fab-bottom-right { + transition: all .4s cubic-bezier(.25,.8,.25,1); + transform: translate3d(0,-42px,0); +} + +.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused, +.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover, +.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused, +.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover { + transform: translate3d(0,-43px,0); +} + +.md-button-group { + display: flex; + flex: 1; + width: 100%; +} + +.md-button-group>.md-button { + flex: 1; + display: block; + overflow: hidden; + width: 0; + border-width: 1px 0 1px 1px; + border-radius: 0; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; +} + +.md-button-group>.md-button:first-child { + border-radius: 2px 0 0 2px; +} + +.md-button-group>.md-button:last-child { + border-right-width: 1px; + border-radius: 0 2px 2px 0; +} + +@media screen and (-ms-high-contrast:active) { + .md-button.md-fab, + .md-button.md-raised { + border: 1px solid #fff; + } +} + +md-card { + box-sizing: border-box; + display: flex; + flex-direction: column; + margin: 8px; + box-shadow: 0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12); +} + +md-card md-card-header { + padding: 16px; + display: flex; + flex-direction: row; +} + +md-card md-card-header:first-child md-card-avatar { + margin-right: 12px; +} + +[dir=rtl] md-card md-card-header:first-child md-card-avatar { + margin-right: auto; + margin-left: 12px; +} + +md-card md-card-header:last-child md-card-avatar { + margin-left: 12px; +} + +[dir=rtl] md-card md-card-header:last-child md-card-avatar { + margin-left: auto; + margin-right: 12px; +} + +md-card md-card-header md-card-avatar { + width: 40px; + height: 40px; +} + +md-card md-card-header md-card-avatar .md-user-avatar, +md-card md-card-header md-card-avatar md-icon { + border-radius: 50%; +} + +md-card md-card-header md-card-avatar md-icon { + padding: 8px; +} + +md-card md-card-header md-card-avatar md-icon>svg { + height: inherit; + width: inherit; +} + +md-card md-card-header md-card-avatar+md-card-header-text { + max-height: 40px; +} + +md-card md-card-header md-card-avatar+md-card-header-text .md-title { + font-size: 14px; +} + +md-card md-card-header md-card-header-text { + display: flex; + flex: 1; + flex-direction: column; +} + +md-card md-card-header md-card-header-text .md-subhead { + font-size: 14px; +} + +md-card>img, +md-card>md-card-header img, +md-card md-card-title-media img { + box-sizing: border-box; + display: flex; + flex: 0 0 auto; + width: 100%; + height: auto; +} + +md-card md-card-title { + padding: 24px 16px 16px; + display: flex; + flex: 1 1 auto; + flex-direction: row; +} + +md-card md-card-title+md-card-content { + padding-top: 0; +} + +md-card md-card-title md-card-title-text { + flex: 1; + flex-direction: column; + display: flex; +} + +md-card md-card-title md-card-title-text .md-subhead { + padding-top: 0; + font-size: 14px; +} + +md-card md-card-title md-card-title-text:only-child .md-subhead { + padding-top: 12px; +} + +md-card md-card-title md-card-title-media { + margin-top: -8px; +} + +md-card md-card-title md-card-title-media .md-media-sm { + height: 80px; + width: 80px; +} + +md-card md-card-title md-card-title-media .md-media-md { + height: 112px; + width: 112px; +} + +md-card md-card-title md-card-title-media .md-media-lg { + height: 152px; + width: 152px; +} + +md-card md-card-content { + display: block; + padding: 16px; +} + +md-card md-card-content>p:first-child { + margin-top: 0; +} + +md-card md-card-content>p:last-child { + margin-bottom: 0; +} + +md-card md-card-content .md-media-xl { + height: 240px; + width: 240px; +} + +md-card md-card-actions { + margin: 8px; +} + +md-card md-card-actions.layout-column .md-button:not(.md-icon-button) { + margin: 2px 0; +} + +md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type { + margin-top: 0; +} + +md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type { + margin-bottom: 0; +} + +md-card md-card-actions.layout-column .md-button.md-icon-button { + margin-top: 6px; + margin-bottom: 6px; +} + +md-card md-card-actions md-card-icon-actions { + flex: 1; + justify-content: flex-start; + display: flex; + flex-direction: row; +} + +md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button) { + margin: 0 4px; +} + +md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type { + margin-left: 0; +} + +[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type { + margin-left: auto; + margin-right: 0; +} + +md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type { + margin-right: 0; +} + +[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type { + margin-right: auto; + margin-left: 0; +} + +md-card md-card-actions:not(.layout-column) .md-button.md-icon-button { + margin-left: 6px; + margin-right: 6px; +} + +md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type { + margin-left: 12px; +} + +[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type { + margin-left: auto; + margin-right: 12px; +} + +md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type { + margin-right: 12px; +} + +[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type { + margin-right: auto; + margin-left: 12px; +} + +md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions { + flex: 1; + justify-content: flex-end; + display: flex; + flex-direction: row; +} + +md-card md-card-footer { + margin-top: auto; + padding: 16px; +} + +@media screen and (-ms-high-contrast:active) { + md-card { + border: 1px solid #fff; + } +} + +.md-image-no-fill>img { + width: auto; + height: auto; +} + +.md-inline-form md-checkbox { + margin-top: 14px; + margin-bottom: auto; +} + +md-checkbox { + box-sizing: border-box; + display: inline-block; + white-space: nowrap; + cursor: pointer; + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: relative; + min-width: 18px; + min-height: 48px; +} + +.md-dense :not(.md-dense-disabled) md-checkbox:not(.md-dense-disabled), +.md-dense>md-checkbox:not(.md-dense-disabled) { + min-height: 36px; +} + +md-checkbox.md-focused:not([disabled]) .md-container:before { + left: -8px; + top: -8px; + right: -8px; + bottom: -8px; +} + +md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before { + background-color: rgba(0,0,0,.12); +} + +md-checkbox .md-container { + position: absolute; + top: 50%; + transform: translateY(-50%); + box-sizing: border-box; + display: inline-block; + width: 18px; + height: 18px; + left: 0; +} + +[dir=rtl] md-checkbox .md-container { + left: auto; +} + +[dir=rtl] md-checkbox .md-container { + right: 0; +} + +md-checkbox .md-container:before { + box-sizing: border-box; + background-color: transparent; + border-radius: 50%; + content: ""; + position: absolute; + display: block; + height: auto; + left: 0; + top: 0; + right: 0; + bottom: 0; + transition: all .5s; + width: auto; +} + +md-checkbox .md-container:after { + box-sizing: border-box; + content: ""; + position: absolute; + top: -10px; + right: -10px; + bottom: -10px; + left: -10px; +} + +md-checkbox .md-container .md-ripple-container { + position: absolute; + display: block; + width: auto; + height: auto; + left: -15px; + top: -15px; + right: -15px; + bottom: -15px; +} + +md-checkbox .md-icon { + box-sizing: border-box; + transition: .24s; + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + border-width: 2px; + border-style: solid; + border-radius: 2px; +} + +md-checkbox.md-checked .md-icon { + border-color: transparent; +} + +md-checkbox.md-checked .md-icon:after { + box-sizing: border-box; + transform: rotate(45deg); + position: absolute; + left: 4px; + top: 0; + display: table; + width: 6px; + height: 12px; + border-width: 2px; + border-style: solid; + border-top: 0; + border-left: 0; + content: ""; +} + +md-checkbox[disabled] { + cursor: default; +} + +md-checkbox.md-indeterminate .md-icon:after { + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + display: table; + width: 10.8px; + height: 2px; + border-width: 2px; + border-style: solid; + border-top: 0; + border-left: 0; + content: ""; +} + +md-checkbox .md-container { + top: auto; + left: auto; + right: auto; + margin: 21px 3px 3px; +} + +md-checkbox .md-label { + box-sizing: border-box; + position: relative; + display: inline-block; + vertical-align: middle; + white-space: normal; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin-top: 10px; + margin-bottom: auto; + margin-left: 36px; +} + +[dir=rtl] md-checkbox .md-label { + margin-left: 0; + margin-right: 36px; +} + +md-checkbox .md-label:empty { + margin-left: 24px; + margin-right: 0; +} + +[dir=rtl] md-checkbox .md-label:empty { + margin-left: 0; +} + +[dir=rtl] md-checkbox .md-label:empty { + margin-right: 24px; +} + +md-input-container .md-checkbox-link-label { + box-sizing: border-box; + position: relative; + display: inline-block; + vertical-align: middle; + white-space: normal; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + cursor: pointer; + top: -21px; + margin-left: 18px; + margin-right: 0; +} + +[dir=rtl] md-input-container .md-checkbox-link-label { + margin-left: 0; +} + +[dir=rtl] md-input-container .md-checkbox-link-label { + margin-right: 18px; +} + +.md-contact-chips .md-chips md-chip { + padding: 0 25px 0 0; +} + +[dir=rtl] .md-contact-chips .md-chips md-chip { + padding: 0 0 0 25px; +} + +.md-contact-chips .md-chips md-chip .md-contact-avatar { + float: left; +} + +[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar { + float: right; +} + +.md-contact-chips .md-chips md-chip .md-contact-avatar img { + height: 32px; + border-radius: 16px; +} + +.md-contact-chips .md-chips md-chip .md-contact-name { + display: inline-block; + height: 32px; + margin-left: 8px; +} + +[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name { + margin-left: auto; + margin-right: 8px; +} + +.md-contact-suggestion { + height: 56px; +} + +.md-contact-suggestion img { + height: 40px; + border-radius: 20px; + margin-top: 8px; +} + +.md-contact-suggestion .md-contact-name { + margin-left: 8px; + width: 120px; +} + +[dir=rtl] .md-contact-suggestion .md-contact-name { + margin-left: auto; + margin-right: 8px; +} + +.md-contact-suggestion .md-contact-email, +.md-contact-suggestion .md-contact-name { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; +} + +.md-contact-chips-suggestions li { + height: 100%; +} + +.md-chips, +md-chips { + display: flex; +} + +.md-chips { + flex-wrap: wrap; + flex-grow: 1; + font-family: Roboto,Helvetica Neue,sans-serif; + font-size: 13px; + padding: 0 0 8px 3px; + vertical-align: middle; +} + +.md-chips:after { + content: ""; + display: table; + clear: both; +} + +[dir=rtl] .md-chips { + padding: 0 3px 8px 0; +} + +.md-chips.md-readonly .md-chip-input-container { + min-height: 32px; +} + +.md-chips:not(.md-readonly) { + cursor: text; +} + +.md-chips.md-removable md-chip { + padding-right: 28px; +} + +[dir=rtl] .md-chips.md-removable md-chip { + padding-right: 0; + padding-left: 28px; +} + +.md-chips.md-removable md-chip .md-chip-content { + padding-right: 4px; +} + +[dir=rtl] .md-chips.md-removable md-chip .md-chip-content { + padding-right: 0; + padding-left: 4px; +} + +.md-chips md-chip { + cursor: default; + border-radius: 16px; + display: block; + height: 32px; + line-height: 32px; + margin: 8px 8px 0 0; + padding: 0 12px; + float: left; + box-sizing: border-box; + max-width: 100%; + position: relative; +} + +[dir=rtl] .md-chips md-chip { + margin: 8px 0 0 8px; +} + +[dir=rtl] .md-chips md-chip { + float: right; +} + +.md-chips md-chip .md-chip-content { + display: block; + float: left; + white-space: nowrap; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; +} + +[dir=rtl] .md-chips md-chip .md-chip-content { + float: right; +} + +.md-chips md-chip .md-chip-content:focus { + outline: none; +} + +.md-chips md-chip._md-chip-content-edit-is-enabled { + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; +} + +.md-chips md-chip .md-chip-remove-container { + position: absolute; + right: 0; + line-height: 22px; +} + +[dir=rtl] .md-chips md-chip .md-chip-remove-container { + right: auto; + left: 0; +} + +.md-chips md-chip .md-chip-remove { + text-align: center; + width: 32px; + height: 32px; + min-width: 0; + padding: 0; + background: transparent; + border: none; + box-shadow: none; + margin: 0; + position: relative; +} + +.md-chips md-chip .md-chip-remove md-icon { + height: 18px; + width: 18px; + min-height: 18px; + min-width: 18px; + position: absolute; + top: 50%; + left: 50%; + transform: translate3d(-50%,-50%,0); +} + +.md-chips .md-chip-input-container { + display: block; + line-height: 32px; + margin: 8px 8px 0 0; + padding: 0; + flex-grow: 1; + float: left; +} + +[dir=rtl] .md-chips .md-chip-input-container { + margin: 8px 0 0 8px; +} + +[dir=rtl] .md-chips .md-chip-input-container { + float: right; +} + +.md-chips .md-chip-input-container input { + width: 100%; +} + +.md-chips .md-chip-input-container input:not([type]), +.md-chips .md-chip-input-container input[type=email], +.md-chips .md-chip-input-container input[type=number], +.md-chips .md-chip-input-container input[type=tel], +.md-chips .md-chip-input-container input[type=text], +.md-chips .md-chip-input-container input[type=url] { + border: 0; + height: 32px; + line-height: 32px; + padding: 0; +} + +.md-chips .md-chip-input-container input:not([type]):focus, +.md-chips .md-chip-input-container input[type=email]:focus, +.md-chips .md-chip-input-container input[type=number]:focus, +.md-chips .md-chip-input-container input[type=tel]:focus, +.md-chips .md-chip-input-container input[type=text]:focus, +.md-chips .md-chip-input-container input[type=url]:focus { + outline: none; +} + +.md-chips .md-chip-input-container md-autocomplete, +.md-chips .md-chip-input-container md-autocomplete-wrap { + background: transparent; +} + +.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap { + box-shadow: none; +} + +.md-chips .md-chip-input-container input { + border: 0; + height: 32px; + line-height: 32px; + padding: 0; +} + +.md-chips .md-chip-input-container input:focus { + outline: none; +} + +.md-chips .md-chip-input-container md-autocomplete, +.md-chips .md-chip-input-container md-autocomplete-wrap { + height: 32px; +} + +.md-chips .md-chip-input-container md-autocomplete { + box-shadow: none; +} + +.md-chips .md-chip-input-container md-autocomplete input { + position: relative; +} + +.md-chips .md-chip-input-container:not(:first-child) { + margin: 8px 8px 0 0; +} + +[dir=rtl] .md-chips .md-chip-input-container:not(:first-child) { + margin: 8px 0 0 8px; +} + +.md-chips .md-chip-input-container input { + background: transparent; + border-width: 0; +} + +.md-chips md-autocomplete button { + display: none; +} + +@media screen and (-ms-high-contrast:active) { + .md-chip-input-container, + md-chip { + border: 1px solid #fff; + } + + .md-chip-input-container md-autocomplete { + border: none; + } +} + +md-content { + display: block; + position: relative; + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +md-content[md-scroll-y] { + overflow-y: auto; + overflow-x: hidden; +} + +md-content[md-scroll-x] { + overflow-x: auto; + overflow-y: hidden; +} + +@media print { + md-content { + overflow: visible!important; + } +} + +md-calendar { + font-size: 13px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.md-calendar-scroll-mask { + display: inline-block; + overflow: hidden; + height: 308px; +} + +.md-calendar-scroll-mask .md-virtual-repeat-scroller { + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} + +.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar { + display: none; +} + +.md-calendar-scroll-mask .md-virtual-repeat-offsetter { + width: 100%; +} + +.md-calendar-scroll-container { + box-shadow: inset -3px 3px 6px rgba(0,0,0,.2); + display: inline-block; + height: 308px; + width: 346px; +} + +.md-calendar-date { + height: 44px; + width: 44px; + text-align: center; + padding: 0; + border: none; + box-sizing: content-box; +} + +.md-calendar-date:first-child { + padding-left: 16px; +} + +[dir=rtl] .md-calendar-date:first-child { + padding-left: 0; + padding-right: 16px; +} + +.md-calendar-date:last-child { + padding-right: 16px; +} + +[dir=rtl] .md-calendar-date:last-child { + padding-right: 0; + padding-left: 16px; +} + +.md-calendar-date.md-calendar-date-disabled { + cursor: default; +} + +.md-calendar-date-selection-indicator { + transition: background-color,color .4s cubic-bezier(.25,.8,.25,1); + border-radius: 50%; + display: inline-block; + width: 40px; + height: 40px; + line-height: 40px; +} + +.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator { + cursor: pointer; +} + +.md-calendar-month-label { + height: 44px; + font-size: 14px; + font-weight: 500; + padding: 0 0 0 24px; +} + +[dir=rtl] .md-calendar-month-label { + padding: 0 24px 0 0; +} + +.md-calendar-month-label.md-calendar-label-clickable { + cursor: pointer; +} + +.md-calendar-month-label md-icon { + transform: rotate(180deg); +} + +[dir=rtl] .md-calendar-month-label md-icon { + transform: none; +} + +.md-calendar-month-label span { + vertical-align: middle; +} + +.md-calendar-day-header { + table-layout: fixed; + border-spacing: 0; + border-collapse: collapse; +} + +.md-calendar-day-header th { + height: 40px; + width: 44px; + text-align: center; + padding: 0; + border: none; + box-sizing: content-box; + font-weight: 400; +} + +.md-calendar-day-header th:first-child { + padding-left: 16px; +} + +[dir=rtl] .md-calendar-day-header th:first-child { + padding-left: 0; + padding-right: 16px; +} + +.md-calendar-day-header th:last-child { + padding-right: 16px; +} + +[dir=rtl] .md-calendar-day-header th:last-child { + padding-right: 0; + padding-left: 16px; +} + +.md-calendar { + table-layout: fixed; + border-spacing: 0; + border-collapse: collapse; +} + +.md-calendar tr:last-child td { + border-bottom-width: 1px; + border-bottom-style: solid; +} + +.md-calendar:first-child { + border-top: 1px solid transparent; +} + +.md-calendar tbody, +.md-calendar td, +.md-calendar tr { + vertical-align: middle; + box-sizing: content-box; +} + +md-datepicker { + white-space: nowrap; + overflow: hidden; + vertical-align: middle; +} + +.md-inline-form md-datepicker { + margin-top: 12px; +} + +.md-datepicker-button { + display: inline-block; + box-sizing: border-box; + background: none; + vertical-align: middle; + position: relative; +} + +.md-datepicker-button:before { + top: 0; + left: 0; + bottom: 0; + right: 0; + position: absolute; + content: ""; + speak: none; +} + +.md-datepicker-input { + font-size: 14px; + box-sizing: border-box; + border: none; + box-shadow: none; + outline: none; + background: transparent; + min-width: 120px; + max-width: 328px; + padding: 0 0 5px; +} + +.md-datepicker-input::-ms-clear { + display: none; +} + +._md-datepicker-floating-label>md-datepicker { + overflow: visible; +} + +._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container { + border: none; +} + +._md-datepicker-floating-label>md-datepicker .md-datepicker-button { + float: left; + margin-top: -16px; + top: 13.5px; +} + +[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button { + float: right; +} + +._md-datepicker-floating-label .md-input { + float: none; +} + +._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore) { + right: 18px; + left: auto; + width: calc(100% - 84px); +} + +[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore) { + right: auto; +} + +[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore) { + left: 18px; +} + +._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation { + margin-left: 64px; +} + +[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation { + margin-left: auto; + margin-right: 64px; +} + +._md-datepicker-has-triangle-icon { + padding-right: 18px; + margin-right: -18px; +} + +[dir=rtl] ._md-datepicker-has-triangle-icon { + padding-right: 0; + padding-left: 18px; +} + +[dir=rtl] ._md-datepicker-has-triangle-icon { + margin-right: auto; + margin-left: -18px; +} + +.md-datepicker-input-container { + position: relative; + border-bottom-width: 1px; + border-bottom-style: solid; + display: inline-block; + width: auto; +} + +.md-icon-button+.md-datepicker-input-container { + margin-left: 12px; +} + +[dir=rtl] .md-icon-button+.md-datepicker-input-container { + margin-left: auto; + margin-right: 12px; +} + +.md-datepicker-input-container.md-datepicker-focused { + border-bottom-width: 2px; +} + +.md-datepicker-is-showing .md-scroll-mask { + z-index: 99; +} + +.md-datepicker-calendar-pane { + position: absolute; + top: 0; + left: -100%; + z-index: 100; + border-width: 1px; + border-style: solid; + background: transparent; + transform: scale(0); + transform-origin: 0 0; + transition: transform .2s cubic-bezier(.25,.8,.25,1); +} + +.md-datepicker-calendar-pane.md-pane-open { + transform: scale(1); +} + +.md-datepicker-input-mask { + height: 40px; + width: 340px; + position: relative; + overflow: hidden; + background: transparent; + pointer-events: none; + cursor: text; +} + +.md-datepicker-calendar { + opacity: 0; + transition: opacity .2s cubic-bezier(.5,0,.25,1); +} + +.md-pane-open .md-datepicker-calendar { + opacity: 1; +} + +.md-datepicker-calendar md-calendar:focus { + outline: none; +} + +.md-datepicker-expand-triangle { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid; +} + +.md-datepicker-triangle-button { + position: absolute; + right: 0; + bottom: -2.5px; + transform: translateX(45%); +} + +[dir=rtl] .md-datepicker-triangle-button { + right: auto; + left: 0; +} + +[dir=rtl] .md-datepicker-triangle-button { + transform: translateX(-45%); +} + +.md-datepicker-triangle-button.md-button.md-icon-button { + height: 36px; + width: 36px; + position: absolute; + padding: 8px; +} + +md-datepicker[disabled] .md-datepicker-input-container { + border-bottom-color: transparent; +} + +md-datepicker[disabled] .md-datepicker-triangle-button { + display: none; +} + +.md-datepicker-open { + overflow: hidden; +} + +.md-datepicker-open .md-datepicker-input-container, +.md-datepicker-open input.md-input { + border-bottom-color: transparent; +} + +.md-datepicker-open .md-datepicker-triangle-button, +.md-datepicker-open.md-input-has-placeholder>label, +.md-datepicker-open.md-input-has-value>label { + display: none; +} + +.md-datepicker-pos-adjusted .md-datepicker-input-mask { + display: none; +} + +.md-datepicker-calendar-pane .md-calendar { + transform: translateY(-85px); + transition: transform .65s cubic-bezier(.25,.8,.25,1); + transition-delay: .125s; +} + +.md-datepicker-calendar-pane.md-pane-open .md-calendar { + transform: translateY(0); +} + +.md-dialog-is-showing { + max-height: 100%; +} + +.md-dialog-container { + display: flex; + justify-content: center; + align-items: center; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 80; + overflow: hidden; +} + +md-dialog { + opacity: 0; + min-width: 240px; + max-width: 80%; + max-height: 80%; + position: relative; + overflow: auto; + 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); + display: flex; + flex-direction: column; +} + +md-dialog.md-transition-in { + opacity: 1; + transition: all .4s cubic-bezier(.25,.8,.25,1); + transform: translate(0,0) scale(1); +} + +md-dialog.md-transition-out { + opacity: 0; + transition: all .4s cubic-bezier(.25,.8,.25,1); + transform: translate(0,100%) scale(.2); +} + +md-dialog>form { + display: flex; + flex-direction: column; + overflow: auto; +} + +md-dialog .md-dialog-content { + padding: 24px; +} + +md-dialog md-dialog-content { + order: 1; + flex-direction: column; + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader) { + margin-top: 0; +} + +md-dialog md-dialog-content:focus { + outline: none; +} + +md-dialog md-dialog-content .md-subheader { + margin: 0; +} + +md-dialog md-dialog-content .md-dialog-content-body { + width: 100%; +} + +md-dialog md-dialog-content .md-prompt-input-container { + width: 100%; + box-sizing: border-box; +} + +md-dialog md-dialog-actions { + display: flex; + order: 2; + box-sizing: border-box; + align-items: center; + justify-content: flex-end; + margin-bottom: 0; + padding-right: 8px; + padding-left: 16px; + min-height: 52px; + overflow: hidden; +} + +[dir=rtl] md-dialog md-dialog-actions { + padding-right: 16px; +} + +[dir=rtl] md-dialog md-dialog-actions { + padding-left: 8px; +} + +md-dialog md-dialog-actions .md-button { + margin: 8px 0 8px 8px; +} + +[dir=rtl] md-dialog md-dialog-actions .md-button { + margin-left: 0; +} + +[dir=rtl] md-dialog md-dialog-actions .md-button { + margin-right: 8px; +} + +md-dialog.md-content-overflow md-dialog-actions { + border-top-width: 1px; + border-top-style: solid; +} + +@media screen and (-ms-high-contrast:active) { + md-dialog { + border: 1px solid #fff; + } +} + +@media (max-width:959px) { + md-dialog.md-dialog-fullscreen { + min-height: 100%; + min-width: 100%; + border-radius: 0; + } +} + +md-divider { + display: block; + border-top-width: 1px; + border-top-style: solid; + margin: 0; +} + +md-divider[md-inset] { + margin-left: 80px; +} + +[dir=rtl] md-divider[md-inset] { + margin-left: auto; + margin-right: 80px; +} + +@media (max-width:599px) { + .layout-row:not(.layout-xs-column)>md-divider, + .layout-xs-row>md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; + } +} + +@media (min-width:600px) and (max-width:959px) { + .layout-gt-xs-row:not(.layout-sm-column)>md-divider, + .layout-row:not(.layout-gt-xs-column):not(.layout-sm-column)>md-divider, + .layout-sm-row:not(.layout-sm-column)>md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; + } +} + +@media (min-width:960px) and (max-width:1279px) { + .layout-gt-sm-row:not(.layout-md-column)>md-divider, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-md-column)>md-divider, + .layout-md-row:not(.layout-md-column)>md-divider, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-md-column)>md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; + } +} + +@media (min-width:1280px) and (max-width:1919px) { + .layout-gt-md-row:not(.layout-lg-column)>md-divider, + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-lg-column)>md-divider, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>md-divider, + .layout-lg-row:not(.layout-lg-column)>md-divider, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; + } +} + +@media (min-width:1920px) { + .layout-gt-lg-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider, + .layout-gt-md-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider, + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider, + .layout-xl-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; + } +} + +md-fab-speed-dial { + position: relative; + display: flex; + align-items: center; + z-index: 20; +} + +md-fab-speed-dial.md-fab-bottom-right { + top: auto; + right: 20px; + bottom: 20px; + left: auto; + position: absolute; +} + +md-fab-speed-dial.md-fab-bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; + position: absolute; +} + +md-fab-speed-dial.md-fab-top-right { + top: 20px; + right: 20px; + bottom: auto; + left: auto; + position: absolute; +} + +md-fab-speed-dial.md-fab-top-left { + top: 20px; + right: auto; + bottom: auto; + left: 20px; + position: absolute; +} + +md-fab-speed-dial:not(.md-hover-full) { + pointer-events: none; +} + +md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item, +md-fab-speed-dial:not(.md-hover-full) md-fab-trigger { + pointer-events: auto; +} + +md-fab-speed-dial:not(.md-hover-full).md-is-open { + pointer-events: auto; +} + +md-fab-speed-dial ._md-css-variables { + z-index: 20; +} + +md-fab-speed-dial.md-is-open .md-fab-action-item { + align-items: center; +} + +md-fab-speed-dial md-fab-actions { + display: flex; + height: auto; +} + +md-fab-speed-dial md-fab-actions .md-fab-action-item { + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-fab-speed-dial.md-down { + flex-direction: column; +} + +md-fab-speed-dial.md-down md-fab-trigger { + order: 1; +} + +md-fab-speed-dial.md-down md-fab-actions { + flex-direction: column; + order: 2; +} + +md-fab-speed-dial.md-up { + flex-direction: column; +} + +md-fab-speed-dial.md-up md-fab-trigger { + order: 2; +} + +md-fab-speed-dial.md-up md-fab-actions { + flex-direction: column-reverse; + order: 1; +} + +md-fab-speed-dial.md-left { + flex-direction: row; +} + +md-fab-speed-dial.md-left md-fab-trigger { + order: 2; +} + +md-fab-speed-dial.md-left md-fab-actions { + flex-direction: row-reverse; + order: 1; +} + +md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item { + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-fab-speed-dial.md-right { + flex-direction: row; +} + +md-fab-speed-dial.md-right md-fab-trigger { + order: 1; +} + +md-fab-speed-dial.md-right md-fab-actions { + flex-direction: row; + order: 2; +} + +md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item { + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-fab-speed-dial.md-fling-remove .md-fab-action-item>*, +md-fab-speed-dial.md-scale-remove .md-fab-action-item>* { + visibility: hidden; +} + +md-fab-speed-dial.md-fling .md-fab-action-item { + opacity: 1; +} + +md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item { + opacity: 0; + transition-duration: 0s; +} + +md-fab-speed-dial.md-scale .md-fab-action-item { + transform: scale(0); + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .14286s; +} + +md-fab-toolbar { + display: block; +} + +md-fab-toolbar.md-fab-bottom-right { + top: auto; + right: 20px; + bottom: 20px; + left: auto; + position: absolute; +} + +md-fab-toolbar.md-fab-bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; + position: absolute; +} + +md-fab-toolbar.md-fab-top-right { + top: 20px; + right: 20px; + bottom: auto; + left: auto; + position: absolute; +} + +md-fab-toolbar.md-fab-top-left { + top: 20px; + right: auto; + bottom: auto; + left: 20px; + position: absolute; +} + +md-fab-toolbar .md-fab-toolbar-wrapper { + display: block; + position: relative; + overflow: hidden; + height: 68px; +} + +md-fab-toolbar md-fab-trigger { + position: absolute; + z-index: 20; +} + +md-fab-toolbar md-fab-trigger button { + overflow: visible!important; +} + +md-fab-toolbar md-fab-trigger .md-fab-toolbar-background { + display: block; + position: absolute; + z-index: 21; + opacity: 1; + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-fab-toolbar md-fab-trigger md-icon { + position: relative; + z-index: 22; + opacity: 1; + transition: all .2s ease-in; +} + +md-fab-toolbar.md-left md-fab-trigger { + right: 0; +} + +[dir=rtl] md-fab-toolbar.md-left md-fab-trigger { + right: auto; + left: 0; +} + +md-fab-toolbar.md-left .md-toolbar-tools { + flex-direction: row-reverse; +} + +md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child { + margin-right: .6rem; +} + +[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child { + margin-right: auto; + margin-left: .6rem; +} + +md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child { + margin-left: -.8rem; +} + +[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child { + margin-left: auto; + margin-right: -.8rem; +} + +md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child { + margin-right: 8px; +} + +[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child { + margin-right: auto; + margin-left: 8px; +} + +md-fab-toolbar.md-right md-fab-trigger { + left: 0; +} + +[dir=rtl] md-fab-toolbar.md-right md-fab-trigger { + left: auto; + right: 0; +} + +md-fab-toolbar.md-right .md-toolbar-tools { + flex-direction: row; +} + +md-fab-toolbar md-toolbar { + background-color: transparent!important; + pointer-events: none; + z-index: 23; +} + +md-fab-toolbar md-toolbar .md-toolbar-tools { + padding: 0 20px; + margin-top: 3px; +} + +md-fab-toolbar md-toolbar .md-fab-action-item { + opacity: 0; + transform: scale(0); + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .15s; +} + +md-fab-toolbar.md-is-open md-fab-trigger>button { + box-shadow: none; +} + +md-fab-toolbar.md-is-open md-fab-trigger>button md-icon { + opacity: 0; +} + +md-fab-toolbar.md-is-open .md-fab-action-item { + opacity: 1; + transform: scale(1); +} + +md-grid-list { + box-sizing: border-box; + display: block; + position: relative; +} + +md-grid-list md-grid-tile, +md-grid-list md-grid-tile-footer, +md-grid-list md-grid-tile-header, +md-grid-list md-grid-tile>figure { + box-sizing: border-box; +} + +md-grid-list md-grid-tile { + display: block; + position: absolute; +} + +md-grid-list md-grid-tile figure { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 0; + margin: 0; +} + +md-grid-list md-grid-tile md-grid-tile-footer, +md-grid-list md-grid-tile md-grid-tile-header { + display: flex; + flex-direction: row; + align-items: center; + height: 48px; + color: #fff; + background: rgba(0,0,0,.18); + overflow: hidden; + position: absolute; + left: 0; + right: 0; +} + +md-grid-list md-grid-tile md-grid-tile-footer h3, +md-grid-list md-grid-tile md-grid-tile-footer h4, +md-grid-list md-grid-tile md-grid-tile-header h3, +md-grid-list md-grid-tile md-grid-tile-header h4 { + font-weight: 400; + margin: 0 0 0 16px; +} + +md-grid-list md-grid-tile md-grid-tile-footer h3, +md-grid-list md-grid-tile md-grid-tile-header h3 { + font-size: 14px; +} + +md-grid-list md-grid-tile md-grid-tile-footer h4, +md-grid-list md-grid-tile md-grid-tile-header h4 { + font-size: 12px; +} + +md-grid-list md-grid-tile md-grid-tile-header { + top: 0; +} + +md-grid-list md-grid-tile md-grid-tile-footer { + bottom: 0; +} + +@media screen and (-ms-high-contrast:active) { + md-grid-tile { + border: 1px solid #fff; + } + + md-grid-tile-footer { + border-top: 1px solid #fff; + } +} + +md-icon { + margin: auto; + background-repeat: no-repeat; + display: inline-block; + vertical-align: middle; + fill: currentColor; + height: 24px; + width: 24px; + min-height: 24px; + min-width: 24px; +} + +md-icon svg { + pointer-events: none; + display: block; +} + +md-icon[md-font-icon] { + line-height: 24px; + width: auto; +} + +md-input-container { + display: inline-block; + position: relative; + padding: 2px; + margin: 18px 0; + vertical-align: middle; +} + +md-input-container:after { + content: ""; + display: table; + clear: both; +} + +md-input-container.md-block { + display: block; +} + +md-input-container .md-errors-spacer { + float: right; + min-height: 24px; + min-width: 1px; +} + +[dir=rtl] md-input-container .md-errors-spacer { + float: left; +} + +md-input-container>md-icon { + position: absolute; + top: 8px; + left: 2px; + right: auto; +} + +[dir=rtl] md-input-container>md-icon { + left: auto; +} + +[dir=rtl] md-input-container>md-icon { + right: 2px; +} + +md-input-container input[type=color], +md-input-container input[type=date], +md-input-container input[type=datetime-local], +md-input-container input[type=datetime], +md-input-container input[type=email], +md-input-container input[type=month], +md-input-container input[type=number], +md-input-container input[type=password], +md-input-container input[type=search], +md-input-container input[type=tel], +md-input-container input[type=text], +md-input-container input[type=time], +md-input-container input[type=url], +md-input-container input[type=week], +md-input-container textarea { + -moz-appearance: none; + -webkit-appearance: none; +} + +md-input-container input[type=date], +md-input-container input[type=datetime-local], +md-input-container input[type=month], +md-input-container input[type=time], +md-input-container input[type=week] { + min-height: 30px; +} + +md-input-container textarea { + resize: none; + overflow: hidden; +} + +md-input-container textarea.md-input { + min-height: 30px; + -ms-flex-preferred-size: auto; +} + +md-input-container textarea[md-no-autogrow] { + height: auto; + overflow: auto; +} + +md-input-container label:not(.md-container-ignore) { + position: absolute; + bottom: 100%; + left: 0; + right: auto; +} + +[dir=rtl] md-input-container label:not(.md-container-ignore) { + left: auto; +} + +[dir=rtl] md-input-container label:not(.md-container-ignore) { + right: 0; +} + +md-input-container label:not(.md-container-ignore).md-required:after { + content: " *"; + font-size: 13px; + vertical-align: top; +} + +md-input-container .md-placeholder, +md-input-container label:not(.md-no-float):not(.md-container-ignore) { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; + order: 1; + pointer-events: none; + -webkit-font-smoothing: antialiased; + padding-left: 2px; + padding-right: 0; + z-index: 1; + transform: translate3d(0,28px,0) scale(1); + transition: transform .4s cubic-bezier(.25,.8,.25,1); + max-width: 100%; + transform-origin: left top; +} + +[dir=rtl] md-input-container .md-placeholder, +[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore) { + padding-left: 0; +} + +[dir=rtl] md-input-container .md-placeholder, +[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore) { + padding-right: 2px; +} + +[dir=rtl] md-input-container .md-placeholder, +[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore) { + transform-origin: right top; +} + +md-input-container.md-input-has-value .md-placeholder, +md-input-container.md-input-has-value label:not(.md-no-float):not(.md-container-ignore) { + padding-left: 3px; + padding-right: 0; +} + +[dir=rtl] md-input-container.md-input-has-value .md-placeholder, +[dir=rtl] md-input-container.md-input-has-value label:not(.md-no-float):not(.md-container-ignore) { + padding-left: 0; +} + +[dir=rtl] md-input-container.md-input-has-value .md-placeholder, +[dir=rtl] md-input-container.md-input-has-value label:not(.md-no-float):not(.md-container-ignore) { + padding-right: 3px; +} + +md-input-container .md-placeholder { + position: absolute; + top: 0; + opacity: 0; + transition-property: opacity,transform; + transform: translate3d(0,30px,0); +} + +md-input-container.md-input-focused .md-placeholder { + opacity: 1; + transform: translate3d(0,24px,0); +} + +md-input-container.md-input-has-value .md-placeholder { + transition: none; + opacity: 0; +} + +md-input-container:not(.md-input-has-value):not(.md-input-has-placeholder) input:not(:focus) { + color: transparent; +} + +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field, +md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field { + color: transparent; +} + +md-input-container .md-input { + order: 2; + display: block; + margin-top: 0; + background: none; + padding: 2px 2px 1px 0; + border-width: 0 0 1px; + line-height: 26px; + height: 30px; + -ms-flex-preferred-size: 26px; + border-radius: 0; + border-style: solid; + transition: border-color .4s cubic-bezier(.25,.8,.25,1); + width: 100%; + box-sizing: border-box; + float: left; +} + +[dir=rtl] md-input-container .md-input { + padding-left: 2px; +} + +[dir=rtl] md-input-container .md-input { + padding-right: 0; +} + +[dir=rtl] md-input-container .md-input { + float: right; +} + +md-input-container .md-input:focus { + outline: none; +} + +md-input-container .md-input:invalid { + outline: none; + box-shadow: none; +} + +md-input-container .md-input.md-no-flex { + flex: none!important; +} + +md-input-container .md-char-counter { + text-align: right; + padding-right: 2px; + padding-left: 0; +} + +[dir=rtl] md-input-container .md-char-counter { + text-align: left; +} + +[dir=rtl] md-input-container .md-char-counter { + padding-right: 0; +} + +[dir=rtl] md-input-container .md-char-counter { + padding-left: 2px; +} + +md-input-container .md-input-messages-animation { + position: relative; + order: 4; + overflow: hidden; + clear: left; +} + +[dir=rtl] md-input-container .md-input-messages-animation { + clear: right; +} + +md-input-container .md-char-counter, +md-input-container .md-input-message-animation { + font-size: 12px; + line-height: 14px; + overflow: hidden; + transition: all .3s cubic-bezier(.55,0,.55,.2); + opacity: 1; + margin-top: 0; + padding-top: 8px; +} + +md-input-container .md-char-counter:not(.md-char-counter), +md-input-container .md-input-message-animation:not(.md-char-counter) { + padding-right: 5px; + padding-left: 0; +} + +[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter), +[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter) { + padding-right: 0; +} + +[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter), +[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter) { + padding-left: 5px; +} + +md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation { + opacity: 0; + margin-top: -100px; +} + +md-input-container .md-input-message-animation.ng-enter-prepare { + opacity: 0; + margin-top: -100px; +} + +md-input-container .md-input-message-animation.ng-enter:not(.ng-enter-active) { + opacity: 0; + margin-top: -100px; +} + +md-input-container.md-input-focused label:not(.md-no-float), +md-input-container.md-input-has-placeholder label:not(.md-no-float), +md-input-container.md-input-has-value label:not(.md-no-float) { + transform: translate3d(0,6px,0) scale(.75); + transition: transform .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1); +} + +md-input-container.md-input-has-value label { + transition: none; +} + +md-input-container.md-input-focused .md-input, +md-input-container.md-input-resized .md-input, +md-input-container .md-input.ng-invalid.ng-dirty { + padding-bottom: 0; + border-width: 0 0 2px; +} + +[disabled] md-input-container .md-input, +md-input-container .md-input[disabled] { + background-position: bottom -1px left 0; + background-size: 4px 1px; + background-repeat: repeat-x; +} + +md-input-container.md-icon-float { + transition: margin-top .4s cubic-bezier(.25,.8,.25,1); +} + +md-input-container.md-icon-float>label { + pointer-events: none; + position: absolute; +} + +md-input-container.md-icon-float>md-icon { + top: 8px; + left: 2px; + right: auto; +} + +[dir=rtl] md-input-container.md-icon-float>md-icon { + left: auto; +} + +[dir=rtl] md-input-container.md-icon-float>md-icon { + right: 2px; +} + +md-input-container.md-icon-left>label .md-placeholder, +md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore), +md-input-container.md-icon-right>label .md-placeholder, +md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore) { + width: calc(100% - 36px); + padding: 0; +} + +md-input-container.md-icon-left { + padding-left: 36px; + padding-right: 0; +} + +[dir=rtl] md-input-container.md-icon-left { + padding-left: 0; +} + +[dir=rtl] md-input-container.md-icon-left { + padding-right: 36px; +} + +md-input-container.md-icon-left>label { + left: 36px; + right: auto; +} + +[dir=rtl] md-input-container.md-icon-left>label { + left: auto; +} + +[dir=rtl] md-input-container.md-icon-left>label { + right: 36px; +} + +md-input-container.md-icon-right { + padding-left: 0; + padding-right: 36px; +} + +[dir=rtl] md-input-container.md-icon-right { + padding-left: 36px; +} + +[dir=rtl] md-input-container.md-icon-right { + padding-right: 0; +} + +md-input-container.md-icon-right>md-icon:last-of-type { + margin: 0; + right: 2px; + left: auto; +} + +[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type { + right: auto; +} + +[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type { + left: 2px; +} + +md-input-container.md-icon-left.md-icon-right { + padding-left: 36px; + padding-right: 36px; +} + +md-input-container.md-icon-left.md-icon-right>label .md-placeholder, +md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore) { + width: calc(100% - 72px); +} + +.md-resize-wrapper { + position: relative; +} + +.md-resize-wrapper:after { + content: ""; + display: table; + clear: both; +} + +.md-resize-handle { + position: absolute; + bottom: -5px; + left: 0; + height: 10px; + background: transparent; + width: 100%; + cursor: ns-resize; +} + +@media screen and (-ms-high-contrast:active) { + md-input-container.md-default-theme>md-icon { + fill: #fff; + } +} + +md-list { + display: block; + padding: 8px 0; +} + +md-list .md-subheader { + font-size: 14px; + font-weight: 500; + letter-spacing: .01em; + line-height: 1.2em; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner { + min-height: 40px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner:before, +md-list.md-dense:not(.md-dense-disabled) md-list-item:before { + content: ""; + min-height: 40px; + visibility: hidden; + display: inline-block; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner md-icon:first-child, +md-list.md-dense:not(.md-dense-disabled) md-list-item md-icon:first-child { + width: 20px; + height: 20px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon), +md-list.md-dense:not(.md-dense-disabled) md-list-item>md-icon:first-child:not(.md-avatar-icon) { + margin-right: 36px; + margin-top: 4px; + margin-bottom: 4px; +} + +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon), +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item>md-icon:first-child:not(.md-avatar-icon) { + margin-right: auto; + margin-left: 36px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-avatar-icon, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-avatar-icon { + margin-right: 20px; + margin-top: 6px; + margin-bottom: 6px; +} + +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item .md-avatar, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item .md-avatar-icon, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-avatar, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-avatar-icon { + margin-right: auto; + margin-left: 20px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-avatar { + flex: none; + width: 36px; + height: 36px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-secondary-container .md-secondary.md-button, +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-secondary-container .md-secondary.md-button { + margin-top: 4px; + margin-bottom: 4px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-list-item-inner .md-secondary-container md-checkbox:not(.md-dense-disabled), +md-list.md-dense:not(.md-dense-disabled) md-list-item .md-secondary-container md-checkbox:not(.md-dense-disabled) { + min-height: 40px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text.md-offset, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text.md-offset, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset { + margin-left: 56px; +} + +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text.md-offset, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text.md-offset, +[dir=rtl] md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset { + margin-left: auto; + margin-right: 56px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text h4, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text p, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text h4, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text p, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text h4, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text p, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text h4, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text p { + line-height: 1.05; + font-size: 12px; + padding-bottom: 4px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line .md-list-item-text h3, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style .md-list-item-text h3 { + font-size: 13px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style { + min-height: 60px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line:before, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style:before { + content: ""; + min-height: 60px; + visibility: hidden; + display: inline-block; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line .md-avatar-icon, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style .md-avatar-icon, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-2-line>.md-no-style>.md-avatar { + margin-top: 12px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style { + min-height: 76px; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line:before, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style:before { + content: ""; + min-height: 76px; + visibility: hidden; + display: inline-block; +} + +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style>.md-avatar, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>.md-no-style>md-icon:first-child, +md-list.md-dense:not(.md-dense-disabled) md-list-item.md-3-line>md-icon:first-child { + margin-top: 16px; +} + +md-list.md-dense:not(.md-dense-disabled) .md-subheader-inner { + padding-top: 12px; + padding-bottom: 12px; +} + +md-list-item { + position: relative; +} + +md-list-item.md-proxy-focus.md-focused .md-no-style { + transition: background-color .15s linear; +} + +md-list-item._md-button-wrap { + position: relative; +} + +md-list-item._md-button-wrap>div.md-button:first-child { + display: flex; + align-items: center; + justify-content: flex-start; + padding: 0 16px; + margin: 0; + font-weight: 400; + text-align: left; + border: none; +} + +[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child { + text-align: right; +} + +md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child { + position: absolute; + top: 0; + left: 0; + height: 100%; + margin: 0; + padding: 0; +} + +md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner { + width: 100%; +} + +md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner:before { + content: ""; + min-height: inherit; + visibility: hidden; + display: inline-block; +} + +md-list-item.md-no-proxy, +md-list-item .md-no-style { + position: relative; + padding: 0 16px; + flex: 1 1 auto; +} + +md-list-item.md-no-proxy.md-button, +md-list-item .md-no-style.md-button { + font-size: inherit; + height: inherit; + text-align: left; + text-transform: none; + width: 100%; + white-space: normal; + flex-direction: inherit; + align-items: inherit; + border-radius: 0; + margin: 0; +} + +[dir=rtl] md-list-item.md-no-proxy.md-button, +[dir=rtl] md-list-item .md-no-style.md-button { + text-align: right; +} + +md-list-item.md-no-proxy.md-button>.md-ripple-container, +md-list-item .md-no-style.md-button>.md-ripple-container { + border-radius: 0; +} + +md-list-item.md-no-proxy:focus, +md-list-item .md-no-style:focus { + outline: none; +} + +md-list-item.md-clickable:hover { + cursor: pointer; +} + +md-list-item md-divider { + position: absolute; + bottom: 0; + left: 0; + width: 100%; +} + +[dir=rtl] md-list-item md-divider { + left: auto; + right: 0; +} + +md-list-item md-divider[md-inset] { + left: 72px; + width: calc(100% - 72px); + margin: 0!important; +} + +[dir=rtl] md-list-item md-divider[md-inset] { + left: auto; + right: 72px; +} + +md-list-item, +md-list-item .md-list-item-inner { + display: flex; + justify-content: flex-start; + align-items: center; + min-height: 48px; + height: auto; +} + +md-list-item .md-list-item-inner:before, +md-list-item:before { + content: ""; + min-height: 48px; + visibility: hidden; + display: inline-block; +} + +md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon), +md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon), +md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon), +md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon), +md-list-item>div.md-primary>md-icon:not(.md-avatar-icon), +md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon), +md-list-item>md-icon.md-secondary:not(.md-avatar-icon), +md-list-item>md-icon:first-child:not(.md-avatar-icon) { + width: 24px; + margin-top: 16px; + margin-bottom: 12px; + box-sizing: content-box; +} + +md-list-item .md-list-item-inner>div.md-primary>md-checkbox, +md-list-item .md-list-item-inner>div.md-secondary>md-checkbox, +md-list-item .md-list-item-inner>md-checkbox, +md-list-item .md-list-item-inner md-checkbox.md-secondary, +md-list-item>div.md-primary>md-checkbox, +md-list-item>div.md-secondary>md-checkbox, +md-list-item>md-checkbox, +md-list-item md-checkbox.md-secondary { + align-self: center; +} + +md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label, +md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label, +md-list-item .md-list-item-inner>md-checkbox .md-label, +md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label, +md-list-item>div.md-primary>md-checkbox .md-label, +md-list-item>div.md-secondary>md-checkbox .md-label, +md-list-item>md-checkbox .md-label, +md-list-item md-checkbox.md-secondary .md-label { + display: none; +} + +md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon), +md-list-item>md-icon:first-child:not(.md-avatar-icon) { + margin-right: 32px; +} + +[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon), +[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon) { + margin-right: auto; + margin-left: 32px; +} + +md-list-item .md-avatar, +md-list-item .md-avatar-icon, +md-list-item .md-list-item-inner .md-avatar, +md-list-item .md-list-item-inner .md-avatar-icon { + margin-top: 8px; + margin-bottom: 8px; + margin-right: 16px; + border-radius: 50%; + box-sizing: content-box; +} + +[dir=rtl] md-list-item .md-avatar, +[dir=rtl] md-list-item .md-avatar-icon, +[dir=rtl] md-list-item .md-list-item-inner .md-avatar, +[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon { + margin-right: auto; + margin-left: 16px; +} + +md-list-item .md-avatar, +md-list-item .md-list-item-inner .md-avatar { + flex: none; + width: 40px; + height: 40px; +} + +md-list-item .md-avatar-icon, +md-list-item .md-list-item-inner .md-avatar-icon { + padding: 8px; +} + +md-list-item .md-avatar-icon svg, +md-list-item .md-list-item-inner .md-avatar-icon svg { + width: 24px; + height: 24px; +} + +md-list-item .md-list-item-inner>md-checkbox, +md-list-item>md-checkbox { + width: 24px; + min-height: 40px; + margin-left: 0; + margin-right: 29px; +} + +[dir=rtl] md-list-item .md-list-item-inner>md-checkbox, +[dir=rtl] md-list-item>md-checkbox { + margin-left: 29px; +} + +[dir=rtl] md-list-item .md-list-item-inner>md-checkbox, +[dir=rtl] md-list-item>md-checkbox { + margin-right: 0; +} + +md-list-item .md-list-item-inner .md-secondary-container, +md-list-item .md-secondary-container { + display: flex; + align-items: center; + position: relative; + flex-shrink: 0; + margin: auto 0 auto auto; +} + +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container, +[dir=rtl] md-list-item .md-secondary-container { + margin-right: auto; +} + +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container, +[dir=rtl] md-list-item .md-secondary-container { + margin-left: 0; +} + +md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type, +md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type, +md-list-item .md-secondary-container .md-button:last-of-type, +md-list-item .md-secondary-container .md-icon-button:last-of-type { + margin-right: 0; +} + +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type, +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type, +[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type, +[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type { + margin-right: auto; + margin-left: 0; +} + +md-list-item .md-list-item-inner .md-secondary-container md-checkbox, +md-list-item .md-secondary-container md-checkbox { + margin: 0 6px; + padding: 0 8px; + min-height: 40px; +} + +md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child, +md-list-item .md-secondary-container md-checkbox:last-child { + width: 40px; + margin-right: 0; +} + +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child, +[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child { + margin-right: auto; + margin-left: 0; +} + +md-list-item .md-list-item-inner .md-secondary-container md-switch, +md-list-item .md-secondary-container md-switch { + margin-top: 0; + margin-bottom: 0; + margin-right: -6px; +} + +[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch, +[dir=rtl] md-list-item .md-secondary-container md-switch { + margin-right: auto; + margin-left: -6px; +} + +md-list-item .md-list-item-inner>.md-list-item-inner>p, +md-list-item .md-list-item-inner>p, +md-list-item>.md-list-item-inner>p, +md-list-item>p { + flex: 1 1 auto; + margin: 0; +} + +md-list-item.md-2-line, +md-list-item.md-2-line>.md-no-style, +md-list-item.md-3-line, +md-list-item.md-3-line>.md-no-style { + align-items: flex-start; + justify-content: center; +} + +md-list-item.md-2-line.md-long-text, +md-list-item.md-2-line>.md-no-style.md-long-text, +md-list-item.md-3-line.md-long-text, +md-list-item.md-3-line>.md-no-style.md-long-text { + margin-top: 8px; + margin-bottom: 8px; +} + +md-list-item.md-2-line .md-list-item-text, +md-list-item.md-2-line>.md-no-style .md-list-item-text, +md-list-item.md-3-line .md-list-item-text, +md-list-item.md-3-line>.md-no-style .md-list-item-text { + flex: 1 1 auto; + margin: auto; + text-overflow: ellipsis; + overflow: hidden; +} + +md-list-item.md-2-line .md-list-item-text.md-offset, +md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset, +md-list-item.md-3-line .md-list-item-text.md-offset, +md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset { + margin-left: 56px; +} + +[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset, +[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset, +[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset, +[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset { + margin-left: auto; + margin-right: 56px; +} + +md-list-item.md-2-line .md-list-item-text h3, +md-list-item.md-2-line>.md-no-style .md-list-item-text h3, +md-list-item.md-3-line .md-list-item-text h3, +md-list-item.md-3-line>.md-no-style .md-list-item-text h3 { + font-size: 16px; + font-weight: 400; + letter-spacing: .01em; + margin: 0; + line-height: 1.2em; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +md-list-item.md-2-line .md-list-item-text h4, +md-list-item.md-2-line>.md-no-style .md-list-item-text h4, +md-list-item.md-3-line .md-list-item-text h4, +md-list-item.md-3-line>.md-no-style .md-list-item-text h4 { + font-size: 14px; + letter-spacing: .01em; + margin: 3px 0 1px; + font-weight: 400; + line-height: 1.2em; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +md-list-item.md-2-line .md-list-item-text p, +md-list-item.md-2-line>.md-no-style .md-list-item-text p, +md-list-item.md-3-line .md-list-item-text p, +md-list-item.md-3-line>.md-no-style .md-list-item-text p { + font-size: 14px; + font-weight: 500; + letter-spacing: .01em; + margin: 0; + line-height: 1.6em; +} + +md-list-item.md-2-line, +md-list-item.md-2-line>.md-no-style { + height: auto; + min-height: 72px; +} + +md-list-item.md-2-line:before, +md-list-item.md-2-line>.md-no-style:before { + content: ""; + min-height: 72px; + visibility: hidden; + display: inline-block; +} + +md-list-item.md-2-line .md-avatar-icon, +md-list-item.md-2-line>.md-avatar, +md-list-item.md-2-line>.md-no-style .md-avatar-icon, +md-list-item.md-2-line>.md-no-style>.md-avatar { + margin-top: 12px; +} + +md-list-item.md-2-line>.md-no-style>md-icon:first-child, +md-list-item.md-2-line>md-icon:first-child { + align-self: flex-start; +} + +md-list-item.md-2-line .md-list-item-text, +md-list-item.md-2-line>.md-no-style .md-list-item-text { + flex: 1 1 auto; +} + +md-list-item.md-3-line, +md-list-item.md-3-line>.md-no-style { + height: auto; + min-height: 88px; +} + +md-list-item.md-3-line:before, +md-list-item.md-3-line>.md-no-style:before { + content: ""; + min-height: 88px; + visibility: hidden; + display: inline-block; +} + +md-list-item.md-3-line>.md-avatar, +md-list-item.md-3-line>.md-no-style>.md-avatar, +md-list-item.md-3-line>.md-no-style>md-icon:first-child, +md-list-item.md-3-line>md-icon:first-child { + margin-top: 16px; +} + +.md-open-menu-container { + position: fixed; + left: 0; + top: 0; + z-index: 100; + opacity: 0; + border-radius: 2px; + max-height: calc(100vh - 10px); + overflow: auto; +} + +.md-open-menu-container md-menu-divider { + margin-top: 4px; + margin-bottom: 4px; + height: 1px; + min-height: 1px; + max-height: 1px; + width: 100%; +} + +.md-open-menu-container md-menu-content>* { + opacity: 0; +} + +.md-open-menu-container:not(.md-clickable) { + pointer-events: none; +} + +.md-open-menu-container.md-active { + opacity: 1; + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-duration: .2s; +} + +.md-open-menu-container.md-active>md-menu-content>* { + opacity: 1; + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .2s; + transition-delay: .1s; +} + +.md-open-menu-container.md-leave { + opacity: 0; + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .25s; +} + +md-menu-content { + display: flex; + flex-direction: column; + padding: 8px 0; + max-height: 304px; + overflow-y: auto; +} + +md-menu-content.md-dense { + max-height: 208px; +} + +md-menu-content.md-dense md-menu-item { + height: 32px; + min-height: 32px; +} + +md-menu-item { + display: flex; + flex-direction: row; + min-height: 48px; + height: 48px; + align-content: center; + justify-content: flex-start; +} + +md-menu-item>* { + width: 100%; + margin: auto 0; + padding-left: 16px; + padding-right: 16px; +} + +md-menu-item>a.md-button { + padding-top: 5px; +} + +md-menu-item>.md-button { + text-align: left; + display: inline-block; + border-radius: 0; + margin: auto 0; + font-size: 15px; + text-transform: none; + font-weight: 400; + height: 100%; + padding-left: 16px; + padding-right: 16px; + width: 100%; +} + +md-menu-item>.md-button::-moz-focus-inner { + padding: 0; + border: 0; +} + +[dir=rtl] md-menu-item>.md-button { + text-align: right; +} + +md-menu-item>.md-button md-icon { + margin: auto 16px auto 0; +} + +[dir=rtl] md-menu-item>.md-button md-icon { + margin: auto 0 auto 16px; +} + +md-menu-item>.md-button p { + display: inline-block; + margin: auto; +} + +md-menu-item>.md-button span { + margin-top: auto; + margin-bottom: auto; +} + +md-menu-item>.md-button .md-ripple-container { + border-radius: inherit; +} + +md-toolbar .md-menu { + height: auto; + margin: auto; + padding: 0; +} + +@media (max-width:959px) { + md-menu-content { + min-width: 112px; + } + + md-menu-content[width="3"] { + min-width: 168px; + } + + md-menu-content[width="4"] { + min-width: 224px; + } + + md-menu-content[width="5"] { + min-width: 280px; + } + + md-menu-content[width="6"] { + min-width: 336px; + } + + md-menu-content[width="7"] { + min-width: 392px; + } +} + +@media (min-width:960px) { + md-menu-content { + min-width: 96px; + } + + md-menu-content[width="3"] { + min-width: 192px; + } + + md-menu-content[width="4"] { + min-width: 256px; + } + + md-menu-content[width="5"] { + min-width: 320px; + } + + md-menu-content[width="6"] { + min-width: 384px; + } + + md-menu-content[width="7"] { + min-width: 448px; + } +} + +md-toolbar.md-menu-toolbar h2.md-toolbar-tools { + line-height: 1rem; + height: auto; + padding: 28px 28px 12px; +} + +md-toolbar.md-has-open-menu { + position: relative; + z-index: 100; +} + +md-menu-bar { + padding: 0 20px; + display: block; + position: relative; + z-index: 2; +} + +md-menu-bar .md-menu { + display: inline-block; + padding: 0; + position: relative; +} + +md-menu-bar button { + font-size: 14px; + padding: 0 10px; + margin: 0; + border: 0; + background-color: transparent; + height: 40px; +} + +md-menu-bar md-backdrop.md-menu-backdrop { + z-index: -2; +} + +md-menu-content.md-menu-bar-menu.md-dense { + max-height: none; + padding: 16px 0; +} + +md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent { + position: relative; +} + +md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon { + position: absolute; + padding: 0; + width: 24px; + top: 6px; + left: 24px; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon { + left: auto; + right: 24px; +} + +md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button, +md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button { + padding: 0 32px 0 64px; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button, +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button { + padding: 0 64px 0 32px; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-button { + min-height: 0; + height: 32px; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-button span { + float: left; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-button span { + float: right; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text { + float: right; + margin: 0 8px; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text { + float: left; +} + +md-menu-content.md-menu-bar-menu.md-dense md-menu-divider { + margin: 8px 0; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button, +md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button { + text-align: left; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button, +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button { + text-align: right; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-menu { + padding: 0; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button { + position: relative; + margin: 0; + width: 100%; + text-transform: none; + font-weight: 400; + border-radius: 0; + padding-left: 16px; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button { + padding-left: 0; + padding-right: 16px; +} + +md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after { + display: block; + content: "\25BC"; + position: absolute; + top: 0; + speak: none; + transform: rotate(270deg) scaleY(.45) scaleX(.9); + right: 28px; +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after { + transform: rotate(90deg) scaleY(.45) scaleX(.9); +} + +[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after { + right: auto; + left: 28px; +} + +.md-nav-bar { + border-style: solid; + border-width: 0 0 1px; + height: 48px; + position: relative; +} + +._md-nav-bar-list { + outline: none; + list-style: none; + margin: 0; + padding: 0; + box-sizing: border-box; + display: flex; + flex-direction: row; +} + +.md-nav-item:first-of-type { + margin-left: 8px; +} + +.md-button._md-nav-button { + line-height: 24px; + margin: 0 4px; + padding: 12px 16px; + transition: background-color .35s cubic-bezier(.35,0,.25,1); +} + +.md-button._md-nav-button:focus { + outline: none; +} + +md-nav-ink-bar { + background-color: #000; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + transform-origin: left top; + will-change: transform; + transition: transform .125s cubic-bezier(.35,0,.25,1); +} + +md-nav-ink-bar.ng-animate { + transition: none; +} + +md-nav-extra-content { + min-height: 48px; + padding-right: 12px; +} + +@-webkit-keyframes indeterminate-rotate { + 0% { + transform: rotate(0deg); + } + + to { + transform: rotate(1turn); + } +} + +@keyframes indeterminate-rotate { + 0% { + transform: rotate(0deg); + } + + to { + transform: rotate(1turn); + } +} + +md-progress-circular { + position: relative; + display: block; + transform: scale(1,1); +} + +[dir=rtl] md-progress-circular { + transform: scale(-1,1); +} + +md-progress-circular._md-progress-circular-disabled { + visibility: hidden; +} + +md-progress-circular.md-mode-indeterminate svg { + -webkit-animation: indeterminate-rotate 1568.63ms linear infinite; + animation: indeterminate-rotate 1568.63ms linear infinite; +} + +md-progress-circular svg { + position: absolute; + overflow: visible; + top: 0; + left: 0; +} + +md-progress-linear { + display: block; + position: relative; + width: 100%; + height: 5px; + padding-top: 0!important; + margin-bottom: 0!important; + transform: scale(1,1); +} + +[dir=rtl] md-progress-linear { + transform: scale(-1,1); +} + +md-progress-linear._md-progress-linear-disabled { + visibility: hidden; +} + +md-progress-linear .md-container { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: 5px; + transform: translate(0,0) scale(1,1); +} + +md-progress-linear .md-container .md-bar { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 100%; + height: 5px; +} + +md-progress-linear .md-container .md-dashed:before { + content: ""; + display: none; + position: absolute; + margin-top: 0; + height: 5px; + width: 100%; + background-color: transparent; + background-size: 10px 10px!important; + background-position: 0 -23px; +} + +md-progress-linear .md-container .md-bar1, +md-progress-linear .md-container .md-bar2 { + transition: transform .2s linear; +} + +md-progress-linear .md-container.md-mode-query .md-bar1 { + display: none; +} + +md-progress-linear .md-container.md-mode-query .md-bar2 { + transition: all .2s linear; + -webkit-animation: query .8s cubic-bezier(.39,.575,.565,1) infinite; + animation: query .8s cubic-bezier(.39,.575,.565,1) infinite; +} + +md-progress-linear .md-container.md-mode-determinate .md-bar1 { + display: none; +} + +md-progress-linear .md-container.md-mode-indeterminate .md-bar1 { + -webkit-animation: md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite; + animation: md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite; +} + +md-progress-linear .md-container.md-mode-indeterminate .md-bar2 { + -webkit-animation: md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite; + animation: md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite; +} + +md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container { + -webkit-animation: none; + animation: none; +} + +md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1, +md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2 { + -webkit-animation-name: none; + animation-name: none; +} + +md-progress-linear .md-container.md-mode-buffer { + background-color: transparent!important; + transition: all .2s linear; +} + +md-progress-linear .md-container.md-mode-buffer .md-dashed:before { + display: block; + -webkit-animation: buffer 3s linear infinite; + animation: buffer 3s linear infinite; +} + +@-webkit-keyframes query { + 0% { + opacity: 1; + transform: translateX(35%) scale(.3,1); + } + + to { + opacity: 0; + transform: translateX(-50%) scale(0,1); + } +} + +@keyframes query { + 0% { + opacity: 1; + transform: translateX(35%) scale(.3,1); + } + + to { + opacity: 0; + transform: translateX(-50%) scale(0,1); + } +} + +@-webkit-keyframes buffer { + 0% { + opacity: 1; + background-position: 0 -23px; + } + + 50% { + opacity: 0; + } + + to { + opacity: 1; + background-position: -200px -23px; + } +} + +@keyframes buffer { + 0% { + opacity: 1; + background-position: 0 -23px; + } + + 50% { + opacity: 0; + } + + to { + opacity: 1; + background-position: -200px -23px; + } +} + +@-webkit-keyframes md-progress-linear-indeterminate-scale-1 { + 0% { + transform: scaleX(.1); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + + 36.6% { + transform: scaleX(.1); + -webkit-animation-timing-function: cubic-bezier(.33473,.12482,.78584,1); + animation-timing-function: cubic-bezier(.33473,.12482,.78584,1); + } + + 69.15% { + transform: scaleX(.83); + -webkit-animation-timing-function: cubic-bezier(.22573,0,.23365,1.37098); + animation-timing-function: cubic-bezier(.22573,0,.23365,1.37098); + } + + to { + transform: scaleX(.1); + } +} + +@keyframes md-progress-linear-indeterminate-scale-1 { + 0% { + transform: scaleX(.1); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + + 36.6% { + transform: scaleX(.1); + -webkit-animation-timing-function: cubic-bezier(.33473,.12482,.78584,1); + animation-timing-function: cubic-bezier(.33473,.12482,.78584,1); + } + + 69.15% { + transform: scaleX(.83); + -webkit-animation-timing-function: cubic-bezier(.22573,0,.23365,1.37098); + animation-timing-function: cubic-bezier(.22573,0,.23365,1.37098); + } + + to { + transform: scaleX(.1); + } +} + +@-webkit-keyframes md-progress-linear-indeterminate-1 { + 0% { + left: -105.16667%; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + + 20% { + left: -105.16667%; + -webkit-animation-timing-function: cubic-bezier(.5,0,.70173,.49582); + animation-timing-function: cubic-bezier(.5,0,.70173,.49582); + } + + 69.15% { + left: 21.5%; + -webkit-animation-timing-function: cubic-bezier(.30244,.38135,.55,.95635); + animation-timing-function: cubic-bezier(.30244,.38135,.55,.95635); + } + + to { + left: 95.44444%; + } +} + +@keyframes md-progress-linear-indeterminate-1 { + 0% { + left: -105.16667%; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + + 20% { + left: -105.16667%; + -webkit-animation-timing-function: cubic-bezier(.5,0,.70173,.49582); + animation-timing-function: cubic-bezier(.5,0,.70173,.49582); + } + + 69.15% { + left: 21.5%; + -webkit-animation-timing-function: cubic-bezier(.30244,.38135,.55,.95635); + animation-timing-function: cubic-bezier(.30244,.38135,.55,.95635); + } + + to { + left: 95.44444%; + } +} + +@-webkit-keyframes md-progress-linear-indeterminate-scale-2 { + 0% { + transform: scaleX(.1); + -webkit-animation-timing-function: cubic-bezier(.20503,.05705,.57661,.45397); + animation-timing-function: cubic-bezier(.20503,.05705,.57661,.45397); + } + + 19.15% { + transform: scaleX(.57); + -webkit-animation-timing-function: cubic-bezier(.15231,.19643,.64837,1.00432); + animation-timing-function: cubic-bezier(.15231,.19643,.64837,1.00432); + } + + 44.15% { + transform: scaleX(.91); + -webkit-animation-timing-function: cubic-bezier(.25776,-.00316,.21176,1.38179); + animation-timing-function: cubic-bezier(.25776,-.00316,.21176,1.38179); + } + + to { + transform: scaleX(.1); + } +} + +@keyframes md-progress-linear-indeterminate-scale-2 { + 0% { + transform: scaleX(.1); + -webkit-animation-timing-function: cubic-bezier(.20503,.05705,.57661,.45397); + animation-timing-function: cubic-bezier(.20503,.05705,.57661,.45397); + } + + 19.15% { + transform: scaleX(.57); + -webkit-animation-timing-function: cubic-bezier(.15231,.19643,.64837,1.00432); + animation-timing-function: cubic-bezier(.15231,.19643,.64837,1.00432); + } + + 44.15% { + transform: scaleX(.91); + -webkit-animation-timing-function: cubic-bezier(.25776,-.00316,.21176,1.38179); + animation-timing-function: cubic-bezier(.25776,-.00316,.21176,1.38179); + } + + to { + transform: scaleX(.1); + } +} + +@-webkit-keyframes md-progress-linear-indeterminate-2 { + 0% { + left: -54.88889%; + -webkit-animation-timing-function: cubic-bezier(.15,0,.51506,.40968); + animation-timing-function: cubic-bezier(.15,0,.51506,.40968); + } + + 25% { + left: -17.25%; + -webkit-animation-timing-function: cubic-bezier(.31033,.28406,.8,.73372); + animation-timing-function: cubic-bezier(.31033,.28406,.8,.73372); + } + + 48.35% { + left: 29.5%; + -webkit-animation-timing-function: cubic-bezier(.4,.62703,.6,.90203); + animation-timing-function: cubic-bezier(.4,.62703,.6,.90203); + } + + to { + left: 117.38889%; + } +} + +@keyframes md-progress-linear-indeterminate-2 { + 0% { + left: -54.88889%; + -webkit-animation-timing-function: cubic-bezier(.15,0,.51506,.40968); + animation-timing-function: cubic-bezier(.15,0,.51506,.40968); + } + + 25% { + left: -17.25%; + -webkit-animation-timing-function: cubic-bezier(.31033,.28406,.8,.73372); + animation-timing-function: cubic-bezier(.31033,.28406,.8,.73372); + } + + 48.35% { + left: 29.5%; + -webkit-animation-timing-function: cubic-bezier(.4,.62703,.6,.90203); + animation-timing-function: cubic-bezier(.4,.62703,.6,.90203); + } + + to { + left: 117.38889%; + } +} + +md-radio-button { + box-sizing: border-box; + display: block; + margin-bottom: 16px; + white-space: nowrap; + cursor: pointer; + position: relative; +} + +md-radio-button[disabled] { + cursor: default; +} + +md-radio-button[disabled] .md-container { + cursor: default; +} + +md-radio-button .md-container { + position: absolute; + top: 50%; + transform: translateY(-50%); + box-sizing: border-box; + display: inline-block; + width: 20px; + height: 20px; + cursor: pointer; + left: 0; + right: auto; +} + +[dir=rtl] md-radio-button .md-container { + left: auto; +} + +[dir=rtl] md-radio-button .md-container { + right: 0; +} + +md-radio-button .md-container .md-ripple-container { + position: absolute; + display: block; + width: auto; + height: auto; + left: -15px; + top: -15px; + right: -15px; + bottom: -15px; +} + +md-radio-button .md-container:before { + box-sizing: border-box; + background-color: transparent; + border-radius: 50%; + content: ""; + position: absolute; + display: block; + height: auto; + left: 0; + top: 0; + right: 0; + bottom: 0; + transition: all .5s; + width: auto; +} + +md-radio-button.md-align-top-left>div.md-container { + top: 12px; +} + +md-radio-button .md-off { + border-style: solid; + border-width: 2px; + transition: border-color .28s ease; +} + +md-radio-button .md-off, +md-radio-button .md-on { + box-sizing: border-box; + position: absolute; + top: 0; + left: 0; + width: 20px; + height: 20px; + border-radius: 50%; +} + +md-radio-button .md-on { + transition: transform .28s ease; + transform: scale(0); +} + +md-radio-button.md-checked .md-on { + transform: scale(.5); +} + +md-radio-button .md-label { + box-sizing: border-box; + position: relative; + display: inline-block; + margin-left: 30px; + margin-right: 0; + vertical-align: middle; + white-space: normal; + pointer-events: none; + width: auto; +} + +[dir=rtl] md-radio-button .md-label { + margin-left: 0; +} + +[dir=rtl] md-radio-button .md-label { + margin-right: 30px; +} + +md-radio-group:focus { + outline: none; +} + +md-radio-group.md-focused.ng-not-empty .md-checked .md-container:before { + left: -8px; + top: -8px; + right: -8px; + bottom: -8px; +} + +md-radio-group.md-focused.ng-empty>md-radio-button:first-child .md-container:before { + left: -8px; + top: -8px; + right: -8px; + bottom: -8px; +} + +md-radio-group[disabled] md-radio-button { + cursor: default; +} + +md-radio-group[disabled] md-radio-button .md-container { + cursor: default; +} + +@media (max-width:599px) { + .layout-row:not(.layout-xs-column)>md-radio-button, + .layout-xs-row>md-radio-button { + margin-bottom: 0; + } +} + +@media (min-width:600px) and (max-width:959px) { + .layout-gt-xs-row:not(.layout-sm-column)>md-radio-button, + .layout-row:not(.layout-gt-xs-column):not(.layout-sm-column)>md-radio-button, + .layout-sm-row:not(.layout-sm-column)>md-radio-button { + margin-bottom: 0; + } +} + +@media (min-width:960px) and (max-width:1279px) { + .layout-gt-sm-row:not(.layout-md-column)>md-radio-button, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-md-column)>md-radio-button, + .layout-md-row:not(.layout-md-column)>md-radio-button, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-md-column)>md-radio-button { + margin-bottom: 0; + } +} + +@media (min-width:1280px) and (max-width:1919px) { + .layout-gt-md-row:not(.layout-lg-column)>md-radio-button, + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-lg-column)>md-radio-button, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>md-radio-button, + .layout-lg-row:not(.layout-lg-column)>md-radio-button, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-lg-column)>md-radio-button { + margin-bottom: 0; + } +} + +@media (min-width:1920px) { + .layout-gt-lg-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button, + .layout-gt-md-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button, + .layout-gt-sm-row:not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button, + .layout-gt-xs-row:not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button, + .layout-row:not(.layout-gt-xs-column):not(.layout-gt-sm-column):not(.layout-gt-md-column):not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button, + .layout-xl-row:not(.layout-gt-lg-column):not(.layout-xl-column)>md-radio-button { + margin-bottom: 0; + } +} + +.md-inline-form md-radio-group { + margin: 18px 0 19px; +} + +.md-inline-form md-radio-group md-radio-button { + display: inline-block; + height: 30px; + padding: 2px 10px 2px 6px; + box-sizing: border-box; + margin-top: 0; + margin-bottom: 0; +} + +.md-inline-form md-radio-group md-radio-button .md-label { + top: 4px; +} + +.md-inline-form md-radio-group md-radio-button .md-container { + margin-top: 2px; +} + +@media screen and (-ms-high-contrast:active) { + md-radio-button.md-default-theme .md-on { + background-color: #fff; + } +} + +md-input-container:not([md-no-float]) .md-select-placeholder span:first-child { + transition: transform .4s cubic-bezier(.25,.8,.25,1); + transform-origin: left top; +} + +[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child { + transform-origin: right top; +} + +md-input-container.md-input-focused:not([md-no-float]) md-select:not([placeholder]) .md-select-placeholder span:first-child { + transform: translate(-2px,-22px) scale(.75); +} + +.md-select-menu-container { + position: fixed; + left: 0; + top: 0; + z-index: 90; + opacity: 0; + display: none; + transform: translateY(-1px); +} + +.md-select-menu-container:not(.md-clickable) { + pointer-events: none; +} + +.md-select-menu-container md-progress-circular { + display: table; + margin: 24px auto!important; +} + +.md-select-menu-container.md-active { + display: block; + opacity: 1; +} + +.md-select-menu-container.md-active md-select-menu { + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-duration: .15s; +} + +.md-select-menu-container.md-active md-select-menu>* { + opacity: 1; + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .15s; + transition-delay: .1s; +} + +.md-select-menu-container.md-leave { + opacity: 0; + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .25s; +} + +.md-inline-form md-select { + margin-top: 20px; +} + +.md-inline-form md-input-container>md-select, +md-input-container>md-select { + margin-top: 0; +} + +md-input-container>md-select { + order: 2; +} + +md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after, +md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after { + content: " *"; + font-size: 13px; + vertical-align: top; +} + +md-input-container.md-input-invalid md-select .md-select-value { + border-bottom-style: solid; + padding-bottom: 1px; +} + +md-select { + display: flex; +} + +md-select.ng-required.ng-empty.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after, +md-select[required].ng-empty.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after { + content: " *"; + font-size: 13px; + vertical-align: top; +} + +md-select[disabled] .md-select-value { + background-position: bottom -1px left 0; + background-size: 4px 1px; + background-repeat: repeat-x; + padding-bottom: 2px; + padding-top: 1px; + transform: translateY(1px); +} + +md-select:focus { + outline: none; +} + +md-select[disabled]:hover { + cursor: default; +} + +md-select:not([disabled]):hover { + cursor: pointer; +} + +md-select:not([disabled]):focus .md-select-value { + border-bottom-style: solid; + border-bottom-width: 2px; + padding-bottom: 0; +} + +md-input-container md-select:not([disabled]):focus .md-select-value { + border-bottom-width: 2px; +} + +md-input-container md-select[disabled] .md-select-value { + background-position: bottom -1px left 0; +} + +md-input-container md-select .md-select-value { + min-height: 26px; + border-bottom-width: 1px; + padding-bottom: 1px; +} + +md-input-container md-select .md-select-value.md-select-placeholder { + padding-left: 0; + padding-right: 2px; +} + +[dir=rtl] md-input-container md-select .md-select-value.md-select-placeholder { + padding-left: 2px; +} + +[dir=rtl] md-input-container md-select .md-select-value.md-select-placeholder { + padding-right: 0; +} + +.md-select-value { + display: flex; + align-items: center; + padding: 2px 2px 1px 0; + border-bottom-width: 1px; + border-bottom-style: solid; + background-color: transparent; + position: relative; + box-sizing: content-box; + min-width: 88px; + min-height: 26px; + margin-bottom: auto; + -ms-flex-item-align: start; + flex-grow: 1; +} + +[dir=rtl] .md-select-value { + padding-left: 2px; +} + +[dir=rtl] .md-select-value { + padding-right: 0; +} + +.md-select-value>span:not(.md-select-icon) { + max-width: 100%; + flex: 1 1 auto; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.md-select-value>span:not(.md-select-icon) .md-text { + display: inline; +} + +.md-select-value .md-select-icon { + display: block; + align-items: flex-end; + text-align: right; + width: 24px; + transform: translateY(-2px); + font-size: 1.2rem; +} + +[dir=rtl] .md-select-value .md-select-icon { + align-items: flex-start; +} + +[dir=rtl] .md-select-value .md-select-icon { + text-align: left; +} + +.md-select-value .md-select-icon:after { + display: block; + content: "\25BC"; + position: relative; + top: 2px; + right: -4px; + left: auto; + speak: none; + font-size: 13px; + transform: scaleY(.5); +} + +[dir=rtl] .md-select-value .md-select-icon:after { + right: auto; +} + +[dir=rtl] .md-select-value .md-select-icon:after { + left: -4px; +} + +.md-select-value.md-select-placeholder { + display: flex; + order: 1; + pointer-events: none; + -webkit-font-smoothing: antialiased; + z-index: 1; +} + +md-select-menu { + display: flex; + flex-direction: column; + box-shadow: 0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12); + max-height: 256px; + min-height: 48px; + overflow-y: hidden; + transform-origin: left top; + transform: scale(1); +} + +md-select-menu.md-reverse { + flex-direction: column-reverse; +} + +md-select-menu:not(.md-overflow) md-content { + padding-top: 8px; + padding-bottom: 8px; +} + +[dir=rtl] md-select-menu { + transform-origin: right top; +} + +md-select-menu md-content { + min-width: 136px; + min-height: 48px; + max-height: 256px; + overflow-y: auto; +} + +md-select-menu>* { + opacity: 0; +} + +md-option { + cursor: pointer; + position: relative; + display: flex; + align-items: center; + width: auto; + transition: background .15s linear; + padding: 0 16px; + height: 48px; +} + +md-option[disabled] { + cursor: default; +} + +md-option:focus { + outline: none; +} + +md-option .md-text { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: auto; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +md-optgroup { + display: block; +} + +md-optgroup label { + display: block; + font-size: 14px; + text-transform: uppercase; + padding: 16px; + font-weight: 500; +} + +md-optgroup md-option { + padding-left: 32px; + padding-right: 32px; +} + +@media screen and (-ms-high-contrast:active) { + .md-select-backdrop { + background-color: transparent; + } + + md-select-menu { + border: 1px solid #fff; + } +} + +md-select-menu[multiple] md-option.md-checkbox-enabled { + padding-left: 40px; + padding-right: 16px; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled { + padding-left: 16px; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled { + padding-right: 40px; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + position: absolute; + top: 50%; + transform: translateY(-50%); + box-sizing: border-box; + display: inline-block; + width: 18px; + height: 18px; + left: 0; + right: auto; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + left: auto; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + right: 0; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before { + box-sizing: border-box; + background-color: transparent; + border-radius: 50%; + content: ""; + position: absolute; + display: block; + height: auto; + left: 0; + top: 0; + right: 0; + bottom: 0; + transition: all .5s; + width: auto; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after { + box-sizing: border-box; + content: ""; + position: absolute; + top: -10px; + right: -10px; + bottom: -10px; + left: -10px; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container { + position: absolute; + display: block; + width: auto; + height: auto; + left: -15px; + top: -15px; + right: -15px; + bottom: -15px; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon { + box-sizing: border-box; + transition: .24s; + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + border-width: 2px; + border-style: solid; + border-radius: 2px; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon { + border-color: transparent; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after { + box-sizing: border-box; + transform: rotate(45deg); + position: absolute; + left: 4px; + top: 0; + display: table; + width: 6px; + height: 12px; + border-width: 2px; + border-style: solid; + border-top: 0; + border-left: 0; + content: ""; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled[disabled] { + cursor: default; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after { + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + display: table; + width: 10.8px; + height: 2px; + border-width: 2px; + border-style: solid; + border-top: 0; + border-left: 0; + content: ""; +} + +md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + margin-left: 10.66667px; + margin-right: auto; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + margin-left: auto; +} + +[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container { + margin-right: 10.66667px; +} + +md-sidenav { + box-sizing: border-box; + position: absolute; + flex-direction: column; + z-index: 60; + width: 320px; + max-width: 320px; + bottom: 0; + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +md-sidenav ul { + list-style: none; +} + +md-sidenav.md-closed { + display: none; +} + +md-sidenav.md-closed-add, +md-sidenav.md-closed-remove { + display: flex; + transition: all .2s ease-in; +} + +md-sidenav.md-closed-add.md-closed-add-active, +md-sidenav.md-closed-remove.md-closed-remove-active { + transition: all .4s cubic-bezier(.25,.8,.25,1); +} + +md-sidenav.md-closed.md-locked-open-add, +md-sidenav.md-locked-open, +md-sidenav.md-locked-open-add, +md-sidenav.md-locked-open-remove, +md-sidenav.md-locked-open-remove.md-closed, +md-sidenav.md-locked-open.md-closed, +md-sidenav.md-locked-open.md-closed.md-sidenav-left, +md-sidenav.md-locked-open.md-closed.md-sidenav-right { + position: static; + display: flex; + transform: translate3d(0,0,0); +} + +md-sidenav.md-closed.md-locked-open-add:not(.md-locked-open-add-active) { + transition: width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2); + width: 0!important; + min-width: 0!important; +} + +md-sidenav.md-closed.md-locked-open-add-active, +md-sidenav.md-locked-open-remove-active { + transition: width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2); +} + +md-sidenav.md-locked-open-remove-active { + width: 0!important; + min-width: 0!important; +} + +.md-sidenav-backdrop.md-locked-open { + display: none; +} + +.md-sidenav-left, +md-sidenav { + left: 0; + top: 0; + transform: translate3d(0,0,0); +} + +.md-sidenav-left.md-closed, +md-sidenav.md-closed { + transform: translate3d(-100%,0,0); +} + +.md-sidenav-right { + left: 100%; + top: 0; + transform: translate(-100%,0); +} + +.md-sidenav-right.md-closed { + transform: translate(0,0); +} + +@media (min-width:600px) { + md-sidenav { + max-width: 400px; + } +} + +@media (max-width:456px) { + md-sidenav { + width: calc(100% - 56px); + min-width: calc(100% - 56px); + max-width: calc(100% - 56px); + } +} + +@media screen and (-ms-high-contrast:active) { + .md-sidenav-left, + md-sidenav { + border-right: 1px solid #fff; + } + + .md-sidenav-right { + border-left: 1px solid #fff; + } +} + +@-webkit-keyframes sliderFocusThumb { + 0% { + transform: scale(.7); + } + + 30% { + transform: scale(1); + } + + to { + transform: scale(.7); + } +} + +@keyframes sliderFocusThumb { + 0% { + transform: scale(.7); + } + + 30% { + transform: scale(1); + } + + to { + transform: scale(.7); + } +} + +@-webkit-keyframes sliderDiscreteFocusThumb { + 0% { + transform: scale(.7); + } + + 50% { + transform: scale(.8); + } + + to { + transform: scale(0); + } +} + +@keyframes sliderDiscreteFocusThumb { + 0% { + transform: scale(.7); + } + + 50% { + transform: scale(.8); + } + + to { + transform: scale(0); + } +} + +@-webkit-keyframes sliderDiscreteFocusRing { + 0% { + transform: scale(.7); + opacity: 0; + } + + 50% { + transform: scale(1); + opacity: 1; + } + + to { + transform: scale(0); + } +} + +@keyframes sliderDiscreteFocusRing { + 0% { + transform: scale(.7); + opacity: 0; + } + + 50% { + transform: scale(1); + opacity: 1; + } + + to { + transform: scale(0); + } +} + +md-slider { + height: 48px; + min-width: 128px; + position: relative; + margin-left: 4px; + margin-right: 4px; + padding: 0; + display: block; + flex-direction: row; +} + +md-slider *, +md-slider :after { + box-sizing: border-box; +} + +md-slider .md-slider-wrapper { + outline: none; + width: 100%; + height: 100%; +} + +md-slider .md-slider-content { + position: relative; +} + +md-slider .md-track-container { + width: 100%; + position: absolute; + top: 23px; + height: 2px; +} + +md-slider .md-track { + position: absolute; + left: 0; + right: 0; + height: 100%; +} + +md-slider .md-track-fill { + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-property: width,height; +} + +md-slider .md-track-ticks { + position: absolute; + left: 0; + right: 0; + height: 100%; +} + +md-slider .md-track-ticks canvas { + width: 100%; + height: 100%; +} + +md-slider .md-thumb-container { + position: absolute; + left: 0; + top: 50%; + transform: translate3d(-50%,-50%,0); + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-property: left,right,bottom; +} + +[dir=rtl] md-slider .md-thumb-container { + left: auto; + right: 0; +} + +md-slider .md-thumb { + z-index: 1; + position: absolute; + left: -10px; + top: 14px; + width: 20px; + height: 20px; + border-radius: 20px; + transform: scale(.7); + transition: all .4s cubic-bezier(.25,.8,.25,1); +} + +[dir=rtl] md-slider .md-thumb { + left: auto; + right: -10px; +} + +md-slider .md-thumb:after { + content: ""; + position: absolute; + width: 20px; + height: 20px; + border-radius: 20px; + border-width: 3px; + border-style: solid; + transition: inherit; +} + +md-slider .md-sign { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: -14px; + top: -17px; + width: 28px; + height: 28px; + border-radius: 28px; + transform: scale(.4) translate3d(0,67.5px,0); + transition: all .3s cubic-bezier(.35,0,.25,1); +} + +md-slider .md-sign:after { + position: absolute; + content: ""; + left: 0; + border-radius: 16px; + top: 19px; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + border-top-width: 16px; + border-top-style: solid; + opacity: 0; + transform: translate3d(0,-8px,0); + transition: all .2s cubic-bezier(.35,0,.25,1); +} + +[dir=rtl] md-slider .md-sign:after { + left: auto; + right: 0; +} + +md-slider .md-sign .md-thumb-text { + z-index: 1; + font-size: 12px; + font-weight: 700; +} + +md-slider .md-focus-ring { + position: absolute; + left: -17px; + top: 7px; + width: 34px; + height: 34px; + border-radius: 34px; + transform: scale(.7); + opacity: 0; + transition: all .35s cubic-bezier(.35,0,.25,1); +} + +[dir=rtl] md-slider .md-focus-ring { + left: auto; + right: -17px; +} + +md-slider .md-disabled-thumb { + position: absolute; + left: -14px; + top: 10px; + width: 28px; + height: 28px; + border-radius: 28px; + transform: scale(.5); + border-width: 4px; + border-style: solid; + display: none; +} + +[dir=rtl] md-slider .md-disabled-thumb { + left: auto; + right: -14px; +} + +md-slider.md-min .md-sign { + opacity: 0; +} + +md-slider:focus { + outline: none; +} + +md-slider.md-dragging .md-thumb-container, +md-slider.md-dragging .md-track-fill { + transition: none; +} + +md-slider:not([md-discrete]) .md-sign, +md-slider:not([md-discrete]) .md-track-ticks { + display: none; +} + +md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover { + transform: scale(.8); +} + +md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring { + transform: scale(1); + opacity: 1; +} + +md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb { + -webkit-animation: sliderFocusThumb .7s cubic-bezier(.35,0,.25,1); + animation: sliderFocusThumb .7s cubic-bezier(.35,0,.25,1); +} + +md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb { + transform: scale(1); +} + +md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring { + transform: scale(0); + -webkit-animation: sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1); + animation: sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1); +} + +md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb { + -webkit-animation: sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1); + animation: sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1); +} + +md-slider[md-discrete]:not([disabled]).md-active .md-thumb, +md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb { + transform: scale(0); +} + +md-slider[md-discrete]:not([disabled]).md-active .md-sign, +md-slider[md-discrete]:not([disabled]).md-active .md-sign:after, +md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign, +md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after { + opacity: 1; + transform: translate3d(0,0,0) scale(1); +} + +md-slider[md-discrete][disabled][readonly] .md-thumb { + transform: scale(0); +} + +md-slider[md-discrete][disabled][readonly] .md-sign, +md-slider[md-discrete][disabled][readonly] .md-sign:after { + opacity: 1; + transform: translate3d(0,0,0) scale(1); +} + +md-slider[disabled] .md-track-fill { + display: none; +} + +md-slider[disabled] .md-track-ticks { + opacity: 0; +} + +md-slider[disabled]:not([readonly]) .md-sign { + opacity: 0; +} + +md-slider[disabled] .md-thumb { + transform: scale(.5); +} + +md-slider[disabled] .md-disabled-thumb { + display: block; +} + +md-slider[md-vertical] { + flex-direction: column; + min-height: 128px; + min-width: 0; +} + +md-slider[md-vertical] .md-slider-wrapper { + flex: 1; + padding-top: 12px; + padding-bottom: 12px; + width: 48px; + align-self: center; + display: flex; + justify-content: center; +} + +md-slider[md-vertical] .md-track-container { + height: 100%; + width: 2px; + top: 0; + left: calc(50% - 1px); +} + +md-slider[md-vertical] .md-thumb-container { + top: auto; + margin-bottom: 23px; + left: calc(50% - 1px); + bottom: 0; +} + +md-slider[md-vertical] .md-thumb-container .md-thumb:after { + left: 1px; +} + +md-slider[md-vertical] .md-thumb-container .md-focus-ring { + left: -16px; +} + +md-slider[md-vertical] .md-track-fill { + bottom: 0; +} + +md-slider[md-vertical][md-discrete] .md-sign { + left: -40px; + top: 9.5px; + transform: scale(.4) translate3d(67.5px,0,0); +} + +md-slider[md-vertical][md-discrete] .md-sign:after { + top: 9.5px; + left: 19px; + border-top: 14px solid transparent; + border-right: 0; + border-bottom: 14px solid transparent; + border-left-width: 16px; + border-left-style: solid; + opacity: 0; + transform: translate3d(0,-8px,0); + transition: all .2s ease-in-out; +} + +md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text { + z-index: 1; + font-size: 12px; + font-weight: 700; +} + +md-slider[md-vertical][md-discrete].md-active .md-sign:after, +md-slider[md-vertical][md-discrete] .md-focused .md-sign:after, +md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after { + top: 0; +} + +md-slider[md-vertical][disabled][readonly] .md-thumb { + transform: scale(0); +} + +md-slider[md-vertical][disabled][readonly] .md-sign, +md-slider[md-vertical][disabled][readonly] .md-sign:after { + opacity: 1; + transform: translate3d(0,0,0) scale(1); +} + +md-slider[md-invert]:not([md-vertical]) .md-track-fill { + left: auto; + right: 0; +} + +[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill { + left: 0; +} + +[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill { + right: auto; +} + +md-slider[md-invert][md-vertical] .md-track-fill { + bottom: auto; + top: 0; +} + +md-slider-container { + display: flex; + align-items: center; + flex-direction: row; +} + +md-slider-container>:first-child:not(md-slider), +md-slider-container>:last-child:not(md-slider) { + min-width: 25px; + max-width: 42px; + height: 25px; + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-property: color,max-width; +} + +md-slider-container>:first-child:not(md-slider) { + margin-right: 16px; +} + +[dir=rtl] md-slider-container>:first-child:not(md-slider) { + margin-right: auto; + margin-left: 16px; +} + +md-slider-container>:last-child:not(md-slider) { + margin-left: 16px; +} + +[dir=rtl] md-slider-container>:last-child:not(md-slider) { + margin-left: auto; + margin-right: 16px; +} + +md-slider-container[md-vertical] { + flex-direction: column; +} + +md-slider-container[md-vertical]>:first-child:not(md-slider), +md-slider-container[md-vertical]>:last-child:not(md-slider) { + margin-right: 0; + margin-left: 0; + text-align: center; +} + +md-slider-container md-input-container input[type=number] { + text-align: center; + padding-left: 15px; + height: 50px; + margin-top: -25px; +} + +[dir=rtl] md-slider-container md-input-container input[type=number] { + padding-left: 0; + padding-right: 15px; +} + +@media screen and (-ms-high-contrast:active) { + md-slider.md-default-theme .md-track { + border-bottom: 1px solid #fff; + } +} + +.md-sticky-clone { + z-index: 2; + top: 0; + left: 0; + right: 0; + position: absolute!important; + transform: translate3d(-9999px,-9999px,0); +} + +.md-sticky-clone[sticky-state=active] { + transform: translate3d(0,0,0); +} + +.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner { + -webkit-animation: subheaderStickyHoverIn .3s ease-out both; + animation: subheaderStickyHoverIn .3s ease-out both; +} + +@-webkit-keyframes subheaderStickyHoverIn { + 0% { + box-shadow: 0 0 0 0 transparent; + } + + to { + box-shadow: 0 2px 4px 0 rgba(0,0,0,.16); + } +} + +@keyframes subheaderStickyHoverIn { + 0% { + box-shadow: 0 0 0 0 transparent; + } + + to { + box-shadow: 0 2px 4px 0 rgba(0,0,0,.16); + } +} + +@-webkit-keyframes subheaderStickyHoverOut { + 0% { + box-shadow: 0 2px 4px 0 rgba(0,0,0,.16); + } + + to { + box-shadow: 0 0 0 0 transparent; + } +} + +@keyframes subheaderStickyHoverOut { + 0% { + box-shadow: 0 2px 4px 0 rgba(0,0,0,.16); + } + + to { + box-shadow: 0 0 0 0 transparent; + } +} + +.md-subheader-wrapper:not(.md-sticky-no-effect) { + transition: margin .2s ease-out; +} + +.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader { + margin: 0; +} + +.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone { + z-index: 2; +} + +.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active] { + margin-top: -2px; +} + +.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after { + -webkit-animation: subheaderStickyHoverOut .3s ease-out both; + animation: subheaderStickyHoverOut .3s ease-out both; +} + +.md-subheader { + display: block; + font-size: 14px; + font-weight: 500; + line-height: 1em; + margin: 0; + position: relative; +} + +.md-subheader .md-subheader-inner { + display: block; + padding: 16px; +} + +.md-subheader .md-subheader-content { + display: block; + z-index: 1; + position: relative; +} + +[md-swipe-left], +[md-swipe-right] { + touch-action: pan-y; +} + +[md-swipe-down], +[md-swipe-up] { + touch-action: pan-x; +} + +.md-inline-form md-switch { + margin-top: 18px; + margin-bottom: 19px; +} + +md-switch { + margin: 16px 0; + white-space: nowrap; + cursor: pointer; + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + height: 30px; + line-height: 28px; + align-items: center; + display: flex; + margin-left: inherit; + margin-right: 16px; +} + +[dir=rtl] md-switch { + margin-left: 16px; +} + +[dir=rtl] md-switch { + margin-right: inherit; +} + +md-switch:last-of-type { + margin-left: inherit; + margin-right: 0; +} + +[dir=rtl] md-switch:last-of-type { + margin-left: 0; +} + +[dir=rtl] md-switch:last-of-type { + margin-right: inherit; +} + +md-switch[disabled] { + cursor: default; +} + +md-switch[disabled] .md-container { + cursor: default; +} + +md-switch .md-container { + cursor: -webkit-grab; + cursor: grab; + width: 36px; + height: 24px; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + margin-right: 8px; + float: left; +} + +[dir=rtl] md-switch .md-container { + margin-right: 0; + margin-left: 8px; +} + +md-switch.md-inverted .md-container { + margin-right: 0; + margin-left: 8px; +} + +[dir=rtl] md-switch.md-inverted .md-container { + margin-right: 8px; +} + +[dir=rtl] md-switch.md-inverted .md-container { + margin-left: 0; +} + +md-switch:not([disabled]) .md-dragging, +md-switch:not([disabled]).md-dragging .md-container { + cursor: -webkit-grabbing; + cursor: grabbing; +} + +md-switch.md-focused .md-thumb:before { + left: -8px; + top: -8px; + right: -8px; + bottom: -8px; +} + +md-switch .md-label { + border-color: transparent; + border-width: 0; + float: left; +} + +md-switch .md-bar { + left: 1px; + width: 34px; + top: 5px; + height: 14px; + border-radius: 8px; + position: absolute; +} + +md-switch .md-thumb-container { + top: 2px; + left: 0; + width: 16px; + position: absolute; + transform: translate3d(0,0,0); + z-index: 1; +} + +md-switch.md-checked .md-thumb-container { + transform: translate3d(100%,0,0); +} + +md-switch .md-thumb { + position: absolute; + margin: 0; + left: 0; + top: 0; + outline: none; + height: 20px; + width: 20px; + border-radius: 50%; + box-shadow: 0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12); +} + +md-switch .md-thumb:before { + background-color: transparent; + border-radius: 50%; + content: ""; + position: absolute; + display: block; + height: auto; + left: 0; + top: 0; + right: 0; + bottom: 0; + transition: all .5s; + width: auto; +} + +md-switch .md-thumb .md-ripple-container { + position: absolute; + display: block; + width: auto; + height: auto; + left: -20px; + top: -20px; + right: -20px; + bottom: -20px; +} + +md-switch:not(.md-dragging) .md-bar, +md-switch:not(.md-dragging) .md-thumb, +md-switch:not(.md-dragging) .md-thumb-container { + transition: all .08s linear; + transition-property: transform,background-color; +} + +md-switch:not(.md-dragging) .md-bar, +md-switch:not(.md-dragging) .md-thumb { + transition-delay: .05s; +} + +@media screen and (-ms-high-contrast:active) { + md-switch.md-default-theme .md-bar { + background-color: #666; + } + + md-switch.md-default-theme.md-checked .md-bar { + background-color: #9e9e9e; + } + + md-switch.md-default-theme .md-thumb { + background-color: #fff; + } +} + +@-webkit-keyframes md-tab-content-hide { + 0% { + opacity: 1; + } + + 50% { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes md-tab-content-hide { + 0% { + opacity: 1; + } + + 50% { + opacity: 1; + } + + to { + opacity: 0; + } +} + +md-tab-data { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: -1; + opacity: 0; +} + +md-tabs { + display: block; + margin: 0; + border-radius: 2px; + overflow: hidden; + position: relative; + flex-shrink: 0; +} + +md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) { + min-height: 248px; +} + +md-tabs[md-align-tabs=bottom] { + padding-bottom: 48px; +} + +md-tabs[md-align-tabs=bottom]>md-tabs-wrapper { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 48px; + z-index: 2; +} + +md-tabs[md-align-tabs=bottom]>md-tabs-content-wrapper { + top: 0; + bottom: 48px; +} + +md-tabs.md-dynamic-height md-tabs-content-wrapper { + min-height: 0; + position: relative; + top: auto; + left: auto; + right: auto; + bottom: auto; + overflow: visible; +} + +md-tabs.md-dynamic-height md-tab-content.md-active { + position: relative; +} + +md-tabs[md-border-bottom] md-tabs-wrapper { + border-width: 0 0 1px; + border-style: solid; +} + +md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper { + top: 49px; +} + +md-tabs-wrapper { + display: block; + position: relative; + transform: translate(0,0); +} + +md-tabs-wrapper md-next-button, +md-tabs-wrapper md-prev-button { + height: 100%; + width: 32px; + position: absolute; + top: 50%; + transform: translateY(-50%); + line-height: 1em; + z-index: 2; + cursor: pointer; + font-size: 16px; + background: transparent no-repeat 50%; + transition: all .5s cubic-bezier(.35,0,.25,1); +} + +md-tabs-wrapper md-next-button:focus, +md-tabs-wrapper md-prev-button:focus { + outline: none; +} + +md-tabs-wrapper md-next-button.md-disabled, +md-tabs-wrapper md-prev-button.md-disabled { + opacity: .25; + cursor: default; +} + +md-tabs-wrapper md-next-button.ng-leave, +md-tabs-wrapper md-prev-button.ng-leave { + transition: none; +} + +md-tabs-wrapper md-next-button md-icon, +md-tabs-wrapper md-prev-button md-icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); +} + +[dir=rtl] md-tabs-wrapper md-next-button, +[dir=rtl] md-tabs-wrapper md-prev-button { + transform: rotateY(180deg) translateY(-50%); +} + +md-tabs-wrapper md-prev-button { + left: 0; + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg=="); +} + +[dir=rtl] md-tabs-wrapper md-prev-button { + left: auto; + right: 0; +} + +md-tabs-wrapper md-next-button { + right: 0; + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K"); +} + +[dir=rtl] md-tabs-wrapper md-next-button { + right: auto; + left: 0; +} + +md-tabs-wrapper md-next-button md-icon { + transform: translate(-50%,-50%) rotate(180deg); +} + +md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper { + width: 100%; + flex-direction: row; +} + +md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item { + flex-grow: 1; +} + +md-tabs-canvas { + position: relative; + overflow: hidden; + display: block; + height: 48px; +} + +md-tabs-canvas:after { + content: ""; + display: table; + clear: both; +} + +md-tabs-canvas .md-dummy-wrapper { + position: absolute; + top: 0; + left: 0; +} + +[dir=rtl] md-tabs-canvas .md-dummy-wrapper { + left: auto; + right: 0; +} + +md-tabs-canvas.md-paginated { + margin: 0 32px; +} + +md-tabs-canvas.md-center-tabs { + display: flex; + flex-direction: column; + text-align: center; +} + +md-tabs-canvas.md-center-tabs .md-tab { + float: none; + display: inline-block; +} + +md-pagination-wrapper { + height: 48px; + display: flex; + transition: transform .5s cubic-bezier(.35,0,.25,1); + position: absolute; + left: 0; + transform: translate(0,0); +} + +md-pagination-wrapper:after { + content: ""; + display: table; + clear: both; +} + +[dir=rtl] md-pagination-wrapper { + left: auto; + right: 0; +} + +md-pagination-wrapper.md-center-tabs { + position: relative; + justify-content: center; +} + +md-pagination-wrapper md-tab-item { + min-width: 72px; +} + +@media (min-width:600px) { + md-pagination-wrapper md-tab-item { + min-width: 160px; + } +} + +md-tabs-content-wrapper { + display: block; + top: 48px; + overflow: hidden; +} + +md-tab-content, +md-tabs-content-wrapper { + position: absolute; + left: 0; + right: 0; + bottom: 0; +} + +md-tab-content { + display: flex; + top: 0; + transition: transform .5s cubic-bezier(.35,0,.25,1); + overflow: auto; + transform: translate(0,0); +} + +md-tab-content.md-no-scroll { + bottom: auto; + overflow: hidden; +} + +md-tab-content.md-no-transition, +md-tab-content.ng-leave { + transition: none; +} + +md-tab-content.md-left:not(.md-active) { + transform: translateX(-100%); + -webkit-animation: md-tab-content-hide 1s; + animation: md-tab-content-hide 1s; + visibility: hidden; +} + +[dir=rtl] md-tab-content.md-left:not(.md-active) { + transform: translateX(100%); +} + +md-tab-content.md-left:not(.md-active) * { + transition: visibility 0s linear; + transition-delay: .5s; + visibility: hidden; +} + +md-tab-content.md-right:not(.md-active) { + transform: translateX(100%); + -webkit-animation: md-tab-content-hide 1s; + animation: md-tab-content-hide 1s; + visibility: hidden; +} + +[dir=rtl] md-tab-content.md-right:not(.md-active) { + transform: translateX(-100%); +} + +md-tab-content.md-right:not(.md-active) * { + transition: visibility 0s linear; + transition-delay: .5s; + visibility: hidden; +} + +md-tab-content>div { + flex: 1 0 100%; + min-width: 0; +} + +md-tab-content>div.ng-leave { + -webkit-animation: md-tab-content-hide 1s; + animation: md-tab-content-hide 1s; +} + +md-ink-bar { + position: absolute; + left: auto; + right: auto; + bottom: 0; + height: 2px; +} + +md-ink-bar.md-left { + transition: left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1); +} + +md-ink-bar.md-right { + transition: left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1); +} + +md-tab { + position: absolute; + z-index: -1; + left: -9999px; +} + +.md-tab { + font-size: 14px; + text-align: center; + line-height: 24px; + padding: 12px; + transition: background-color .35s cubic-bezier(.35,0,.25,1); + cursor: pointer; + white-space: nowrap; + position: relative; + text-transform: uppercase; + float: left; + font-weight: 500; + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; +} + +[dir=rtl] .md-tab { + float: right; +} + +.md-tab.md-focused, +.md-tab:focus { + box-shadow: none; + outline: none; +} + +.md-tab.md-active { + cursor: default; +} + +.md-tab.md-disabled { + pointer-events: none; + touch-action: pan-y; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-drag: none; + opacity: .5; + cursor: default; +} + +.md-tab.ng-leave { + transition: none; +} + +md-toolbar+md-dialog-content md-tabs, +md-toolbar+md-tabs { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.md-toast-text { + padding: 0 8px; +} + +md-toast { + position: absolute; + z-index: 105; + box-sizing: border-box; + cursor: default; + padding: 8px; + opacity: 1; +} + +md-toast, +md-toast .md-toast-content { + overflow: hidden; + transition: all .4s cubic-bezier(.25,.8,.25,1); +} + +md-toast .md-toast-content { + display: flex; + flex-direction: row; + align-items: center; + max-height: 168px; + max-width: 100%; + min-height: 48px; + padding: 0 16px; + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); + border-radius: 2px; + font-size: 14px; + transform: translate3d(0,0,0) rotateZ(0deg); + justify-content: flex-start; +} + +md-toast .md-toast-content:before { + content: ""; + min-height: 48px; + visibility: hidden; + display: inline-block; +} + +[dir=rtl] md-toast .md-toast-content { + justify-content: flex-end; +} + +md-toast .md-toast-content span { + flex: 1 1 0%; + box-sizing: border-box; + min-width: 0; +} + +md-toast.md-capsule, +md-toast.md-capsule .md-toast-content { + border-radius: 24px; +} + +md-toast.ng-leave-active .md-toast-content { + transition: all .3s cubic-bezier(.55,0,.55,.2); +} + +md-toast.md-swipedown .md-toast-content, +md-toast.md-swipeleft .md-toast-content, +md-toast.md-swiperight .md-toast-content, +md-toast.md-swipeup .md-toast-content { + transition: all .4s cubic-bezier(.25,.8,.25,1); +} + +md-toast.ng-enter { + opacity: 0; +} + +md-toast.ng-enter .md-toast-content { + transform: translate3d(0,100%,0); +} + +md-toast.ng-enter.md-top .md-toast-content { + transform: translate3d(0,-100%,0); +} + +md-toast.ng-enter.ng-enter-active { + opacity: 1; +} + +md-toast.ng-enter.ng-enter-active .md-toast-content { + transform: translate3d(0,0,0); +} + +md-toast.ng-leave.ng-leave-active .md-toast-content { + opacity: 0; + transform: translate3d(0,100%,0); +} + +md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content { + transform: translate3d(0,-50%,0); +} + +md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content { + transform: translate3d(0,50%,0); +} + +md-toast.ng-leave.ng-leave-active.md-top .md-toast-content { + transform: translate3d(0,-100%,0); +} + +md-toast .md-action { + line-height: 19px; + margin-left: 24px; + margin-right: 0; + cursor: pointer; + text-transform: uppercase; + float: right; +} + +md-toast .md-button { + min-width: 0; + margin-right: 0; + margin-left: 8px; +} + +[dir=rtl] md-toast .md-button { + margin-right: 8px; +} + +[dir=rtl] md-toast .md-button { + margin-left: 0; +} + +@media (max-width:959px) { + md-toast { + left: 0; + right: 0; + width: 100%; + max-width: 100%; + min-width: 0; + border-radius: 0; + bottom: 0; + padding: 0; + } + + md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content { + transform: translate3d(0,-50%,0); + } + + md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content { + transform: translate3d(0,50%,0); + } +} + +@media (min-width:960px) { + md-toast { + min-width: 304px; + } + + md-toast.md-bottom { + bottom: 0; + } + + md-toast.md-left { + left: 0; + } + + md-toast.md-right { + right: 0; + } + + md-toast.md-top { + top: 0; + } + + md-toast._md-start { + left: 0; + } + + [dir=rtl] md-toast._md-start { + left: auto; + right: 0; + } + + md-toast._md-end { + right: 0; + } + + [dir=rtl] md-toast._md-end { + right: auto; + left: 0; + } + + md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content { + transform: translate3d(-50%,0,0); + } + + md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content { + transform: translate3d(50%,0,0); + } +} + +@media (min-width:1920px) { + md-toast .md-toast-content { + max-width: 568px; + } +} + +@media screen and (-ms-high-contrast:active) { + md-toast { + border: 1px solid #fff; + } +} + +.md-toast-animating { + overflow: hidden!important; +} + +md-toolbar { + box-sizing: border-box; + display: flex; + flex-direction: column; + position: relative; + z-index: 2; + font-size: 20px; + min-height: 64px; + width: 100%; +} + +md-toolbar._md-toolbar-transitions { + transition-duration: .5s; + transition-timing-function: cubic-bezier(.35,0,.25,1); + transition-property: background-color,fill,color; +} + +md-toolbar.md-whiteframe-z1-add, +md-toolbar.md-whiteframe-z1-remove { + transition: box-shadow .5s linear; +} + +md-toolbar md-toolbar-filler { + width: 72px; +} + +md-toolbar *, +md-toolbar :after, +md-toolbar :before { + box-sizing: border-box; +} + +md-toolbar.ng-animate { + transition: none; +} + +md-toolbar.md-tall { + height: 128px; + min-height: 128px; + max-height: 128px; +} + +md-toolbar.md-medium-tall { + height: 88px; + min-height: 88px; + max-height: 88px; +} + +md-toolbar.md-medium-tall .md-toolbar-tools { + height: 48px; + min-height: 48px; + max-height: 48px; +} + +md-toolbar>.md-indent { + margin-left: 64px; +} + +[dir=rtl] md-toolbar>.md-indent { + margin-left: auto; + margin-right: 64px; +} + +md-toolbar~md-content>md-list { + padding: 0; +} + +md-toolbar~md-content>md-list md-list-item:last-child md-divider { + display: none; +} + +.md-toolbar-tools { + font-size: 20px; + letter-spacing: .005em; + box-sizing: border-box; + font-weight: 400; + display: flex; + align-items: center; + flex-direction: row; + width: 100%; + height: 64px; + max-height: 64px; + padding: 0 16px; + margin: 0; +} + +.md-toolbar-tools h1, +.md-toolbar-tools h2, +.md-toolbar-tools h3 { + font-size: inherit; + font-weight: inherit; + margin: inherit; +} + +.md-toolbar-tools a { + color: inherit; + text-decoration: none; +} + +.md-toolbar-tools .fill-height { + display: flex; + align-items: center; +} + +.md-toolbar-tools md-checkbox { + margin: inherit; +} + +.md-toolbar-tools .md-button { + margin-top: 0; + margin-bottom: 0; +} + +.md-toolbar-tools .md-button, +.md-toolbar-tools .md-button.md-icon-button md-icon { + transition-duration: .5s; + transition-timing-function: cubic-bezier(.35,0,.25,1); + transition-property: background-color,fill,color; +} + +.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate, +.md-toolbar-tools .md-button.ng-animate { + transition: none; +} + +.md-toolbar-tools>.md-button:first-child { + margin-left: -8px; +} + +[dir=rtl] .md-toolbar-tools>.md-button:first-child { + margin-left: auto; + margin-right: -8px; +} + +.md-toolbar-tools>.md-button:last-child { + margin-right: -8px; +} + +[dir=rtl] .md-toolbar-tools>.md-button:last-child { + margin-right: auto; + margin-left: -8px; +} + +.md-toolbar-tools>md-menu:last-child { + margin-right: -8px; +} + +[dir=rtl] .md-toolbar-tools>md-menu:last-child { + margin-right: auto; + margin-left: -8px; +} + +.md-toolbar-tools>md-menu:last-child>.md-button { + margin-right: 0; +} + +[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button { + margin-right: auto; + margin-left: 0; +} + +@media screen and (-ms-high-contrast:active) { + .md-toolbar-tools { + border-bottom: 1px solid #fff; + } +} + +@media (min-width:0) and (max-width:959px) and (orientation:portrait) { + md-toolbar { + min-height: 56px; + } + + .md-toolbar-tools { + height: 56px; + max-height: 56px; + } +} + +@media (min-width:0) and (max-width:959px) and (orientation:landscape) { + md-toolbar { + min-height: 48px; + } + + .md-toolbar-tools { + height: 48px; + max-height: 48px; + } +} + +.md-tooltip { + display: inline-block; + pointer-events: none; + border-radius: 4px; + overflow: hidden; + opacity: 0; + font-weight: 500; + font-size: 14px; + white-space: nowrap; + text-overflow: ellipsis; + height: 32px; + line-height: 32px; + padding-right: 16px; + padding-left: 16px; +} + +.md-tooltip.md-origin-top { + transform-origin: center bottom; + margin-top: -24px; +} + +.md-tooltip.md-origin-right { + transform-origin: left center; + margin-left: 24px; +} + +.md-tooltip.md-origin-bottom { + transform-origin: center top; + margin-top: 24px; +} + +.md-tooltip.md-origin-left { + transform-origin: right center; + margin-left: -24px; +} + +@media (min-width:960px) { + .md-tooltip { + font-size: 10px; + height: 22px; + line-height: 22px; + padding-right: 8px; + padding-left: 8px; + } + + .md-tooltip.md-origin-top { + margin-top: -14px; + } + + .md-tooltip.md-origin-right { + margin-left: 14px; + } + + .md-tooltip.md-origin-bottom { + margin-top: 14px; + } + + .md-tooltip.md-origin-left { + margin-left: -14px; + } +} + +.md-tooltip.md-show-add { + transform: scale(0); +} + +.md-tooltip.md-show { + transition: all .4s cubic-bezier(.25,.8,.25,1); + transition-duration: .15s; + transform: scale(1); + opacity: .9; +} + +.md-tooltip.md-hide { + transition: all .3s cubic-bezier(.55,0,.55,.2); + transition-duration: .15s; + transform: scale(0); + opacity: 0; +} + +.md-truncate { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.md-truncate.md-clip { + text-overflow: clip; +} + +.md-truncate.flex { + width: 0; +} + +.md-virtual-repeat-container { + box-sizing: border-box; + display: block; + margin: 0; + overflow: hidden; + padding: 0; + position: relative; +} + +.md-virtual-repeat-container .md-virtual-repeat-scroller { + bottom: 0; + box-sizing: border-box; + left: 0; + margin: 0; + overflow-x: hidden; + padding: 0; + position: absolute; + right: 0; + top: 0; + -webkit-overflow-scrolling: touch; +} + +.md-virtual-repeat-container .md-virtual-repeat-sizer { + box-sizing: border-box; + height: 1px; + display: block; + margin: 0; + padding: 0; + width: 1px; +} + +.md-virtual-repeat-container .md-virtual-repeat-offsetter { + box-sizing: border-box; + left: 0; + margin: 0; + padding: 0; + position: absolute; + right: 0; + top: 0; +} + +.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller { + overflow-x: auto; + overflow-y: hidden; +} + +.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter { + bottom: 16px; + right: auto; + white-space: nowrap; +} + +[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter { + right: auto; + left: auto; +} + +.md-whiteframe-1dp, +.md-whiteframe-z1 { + box-shadow: 0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12); +} + +.md-whiteframe-2dp { + box-shadow: 0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12); +} + +.md-whiteframe-3dp { + box-shadow: 0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12); +} + +.md-whiteframe-4dp, +.md-whiteframe-z2 { + 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); +} + +.md-whiteframe-5dp { + 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); +} + +.md-whiteframe-6dp { + 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); +} + +.md-whiteframe-7dp, +.md-whiteframe-z3 { + 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); +} + +.md-whiteframe-8dp { + 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); +} + +.md-whiteframe-9dp { + 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); +} + +.md-whiteframe-10dp, +.md-whiteframe-z4 { + 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); +} + +.md-whiteframe-11dp { + 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); +} + +.md-whiteframe-12dp { + 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); +} + +.md-whiteframe-13dp, +.md-whiteframe-z5 { + 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); +} + +.md-whiteframe-14dp { + 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); +} + +.md-whiteframe-15dp { + 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); +} + +.md-whiteframe-16dp { + 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); +} + +.md-whiteframe-17dp { + 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); +} + +.md-whiteframe-18dp { + 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); +} + +.md-whiteframe-19dp { + 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); +} + +.md-whiteframe-20dp { + 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); +} + +.md-whiteframe-21dp { + 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); +} + +.md-whiteframe-22dp { + 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); +} + +.md-whiteframe-23dp { + 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); +} + +.md-whiteframe-24dp { + 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); +} + +@media screen and (-ms-high-contrast:active) { + md-whiteframe { + border: 1px solid #fff; + } +} + +@media print { + [md-whiteframe], + md-whiteframe { + background-color: #fff; + } +} + +.ng-cloak, +.x-ng-cloak, +[data-ng-cloak], +[ng-cloak], +[ng\:cloak], +[x-ng-cloak] { + display: none!important; +} + +@-moz-document url-prefix() { + .layout-fill { + margin: 0; + width: 100%; + min-height: 100%; + height: 100%; + } +} + +.flex-order { + order: 0; +} + +.flex-order--20 { + order: -20; +} + +.flex-order--19 { + order: -19; +} + +.flex-order--18 { + order: -18; +} + +.flex-order--17 { + order: -17; +} + +.flex-order--16 { + order: -16; +} + +.flex-order--15 { + order: -15; +} + +.flex-order--14 { + order: -14; +} + +.flex-order--13 { + order: -13; +} + +.flex-order--12 { + order: -12; +} + +.flex-order--11 { + order: -11; +} + +.flex-order--10 { + order: -10; +} + +.flex-order--9 { + order: -9; +} + +.flex-order--8 { + order: -8; +} + +.flex-order--7 { + order: -7; +} + +.flex-order--6 { + order: -6; +} + +.flex-order--5 { + order: -5; +} + +.flex-order--4 { + order: -4; +} + +.flex-order--3 { + order: -3; +} + +.flex-order--2 { + order: -2; +} + +.flex-order--1 { + order: -1; +} + +.flex-order-0 { + order: 0; +} + +.flex-order-1 { + order: 1; +} + +.flex-order-2 { + order: 2; +} + +.flex-order-3 { + order: 3; +} + +.flex-order-4 { + order: 4; +} + +.flex-order-5 { + order: 5; +} + +.flex-order-6 { + order: 6; +} + +.flex-order-7 { + order: 7; +} + +.flex-order-8 { + order: 8; +} + +.flex-order-9 { + order: 9; +} + +.flex-order-10 { + order: 10; +} + +.flex-order-11 { + order: 11; +} + +.flex-order-12 { + order: 12; +} + +.flex-order-13 { + order: 13; +} + +.flex-order-14 { + order: 14; +} + +.flex-order-15 { + order: 15; +} + +.flex-order-16 { + order: 16; +} + +.flex-order-17 { + order: 17; +} + +.flex-order-18 { + order: 18; +} + +.flex-order-19 { + order: 19; +} + +.flex-order-20 { + order: 20; +} + +.flex-offset-0, +.layout-margin .flex-offset-0, +.layout-margin .offset-0, +.offset-0 { + margin-left: 0; +} + +[dir=rtl] .flex-offset-0, +[dir=rtl] .layout-margin .flex-offset-0, +[dir=rtl] .layout-margin .offset-0, +[dir=rtl] .offset-0 { + margin-left: auto; + margin-right: 0; +} + +.flex-offset-5, +.layout-margin .flex-offset-5, +.layout-margin .offset-5, +.offset-5 { + margin-left: 5%; +} + +[dir=rtl] .flex-offset-5, +[dir=rtl] .layout-margin .flex-offset-5, +[dir=rtl] .layout-margin .offset-5, +[dir=rtl] .offset-5 { + margin-left: auto; + margin-right: 5%; +} + +.flex-offset-10, +.layout-margin .flex-offset-10, +.layout-margin .offset-10, +.offset-10 { + margin-left: 10%; +} + +[dir=rtl] .flex-offset-10, +[dir=rtl] .layout-margin .flex-offset-10, +[dir=rtl] .layout-margin .offset-10, +[dir=rtl] .offset-10 { + margin-left: auto; + margin-right: 10%; +} + +.flex-offset-15, +.layout-margin .flex-offset-15, +.layout-margin .offset-15, +.offset-15 { + margin-left: 15%; +} + +[dir=rtl] .flex-offset-15, +[dir=rtl] .layout-margin .flex-offset-15, +[dir=rtl] .layout-margin .offset-15, +[dir=rtl] .offset-15 { + margin-left: auto; + margin-right: 15%; +} + +.flex-offset-20, +.layout-margin .flex-offset-20, +.layout-margin .offset-20, +.offset-20 { + margin-left: 20%; +} + +[dir=rtl] .flex-offset-20, +[dir=rtl] .layout-margin .flex-offset-20, +[dir=rtl] .layout-margin .offset-20, +[dir=rtl] .offset-20 { + margin-left: auto; + margin-right: 20%; +} + +.flex-offset-25, +.layout-margin .flex-offset-25, +.layout-margin .offset-25, +.offset-25 { + margin-left: 25%; +} + +[dir=rtl] .flex-offset-25, +[dir=rtl] .layout-margin .flex-offset-25, +[dir=rtl] .layout-margin .offset-25, +[dir=rtl] .offset-25 { + margin-left: auto; + margin-right: 25%; +} + +.flex-offset-30, +.layout-margin .flex-offset-30, +.layout-margin .offset-30, +.offset-30 { + margin-left: 30%; +} + +[dir=rtl] .flex-offset-30, +[dir=rtl] .layout-margin .flex-offset-30, +[dir=rtl] .layout-margin .offset-30, +[dir=rtl] .offset-30 { + margin-left: auto; + margin-right: 30%; +} + +.flex-offset-35, +.layout-margin .flex-offset-35, +.layout-margin .offset-35, +.offset-35 { + margin-left: 35%; +} + +[dir=rtl] .flex-offset-35, +[dir=rtl] .layout-margin .flex-offset-35, +[dir=rtl] .layout-margin .offset-35, +[dir=rtl] .offset-35 { + margin-left: auto; + margin-right: 35%; +} + +.flex-offset-40, +.layout-margin .flex-offset-40, +.layout-margin .offset-40, +.offset-40 { + margin-left: 40%; +} + +[dir=rtl] .flex-offset-40, +[dir=rtl] .layout-margin .flex-offset-40, +[dir=rtl] .layout-margin .offset-40, +[dir=rtl] .offset-40 { + margin-left: auto; + margin-right: 40%; +} + +.flex-offset-45, +.layout-margin .flex-offset-45, +.layout-margin .offset-45, +.offset-45 { + margin-left: 45%; +} + +[dir=rtl] .flex-offset-45, +[dir=rtl] .layout-margin .flex-offset-45, +[dir=rtl] .layout-margin .offset-45, +[dir=rtl] .offset-45 { + margin-left: auto; + margin-right: 45%; +} + +.flex-offset-50, +.layout-margin .flex-offset-50, +.layout-margin .offset-50, +.offset-50 { + margin-left: 50%; +} + +[dir=rtl] .flex-offset-50, +[dir=rtl] .layout-margin .flex-offset-50, +[dir=rtl] .layout-margin .offset-50, +[dir=rtl] .offset-50 { + margin-left: auto; + margin-right: 50%; +} + +.flex-offset-55, +.layout-margin .flex-offset-55, +.layout-margin .offset-55, +.offset-55 { + margin-left: 55%; +} + +[dir=rtl] .flex-offset-55, +[dir=rtl] .layout-margin .flex-offset-55, +[dir=rtl] .layout-margin .offset-55, +[dir=rtl] .offset-55 { + margin-left: auto; + margin-right: 55%; +} + +.flex-offset-60, +.layout-margin .flex-offset-60, +.layout-margin .offset-60, +.offset-60 { + margin-left: 60%; +} + +[dir=rtl] .flex-offset-60, +[dir=rtl] .layout-margin .flex-offset-60, +[dir=rtl] .layout-margin .offset-60, +[dir=rtl] .offset-60 { + margin-left: auto; + margin-right: 60%; +} + +.flex-offset-65, +.layout-margin .flex-offset-65, +.layout-margin .offset-65, +.offset-65 { + margin-left: 65%; +} + +[dir=rtl] .flex-offset-65, +[dir=rtl] .layout-margin .flex-offset-65, +[dir=rtl] .layout-margin .offset-65, +[dir=rtl] .offset-65 { + margin-left: auto; + margin-right: 65%; +} + +.flex-offset-70, +.layout-margin .flex-offset-70, +.layout-margin .offset-70, +.offset-70 { + margin-left: 70%; +} + +[dir=rtl] .flex-offset-70, +[dir=rtl] .layout-margin .flex-offset-70, +[dir=rtl] .layout-margin .offset-70, +[dir=rtl] .offset-70 { + margin-left: auto; + margin-right: 70%; +} + +.flex-offset-75, +.layout-margin .flex-offset-75, +.layout-margin .offset-75, +.offset-75 { + margin-left: 75%; +} + +[dir=rtl] .flex-offset-75, +[dir=rtl] .layout-margin .flex-offset-75, +[dir=rtl] .layout-margin .offset-75, +[dir=rtl] .offset-75 { + margin-left: auto; + margin-right: 75%; +} + +.flex-offset-80, +.layout-margin .flex-offset-80, +.layout-margin .offset-80, +.offset-80 { + margin-left: 80%; +} + +[dir=rtl] .flex-offset-80, +[dir=rtl] .layout-margin .flex-offset-80, +[dir=rtl] .layout-margin .offset-80, +[dir=rtl] .offset-80 { + margin-left: auto; + margin-right: 80%; +} + +.flex-offset-85, +.layout-margin .flex-offset-85, +.layout-margin .offset-85, +.offset-85 { + margin-left: 85%; +} + +[dir=rtl] .flex-offset-85, +[dir=rtl] .layout-margin .flex-offset-85, +[dir=rtl] .layout-margin .offset-85, +[dir=rtl] .offset-85 { + margin-left: auto; + margin-right: 85%; +} + +.flex-offset-90, +.layout-margin .flex-offset-90, +.layout-margin .offset-90, +.offset-90 { + margin-left: 90%; +} + +[dir=rtl] .flex-offset-90, +[dir=rtl] .layout-margin .flex-offset-90, +[dir=rtl] .layout-margin .offset-90, +[dir=rtl] .offset-90 { + margin-left: auto; + margin-right: 90%; +} + +.flex-offset-95, +.layout-margin .flex-offset-95, +.layout-margin .offset-95, +.offset-95 { + margin-left: 95%; +} + +[dir=rtl] .flex-offset-95, +[dir=rtl] .layout-margin .flex-offset-95, +[dir=rtl] .layout-margin .offset-95, +[dir=rtl] .offset-95 { + margin-left: auto; + margin-right: 95%; +} + +.flex-offset-33, +.layout-margin .flex-offset-33, +.layout-margin .offset-33, +.offset-33 { + margin-left: 33.33333%; +} + +.flex-offset-66, +.layout-margin .flex-offset-66, +.layout-margin .offset-66, +.offset-66 { + margin-left: 66.66667%; +} + +[dir=rtl] .flex-offset-66, +[dir=rtl] .layout-margin .flex-offset-66, +[dir=rtl] .layout-margin .offset-66, +[dir=rtl] .offset-66 { + margin-left: auto; + margin-right: 66.66667%; +} + +.layout-align, +.layout-align-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; +} + +.layout-align-start, +.layout-align-start-center, +.layout-align-start-end, +.layout-align-start-start, +.layout-align-start-stretch { + justify-content: flex-start; +} + +.layout-align-center, +.layout-align-center-center, +.layout-align-center-end, +.layout-align-center-start, +.layout-align-center-stretch { + justify-content: center; +} + +.layout-align-end, +.layout-align-end-center, +.layout-align-end-end, +.layout-align-end-start, +.layout-align-end-stretch { + justify-content: flex-end; +} + +.layout-align-space-around, +.layout-align-space-around-center, +.layout-align-space-around-end, +.layout-align-space-around-start, +.layout-align-space-around-stretch { + justify-content: space-around; +} + +.layout-align-space-between, +.layout-align-space-between-center, +.layout-align-space-between-end, +.layout-align-space-between-start, +.layout-align-space-between-stretch { + justify-content: space-between; +} + +.layout-align-center-start, +.layout-align-end-start, +.layout-align-space-around-start, +.layout-align-space-between-start, +.layout-align-start-start { + align-items: flex-start; + align-content: flex-start; +} + +.layout-align-center-center, +.layout-align-end-center, +.layout-align-space-around-center, +.layout-align-space-between-center, +.layout-align-start-center { + align-items: center; + align-content: center; + max-width: 100%; +} + +.layout-align-center-center>*, +.layout-align-end-center>*, +.layout-align-space-around-center>*, +.layout-align-space-between-center>*, +.layout-align-start-center>* { + max-width: 100%; + box-sizing: border-box; +} + +.layout-align-center-end, +.layout-align-end-end, +.layout-align-space-around-end, +.layout-align-space-between-end, +.layout-align-start-end { + align-items: flex-end; + align-content: flex-end; +} + +.layout-align-center-stretch, +.layout-align-end-stretch, +.layout-align-space-around-stretch, +.layout-align-space-between-stretch, +.layout-align-start-stretch { + align-items: stretch; + align-content: stretch; +} + +.flex { + flex: 1; +} + +.flex, +.flex-grow { + box-sizing: border-box; +} + +.flex-grow { + flex: 1 1 100%; +} + +.flex-initial { + flex: 0 1 auto; + box-sizing: border-box; +} + +.flex-auto { + flex: 1 1 auto; + box-sizing: border-box; +} + +.flex-none { + flex: 0 0 auto; + box-sizing: border-box; +} + +.flex-noshrink { + flex: 1 0 auto; + box-sizing: border-box; +} + +.flex-nogrow { + flex: 0 1 auto; +} + +.flex-0, +.flex-nogrow { + box-sizing: border-box; +} + +.flex-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; +} + +.layout-row>.flex-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; +} + +.layout-column>.flex-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; +} + +.flex-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; +} + +.flex-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; +} + +.flex-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; +} + +.flex-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; +} + +.flex-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; +} + +.flex-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; +} + +.flex-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; +} + +.flex-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; +} + +.flex-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; +} + +.flex-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; +} + +.flex-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; +} + +.flex-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; +} + +.flex-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; +} + +.flex-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; +} + +.flex-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; +} + +.flex-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; +} + +.flex-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; +} + +.flex-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; +} + +.flex-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; +} + +.flex-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-column>.flex-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; +} + +.flex-33 { + max-width: 33.33%; +} + +.flex-33, +.flex-66 { + flex: 1 1 100%; + max-height: 100%; + box-sizing: border-box; +} + +.flex-66 { + max-width: 66.66%; +} + +.layout-row>.flex-33 { + flex: 1 1 33.33%; +} + +.layout-row>.flex-66 { + flex: 1 1 66.66%; +} + +.layout-column>.flex-33 { + flex: 1 1 33.33%; +} + +.layout-column>.flex-66 { + flex: 1 1 66.66%; +} + +.layout-row>.flex-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; +} + +.layout-row>.flex { + min-width: 0; +} + +.layout-column>.flex-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; +} + +.layout-column>.flex-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; +} + +.layout-column>.flex { + min-height: 0; +} + +.layout, +.layout-column, +.layout-row { + box-sizing: border-box; + display: flex; +} + +.layout-column { + flex-direction: column; +} + +.layout-row { + flex-direction: row; +} + +.layout-padding-sm>*, +.layout-padding>.flex-sm { + padding: 4px; +} + +.layout-padding, +.layout-padding-gt-sm, +.layout-padding-gt-sm>*, +.layout-padding-md, +.layout-padding-md>*, +.layout-padding>*, +.layout-padding>.flex, +.layout-padding>.flex-gt-sm, +.layout-padding>.flex-md { + padding: 8px; +} + +.layout-padding-gt-lg>*, +.layout-padding-gt-md>*, +.layout-padding-lg>*, +.layout-padding>.flex-gt-lg, +.layout-padding>.flex-gt-md, +.layout-padding>.flex-lg { + padding: 16px; +} + +.layout-margin-sm>*, +.layout-margin>.flex-sm { + margin: 4px; +} + +.layout-margin, +.layout-margin-gt-sm, +.layout-margin-gt-sm>*, +.layout-margin-md, +.layout-margin-md>*, +.layout-margin>*, +.layout-margin>.flex, +.layout-margin>.flex-gt-sm, +.layout-margin>.flex-md { + margin: 8px; +} + +.layout-margin-gt-lg>*, +.layout-margin-gt-md>*, +.layout-margin-lg>*, +.layout-margin>.flex-gt-lg, +.layout-margin>.flex-gt-md, +.layout-margin>.flex-lg { + margin: 16px; +} + +.layout-wrap { + flex-wrap: wrap; +} + +.layout-nowrap { + flex-wrap: nowrap; +} + +.layout-fill { + margin: 0; + width: 100%; + min-height: 100%; + height: 100%; +} + +@media (max-width:599px) { + .hide-xs:not(.show-xs):not(.show), + .hide:not(.show-xs):not(.show) { + display: none; + } + + .flex-order-xs--20 { + order: -20; + } + + .flex-order-xs--19 { + order: -19; + } + + .flex-order-xs--18 { + order: -18; + } + + .flex-order-xs--17 { + order: -17; + } + + .flex-order-xs--16 { + order: -16; + } + + .flex-order-xs--15 { + order: -15; + } + + .flex-order-xs--14 { + order: -14; + } + + .flex-order-xs--13 { + order: -13; + } + + .flex-order-xs--12 { + order: -12; + } + + .flex-order-xs--11 { + order: -11; + } + + .flex-order-xs--10 { + order: -10; + } + + .flex-order-xs--9 { + order: -9; + } + + .flex-order-xs--8 { + order: -8; + } + + .flex-order-xs--7 { + order: -7; + } + + .flex-order-xs--6 { + order: -6; + } + + .flex-order-xs--5 { + order: -5; + } + + .flex-order-xs--4 { + order: -4; + } + + .flex-order-xs--3 { + order: -3; + } + + .flex-order-xs--2 { + order: -2; + } + + .flex-order-xs--1 { + order: -1; + } + + .flex-order-xs-0 { + order: 0; + } + + .flex-order-xs-1 { + order: 1; + } + + .flex-order-xs-2 { + order: 2; + } + + .flex-order-xs-3 { + order: 3; + } + + .flex-order-xs-4 { + order: 4; + } + + .flex-order-xs-5 { + order: 5; + } + + .flex-order-xs-6 { + order: 6; + } + + .flex-order-xs-7 { + order: 7; + } + + .flex-order-xs-8 { + order: 8; + } + + .flex-order-xs-9 { + order: 9; + } + + .flex-order-xs-10 { + order: 10; + } + + .flex-order-xs-11 { + order: 11; + } + + .flex-order-xs-12 { + order: 12; + } + + .flex-order-xs-13 { + order: 13; + } + + .flex-order-xs-14 { + order: 14; + } + + .flex-order-xs-15 { + order: 15; + } + + .flex-order-xs-16 { + order: 16; + } + + .flex-order-xs-17 { + order: 17; + } + + .flex-order-xs-18 { + order: 18; + } + + .flex-order-xs-19 { + order: 19; + } + + .flex-order-xs-20 { + order: 20; + } + + .flex-offset-xs-0, + .layout-margin .flex-offset-xs-0, + .layout-margin .offset-xs-0, + .offset-xs-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-xs-0, + [dir=rtl] .layout-margin .flex-offset-xs-0, + [dir=rtl] .layout-margin .offset-xs-0, + [dir=rtl] .offset-xs-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-xs-5, + .layout-margin .flex-offset-xs-5, + .layout-margin .offset-xs-5, + .offset-xs-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-xs-5, + [dir=rtl] .layout-margin .flex-offset-xs-5, + [dir=rtl] .layout-margin .offset-xs-5, + [dir=rtl] .offset-xs-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-xs-10, + .layout-margin .flex-offset-xs-10, + .layout-margin .offset-xs-10, + .offset-xs-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-xs-10, + [dir=rtl] .layout-margin .flex-offset-xs-10, + [dir=rtl] .layout-margin .offset-xs-10, + [dir=rtl] .offset-xs-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-xs-15, + .layout-margin .flex-offset-xs-15, + .layout-margin .offset-xs-15, + .offset-xs-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-xs-15, + [dir=rtl] .layout-margin .flex-offset-xs-15, + [dir=rtl] .layout-margin .offset-xs-15, + [dir=rtl] .offset-xs-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-xs-20, + .layout-margin .flex-offset-xs-20, + .layout-margin .offset-xs-20, + .offset-xs-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-xs-20, + [dir=rtl] .layout-margin .flex-offset-xs-20, + [dir=rtl] .layout-margin .offset-xs-20, + [dir=rtl] .offset-xs-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-xs-25, + .layout-margin .flex-offset-xs-25, + .layout-margin .offset-xs-25, + .offset-xs-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-xs-25, + [dir=rtl] .layout-margin .flex-offset-xs-25, + [dir=rtl] .layout-margin .offset-xs-25, + [dir=rtl] .offset-xs-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-xs-30, + .layout-margin .flex-offset-xs-30, + .layout-margin .offset-xs-30, + .offset-xs-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-xs-30, + [dir=rtl] .layout-margin .flex-offset-xs-30, + [dir=rtl] .layout-margin .offset-xs-30, + [dir=rtl] .offset-xs-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-xs-35, + .layout-margin .flex-offset-xs-35, + .layout-margin .offset-xs-35, + .offset-xs-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-xs-35, + [dir=rtl] .layout-margin .flex-offset-xs-35, + [dir=rtl] .layout-margin .offset-xs-35, + [dir=rtl] .offset-xs-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-xs-40, + .layout-margin .flex-offset-xs-40, + .layout-margin .offset-xs-40, + .offset-xs-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-xs-40, + [dir=rtl] .layout-margin .flex-offset-xs-40, + [dir=rtl] .layout-margin .offset-xs-40, + [dir=rtl] .offset-xs-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-xs-45, + .layout-margin .flex-offset-xs-45, + .layout-margin .offset-xs-45, + .offset-xs-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-xs-45, + [dir=rtl] .layout-margin .flex-offset-xs-45, + [dir=rtl] .layout-margin .offset-xs-45, + [dir=rtl] .offset-xs-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-xs-50, + .layout-margin .flex-offset-xs-50, + .layout-margin .offset-xs-50, + .offset-xs-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-xs-50, + [dir=rtl] .layout-margin .flex-offset-xs-50, + [dir=rtl] .layout-margin .offset-xs-50, + [dir=rtl] .offset-xs-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-xs-55, + .layout-margin .flex-offset-xs-55, + .layout-margin .offset-xs-55, + .offset-xs-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-xs-55, + [dir=rtl] .layout-margin .flex-offset-xs-55, + [dir=rtl] .layout-margin .offset-xs-55, + [dir=rtl] .offset-xs-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-xs-60, + .layout-margin .flex-offset-xs-60, + .layout-margin .offset-xs-60, + .offset-xs-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-xs-60, + [dir=rtl] .layout-margin .flex-offset-xs-60, + [dir=rtl] .layout-margin .offset-xs-60, + [dir=rtl] .offset-xs-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-xs-65, + .layout-margin .flex-offset-xs-65, + .layout-margin .offset-xs-65, + .offset-xs-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-xs-65, + [dir=rtl] .layout-margin .flex-offset-xs-65, + [dir=rtl] .layout-margin .offset-xs-65, + [dir=rtl] .offset-xs-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-xs-70, + .layout-margin .flex-offset-xs-70, + .layout-margin .offset-xs-70, + .offset-xs-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-xs-70, + [dir=rtl] .layout-margin .flex-offset-xs-70, + [dir=rtl] .layout-margin .offset-xs-70, + [dir=rtl] .offset-xs-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-xs-75, + .layout-margin .flex-offset-xs-75, + .layout-margin .offset-xs-75, + .offset-xs-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-xs-75, + [dir=rtl] .layout-margin .flex-offset-xs-75, + [dir=rtl] .layout-margin .offset-xs-75, + [dir=rtl] .offset-xs-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-xs-80, + .layout-margin .flex-offset-xs-80, + .layout-margin .offset-xs-80, + .offset-xs-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-xs-80, + [dir=rtl] .layout-margin .flex-offset-xs-80, + [dir=rtl] .layout-margin .offset-xs-80, + [dir=rtl] .offset-xs-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-xs-85, + .layout-margin .flex-offset-xs-85, + .layout-margin .offset-xs-85, + .offset-xs-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-xs-85, + [dir=rtl] .layout-margin .flex-offset-xs-85, + [dir=rtl] .layout-margin .offset-xs-85, + [dir=rtl] .offset-xs-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-xs-90, + .layout-margin .flex-offset-xs-90, + .layout-margin .offset-xs-90, + .offset-xs-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-xs-90, + [dir=rtl] .layout-margin .flex-offset-xs-90, + [dir=rtl] .layout-margin .offset-xs-90, + [dir=rtl] .offset-xs-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-xs-95, + .layout-margin .flex-offset-xs-95, + .layout-margin .offset-xs-95, + .offset-xs-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-xs-95, + [dir=rtl] .layout-margin .flex-offset-xs-95, + [dir=rtl] .layout-margin .offset-xs-95, + [dir=rtl] .offset-xs-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-xs-33, + .layout-margin .flex-offset-xs-33, + .layout-margin .offset-xs-33, + .offset-xs-33 { + margin-left: 33.33333%; + } + + .flex-offset-xs-66, + .layout-margin .flex-offset-xs-66, + .layout-margin .offset-xs-66, + .offset-xs-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-xs-66, + [dir=rtl] .layout-margin .flex-offset-xs-66, + [dir=rtl] .layout-margin .offset-xs-66, + [dir=rtl] .offset-xs-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-xs, + .layout-align-xs-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-xs-start, + .layout-align-xs-start-center, + .layout-align-xs-start-end, + .layout-align-xs-start-start, + .layout-align-xs-start-stretch { + justify-content: flex-start; + } + + .layout-align-xs-center, + .layout-align-xs-center-center, + .layout-align-xs-center-end, + .layout-align-xs-center-start, + .layout-align-xs-center-stretch { + justify-content: center; + } + + .layout-align-xs-end, + .layout-align-xs-end-center, + .layout-align-xs-end-end, + .layout-align-xs-end-start, + .layout-align-xs-end-stretch { + justify-content: flex-end; + } + + .layout-align-xs-space-around, + .layout-align-xs-space-around-center, + .layout-align-xs-space-around-end, + .layout-align-xs-space-around-start, + .layout-align-xs-space-around-stretch { + justify-content: space-around; + } + + .layout-align-xs-space-between, + .layout-align-xs-space-between-center, + .layout-align-xs-space-between-end, + .layout-align-xs-space-between-start, + .layout-align-xs-space-between-stretch { + justify-content: space-between; + } + + .layout-align-xs-center-start, + .layout-align-xs-end-start, + .layout-align-xs-space-around-start, + .layout-align-xs-space-between-start, + .layout-align-xs-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-xs-center-center, + .layout-align-xs-end-center, + .layout-align-xs-space-around-center, + .layout-align-xs-space-between-center, + .layout-align-xs-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-xs-center-center>*, + .layout-align-xs-end-center>*, + .layout-align-xs-space-around-center>*, + .layout-align-xs-space-between-center>*, + .layout-align-xs-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-xs-center-end, + .layout-align-xs-end-end, + .layout-align-xs-space-around-end, + .layout-align-xs-space-between-end, + .layout-align-xs-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-xs-center-stretch, + .layout-align-xs-end-stretch, + .layout-align-xs-space-around-stretch, + .layout-align-xs-space-between-stretch, + .layout-align-xs-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-xs { + flex: 1; + box-sizing: border-box; + } + + .flex-xs-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-xs-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-xs-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-xs-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-xs-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-xs-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-xs-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-xs-column>.flex-xs-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xs-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-xs-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-row>.flex-xs-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xs-row>.flex { + min-width: 0; + } + + .layout-xs-column>.flex-xs-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-xs-column>.flex-xs-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-xs-column>.flex { + min-height: 0; + } + + .layout-xs, + .layout-xs-column, + .layout-xs-row { + box-sizing: border-box; + display: flex; + } + + .layout-xs-column { + flex-direction: column; + } + + .layout-xs-row { + flex-direction: row; + } +} + +@media (min-width:600px) { + .flex-order-gt-xs--20 { + order: -20; + } + + .flex-order-gt-xs--19 { + order: -19; + } + + .flex-order-gt-xs--18 { + order: -18; + } + + .flex-order-gt-xs--17 { + order: -17; + } + + .flex-order-gt-xs--16 { + order: -16; + } + + .flex-order-gt-xs--15 { + order: -15; + } + + .flex-order-gt-xs--14 { + order: -14; + } + + .flex-order-gt-xs--13 { + order: -13; + } + + .flex-order-gt-xs--12 { + order: -12; + } + + .flex-order-gt-xs--11 { + order: -11; + } + + .flex-order-gt-xs--10 { + order: -10; + } + + .flex-order-gt-xs--9 { + order: -9; + } + + .flex-order-gt-xs--8 { + order: -8; + } + + .flex-order-gt-xs--7 { + order: -7; + } + + .flex-order-gt-xs--6 { + order: -6; + } + + .flex-order-gt-xs--5 { + order: -5; + } + + .flex-order-gt-xs--4 { + order: -4; + } + + .flex-order-gt-xs--3 { + order: -3; + } + + .flex-order-gt-xs--2 { + order: -2; + } + + .flex-order-gt-xs--1 { + order: -1; + } + + .flex-order-gt-xs-0 { + order: 0; + } + + .flex-order-gt-xs-1 { + order: 1; + } + + .flex-order-gt-xs-2 { + order: 2; + } + + .flex-order-gt-xs-3 { + order: 3; + } + + .flex-order-gt-xs-4 { + order: 4; + } + + .flex-order-gt-xs-5 { + order: 5; + } + + .flex-order-gt-xs-6 { + order: 6; + } + + .flex-order-gt-xs-7 { + order: 7; + } + + .flex-order-gt-xs-8 { + order: 8; + } + + .flex-order-gt-xs-9 { + order: 9; + } + + .flex-order-gt-xs-10 { + order: 10; + } + + .flex-order-gt-xs-11 { + order: 11; + } + + .flex-order-gt-xs-12 { + order: 12; + } + + .flex-order-gt-xs-13 { + order: 13; + } + + .flex-order-gt-xs-14 { + order: 14; + } + + .flex-order-gt-xs-15 { + order: 15; + } + + .flex-order-gt-xs-16 { + order: 16; + } + + .flex-order-gt-xs-17 { + order: 17; + } + + .flex-order-gt-xs-18 { + order: 18; + } + + .flex-order-gt-xs-19 { + order: 19; + } + + .flex-order-gt-xs-20 { + order: 20; + } + + .flex-offset-gt-xs-0, + .layout-margin .flex-offset-gt-xs-0, + .layout-margin .offset-gt-xs-0, + .offset-gt-xs-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-gt-xs-0, + [dir=rtl] .layout-margin .flex-offset-gt-xs-0, + [dir=rtl] .layout-margin .offset-gt-xs-0, + [dir=rtl] .offset-gt-xs-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-gt-xs-5, + .layout-margin .flex-offset-gt-xs-5, + .layout-margin .offset-gt-xs-5, + .offset-gt-xs-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-gt-xs-5, + [dir=rtl] .layout-margin .flex-offset-gt-xs-5, + [dir=rtl] .layout-margin .offset-gt-xs-5, + [dir=rtl] .offset-gt-xs-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-gt-xs-10, + .layout-margin .flex-offset-gt-xs-10, + .layout-margin .offset-gt-xs-10, + .offset-gt-xs-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-gt-xs-10, + [dir=rtl] .layout-margin .flex-offset-gt-xs-10, + [dir=rtl] .layout-margin .offset-gt-xs-10, + [dir=rtl] .offset-gt-xs-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-gt-xs-15, + .layout-margin .flex-offset-gt-xs-15, + .layout-margin .offset-gt-xs-15, + .offset-gt-xs-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-gt-xs-15, + [dir=rtl] .layout-margin .flex-offset-gt-xs-15, + [dir=rtl] .layout-margin .offset-gt-xs-15, + [dir=rtl] .offset-gt-xs-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-gt-xs-20, + .layout-margin .flex-offset-gt-xs-20, + .layout-margin .offset-gt-xs-20, + .offset-gt-xs-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-gt-xs-20, + [dir=rtl] .layout-margin .flex-offset-gt-xs-20, + [dir=rtl] .layout-margin .offset-gt-xs-20, + [dir=rtl] .offset-gt-xs-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-gt-xs-25, + .layout-margin .flex-offset-gt-xs-25, + .layout-margin .offset-gt-xs-25, + .offset-gt-xs-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-gt-xs-25, + [dir=rtl] .layout-margin .flex-offset-gt-xs-25, + [dir=rtl] .layout-margin .offset-gt-xs-25, + [dir=rtl] .offset-gt-xs-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-gt-xs-30, + .layout-margin .flex-offset-gt-xs-30, + .layout-margin .offset-gt-xs-30, + .offset-gt-xs-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-gt-xs-30, + [dir=rtl] .layout-margin .flex-offset-gt-xs-30, + [dir=rtl] .layout-margin .offset-gt-xs-30, + [dir=rtl] .offset-gt-xs-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-gt-xs-35, + .layout-margin .flex-offset-gt-xs-35, + .layout-margin .offset-gt-xs-35, + .offset-gt-xs-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-gt-xs-35, + [dir=rtl] .layout-margin .flex-offset-gt-xs-35, + [dir=rtl] .layout-margin .offset-gt-xs-35, + [dir=rtl] .offset-gt-xs-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-gt-xs-40, + .layout-margin .flex-offset-gt-xs-40, + .layout-margin .offset-gt-xs-40, + .offset-gt-xs-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-gt-xs-40, + [dir=rtl] .layout-margin .flex-offset-gt-xs-40, + [dir=rtl] .layout-margin .offset-gt-xs-40, + [dir=rtl] .offset-gt-xs-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-gt-xs-45, + .layout-margin .flex-offset-gt-xs-45, + .layout-margin .offset-gt-xs-45, + .offset-gt-xs-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-gt-xs-45, + [dir=rtl] .layout-margin .flex-offset-gt-xs-45, + [dir=rtl] .layout-margin .offset-gt-xs-45, + [dir=rtl] .offset-gt-xs-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-gt-xs-50, + .layout-margin .flex-offset-gt-xs-50, + .layout-margin .offset-gt-xs-50, + .offset-gt-xs-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-gt-xs-50, + [dir=rtl] .layout-margin .flex-offset-gt-xs-50, + [dir=rtl] .layout-margin .offset-gt-xs-50, + [dir=rtl] .offset-gt-xs-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-gt-xs-55, + .layout-margin .flex-offset-gt-xs-55, + .layout-margin .offset-gt-xs-55, + .offset-gt-xs-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-gt-xs-55, + [dir=rtl] .layout-margin .flex-offset-gt-xs-55, + [dir=rtl] .layout-margin .offset-gt-xs-55, + [dir=rtl] .offset-gt-xs-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-gt-xs-60, + .layout-margin .flex-offset-gt-xs-60, + .layout-margin .offset-gt-xs-60, + .offset-gt-xs-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-gt-xs-60, + [dir=rtl] .layout-margin .flex-offset-gt-xs-60, + [dir=rtl] .layout-margin .offset-gt-xs-60, + [dir=rtl] .offset-gt-xs-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-gt-xs-65, + .layout-margin .flex-offset-gt-xs-65, + .layout-margin .offset-gt-xs-65, + .offset-gt-xs-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-gt-xs-65, + [dir=rtl] .layout-margin .flex-offset-gt-xs-65, + [dir=rtl] .layout-margin .offset-gt-xs-65, + [dir=rtl] .offset-gt-xs-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-gt-xs-70, + .layout-margin .flex-offset-gt-xs-70, + .layout-margin .offset-gt-xs-70, + .offset-gt-xs-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-gt-xs-70, + [dir=rtl] .layout-margin .flex-offset-gt-xs-70, + [dir=rtl] .layout-margin .offset-gt-xs-70, + [dir=rtl] .offset-gt-xs-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-gt-xs-75, + .layout-margin .flex-offset-gt-xs-75, + .layout-margin .offset-gt-xs-75, + .offset-gt-xs-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-gt-xs-75, + [dir=rtl] .layout-margin .flex-offset-gt-xs-75, + [dir=rtl] .layout-margin .offset-gt-xs-75, + [dir=rtl] .offset-gt-xs-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-gt-xs-80, + .layout-margin .flex-offset-gt-xs-80, + .layout-margin .offset-gt-xs-80, + .offset-gt-xs-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-gt-xs-80, + [dir=rtl] .layout-margin .flex-offset-gt-xs-80, + [dir=rtl] .layout-margin .offset-gt-xs-80, + [dir=rtl] .offset-gt-xs-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-gt-xs-85, + .layout-margin .flex-offset-gt-xs-85, + .layout-margin .offset-gt-xs-85, + .offset-gt-xs-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-gt-xs-85, + [dir=rtl] .layout-margin .flex-offset-gt-xs-85, + [dir=rtl] .layout-margin .offset-gt-xs-85, + [dir=rtl] .offset-gt-xs-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-gt-xs-90, + .layout-margin .flex-offset-gt-xs-90, + .layout-margin .offset-gt-xs-90, + .offset-gt-xs-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-gt-xs-90, + [dir=rtl] .layout-margin .flex-offset-gt-xs-90, + [dir=rtl] .layout-margin .offset-gt-xs-90, + [dir=rtl] .offset-gt-xs-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-gt-xs-95, + .layout-margin .flex-offset-gt-xs-95, + .layout-margin .offset-gt-xs-95, + .offset-gt-xs-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-gt-xs-95, + [dir=rtl] .layout-margin .flex-offset-gt-xs-95, + [dir=rtl] .layout-margin .offset-gt-xs-95, + [dir=rtl] .offset-gt-xs-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-gt-xs-33, + .layout-margin .flex-offset-gt-xs-33, + .layout-margin .offset-gt-xs-33, + .offset-gt-xs-33 { + margin-left: 33.33333%; + } + + .flex-offset-gt-xs-66, + .layout-margin .flex-offset-gt-xs-66, + .layout-margin .offset-gt-xs-66, + .offset-gt-xs-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-gt-xs-66, + [dir=rtl] .layout-margin .flex-offset-gt-xs-66, + [dir=rtl] .layout-margin .offset-gt-xs-66, + [dir=rtl] .offset-gt-xs-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-gt-xs, + .layout-align-gt-xs-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-gt-xs-start, + .layout-align-gt-xs-start-center, + .layout-align-gt-xs-start-end, + .layout-align-gt-xs-start-start, + .layout-align-gt-xs-start-stretch { + justify-content: flex-start; + } + + .layout-align-gt-xs-center, + .layout-align-gt-xs-center-center, + .layout-align-gt-xs-center-end, + .layout-align-gt-xs-center-start, + .layout-align-gt-xs-center-stretch { + justify-content: center; + } + + .layout-align-gt-xs-end, + .layout-align-gt-xs-end-center, + .layout-align-gt-xs-end-end, + .layout-align-gt-xs-end-start, + .layout-align-gt-xs-end-stretch { + justify-content: flex-end; + } + + .layout-align-gt-xs-space-around, + .layout-align-gt-xs-space-around-center, + .layout-align-gt-xs-space-around-end, + .layout-align-gt-xs-space-around-start, + .layout-align-gt-xs-space-around-stretch { + justify-content: space-around; + } + + .layout-align-gt-xs-space-between, + .layout-align-gt-xs-space-between-center, + .layout-align-gt-xs-space-between-end, + .layout-align-gt-xs-space-between-start, + .layout-align-gt-xs-space-between-stretch { + justify-content: space-between; + } + + .layout-align-gt-xs-center-start, + .layout-align-gt-xs-end-start, + .layout-align-gt-xs-space-around-start, + .layout-align-gt-xs-space-between-start, + .layout-align-gt-xs-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-gt-xs-center-center, + .layout-align-gt-xs-end-center, + .layout-align-gt-xs-space-around-center, + .layout-align-gt-xs-space-between-center, + .layout-align-gt-xs-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-gt-xs-center-center>*, + .layout-align-gt-xs-end-center>*, + .layout-align-gt-xs-space-around-center>*, + .layout-align-gt-xs-space-between-center>*, + .layout-align-gt-xs-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-gt-xs-center-end, + .layout-align-gt-xs-end-end, + .layout-align-gt-xs-space-around-end, + .layout-align-gt-xs-space-between-end, + .layout-align-gt-xs-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-gt-xs-center-stretch, + .layout-align-gt-xs-end-stretch, + .layout-align-gt-xs-space-around-stretch, + .layout-align-gt-xs-space-between-stretch, + .layout-align-gt-xs-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-gt-xs { + flex: 1; + box-sizing: border-box; + } + + .flex-gt-xs-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-gt-xs-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-xs-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-gt-xs-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-gt-xs-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-gt-xs-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-gt-xs-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-gt-xs-column>.flex-gt-xs-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-gt-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-gt-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-gt-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-gt-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-gt-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-gt-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-gt-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-gt-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-gt-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-gt-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-gt-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-gt-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-gt-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-gt-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-gt-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-gt-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-gt-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-gt-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-gt-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-gt-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-xs-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-xs-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex-gt-xs-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-xs-row>.flex { + min-width: 0; + } + + .layout-gt-xs-column>.flex-gt-xs-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex-gt-xs-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-xs-column>.flex { + min-height: 0; + } + + .layout-gt-xs, + .layout-gt-xs-column, + .layout-gt-xs-row { + box-sizing: border-box; + display: flex; + } + + .layout-gt-xs-column { + flex-direction: column; + } + + .layout-gt-xs-row { + flex-direction: row; + } +} + +@media (min-width:600px) and (max-width:959px) { + .hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show), + .hide:not(.show-gt-xs):not(.show-sm):not(.show) { + display: none; + } + + .hide-sm:not(.show-gt-xs):not(.show-sm):not(.show) { + display: none; + } + + .flex-order-sm--20 { + order: -20; + } + + .flex-order-sm--19 { + order: -19; + } + + .flex-order-sm--18 { + order: -18; + } + + .flex-order-sm--17 { + order: -17; + } + + .flex-order-sm--16 { + order: -16; + } + + .flex-order-sm--15 { + order: -15; + } + + .flex-order-sm--14 { + order: -14; + } + + .flex-order-sm--13 { + order: -13; + } + + .flex-order-sm--12 { + order: -12; + } + + .flex-order-sm--11 { + order: -11; + } + + .flex-order-sm--10 { + order: -10; + } + + .flex-order-sm--9 { + order: -9; + } + + .flex-order-sm--8 { + order: -8; + } + + .flex-order-sm--7 { + order: -7; + } + + .flex-order-sm--6 { + order: -6; + } + + .flex-order-sm--5 { + order: -5; + } + + .flex-order-sm--4 { + order: -4; + } + + .flex-order-sm--3 { + order: -3; + } + + .flex-order-sm--2 { + order: -2; + } + + .flex-order-sm--1 { + order: -1; + } + + .flex-order-sm-0 { + order: 0; + } + + .flex-order-sm-1 { + order: 1; + } + + .flex-order-sm-2 { + order: 2; + } + + .flex-order-sm-3 { + order: 3; + } + + .flex-order-sm-4 { + order: 4; + } + + .flex-order-sm-5 { + order: 5; + } + + .flex-order-sm-6 { + order: 6; + } + + .flex-order-sm-7 { + order: 7; + } + + .flex-order-sm-8 { + order: 8; + } + + .flex-order-sm-9 { + order: 9; + } + + .flex-order-sm-10 { + order: 10; + } + + .flex-order-sm-11 { + order: 11; + } + + .flex-order-sm-12 { + order: 12; + } + + .flex-order-sm-13 { + order: 13; + } + + .flex-order-sm-14 { + order: 14; + } + + .flex-order-sm-15 { + order: 15; + } + + .flex-order-sm-16 { + order: 16; + } + + .flex-order-sm-17 { + order: 17; + } + + .flex-order-sm-18 { + order: 18; + } + + .flex-order-sm-19 { + order: 19; + } + + .flex-order-sm-20 { + order: 20; + } + + .flex-offset-sm-0, + .layout-margin .flex-offset-sm-0, + .layout-margin .offset-sm-0, + .offset-sm-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-sm-0, + [dir=rtl] .layout-margin .flex-offset-sm-0, + [dir=rtl] .layout-margin .offset-sm-0, + [dir=rtl] .offset-sm-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-sm-5, + .layout-margin .flex-offset-sm-5, + .layout-margin .offset-sm-5, + .offset-sm-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-sm-5, + [dir=rtl] .layout-margin .flex-offset-sm-5, + [dir=rtl] .layout-margin .offset-sm-5, + [dir=rtl] .offset-sm-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-sm-10, + .layout-margin .flex-offset-sm-10, + .layout-margin .offset-sm-10, + .offset-sm-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-sm-10, + [dir=rtl] .layout-margin .flex-offset-sm-10, + [dir=rtl] .layout-margin .offset-sm-10, + [dir=rtl] .offset-sm-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-sm-15, + .layout-margin .flex-offset-sm-15, + .layout-margin .offset-sm-15, + .offset-sm-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-sm-15, + [dir=rtl] .layout-margin .flex-offset-sm-15, + [dir=rtl] .layout-margin .offset-sm-15, + [dir=rtl] .offset-sm-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-sm-20, + .layout-margin .flex-offset-sm-20, + .layout-margin .offset-sm-20, + .offset-sm-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-sm-20, + [dir=rtl] .layout-margin .flex-offset-sm-20, + [dir=rtl] .layout-margin .offset-sm-20, + [dir=rtl] .offset-sm-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-sm-25, + .layout-margin .flex-offset-sm-25, + .layout-margin .offset-sm-25, + .offset-sm-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-sm-25, + [dir=rtl] .layout-margin .flex-offset-sm-25, + [dir=rtl] .layout-margin .offset-sm-25, + [dir=rtl] .offset-sm-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-sm-30, + .layout-margin .flex-offset-sm-30, + .layout-margin .offset-sm-30, + .offset-sm-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-sm-30, + [dir=rtl] .layout-margin .flex-offset-sm-30, + [dir=rtl] .layout-margin .offset-sm-30, + [dir=rtl] .offset-sm-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-sm-35, + .layout-margin .flex-offset-sm-35, + .layout-margin .offset-sm-35, + .offset-sm-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-sm-35, + [dir=rtl] .layout-margin .flex-offset-sm-35, + [dir=rtl] .layout-margin .offset-sm-35, + [dir=rtl] .offset-sm-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-sm-40, + .layout-margin .flex-offset-sm-40, + .layout-margin .offset-sm-40, + .offset-sm-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-sm-40, + [dir=rtl] .layout-margin .flex-offset-sm-40, + [dir=rtl] .layout-margin .offset-sm-40, + [dir=rtl] .offset-sm-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-sm-45, + .layout-margin .flex-offset-sm-45, + .layout-margin .offset-sm-45, + .offset-sm-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-sm-45, + [dir=rtl] .layout-margin .flex-offset-sm-45, + [dir=rtl] .layout-margin .offset-sm-45, + [dir=rtl] .offset-sm-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-sm-50, + .layout-margin .flex-offset-sm-50, + .layout-margin .offset-sm-50, + .offset-sm-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-sm-50, + [dir=rtl] .layout-margin .flex-offset-sm-50, + [dir=rtl] .layout-margin .offset-sm-50, + [dir=rtl] .offset-sm-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-sm-55, + .layout-margin .flex-offset-sm-55, + .layout-margin .offset-sm-55, + .offset-sm-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-sm-55, + [dir=rtl] .layout-margin .flex-offset-sm-55, + [dir=rtl] .layout-margin .offset-sm-55, + [dir=rtl] .offset-sm-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-sm-60, + .layout-margin .flex-offset-sm-60, + .layout-margin .offset-sm-60, + .offset-sm-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-sm-60, + [dir=rtl] .layout-margin .flex-offset-sm-60, + [dir=rtl] .layout-margin .offset-sm-60, + [dir=rtl] .offset-sm-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-sm-65, + .layout-margin .flex-offset-sm-65, + .layout-margin .offset-sm-65, + .offset-sm-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-sm-65, + [dir=rtl] .layout-margin .flex-offset-sm-65, + [dir=rtl] .layout-margin .offset-sm-65, + [dir=rtl] .offset-sm-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-sm-70, + .layout-margin .flex-offset-sm-70, + .layout-margin .offset-sm-70, + .offset-sm-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-sm-70, + [dir=rtl] .layout-margin .flex-offset-sm-70, + [dir=rtl] .layout-margin .offset-sm-70, + [dir=rtl] .offset-sm-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-sm-75, + .layout-margin .flex-offset-sm-75, + .layout-margin .offset-sm-75, + .offset-sm-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-sm-75, + [dir=rtl] .layout-margin .flex-offset-sm-75, + [dir=rtl] .layout-margin .offset-sm-75, + [dir=rtl] .offset-sm-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-sm-80, + .layout-margin .flex-offset-sm-80, + .layout-margin .offset-sm-80, + .offset-sm-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-sm-80, + [dir=rtl] .layout-margin .flex-offset-sm-80, + [dir=rtl] .layout-margin .offset-sm-80, + [dir=rtl] .offset-sm-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-sm-85, + .layout-margin .flex-offset-sm-85, + .layout-margin .offset-sm-85, + .offset-sm-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-sm-85, + [dir=rtl] .layout-margin .flex-offset-sm-85, + [dir=rtl] .layout-margin .offset-sm-85, + [dir=rtl] .offset-sm-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-sm-90, + .layout-margin .flex-offset-sm-90, + .layout-margin .offset-sm-90, + .offset-sm-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-sm-90, + [dir=rtl] .layout-margin .flex-offset-sm-90, + [dir=rtl] .layout-margin .offset-sm-90, + [dir=rtl] .offset-sm-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-sm-95, + .layout-margin .flex-offset-sm-95, + .layout-margin .offset-sm-95, + .offset-sm-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-sm-95, + [dir=rtl] .layout-margin .flex-offset-sm-95, + [dir=rtl] .layout-margin .offset-sm-95, + [dir=rtl] .offset-sm-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-sm-33, + .layout-margin .flex-offset-sm-33, + .layout-margin .offset-sm-33, + .offset-sm-33 { + margin-left: 33.33333%; + } + + .flex-offset-sm-66, + .layout-margin .flex-offset-sm-66, + .layout-margin .offset-sm-66, + .offset-sm-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-sm-66, + [dir=rtl] .layout-margin .flex-offset-sm-66, + [dir=rtl] .layout-margin .offset-sm-66, + [dir=rtl] .offset-sm-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-sm, + .layout-align-sm-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-sm-start, + .layout-align-sm-start-center, + .layout-align-sm-start-end, + .layout-align-sm-start-start, + .layout-align-sm-start-stretch { + justify-content: flex-start; + } + + .layout-align-sm-center, + .layout-align-sm-center-center, + .layout-align-sm-center-end, + .layout-align-sm-center-start, + .layout-align-sm-center-stretch { + justify-content: center; + } + + .layout-align-sm-end, + .layout-align-sm-end-center, + .layout-align-sm-end-end, + .layout-align-sm-end-start, + .layout-align-sm-end-stretch { + justify-content: flex-end; + } + + .layout-align-sm-space-around, + .layout-align-sm-space-around-center, + .layout-align-sm-space-around-end, + .layout-align-sm-space-around-start, + .layout-align-sm-space-around-stretch { + justify-content: space-around; + } + + .layout-align-sm-space-between, + .layout-align-sm-space-between-center, + .layout-align-sm-space-between-end, + .layout-align-sm-space-between-start, + .layout-align-sm-space-between-stretch { + justify-content: space-between; + } + + .layout-align-sm-center-start, + .layout-align-sm-end-start, + .layout-align-sm-space-around-start, + .layout-align-sm-space-between-start, + .layout-align-sm-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-sm-center-center, + .layout-align-sm-end-center, + .layout-align-sm-space-around-center, + .layout-align-sm-space-between-center, + .layout-align-sm-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-sm-center-center>*, + .layout-align-sm-end-center>*, + .layout-align-sm-space-around-center>*, + .layout-align-sm-space-between-center>*, + .layout-align-sm-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-sm-center-end, + .layout-align-sm-end-end, + .layout-align-sm-space-around-end, + .layout-align-sm-space-between-end, + .layout-align-sm-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-sm-center-stretch, + .layout-align-sm-end-stretch, + .layout-align-sm-space-around-stretch, + .layout-align-sm-space-between-stretch, + .layout-align-sm-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-sm { + flex: 1; + box-sizing: border-box; + } + + .flex-sm-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-sm-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-sm-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-sm-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-sm-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-sm-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-sm-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-sm-column>.flex-sm-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-sm-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-sm-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-row>.flex-sm-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-sm-row>.flex { + min-width: 0; + } + + .layout-sm-column>.flex-sm-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-sm-column>.flex-sm-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-sm-column>.flex { + min-height: 0; + } + + .layout-sm, + .layout-sm-column, + .layout-sm-row { + box-sizing: border-box; + display: flex; + } + + .layout-sm-column { + flex-direction: column; + } + + .layout-sm-row { + flex-direction: row; + } +} + +@media (min-width:960px) { + .flex-order-gt-sm--20 { + order: -20; + } + + .flex-order-gt-sm--19 { + order: -19; + } + + .flex-order-gt-sm--18 { + order: -18; + } + + .flex-order-gt-sm--17 { + order: -17; + } + + .flex-order-gt-sm--16 { + order: -16; + } + + .flex-order-gt-sm--15 { + order: -15; + } + + .flex-order-gt-sm--14 { + order: -14; + } + + .flex-order-gt-sm--13 { + order: -13; + } + + .flex-order-gt-sm--12 { + order: -12; + } + + .flex-order-gt-sm--11 { + order: -11; + } + + .flex-order-gt-sm--10 { + order: -10; + } + + .flex-order-gt-sm--9 { + order: -9; + } + + .flex-order-gt-sm--8 { + order: -8; + } + + .flex-order-gt-sm--7 { + order: -7; + } + + .flex-order-gt-sm--6 { + order: -6; + } + + .flex-order-gt-sm--5 { + order: -5; + } + + .flex-order-gt-sm--4 { + order: -4; + } + + .flex-order-gt-sm--3 { + order: -3; + } + + .flex-order-gt-sm--2 { + order: -2; + } + + .flex-order-gt-sm--1 { + order: -1; + } + + .flex-order-gt-sm-0 { + order: 0; + } + + .flex-order-gt-sm-1 { + order: 1; + } + + .flex-order-gt-sm-2 { + order: 2; + } + + .flex-order-gt-sm-3 { + order: 3; + } + + .flex-order-gt-sm-4 { + order: 4; + } + + .flex-order-gt-sm-5 { + order: 5; + } + + .flex-order-gt-sm-6 { + order: 6; + } + + .flex-order-gt-sm-7 { + order: 7; + } + + .flex-order-gt-sm-8 { + order: 8; + } + + .flex-order-gt-sm-9 { + order: 9; + } + + .flex-order-gt-sm-10 { + order: 10; + } + + .flex-order-gt-sm-11 { + order: 11; + } + + .flex-order-gt-sm-12 { + order: 12; + } + + .flex-order-gt-sm-13 { + order: 13; + } + + .flex-order-gt-sm-14 { + order: 14; + } + + .flex-order-gt-sm-15 { + order: 15; + } + + .flex-order-gt-sm-16 { + order: 16; + } + + .flex-order-gt-sm-17 { + order: 17; + } + + .flex-order-gt-sm-18 { + order: 18; + } + + .flex-order-gt-sm-19 { + order: 19; + } + + .flex-order-gt-sm-20 { + order: 20; + } + + .flex-offset-gt-sm-0, + .layout-margin .flex-offset-gt-sm-0, + .layout-margin .offset-gt-sm-0, + .offset-gt-sm-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-gt-sm-0, + [dir=rtl] .layout-margin .flex-offset-gt-sm-0, + [dir=rtl] .layout-margin .offset-gt-sm-0, + [dir=rtl] .offset-gt-sm-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-gt-sm-5, + .layout-margin .flex-offset-gt-sm-5, + .layout-margin .offset-gt-sm-5, + .offset-gt-sm-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-gt-sm-5, + [dir=rtl] .layout-margin .flex-offset-gt-sm-5, + [dir=rtl] .layout-margin .offset-gt-sm-5, + [dir=rtl] .offset-gt-sm-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-gt-sm-10, + .layout-margin .flex-offset-gt-sm-10, + .layout-margin .offset-gt-sm-10, + .offset-gt-sm-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-gt-sm-10, + [dir=rtl] .layout-margin .flex-offset-gt-sm-10, + [dir=rtl] .layout-margin .offset-gt-sm-10, + [dir=rtl] .offset-gt-sm-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-gt-sm-15, + .layout-margin .flex-offset-gt-sm-15, + .layout-margin .offset-gt-sm-15, + .offset-gt-sm-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-gt-sm-15, + [dir=rtl] .layout-margin .flex-offset-gt-sm-15, + [dir=rtl] .layout-margin .offset-gt-sm-15, + [dir=rtl] .offset-gt-sm-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-gt-sm-20, + .layout-margin .flex-offset-gt-sm-20, + .layout-margin .offset-gt-sm-20, + .offset-gt-sm-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-gt-sm-20, + [dir=rtl] .layout-margin .flex-offset-gt-sm-20, + [dir=rtl] .layout-margin .offset-gt-sm-20, + [dir=rtl] .offset-gt-sm-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-gt-sm-25, + .layout-margin .flex-offset-gt-sm-25, + .layout-margin .offset-gt-sm-25, + .offset-gt-sm-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-gt-sm-25, + [dir=rtl] .layout-margin .flex-offset-gt-sm-25, + [dir=rtl] .layout-margin .offset-gt-sm-25, + [dir=rtl] .offset-gt-sm-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-gt-sm-30, + .layout-margin .flex-offset-gt-sm-30, + .layout-margin .offset-gt-sm-30, + .offset-gt-sm-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-gt-sm-30, + [dir=rtl] .layout-margin .flex-offset-gt-sm-30, + [dir=rtl] .layout-margin .offset-gt-sm-30, + [dir=rtl] .offset-gt-sm-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-gt-sm-35, + .layout-margin .flex-offset-gt-sm-35, + .layout-margin .offset-gt-sm-35, + .offset-gt-sm-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-gt-sm-35, + [dir=rtl] .layout-margin .flex-offset-gt-sm-35, + [dir=rtl] .layout-margin .offset-gt-sm-35, + [dir=rtl] .offset-gt-sm-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-gt-sm-40, + .layout-margin .flex-offset-gt-sm-40, + .layout-margin .offset-gt-sm-40, + .offset-gt-sm-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-gt-sm-40, + [dir=rtl] .layout-margin .flex-offset-gt-sm-40, + [dir=rtl] .layout-margin .offset-gt-sm-40, + [dir=rtl] .offset-gt-sm-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-gt-sm-45, + .layout-margin .flex-offset-gt-sm-45, + .layout-margin .offset-gt-sm-45, + .offset-gt-sm-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-gt-sm-45, + [dir=rtl] .layout-margin .flex-offset-gt-sm-45, + [dir=rtl] .layout-margin .offset-gt-sm-45, + [dir=rtl] .offset-gt-sm-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-gt-sm-50, + .layout-margin .flex-offset-gt-sm-50, + .layout-margin .offset-gt-sm-50, + .offset-gt-sm-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-gt-sm-50, + [dir=rtl] .layout-margin .flex-offset-gt-sm-50, + [dir=rtl] .layout-margin .offset-gt-sm-50, + [dir=rtl] .offset-gt-sm-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-gt-sm-55, + .layout-margin .flex-offset-gt-sm-55, + .layout-margin .offset-gt-sm-55, + .offset-gt-sm-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-gt-sm-55, + [dir=rtl] .layout-margin .flex-offset-gt-sm-55, + [dir=rtl] .layout-margin .offset-gt-sm-55, + [dir=rtl] .offset-gt-sm-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-gt-sm-60, + .layout-margin .flex-offset-gt-sm-60, + .layout-margin .offset-gt-sm-60, + .offset-gt-sm-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-gt-sm-60, + [dir=rtl] .layout-margin .flex-offset-gt-sm-60, + [dir=rtl] .layout-margin .offset-gt-sm-60, + [dir=rtl] .offset-gt-sm-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-gt-sm-65, + .layout-margin .flex-offset-gt-sm-65, + .layout-margin .offset-gt-sm-65, + .offset-gt-sm-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-gt-sm-65, + [dir=rtl] .layout-margin .flex-offset-gt-sm-65, + [dir=rtl] .layout-margin .offset-gt-sm-65, + [dir=rtl] .offset-gt-sm-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-gt-sm-70, + .layout-margin .flex-offset-gt-sm-70, + .layout-margin .offset-gt-sm-70, + .offset-gt-sm-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-gt-sm-70, + [dir=rtl] .layout-margin .flex-offset-gt-sm-70, + [dir=rtl] .layout-margin .offset-gt-sm-70, + [dir=rtl] .offset-gt-sm-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-gt-sm-75, + .layout-margin .flex-offset-gt-sm-75, + .layout-margin .offset-gt-sm-75, + .offset-gt-sm-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-gt-sm-75, + [dir=rtl] .layout-margin .flex-offset-gt-sm-75, + [dir=rtl] .layout-margin .offset-gt-sm-75, + [dir=rtl] .offset-gt-sm-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-gt-sm-80, + .layout-margin .flex-offset-gt-sm-80, + .layout-margin .offset-gt-sm-80, + .offset-gt-sm-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-gt-sm-80, + [dir=rtl] .layout-margin .flex-offset-gt-sm-80, + [dir=rtl] .layout-margin .offset-gt-sm-80, + [dir=rtl] .offset-gt-sm-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-gt-sm-85, + .layout-margin .flex-offset-gt-sm-85, + .layout-margin .offset-gt-sm-85, + .offset-gt-sm-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-gt-sm-85, + [dir=rtl] .layout-margin .flex-offset-gt-sm-85, + [dir=rtl] .layout-margin .offset-gt-sm-85, + [dir=rtl] .offset-gt-sm-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-gt-sm-90, + .layout-margin .flex-offset-gt-sm-90, + .layout-margin .offset-gt-sm-90, + .offset-gt-sm-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-gt-sm-90, + [dir=rtl] .layout-margin .flex-offset-gt-sm-90, + [dir=rtl] .layout-margin .offset-gt-sm-90, + [dir=rtl] .offset-gt-sm-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-gt-sm-95, + .layout-margin .flex-offset-gt-sm-95, + .layout-margin .offset-gt-sm-95, + .offset-gt-sm-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-gt-sm-95, + [dir=rtl] .layout-margin .flex-offset-gt-sm-95, + [dir=rtl] .layout-margin .offset-gt-sm-95, + [dir=rtl] .offset-gt-sm-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-gt-sm-33, + .layout-margin .flex-offset-gt-sm-33, + .layout-margin .offset-gt-sm-33, + .offset-gt-sm-33 { + margin-left: 33.33333%; + } + + .flex-offset-gt-sm-66, + .layout-margin .flex-offset-gt-sm-66, + .layout-margin .offset-gt-sm-66, + .offset-gt-sm-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-gt-sm-66, + [dir=rtl] .layout-margin .flex-offset-gt-sm-66, + [dir=rtl] .layout-margin .offset-gt-sm-66, + [dir=rtl] .offset-gt-sm-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-gt-sm, + .layout-align-gt-sm-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-gt-sm-start, + .layout-align-gt-sm-start-center, + .layout-align-gt-sm-start-end, + .layout-align-gt-sm-start-start, + .layout-align-gt-sm-start-stretch { + justify-content: flex-start; + } + + .layout-align-gt-sm-center, + .layout-align-gt-sm-center-center, + .layout-align-gt-sm-center-end, + .layout-align-gt-sm-center-start, + .layout-align-gt-sm-center-stretch { + justify-content: center; + } + + .layout-align-gt-sm-end, + .layout-align-gt-sm-end-center, + .layout-align-gt-sm-end-end, + .layout-align-gt-sm-end-start, + .layout-align-gt-sm-end-stretch { + justify-content: flex-end; + } + + .layout-align-gt-sm-space-around, + .layout-align-gt-sm-space-around-center, + .layout-align-gt-sm-space-around-end, + .layout-align-gt-sm-space-around-start, + .layout-align-gt-sm-space-around-stretch { + justify-content: space-around; + } + + .layout-align-gt-sm-space-between, + .layout-align-gt-sm-space-between-center, + .layout-align-gt-sm-space-between-end, + .layout-align-gt-sm-space-between-start, + .layout-align-gt-sm-space-between-stretch { + justify-content: space-between; + } + + .layout-align-gt-sm-center-start, + .layout-align-gt-sm-end-start, + .layout-align-gt-sm-space-around-start, + .layout-align-gt-sm-space-between-start, + .layout-align-gt-sm-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-gt-sm-center-center, + .layout-align-gt-sm-end-center, + .layout-align-gt-sm-space-around-center, + .layout-align-gt-sm-space-between-center, + .layout-align-gt-sm-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-gt-sm-center-center>*, + .layout-align-gt-sm-end-center>*, + .layout-align-gt-sm-space-around-center>*, + .layout-align-gt-sm-space-between-center>*, + .layout-align-gt-sm-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-gt-sm-center-end, + .layout-align-gt-sm-end-end, + .layout-align-gt-sm-space-around-end, + .layout-align-gt-sm-space-between-end, + .layout-align-gt-sm-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-gt-sm-center-stretch, + .layout-align-gt-sm-end-stretch, + .layout-align-gt-sm-space-around-stretch, + .layout-align-gt-sm-space-between-stretch, + .layout-align-gt-sm-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-gt-sm { + flex: 1; + box-sizing: border-box; + } + + .flex-gt-sm-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-gt-sm-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-sm-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-gt-sm-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-gt-sm-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-gt-sm-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-gt-sm-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-gt-sm-column>.flex-gt-sm-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-gt-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-gt-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-gt-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-gt-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-gt-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-gt-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-gt-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-gt-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-gt-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-gt-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-gt-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-gt-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-gt-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-gt-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-gt-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-gt-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-gt-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-gt-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-gt-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-gt-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-sm-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-sm-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex-gt-sm-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-sm-row>.flex { + min-width: 0; + } + + .layout-gt-sm-column>.flex-gt-sm-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex-gt-sm-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-sm-column>.flex { + min-height: 0; + } + + .layout-gt-sm, + .layout-gt-sm-column, + .layout-gt-sm-row { + box-sizing: border-box; + display: flex; + } + + .layout-gt-sm-column { + flex-direction: column; + } + + .layout-gt-sm-row { + flex-direction: row; + } +} + +@media (min-width:960px) and (max-width:1279px) { + .hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show), + .hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show), + .hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show) { + display: none; + } + + .hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show) { + display: none; + } + + .flex-order-md--20 { + order: -20; + } + + .flex-order-md--19 { + order: -19; + } + + .flex-order-md--18 { + order: -18; + } + + .flex-order-md--17 { + order: -17; + } + + .flex-order-md--16 { + order: -16; + } + + .flex-order-md--15 { + order: -15; + } + + .flex-order-md--14 { + order: -14; + } + + .flex-order-md--13 { + order: -13; + } + + .flex-order-md--12 { + order: -12; + } + + .flex-order-md--11 { + order: -11; + } + + .flex-order-md--10 { + order: -10; + } + + .flex-order-md--9 { + order: -9; + } + + .flex-order-md--8 { + order: -8; + } + + .flex-order-md--7 { + order: -7; + } + + .flex-order-md--6 { + order: -6; + } + + .flex-order-md--5 { + order: -5; + } + + .flex-order-md--4 { + order: -4; + } + + .flex-order-md--3 { + order: -3; + } + + .flex-order-md--2 { + order: -2; + } + + .flex-order-md--1 { + order: -1; + } + + .flex-order-md-0 { + order: 0; + } + + .flex-order-md-1 { + order: 1; + } + + .flex-order-md-2 { + order: 2; + } + + .flex-order-md-3 { + order: 3; + } + + .flex-order-md-4 { + order: 4; + } + + .flex-order-md-5 { + order: 5; + } + + .flex-order-md-6 { + order: 6; + } + + .flex-order-md-7 { + order: 7; + } + + .flex-order-md-8 { + order: 8; + } + + .flex-order-md-9 { + order: 9; + } + + .flex-order-md-10 { + order: 10; + } + + .flex-order-md-11 { + order: 11; + } + + .flex-order-md-12 { + order: 12; + } + + .flex-order-md-13 { + order: 13; + } + + .flex-order-md-14 { + order: 14; + } + + .flex-order-md-15 { + order: 15; + } + + .flex-order-md-16 { + order: 16; + } + + .flex-order-md-17 { + order: 17; + } + + .flex-order-md-18 { + order: 18; + } + + .flex-order-md-19 { + order: 19; + } + + .flex-order-md-20 { + order: 20; + } + + .flex-offset-md-0, + .layout-margin .flex-offset-md-0, + .layout-margin .offset-md-0, + .offset-md-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-md-0, + [dir=rtl] .layout-margin .flex-offset-md-0, + [dir=rtl] .layout-margin .offset-md-0, + [dir=rtl] .offset-md-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-md-5, + .layout-margin .flex-offset-md-5, + .layout-margin .offset-md-5, + .offset-md-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-md-5, + [dir=rtl] .layout-margin .flex-offset-md-5, + [dir=rtl] .layout-margin .offset-md-5, + [dir=rtl] .offset-md-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-md-10, + .layout-margin .flex-offset-md-10, + .layout-margin .offset-md-10, + .offset-md-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-md-10, + [dir=rtl] .layout-margin .flex-offset-md-10, + [dir=rtl] .layout-margin .offset-md-10, + [dir=rtl] .offset-md-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-md-15, + .layout-margin .flex-offset-md-15, + .layout-margin .offset-md-15, + .offset-md-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-md-15, + [dir=rtl] .layout-margin .flex-offset-md-15, + [dir=rtl] .layout-margin .offset-md-15, + [dir=rtl] .offset-md-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-md-20, + .layout-margin .flex-offset-md-20, + .layout-margin .offset-md-20, + .offset-md-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-md-20, + [dir=rtl] .layout-margin .flex-offset-md-20, + [dir=rtl] .layout-margin .offset-md-20, + [dir=rtl] .offset-md-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-md-25, + .layout-margin .flex-offset-md-25, + .layout-margin .offset-md-25, + .offset-md-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-md-25, + [dir=rtl] .layout-margin .flex-offset-md-25, + [dir=rtl] .layout-margin .offset-md-25, + [dir=rtl] .offset-md-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-md-30, + .layout-margin .flex-offset-md-30, + .layout-margin .offset-md-30, + .offset-md-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-md-30, + [dir=rtl] .layout-margin .flex-offset-md-30, + [dir=rtl] .layout-margin .offset-md-30, + [dir=rtl] .offset-md-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-md-35, + .layout-margin .flex-offset-md-35, + .layout-margin .offset-md-35, + .offset-md-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-md-35, + [dir=rtl] .layout-margin .flex-offset-md-35, + [dir=rtl] .layout-margin .offset-md-35, + [dir=rtl] .offset-md-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-md-40, + .layout-margin .flex-offset-md-40, + .layout-margin .offset-md-40, + .offset-md-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-md-40, + [dir=rtl] .layout-margin .flex-offset-md-40, + [dir=rtl] .layout-margin .offset-md-40, + [dir=rtl] .offset-md-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-md-45, + .layout-margin .flex-offset-md-45, + .layout-margin .offset-md-45, + .offset-md-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-md-45, + [dir=rtl] .layout-margin .flex-offset-md-45, + [dir=rtl] .layout-margin .offset-md-45, + [dir=rtl] .offset-md-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-md-50, + .layout-margin .flex-offset-md-50, + .layout-margin .offset-md-50, + .offset-md-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-md-50, + [dir=rtl] .layout-margin .flex-offset-md-50, + [dir=rtl] .layout-margin .offset-md-50, + [dir=rtl] .offset-md-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-md-55, + .layout-margin .flex-offset-md-55, + .layout-margin .offset-md-55, + .offset-md-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-md-55, + [dir=rtl] .layout-margin .flex-offset-md-55, + [dir=rtl] .layout-margin .offset-md-55, + [dir=rtl] .offset-md-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-md-60, + .layout-margin .flex-offset-md-60, + .layout-margin .offset-md-60, + .offset-md-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-md-60, + [dir=rtl] .layout-margin .flex-offset-md-60, + [dir=rtl] .layout-margin .offset-md-60, + [dir=rtl] .offset-md-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-md-65, + .layout-margin .flex-offset-md-65, + .layout-margin .offset-md-65, + .offset-md-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-md-65, + [dir=rtl] .layout-margin .flex-offset-md-65, + [dir=rtl] .layout-margin .offset-md-65, + [dir=rtl] .offset-md-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-md-70, + .layout-margin .flex-offset-md-70, + .layout-margin .offset-md-70, + .offset-md-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-md-70, + [dir=rtl] .layout-margin .flex-offset-md-70, + [dir=rtl] .layout-margin .offset-md-70, + [dir=rtl] .offset-md-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-md-75, + .layout-margin .flex-offset-md-75, + .layout-margin .offset-md-75, + .offset-md-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-md-75, + [dir=rtl] .layout-margin .flex-offset-md-75, + [dir=rtl] .layout-margin .offset-md-75, + [dir=rtl] .offset-md-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-md-80, + .layout-margin .flex-offset-md-80, + .layout-margin .offset-md-80, + .offset-md-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-md-80, + [dir=rtl] .layout-margin .flex-offset-md-80, + [dir=rtl] .layout-margin .offset-md-80, + [dir=rtl] .offset-md-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-md-85, + .layout-margin .flex-offset-md-85, + .layout-margin .offset-md-85, + .offset-md-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-md-85, + [dir=rtl] .layout-margin .flex-offset-md-85, + [dir=rtl] .layout-margin .offset-md-85, + [dir=rtl] .offset-md-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-md-90, + .layout-margin .flex-offset-md-90, + .layout-margin .offset-md-90, + .offset-md-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-md-90, + [dir=rtl] .layout-margin .flex-offset-md-90, + [dir=rtl] .layout-margin .offset-md-90, + [dir=rtl] .offset-md-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-md-95, + .layout-margin .flex-offset-md-95, + .layout-margin .offset-md-95, + .offset-md-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-md-95, + [dir=rtl] .layout-margin .flex-offset-md-95, + [dir=rtl] .layout-margin .offset-md-95, + [dir=rtl] .offset-md-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-md-33, + .layout-margin .flex-offset-md-33, + .layout-margin .offset-md-33, + .offset-md-33 { + margin-left: 33.33333%; + } + + .flex-offset-md-66, + .layout-margin .flex-offset-md-66, + .layout-margin .offset-md-66, + .offset-md-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-md-66, + [dir=rtl] .layout-margin .flex-offset-md-66, + [dir=rtl] .layout-margin .offset-md-66, + [dir=rtl] .offset-md-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-md, + .layout-align-md-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-md-start, + .layout-align-md-start-center, + .layout-align-md-start-end, + .layout-align-md-start-start, + .layout-align-md-start-stretch { + justify-content: flex-start; + } + + .layout-align-md-center, + .layout-align-md-center-center, + .layout-align-md-center-end, + .layout-align-md-center-start, + .layout-align-md-center-stretch { + justify-content: center; + } + + .layout-align-md-end, + .layout-align-md-end-center, + .layout-align-md-end-end, + .layout-align-md-end-start, + .layout-align-md-end-stretch { + justify-content: flex-end; + } + + .layout-align-md-space-around, + .layout-align-md-space-around-center, + .layout-align-md-space-around-end, + .layout-align-md-space-around-start, + .layout-align-md-space-around-stretch { + justify-content: space-around; + } + + .layout-align-md-space-between, + .layout-align-md-space-between-center, + .layout-align-md-space-between-end, + .layout-align-md-space-between-start, + .layout-align-md-space-between-stretch { + justify-content: space-between; + } + + .layout-align-md-center-start, + .layout-align-md-end-start, + .layout-align-md-space-around-start, + .layout-align-md-space-between-start, + .layout-align-md-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-md-center-center, + .layout-align-md-end-center, + .layout-align-md-space-around-center, + .layout-align-md-space-between-center, + .layout-align-md-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-md-center-center>*, + .layout-align-md-end-center>*, + .layout-align-md-space-around-center>*, + .layout-align-md-space-between-center>*, + .layout-align-md-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-md-center-end, + .layout-align-md-end-end, + .layout-align-md-space-around-end, + .layout-align-md-space-between-end, + .layout-align-md-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-md-center-stretch, + .layout-align-md-end-stretch, + .layout-align-md-space-around-stretch, + .layout-align-md-space-between-stretch, + .layout-align-md-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-md { + flex: 1; + box-sizing: border-box; + } + + .flex-md-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-md-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-md-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-md-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-md-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-md-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-md-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-md-column>.flex-md-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-md-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-md-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-md-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-row>.flex-md-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-md-row>.flex { + min-width: 0; + } + + .layout-md-column>.flex-md-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-md-column>.flex-md-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-md-column>.flex { + min-height: 0; + } + + .layout-md, + .layout-md-column, + .layout-md-row { + box-sizing: border-box; + display: flex; + } + + .layout-md-column { + flex-direction: column; + } + + .layout-md-row { + flex-direction: row; + } +} + +@media (min-width:1280px) { + .flex-order-gt-md--20 { + order: -20; + } + + .flex-order-gt-md--19 { + order: -19; + } + + .flex-order-gt-md--18 { + order: -18; + } + + .flex-order-gt-md--17 { + order: -17; + } + + .flex-order-gt-md--16 { + order: -16; + } + + .flex-order-gt-md--15 { + order: -15; + } + + .flex-order-gt-md--14 { + order: -14; + } + + .flex-order-gt-md--13 { + order: -13; + } + + .flex-order-gt-md--12 { + order: -12; + } + + .flex-order-gt-md--11 { + order: -11; + } + + .flex-order-gt-md--10 { + order: -10; + } + + .flex-order-gt-md--9 { + order: -9; + } + + .flex-order-gt-md--8 { + order: -8; + } + + .flex-order-gt-md--7 { + order: -7; + } + + .flex-order-gt-md--6 { + order: -6; + } + + .flex-order-gt-md--5 { + order: -5; + } + + .flex-order-gt-md--4 { + order: -4; + } + + .flex-order-gt-md--3 { + order: -3; + } + + .flex-order-gt-md--2 { + order: -2; + } + + .flex-order-gt-md--1 { + order: -1; + } + + .flex-order-gt-md-0 { + order: 0; + } + + .flex-order-gt-md-1 { + order: 1; + } + + .flex-order-gt-md-2 { + order: 2; + } + + .flex-order-gt-md-3 { + order: 3; + } + + .flex-order-gt-md-4 { + order: 4; + } + + .flex-order-gt-md-5 { + order: 5; + } + + .flex-order-gt-md-6 { + order: 6; + } + + .flex-order-gt-md-7 { + order: 7; + } + + .flex-order-gt-md-8 { + order: 8; + } + + .flex-order-gt-md-9 { + order: 9; + } + + .flex-order-gt-md-10 { + order: 10; + } + + .flex-order-gt-md-11 { + order: 11; + } + + .flex-order-gt-md-12 { + order: 12; + } + + .flex-order-gt-md-13 { + order: 13; + } + + .flex-order-gt-md-14 { + order: 14; + } + + .flex-order-gt-md-15 { + order: 15; + } + + .flex-order-gt-md-16 { + order: 16; + } + + .flex-order-gt-md-17 { + order: 17; + } + + .flex-order-gt-md-18 { + order: 18; + } + + .flex-order-gt-md-19 { + order: 19; + } + + .flex-order-gt-md-20 { + order: 20; + } + + .flex-offset-gt-md-0, + .layout-margin .flex-offset-gt-md-0, + .layout-margin .offset-gt-md-0, + .offset-gt-md-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-gt-md-0, + [dir=rtl] .layout-margin .flex-offset-gt-md-0, + [dir=rtl] .layout-margin .offset-gt-md-0, + [dir=rtl] .offset-gt-md-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-gt-md-5, + .layout-margin .flex-offset-gt-md-5, + .layout-margin .offset-gt-md-5, + .offset-gt-md-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-gt-md-5, + [dir=rtl] .layout-margin .flex-offset-gt-md-5, + [dir=rtl] .layout-margin .offset-gt-md-5, + [dir=rtl] .offset-gt-md-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-gt-md-10, + .layout-margin .flex-offset-gt-md-10, + .layout-margin .offset-gt-md-10, + .offset-gt-md-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-gt-md-10, + [dir=rtl] .layout-margin .flex-offset-gt-md-10, + [dir=rtl] .layout-margin .offset-gt-md-10, + [dir=rtl] .offset-gt-md-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-gt-md-15, + .layout-margin .flex-offset-gt-md-15, + .layout-margin .offset-gt-md-15, + .offset-gt-md-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-gt-md-15, + [dir=rtl] .layout-margin .flex-offset-gt-md-15, + [dir=rtl] .layout-margin .offset-gt-md-15, + [dir=rtl] .offset-gt-md-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-gt-md-20, + .layout-margin .flex-offset-gt-md-20, + .layout-margin .offset-gt-md-20, + .offset-gt-md-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-gt-md-20, + [dir=rtl] .layout-margin .flex-offset-gt-md-20, + [dir=rtl] .layout-margin .offset-gt-md-20, + [dir=rtl] .offset-gt-md-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-gt-md-25, + .layout-margin .flex-offset-gt-md-25, + .layout-margin .offset-gt-md-25, + .offset-gt-md-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-gt-md-25, + [dir=rtl] .layout-margin .flex-offset-gt-md-25, + [dir=rtl] .layout-margin .offset-gt-md-25, + [dir=rtl] .offset-gt-md-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-gt-md-30, + .layout-margin .flex-offset-gt-md-30, + .layout-margin .offset-gt-md-30, + .offset-gt-md-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-gt-md-30, + [dir=rtl] .layout-margin .flex-offset-gt-md-30, + [dir=rtl] .layout-margin .offset-gt-md-30, + [dir=rtl] .offset-gt-md-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-gt-md-35, + .layout-margin .flex-offset-gt-md-35, + .layout-margin .offset-gt-md-35, + .offset-gt-md-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-gt-md-35, + [dir=rtl] .layout-margin .flex-offset-gt-md-35, + [dir=rtl] .layout-margin .offset-gt-md-35, + [dir=rtl] .offset-gt-md-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-gt-md-40, + .layout-margin .flex-offset-gt-md-40, + .layout-margin .offset-gt-md-40, + .offset-gt-md-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-gt-md-40, + [dir=rtl] .layout-margin .flex-offset-gt-md-40, + [dir=rtl] .layout-margin .offset-gt-md-40, + [dir=rtl] .offset-gt-md-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-gt-md-45, + .layout-margin .flex-offset-gt-md-45, + .layout-margin .offset-gt-md-45, + .offset-gt-md-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-gt-md-45, + [dir=rtl] .layout-margin .flex-offset-gt-md-45, + [dir=rtl] .layout-margin .offset-gt-md-45, + [dir=rtl] .offset-gt-md-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-gt-md-50, + .layout-margin .flex-offset-gt-md-50, + .layout-margin .offset-gt-md-50, + .offset-gt-md-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-gt-md-50, + [dir=rtl] .layout-margin .flex-offset-gt-md-50, + [dir=rtl] .layout-margin .offset-gt-md-50, + [dir=rtl] .offset-gt-md-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-gt-md-55, + .layout-margin .flex-offset-gt-md-55, + .layout-margin .offset-gt-md-55, + .offset-gt-md-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-gt-md-55, + [dir=rtl] .layout-margin .flex-offset-gt-md-55, + [dir=rtl] .layout-margin .offset-gt-md-55, + [dir=rtl] .offset-gt-md-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-gt-md-60, + .layout-margin .flex-offset-gt-md-60, + .layout-margin .offset-gt-md-60, + .offset-gt-md-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-gt-md-60, + [dir=rtl] .layout-margin .flex-offset-gt-md-60, + [dir=rtl] .layout-margin .offset-gt-md-60, + [dir=rtl] .offset-gt-md-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-gt-md-65, + .layout-margin .flex-offset-gt-md-65, + .layout-margin .offset-gt-md-65, + .offset-gt-md-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-gt-md-65, + [dir=rtl] .layout-margin .flex-offset-gt-md-65, + [dir=rtl] .layout-margin .offset-gt-md-65, + [dir=rtl] .offset-gt-md-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-gt-md-70, + .layout-margin .flex-offset-gt-md-70, + .layout-margin .offset-gt-md-70, + .offset-gt-md-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-gt-md-70, + [dir=rtl] .layout-margin .flex-offset-gt-md-70, + [dir=rtl] .layout-margin .offset-gt-md-70, + [dir=rtl] .offset-gt-md-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-gt-md-75, + .layout-margin .flex-offset-gt-md-75, + .layout-margin .offset-gt-md-75, + .offset-gt-md-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-gt-md-75, + [dir=rtl] .layout-margin .flex-offset-gt-md-75, + [dir=rtl] .layout-margin .offset-gt-md-75, + [dir=rtl] .offset-gt-md-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-gt-md-80, + .layout-margin .flex-offset-gt-md-80, + .layout-margin .offset-gt-md-80, + .offset-gt-md-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-gt-md-80, + [dir=rtl] .layout-margin .flex-offset-gt-md-80, + [dir=rtl] .layout-margin .offset-gt-md-80, + [dir=rtl] .offset-gt-md-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-gt-md-85, + .layout-margin .flex-offset-gt-md-85, + .layout-margin .offset-gt-md-85, + .offset-gt-md-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-gt-md-85, + [dir=rtl] .layout-margin .flex-offset-gt-md-85, + [dir=rtl] .layout-margin .offset-gt-md-85, + [dir=rtl] .offset-gt-md-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-gt-md-90, + .layout-margin .flex-offset-gt-md-90, + .layout-margin .offset-gt-md-90, + .offset-gt-md-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-gt-md-90, + [dir=rtl] .layout-margin .flex-offset-gt-md-90, + [dir=rtl] .layout-margin .offset-gt-md-90, + [dir=rtl] .offset-gt-md-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-gt-md-95, + .layout-margin .flex-offset-gt-md-95, + .layout-margin .offset-gt-md-95, + .offset-gt-md-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-gt-md-95, + [dir=rtl] .layout-margin .flex-offset-gt-md-95, + [dir=rtl] .layout-margin .offset-gt-md-95, + [dir=rtl] .offset-gt-md-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-gt-md-33, + .layout-margin .flex-offset-gt-md-33, + .layout-margin .offset-gt-md-33, + .offset-gt-md-33 { + margin-left: 33.33333%; + } + + .flex-offset-gt-md-66, + .layout-margin .flex-offset-gt-md-66, + .layout-margin .offset-gt-md-66, + .offset-gt-md-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-gt-md-66, + [dir=rtl] .layout-margin .flex-offset-gt-md-66, + [dir=rtl] .layout-margin .offset-gt-md-66, + [dir=rtl] .offset-gt-md-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-gt-md, + .layout-align-gt-md-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-gt-md-start, + .layout-align-gt-md-start-center, + .layout-align-gt-md-start-end, + .layout-align-gt-md-start-start, + .layout-align-gt-md-start-stretch { + justify-content: flex-start; + } + + .layout-align-gt-md-center, + .layout-align-gt-md-center-center, + .layout-align-gt-md-center-end, + .layout-align-gt-md-center-start, + .layout-align-gt-md-center-stretch { + justify-content: center; + } + + .layout-align-gt-md-end, + .layout-align-gt-md-end-center, + .layout-align-gt-md-end-end, + .layout-align-gt-md-end-start, + .layout-align-gt-md-end-stretch { + justify-content: flex-end; + } + + .layout-align-gt-md-space-around, + .layout-align-gt-md-space-around-center, + .layout-align-gt-md-space-around-end, + .layout-align-gt-md-space-around-start, + .layout-align-gt-md-space-around-stretch { + justify-content: space-around; + } + + .layout-align-gt-md-space-between, + .layout-align-gt-md-space-between-center, + .layout-align-gt-md-space-between-end, + .layout-align-gt-md-space-between-start, + .layout-align-gt-md-space-between-stretch { + justify-content: space-between; + } + + .layout-align-gt-md-center-start, + .layout-align-gt-md-end-start, + .layout-align-gt-md-space-around-start, + .layout-align-gt-md-space-between-start, + .layout-align-gt-md-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-gt-md-center-center, + .layout-align-gt-md-end-center, + .layout-align-gt-md-space-around-center, + .layout-align-gt-md-space-between-center, + .layout-align-gt-md-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-gt-md-center-center>*, + .layout-align-gt-md-end-center>*, + .layout-align-gt-md-space-around-center>*, + .layout-align-gt-md-space-between-center>*, + .layout-align-gt-md-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-gt-md-center-end, + .layout-align-gt-md-end-end, + .layout-align-gt-md-space-around-end, + .layout-align-gt-md-space-between-end, + .layout-align-gt-md-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-gt-md-center-stretch, + .layout-align-gt-md-end-stretch, + .layout-align-gt-md-space-around-stretch, + .layout-align-gt-md-space-between-stretch, + .layout-align-gt-md-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-gt-md { + flex: 1; + box-sizing: border-box; + } + + .flex-gt-md-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-gt-md-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-md-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-gt-md-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-gt-md-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-gt-md-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-gt-md-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-gt-md-column>.flex-gt-md-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-gt-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-gt-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-gt-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-gt-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-gt-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-gt-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-gt-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-gt-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-gt-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-gt-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-gt-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-gt-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-gt-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-gt-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-gt-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-gt-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-gt-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-gt-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-gt-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-gt-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-md-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-md-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex-gt-md-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-md-row>.flex { + min-width: 0; + } + + .layout-gt-md-column>.flex-gt-md-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex-gt-md-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-md-column>.flex { + min-height: 0; + } + + .layout-gt-md, + .layout-gt-md-column, + .layout-gt-md-row { + box-sizing: border-box; + display: flex; + } + + .layout-gt-md-column { + flex-direction: column; + } + + .layout-gt-md-row { + flex-direction: row; + } +} + +@media (min-width:1280px) and (max-width:1919px) { + .hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), + .hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), + .hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), + .hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show) { + display: none; + } + + .hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show) { + display: none; + } + + .flex-order-lg--20 { + order: -20; + } + + .flex-order-lg--19 { + order: -19; + } + + .flex-order-lg--18 { + order: -18; + } + + .flex-order-lg--17 { + order: -17; + } + + .flex-order-lg--16 { + order: -16; + } + + .flex-order-lg--15 { + order: -15; + } + + .flex-order-lg--14 { + order: -14; + } + + .flex-order-lg--13 { + order: -13; + } + + .flex-order-lg--12 { + order: -12; + } + + .flex-order-lg--11 { + order: -11; + } + + .flex-order-lg--10 { + order: -10; + } + + .flex-order-lg--9 { + order: -9; + } + + .flex-order-lg--8 { + order: -8; + } + + .flex-order-lg--7 { + order: -7; + } + + .flex-order-lg--6 { + order: -6; + } + + .flex-order-lg--5 { + order: -5; + } + + .flex-order-lg--4 { + order: -4; + } + + .flex-order-lg--3 { + order: -3; + } + + .flex-order-lg--2 { + order: -2; + } + + .flex-order-lg--1 { + order: -1; + } + + .flex-order-lg-0 { + order: 0; + } + + .flex-order-lg-1 { + order: 1; + } + + .flex-order-lg-2 { + order: 2; + } + + .flex-order-lg-3 { + order: 3; + } + + .flex-order-lg-4 { + order: 4; + } + + .flex-order-lg-5 { + order: 5; + } + + .flex-order-lg-6 { + order: 6; + } + + .flex-order-lg-7 { + order: 7; + } + + .flex-order-lg-8 { + order: 8; + } + + .flex-order-lg-9 { + order: 9; + } + + .flex-order-lg-10 { + order: 10; + } + + .flex-order-lg-11 { + order: 11; + } + + .flex-order-lg-12 { + order: 12; + } + + .flex-order-lg-13 { + order: 13; + } + + .flex-order-lg-14 { + order: 14; + } + + .flex-order-lg-15 { + order: 15; + } + + .flex-order-lg-16 { + order: 16; + } + + .flex-order-lg-17 { + order: 17; + } + + .flex-order-lg-18 { + order: 18; + } + + .flex-order-lg-19 { + order: 19; + } + + .flex-order-lg-20 { + order: 20; + } + + .flex-offset-lg-0, + .layout-margin .flex-offset-lg-0, + .layout-margin .offset-lg-0, + .offset-lg-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-lg-0, + [dir=rtl] .layout-margin .flex-offset-lg-0, + [dir=rtl] .layout-margin .offset-lg-0, + [dir=rtl] .offset-lg-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-lg-5, + .layout-margin .flex-offset-lg-5, + .layout-margin .offset-lg-5, + .offset-lg-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-lg-5, + [dir=rtl] .layout-margin .flex-offset-lg-5, + [dir=rtl] .layout-margin .offset-lg-5, + [dir=rtl] .offset-lg-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-lg-10, + .layout-margin .flex-offset-lg-10, + .layout-margin .offset-lg-10, + .offset-lg-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-lg-10, + [dir=rtl] .layout-margin .flex-offset-lg-10, + [dir=rtl] .layout-margin .offset-lg-10, + [dir=rtl] .offset-lg-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-lg-15, + .layout-margin .flex-offset-lg-15, + .layout-margin .offset-lg-15, + .offset-lg-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-lg-15, + [dir=rtl] .layout-margin .flex-offset-lg-15, + [dir=rtl] .layout-margin .offset-lg-15, + [dir=rtl] .offset-lg-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-lg-20, + .layout-margin .flex-offset-lg-20, + .layout-margin .offset-lg-20, + .offset-lg-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-lg-20, + [dir=rtl] .layout-margin .flex-offset-lg-20, + [dir=rtl] .layout-margin .offset-lg-20, + [dir=rtl] .offset-lg-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-lg-25, + .layout-margin .flex-offset-lg-25, + .layout-margin .offset-lg-25, + .offset-lg-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-lg-25, + [dir=rtl] .layout-margin .flex-offset-lg-25, + [dir=rtl] .layout-margin .offset-lg-25, + [dir=rtl] .offset-lg-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-lg-30, + .layout-margin .flex-offset-lg-30, + .layout-margin .offset-lg-30, + .offset-lg-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-lg-30, + [dir=rtl] .layout-margin .flex-offset-lg-30, + [dir=rtl] .layout-margin .offset-lg-30, + [dir=rtl] .offset-lg-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-lg-35, + .layout-margin .flex-offset-lg-35, + .layout-margin .offset-lg-35, + .offset-lg-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-lg-35, + [dir=rtl] .layout-margin .flex-offset-lg-35, + [dir=rtl] .layout-margin .offset-lg-35, + [dir=rtl] .offset-lg-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-lg-40, + .layout-margin .flex-offset-lg-40, + .layout-margin .offset-lg-40, + .offset-lg-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-lg-40, + [dir=rtl] .layout-margin .flex-offset-lg-40, + [dir=rtl] .layout-margin .offset-lg-40, + [dir=rtl] .offset-lg-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-lg-45, + .layout-margin .flex-offset-lg-45, + .layout-margin .offset-lg-45, + .offset-lg-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-lg-45, + [dir=rtl] .layout-margin .flex-offset-lg-45, + [dir=rtl] .layout-margin .offset-lg-45, + [dir=rtl] .offset-lg-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-lg-50, + .layout-margin .flex-offset-lg-50, + .layout-margin .offset-lg-50, + .offset-lg-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-lg-50, + [dir=rtl] .layout-margin .flex-offset-lg-50, + [dir=rtl] .layout-margin .offset-lg-50, + [dir=rtl] .offset-lg-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-lg-55, + .layout-margin .flex-offset-lg-55, + .layout-margin .offset-lg-55, + .offset-lg-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-lg-55, + [dir=rtl] .layout-margin .flex-offset-lg-55, + [dir=rtl] .layout-margin .offset-lg-55, + [dir=rtl] .offset-lg-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-lg-60, + .layout-margin .flex-offset-lg-60, + .layout-margin .offset-lg-60, + .offset-lg-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-lg-60, + [dir=rtl] .layout-margin .flex-offset-lg-60, + [dir=rtl] .layout-margin .offset-lg-60, + [dir=rtl] .offset-lg-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-lg-65, + .layout-margin .flex-offset-lg-65, + .layout-margin .offset-lg-65, + .offset-lg-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-lg-65, + [dir=rtl] .layout-margin .flex-offset-lg-65, + [dir=rtl] .layout-margin .offset-lg-65, + [dir=rtl] .offset-lg-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-lg-70, + .layout-margin .flex-offset-lg-70, + .layout-margin .offset-lg-70, + .offset-lg-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-lg-70, + [dir=rtl] .layout-margin .flex-offset-lg-70, + [dir=rtl] .layout-margin .offset-lg-70, + [dir=rtl] .offset-lg-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-lg-75, + .layout-margin .flex-offset-lg-75, + .layout-margin .offset-lg-75, + .offset-lg-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-lg-75, + [dir=rtl] .layout-margin .flex-offset-lg-75, + [dir=rtl] .layout-margin .offset-lg-75, + [dir=rtl] .offset-lg-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-lg-80, + .layout-margin .flex-offset-lg-80, + .layout-margin .offset-lg-80, + .offset-lg-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-lg-80, + [dir=rtl] .layout-margin .flex-offset-lg-80, + [dir=rtl] .layout-margin .offset-lg-80, + [dir=rtl] .offset-lg-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-lg-85, + .layout-margin .flex-offset-lg-85, + .layout-margin .offset-lg-85, + .offset-lg-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-lg-85, + [dir=rtl] .layout-margin .flex-offset-lg-85, + [dir=rtl] .layout-margin .offset-lg-85, + [dir=rtl] .offset-lg-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-lg-90, + .layout-margin .flex-offset-lg-90, + .layout-margin .offset-lg-90, + .offset-lg-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-lg-90, + [dir=rtl] .layout-margin .flex-offset-lg-90, + [dir=rtl] .layout-margin .offset-lg-90, + [dir=rtl] .offset-lg-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-lg-95, + .layout-margin .flex-offset-lg-95, + .layout-margin .offset-lg-95, + .offset-lg-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-lg-95, + [dir=rtl] .layout-margin .flex-offset-lg-95, + [dir=rtl] .layout-margin .offset-lg-95, + [dir=rtl] .offset-lg-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-lg-33, + .layout-margin .flex-offset-lg-33, + .layout-margin .offset-lg-33, + .offset-lg-33 { + margin-left: 33.33333%; + } + + .flex-offset-lg-66, + .layout-margin .flex-offset-lg-66, + .layout-margin .offset-lg-66, + .offset-lg-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-lg-66, + [dir=rtl] .layout-margin .flex-offset-lg-66, + [dir=rtl] .layout-margin .offset-lg-66, + [dir=rtl] .offset-lg-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-lg, + .layout-align-lg-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-lg-start, + .layout-align-lg-start-center, + .layout-align-lg-start-end, + .layout-align-lg-start-start, + .layout-align-lg-start-stretch { + justify-content: flex-start; + } + + .layout-align-lg-center, + .layout-align-lg-center-center, + .layout-align-lg-center-end, + .layout-align-lg-center-start, + .layout-align-lg-center-stretch { + justify-content: center; + } + + .layout-align-lg-end, + .layout-align-lg-end-center, + .layout-align-lg-end-end, + .layout-align-lg-end-start, + .layout-align-lg-end-stretch { + justify-content: flex-end; + } + + .layout-align-lg-space-around, + .layout-align-lg-space-around-center, + .layout-align-lg-space-around-end, + .layout-align-lg-space-around-start, + .layout-align-lg-space-around-stretch { + justify-content: space-around; + } + + .layout-align-lg-space-between, + .layout-align-lg-space-between-center, + .layout-align-lg-space-between-end, + .layout-align-lg-space-between-start, + .layout-align-lg-space-between-stretch { + justify-content: space-between; + } + + .layout-align-lg-center-start, + .layout-align-lg-end-start, + .layout-align-lg-space-around-start, + .layout-align-lg-space-between-start, + .layout-align-lg-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-lg-center-center, + .layout-align-lg-end-center, + .layout-align-lg-space-around-center, + .layout-align-lg-space-between-center, + .layout-align-lg-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-lg-center-center>*, + .layout-align-lg-end-center>*, + .layout-align-lg-space-around-center>*, + .layout-align-lg-space-between-center>*, + .layout-align-lg-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-lg-center-end, + .layout-align-lg-end-end, + .layout-align-lg-space-around-end, + .layout-align-lg-space-between-end, + .layout-align-lg-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-lg-center-stretch, + .layout-align-lg-end-stretch, + .layout-align-lg-space-around-stretch, + .layout-align-lg-space-between-stretch, + .layout-align-lg-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-lg { + flex: 1; + box-sizing: border-box; + } + + .flex-lg-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-lg-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-lg-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-lg-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-lg-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-lg-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-lg-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-lg-column>.flex-lg-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-lg-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-lg-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-row>.flex-lg-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-lg-row>.flex { + min-width: 0; + } + + .layout-lg-column>.flex-lg-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-lg-column>.flex-lg-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-lg-column>.flex { + min-height: 0; + } + + .layout-lg, + .layout-lg-column, + .layout-lg-row { + box-sizing: border-box; + display: flex; + } + + .layout-lg-column { + flex-direction: column; + } + + .layout-lg-row { + flex-direction: row; + } +} + +@media (min-width:1920px) { + .flex-order-gt-lg--20 { + order: -20; + } + + .flex-order-gt-lg--19 { + order: -19; + } + + .flex-order-gt-lg--18 { + order: -18; + } + + .flex-order-gt-lg--17 { + order: -17; + } + + .flex-order-gt-lg--16 { + order: -16; + } + + .flex-order-gt-lg--15 { + order: -15; + } + + .flex-order-gt-lg--14 { + order: -14; + } + + .flex-order-gt-lg--13 { + order: -13; + } + + .flex-order-gt-lg--12 { + order: -12; + } + + .flex-order-gt-lg--11 { + order: -11; + } + + .flex-order-gt-lg--10 { + order: -10; + } + + .flex-order-gt-lg--9 { + order: -9; + } + + .flex-order-gt-lg--8 { + order: -8; + } + + .flex-order-gt-lg--7 { + order: -7; + } + + .flex-order-gt-lg--6 { + order: -6; + } + + .flex-order-gt-lg--5 { + order: -5; + } + + .flex-order-gt-lg--4 { + order: -4; + } + + .flex-order-gt-lg--3 { + order: -3; + } + + .flex-order-gt-lg--2 { + order: -2; + } + + .flex-order-gt-lg--1 { + order: -1; + } + + .flex-order-gt-lg-0 { + order: 0; + } + + .flex-order-gt-lg-1 { + order: 1; + } + + .flex-order-gt-lg-2 { + order: 2; + } + + .flex-order-gt-lg-3 { + order: 3; + } + + .flex-order-gt-lg-4 { + order: 4; + } + + .flex-order-gt-lg-5 { + order: 5; + } + + .flex-order-gt-lg-6 { + order: 6; + } + + .flex-order-gt-lg-7 { + order: 7; + } + + .flex-order-gt-lg-8 { + order: 8; + } + + .flex-order-gt-lg-9 { + order: 9; + } + + .flex-order-gt-lg-10 { + order: 10; + } + + .flex-order-gt-lg-11 { + order: 11; + } + + .flex-order-gt-lg-12 { + order: 12; + } + + .flex-order-gt-lg-13 { + order: 13; + } + + .flex-order-gt-lg-14 { + order: 14; + } + + .flex-order-gt-lg-15 { + order: 15; + } + + .flex-order-gt-lg-16 { + order: 16; + } + + .flex-order-gt-lg-17 { + order: 17; + } + + .flex-order-gt-lg-18 { + order: 18; + } + + .flex-order-gt-lg-19 { + order: 19; + } + + .flex-order-gt-lg-20 { + order: 20; + } + + .flex-offset-gt-lg-0, + .layout-margin .flex-offset-gt-lg-0, + .layout-margin .offset-gt-lg-0, + .offset-gt-lg-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-gt-lg-0, + [dir=rtl] .layout-margin .flex-offset-gt-lg-0, + [dir=rtl] .layout-margin .offset-gt-lg-0, + [dir=rtl] .offset-gt-lg-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-gt-lg-5, + .layout-margin .flex-offset-gt-lg-5, + .layout-margin .offset-gt-lg-5, + .offset-gt-lg-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-gt-lg-5, + [dir=rtl] .layout-margin .flex-offset-gt-lg-5, + [dir=rtl] .layout-margin .offset-gt-lg-5, + [dir=rtl] .offset-gt-lg-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-gt-lg-10, + .layout-margin .flex-offset-gt-lg-10, + .layout-margin .offset-gt-lg-10, + .offset-gt-lg-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-gt-lg-10, + [dir=rtl] .layout-margin .flex-offset-gt-lg-10, + [dir=rtl] .layout-margin .offset-gt-lg-10, + [dir=rtl] .offset-gt-lg-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-gt-lg-15, + .layout-margin .flex-offset-gt-lg-15, + .layout-margin .offset-gt-lg-15, + .offset-gt-lg-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-gt-lg-15, + [dir=rtl] .layout-margin .flex-offset-gt-lg-15, + [dir=rtl] .layout-margin .offset-gt-lg-15, + [dir=rtl] .offset-gt-lg-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-gt-lg-20, + .layout-margin .flex-offset-gt-lg-20, + .layout-margin .offset-gt-lg-20, + .offset-gt-lg-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-gt-lg-20, + [dir=rtl] .layout-margin .flex-offset-gt-lg-20, + [dir=rtl] .layout-margin .offset-gt-lg-20, + [dir=rtl] .offset-gt-lg-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-gt-lg-25, + .layout-margin .flex-offset-gt-lg-25, + .layout-margin .offset-gt-lg-25, + .offset-gt-lg-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-gt-lg-25, + [dir=rtl] .layout-margin .flex-offset-gt-lg-25, + [dir=rtl] .layout-margin .offset-gt-lg-25, + [dir=rtl] .offset-gt-lg-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-gt-lg-30, + .layout-margin .flex-offset-gt-lg-30, + .layout-margin .offset-gt-lg-30, + .offset-gt-lg-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-gt-lg-30, + [dir=rtl] .layout-margin .flex-offset-gt-lg-30, + [dir=rtl] .layout-margin .offset-gt-lg-30, + [dir=rtl] .offset-gt-lg-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-gt-lg-35, + .layout-margin .flex-offset-gt-lg-35, + .layout-margin .offset-gt-lg-35, + .offset-gt-lg-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-gt-lg-35, + [dir=rtl] .layout-margin .flex-offset-gt-lg-35, + [dir=rtl] .layout-margin .offset-gt-lg-35, + [dir=rtl] .offset-gt-lg-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-gt-lg-40, + .layout-margin .flex-offset-gt-lg-40, + .layout-margin .offset-gt-lg-40, + .offset-gt-lg-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-gt-lg-40, + [dir=rtl] .layout-margin .flex-offset-gt-lg-40, + [dir=rtl] .layout-margin .offset-gt-lg-40, + [dir=rtl] .offset-gt-lg-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-gt-lg-45, + .layout-margin .flex-offset-gt-lg-45, + .layout-margin .offset-gt-lg-45, + .offset-gt-lg-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-gt-lg-45, + [dir=rtl] .layout-margin .flex-offset-gt-lg-45, + [dir=rtl] .layout-margin .offset-gt-lg-45, + [dir=rtl] .offset-gt-lg-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-gt-lg-50, + .layout-margin .flex-offset-gt-lg-50, + .layout-margin .offset-gt-lg-50, + .offset-gt-lg-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-gt-lg-50, + [dir=rtl] .layout-margin .flex-offset-gt-lg-50, + [dir=rtl] .layout-margin .offset-gt-lg-50, + [dir=rtl] .offset-gt-lg-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-gt-lg-55, + .layout-margin .flex-offset-gt-lg-55, + .layout-margin .offset-gt-lg-55, + .offset-gt-lg-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-gt-lg-55, + [dir=rtl] .layout-margin .flex-offset-gt-lg-55, + [dir=rtl] .layout-margin .offset-gt-lg-55, + [dir=rtl] .offset-gt-lg-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-gt-lg-60, + .layout-margin .flex-offset-gt-lg-60, + .layout-margin .offset-gt-lg-60, + .offset-gt-lg-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-gt-lg-60, + [dir=rtl] .layout-margin .flex-offset-gt-lg-60, + [dir=rtl] .layout-margin .offset-gt-lg-60, + [dir=rtl] .offset-gt-lg-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-gt-lg-65, + .layout-margin .flex-offset-gt-lg-65, + .layout-margin .offset-gt-lg-65, + .offset-gt-lg-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-gt-lg-65, + [dir=rtl] .layout-margin .flex-offset-gt-lg-65, + [dir=rtl] .layout-margin .offset-gt-lg-65, + [dir=rtl] .offset-gt-lg-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-gt-lg-70, + .layout-margin .flex-offset-gt-lg-70, + .layout-margin .offset-gt-lg-70, + .offset-gt-lg-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-gt-lg-70, + [dir=rtl] .layout-margin .flex-offset-gt-lg-70, + [dir=rtl] .layout-margin .offset-gt-lg-70, + [dir=rtl] .offset-gt-lg-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-gt-lg-75, + .layout-margin .flex-offset-gt-lg-75, + .layout-margin .offset-gt-lg-75, + .offset-gt-lg-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-gt-lg-75, + [dir=rtl] .layout-margin .flex-offset-gt-lg-75, + [dir=rtl] .layout-margin .offset-gt-lg-75, + [dir=rtl] .offset-gt-lg-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-gt-lg-80, + .layout-margin .flex-offset-gt-lg-80, + .layout-margin .offset-gt-lg-80, + .offset-gt-lg-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-gt-lg-80, + [dir=rtl] .layout-margin .flex-offset-gt-lg-80, + [dir=rtl] .layout-margin .offset-gt-lg-80, + [dir=rtl] .offset-gt-lg-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-gt-lg-85, + .layout-margin .flex-offset-gt-lg-85, + .layout-margin .offset-gt-lg-85, + .offset-gt-lg-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-gt-lg-85, + [dir=rtl] .layout-margin .flex-offset-gt-lg-85, + [dir=rtl] .layout-margin .offset-gt-lg-85, + [dir=rtl] .offset-gt-lg-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-gt-lg-90, + .layout-margin .flex-offset-gt-lg-90, + .layout-margin .offset-gt-lg-90, + .offset-gt-lg-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-gt-lg-90, + [dir=rtl] .layout-margin .flex-offset-gt-lg-90, + [dir=rtl] .layout-margin .offset-gt-lg-90, + [dir=rtl] .offset-gt-lg-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-gt-lg-95, + .layout-margin .flex-offset-gt-lg-95, + .layout-margin .offset-gt-lg-95, + .offset-gt-lg-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-gt-lg-95, + [dir=rtl] .layout-margin .flex-offset-gt-lg-95, + [dir=rtl] .layout-margin .offset-gt-lg-95, + [dir=rtl] .offset-gt-lg-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-gt-lg-33, + .layout-margin .flex-offset-gt-lg-33, + .layout-margin .offset-gt-lg-33, + .offset-gt-lg-33 { + margin-left: 33.33333%; + } + + .flex-offset-gt-lg-66, + .layout-margin .flex-offset-gt-lg-66, + .layout-margin .offset-gt-lg-66, + .offset-gt-lg-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-gt-lg-66, + [dir=rtl] .layout-margin .flex-offset-gt-lg-66, + [dir=rtl] .layout-margin .offset-gt-lg-66, + [dir=rtl] .offset-gt-lg-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-gt-lg, + .layout-align-gt-lg-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-gt-lg-start, + .layout-align-gt-lg-start-center, + .layout-align-gt-lg-start-end, + .layout-align-gt-lg-start-start, + .layout-align-gt-lg-start-stretch { + justify-content: flex-start; + } + + .layout-align-gt-lg-center, + .layout-align-gt-lg-center-center, + .layout-align-gt-lg-center-end, + .layout-align-gt-lg-center-start, + .layout-align-gt-lg-center-stretch { + justify-content: center; + } + + .layout-align-gt-lg-end, + .layout-align-gt-lg-end-center, + .layout-align-gt-lg-end-end, + .layout-align-gt-lg-end-start, + .layout-align-gt-lg-end-stretch { + justify-content: flex-end; + } + + .layout-align-gt-lg-space-around, + .layout-align-gt-lg-space-around-center, + .layout-align-gt-lg-space-around-end, + .layout-align-gt-lg-space-around-start, + .layout-align-gt-lg-space-around-stretch { + justify-content: space-around; + } + + .layout-align-gt-lg-space-between, + .layout-align-gt-lg-space-between-center, + .layout-align-gt-lg-space-between-end, + .layout-align-gt-lg-space-between-start, + .layout-align-gt-lg-space-between-stretch { + justify-content: space-between; + } + + .layout-align-gt-lg-center-start, + .layout-align-gt-lg-end-start, + .layout-align-gt-lg-space-around-start, + .layout-align-gt-lg-space-between-start, + .layout-align-gt-lg-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-gt-lg-center-center, + .layout-align-gt-lg-end-center, + .layout-align-gt-lg-space-around-center, + .layout-align-gt-lg-space-between-center, + .layout-align-gt-lg-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-gt-lg-center-center>*, + .layout-align-gt-lg-end-center>*, + .layout-align-gt-lg-space-around-center>*, + .layout-align-gt-lg-space-between-center>*, + .layout-align-gt-lg-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-gt-lg-center-end, + .layout-align-gt-lg-end-end, + .layout-align-gt-lg-space-around-end, + .layout-align-gt-lg-space-between-end, + .layout-align-gt-lg-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-gt-lg-center-stretch, + .layout-align-gt-lg-end-stretch, + .layout-align-gt-lg-space-around-stretch, + .layout-align-gt-lg-space-between-stretch, + .layout-align-gt-lg-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-gt-lg { + flex: 1; + box-sizing: border-box; + } + + .flex-gt-lg-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-gt-lg-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-lg-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-gt-lg-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-gt-lg-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-gt-lg-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-gt-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-gt-lg-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-gt-lg-column>.flex-gt-lg-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-gt-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-gt-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-gt-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-gt-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-gt-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-gt-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-gt-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-gt-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-gt-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-gt-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-gt-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-gt-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-gt-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-gt-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-gt-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-gt-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-gt-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-gt-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-gt-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-gt-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-gt-lg-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-gt-lg-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex-gt-lg-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-gt-lg-row>.flex { + min-width: 0; + } + + .layout-gt-lg-column>.flex-gt-lg-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex-gt-lg-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-gt-lg-column>.flex { + min-height: 0; + } + + .layout-gt-lg, + .layout-gt-lg-column, + .layout-gt-lg-row { + box-sizing: border-box; + display: flex; + } + + .layout-gt-lg-column { + flex-direction: column; + } + + .layout-gt-lg-row { + flex-direction: row; + } + + .flex-order-xl--20 { + order: -20; + } + + .flex-order-xl--19 { + order: -19; + } + + .flex-order-xl--18 { + order: -18; + } + + .flex-order-xl--17 { + order: -17; + } + + .flex-order-xl--16 { + order: -16; + } + + .flex-order-xl--15 { + order: -15; + } + + .flex-order-xl--14 { + order: -14; + } + + .flex-order-xl--13 { + order: -13; + } + + .flex-order-xl--12 { + order: -12; + } + + .flex-order-xl--11 { + order: -11; + } + + .flex-order-xl--10 { + order: -10; + } + + .flex-order-xl--9 { + order: -9; + } + + .flex-order-xl--8 { + order: -8; + } + + .flex-order-xl--7 { + order: -7; + } + + .flex-order-xl--6 { + order: -6; + } + + .flex-order-xl--5 { + order: -5; + } + + .flex-order-xl--4 { + order: -4; + } + + .flex-order-xl--3 { + order: -3; + } + + .flex-order-xl--2 { + order: -2; + } + + .flex-order-xl--1 { + order: -1; + } + + .flex-order-xl-0 { + order: 0; + } + + .flex-order-xl-1 { + order: 1; + } + + .flex-order-xl-2 { + order: 2; + } + + .flex-order-xl-3 { + order: 3; + } + + .flex-order-xl-4 { + order: 4; + } + + .flex-order-xl-5 { + order: 5; + } + + .flex-order-xl-6 { + order: 6; + } + + .flex-order-xl-7 { + order: 7; + } + + .flex-order-xl-8 { + order: 8; + } + + .flex-order-xl-9 { + order: 9; + } + + .flex-order-xl-10 { + order: 10; + } + + .flex-order-xl-11 { + order: 11; + } + + .flex-order-xl-12 { + order: 12; + } + + .flex-order-xl-13 { + order: 13; + } + + .flex-order-xl-14 { + order: 14; + } + + .flex-order-xl-15 { + order: 15; + } + + .flex-order-xl-16 { + order: 16; + } + + .flex-order-xl-17 { + order: 17; + } + + .flex-order-xl-18 { + order: 18; + } + + .flex-order-xl-19 { + order: 19; + } + + .flex-order-xl-20 { + order: 20; + } + + .flex-offset-xl-0, + .layout-margin .flex-offset-xl-0, + .layout-margin .offset-xl-0, + .offset-xl-0 { + margin-left: 0; + } + + [dir=rtl] .flex-offset-xl-0, + [dir=rtl] .layout-margin .flex-offset-xl-0, + [dir=rtl] .layout-margin .offset-xl-0, + [dir=rtl] .offset-xl-0 { + margin-left: auto; + margin-right: 0; + } + + .flex-offset-xl-5, + .layout-margin .flex-offset-xl-5, + .layout-margin .offset-xl-5, + .offset-xl-5 { + margin-left: 5%; + } + + [dir=rtl] .flex-offset-xl-5, + [dir=rtl] .layout-margin .flex-offset-xl-5, + [dir=rtl] .layout-margin .offset-xl-5, + [dir=rtl] .offset-xl-5 { + margin-left: auto; + margin-right: 5%; + } + + .flex-offset-xl-10, + .layout-margin .flex-offset-xl-10, + .layout-margin .offset-xl-10, + .offset-xl-10 { + margin-left: 10%; + } + + [dir=rtl] .flex-offset-xl-10, + [dir=rtl] .layout-margin .flex-offset-xl-10, + [dir=rtl] .layout-margin .offset-xl-10, + [dir=rtl] .offset-xl-10 { + margin-left: auto; + margin-right: 10%; + } + + .flex-offset-xl-15, + .layout-margin .flex-offset-xl-15, + .layout-margin .offset-xl-15, + .offset-xl-15 { + margin-left: 15%; + } + + [dir=rtl] .flex-offset-xl-15, + [dir=rtl] .layout-margin .flex-offset-xl-15, + [dir=rtl] .layout-margin .offset-xl-15, + [dir=rtl] .offset-xl-15 { + margin-left: auto; + margin-right: 15%; + } + + .flex-offset-xl-20, + .layout-margin .flex-offset-xl-20, + .layout-margin .offset-xl-20, + .offset-xl-20 { + margin-left: 20%; + } + + [dir=rtl] .flex-offset-xl-20, + [dir=rtl] .layout-margin .flex-offset-xl-20, + [dir=rtl] .layout-margin .offset-xl-20, + [dir=rtl] .offset-xl-20 { + margin-left: auto; + margin-right: 20%; + } + + .flex-offset-xl-25, + .layout-margin .flex-offset-xl-25, + .layout-margin .offset-xl-25, + .offset-xl-25 { + margin-left: 25%; + } + + [dir=rtl] .flex-offset-xl-25, + [dir=rtl] .layout-margin .flex-offset-xl-25, + [dir=rtl] .layout-margin .offset-xl-25, + [dir=rtl] .offset-xl-25 { + margin-left: auto; + margin-right: 25%; + } + + .flex-offset-xl-30, + .layout-margin .flex-offset-xl-30, + .layout-margin .offset-xl-30, + .offset-xl-30 { + margin-left: 30%; + } + + [dir=rtl] .flex-offset-xl-30, + [dir=rtl] .layout-margin .flex-offset-xl-30, + [dir=rtl] .layout-margin .offset-xl-30, + [dir=rtl] .offset-xl-30 { + margin-left: auto; + margin-right: 30%; + } + + .flex-offset-xl-35, + .layout-margin .flex-offset-xl-35, + .layout-margin .offset-xl-35, + .offset-xl-35 { + margin-left: 35%; + } + + [dir=rtl] .flex-offset-xl-35, + [dir=rtl] .layout-margin .flex-offset-xl-35, + [dir=rtl] .layout-margin .offset-xl-35, + [dir=rtl] .offset-xl-35 { + margin-left: auto; + margin-right: 35%; + } + + .flex-offset-xl-40, + .layout-margin .flex-offset-xl-40, + .layout-margin .offset-xl-40, + .offset-xl-40 { + margin-left: 40%; + } + + [dir=rtl] .flex-offset-xl-40, + [dir=rtl] .layout-margin .flex-offset-xl-40, + [dir=rtl] .layout-margin .offset-xl-40, + [dir=rtl] .offset-xl-40 { + margin-left: auto; + margin-right: 40%; + } + + .flex-offset-xl-45, + .layout-margin .flex-offset-xl-45, + .layout-margin .offset-xl-45, + .offset-xl-45 { + margin-left: 45%; + } + + [dir=rtl] .flex-offset-xl-45, + [dir=rtl] .layout-margin .flex-offset-xl-45, + [dir=rtl] .layout-margin .offset-xl-45, + [dir=rtl] .offset-xl-45 { + margin-left: auto; + margin-right: 45%; + } + + .flex-offset-xl-50, + .layout-margin .flex-offset-xl-50, + .layout-margin .offset-xl-50, + .offset-xl-50 { + margin-left: 50%; + } + + [dir=rtl] .flex-offset-xl-50, + [dir=rtl] .layout-margin .flex-offset-xl-50, + [dir=rtl] .layout-margin .offset-xl-50, + [dir=rtl] .offset-xl-50 { + margin-left: auto; + margin-right: 50%; + } + + .flex-offset-xl-55, + .layout-margin .flex-offset-xl-55, + .layout-margin .offset-xl-55, + .offset-xl-55 { + margin-left: 55%; + } + + [dir=rtl] .flex-offset-xl-55, + [dir=rtl] .layout-margin .flex-offset-xl-55, + [dir=rtl] .layout-margin .offset-xl-55, + [dir=rtl] .offset-xl-55 { + margin-left: auto; + margin-right: 55%; + } + + .flex-offset-xl-60, + .layout-margin .flex-offset-xl-60, + .layout-margin .offset-xl-60, + .offset-xl-60 { + margin-left: 60%; + } + + [dir=rtl] .flex-offset-xl-60, + [dir=rtl] .layout-margin .flex-offset-xl-60, + [dir=rtl] .layout-margin .offset-xl-60, + [dir=rtl] .offset-xl-60 { + margin-left: auto; + margin-right: 60%; + } + + .flex-offset-xl-65, + .layout-margin .flex-offset-xl-65, + .layout-margin .offset-xl-65, + .offset-xl-65 { + margin-left: 65%; + } + + [dir=rtl] .flex-offset-xl-65, + [dir=rtl] .layout-margin .flex-offset-xl-65, + [dir=rtl] .layout-margin .offset-xl-65, + [dir=rtl] .offset-xl-65 { + margin-left: auto; + margin-right: 65%; + } + + .flex-offset-xl-70, + .layout-margin .flex-offset-xl-70, + .layout-margin .offset-xl-70, + .offset-xl-70 { + margin-left: 70%; + } + + [dir=rtl] .flex-offset-xl-70, + [dir=rtl] .layout-margin .flex-offset-xl-70, + [dir=rtl] .layout-margin .offset-xl-70, + [dir=rtl] .offset-xl-70 { + margin-left: auto; + margin-right: 70%; + } + + .flex-offset-xl-75, + .layout-margin .flex-offset-xl-75, + .layout-margin .offset-xl-75, + .offset-xl-75 { + margin-left: 75%; + } + + [dir=rtl] .flex-offset-xl-75, + [dir=rtl] .layout-margin .flex-offset-xl-75, + [dir=rtl] .layout-margin .offset-xl-75, + [dir=rtl] .offset-xl-75 { + margin-left: auto; + margin-right: 75%; + } + + .flex-offset-xl-80, + .layout-margin .flex-offset-xl-80, + .layout-margin .offset-xl-80, + .offset-xl-80 { + margin-left: 80%; + } + + [dir=rtl] .flex-offset-xl-80, + [dir=rtl] .layout-margin .flex-offset-xl-80, + [dir=rtl] .layout-margin .offset-xl-80, + [dir=rtl] .offset-xl-80 { + margin-left: auto; + margin-right: 80%; + } + + .flex-offset-xl-85, + .layout-margin .flex-offset-xl-85, + .layout-margin .offset-xl-85, + .offset-xl-85 { + margin-left: 85%; + } + + [dir=rtl] .flex-offset-xl-85, + [dir=rtl] .layout-margin .flex-offset-xl-85, + [dir=rtl] .layout-margin .offset-xl-85, + [dir=rtl] .offset-xl-85 { + margin-left: auto; + margin-right: 85%; + } + + .flex-offset-xl-90, + .layout-margin .flex-offset-xl-90, + .layout-margin .offset-xl-90, + .offset-xl-90 { + margin-left: 90%; + } + + [dir=rtl] .flex-offset-xl-90, + [dir=rtl] .layout-margin .flex-offset-xl-90, + [dir=rtl] .layout-margin .offset-xl-90, + [dir=rtl] .offset-xl-90 { + margin-left: auto; + margin-right: 90%; + } + + .flex-offset-xl-95, + .layout-margin .flex-offset-xl-95, + .layout-margin .offset-xl-95, + .offset-xl-95 { + margin-left: 95%; + } + + [dir=rtl] .flex-offset-xl-95, + [dir=rtl] .layout-margin .flex-offset-xl-95, + [dir=rtl] .layout-margin .offset-xl-95, + [dir=rtl] .offset-xl-95 { + margin-left: auto; + margin-right: 95%; + } + + .flex-offset-xl-33, + .layout-margin .flex-offset-xl-33, + .layout-margin .offset-xl-33, + .offset-xl-33 { + margin-left: 33.33333%; + } + + .flex-offset-xl-66, + .layout-margin .flex-offset-xl-66, + .layout-margin .offset-xl-66, + .offset-xl-66 { + margin-left: 66.66667%; + } + + [dir=rtl] .flex-offset-xl-66, + [dir=rtl] .layout-margin .flex-offset-xl-66, + [dir=rtl] .layout-margin .offset-xl-66, + [dir=rtl] .offset-xl-66 { + margin-left: auto; + margin-right: 66.66667%; + } + + .layout-align-xl, + .layout-align-xl-start-stretch { + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + } + + .layout-align-xl-start, + .layout-align-xl-start-center, + .layout-align-xl-start-end, + .layout-align-xl-start-start, + .layout-align-xl-start-stretch { + justify-content: flex-start; + } + + .layout-align-xl-center, + .layout-align-xl-center-center, + .layout-align-xl-center-end, + .layout-align-xl-center-start, + .layout-align-xl-center-stretch { + justify-content: center; + } + + .layout-align-xl-end, + .layout-align-xl-end-center, + .layout-align-xl-end-end, + .layout-align-xl-end-start, + .layout-align-xl-end-stretch { + justify-content: flex-end; + } + + .layout-align-xl-space-around, + .layout-align-xl-space-around-center, + .layout-align-xl-space-around-end, + .layout-align-xl-space-around-start, + .layout-align-xl-space-around-stretch { + justify-content: space-around; + } + + .layout-align-xl-space-between, + .layout-align-xl-space-between-center, + .layout-align-xl-space-between-end, + .layout-align-xl-space-between-start, + .layout-align-xl-space-between-stretch { + justify-content: space-between; + } + + .layout-align-xl-center-start, + .layout-align-xl-end-start, + .layout-align-xl-space-around-start, + .layout-align-xl-space-between-start, + .layout-align-xl-start-start { + align-items: flex-start; + align-content: flex-start; + } + + .layout-align-xl-center-center, + .layout-align-xl-end-center, + .layout-align-xl-space-around-center, + .layout-align-xl-space-between-center, + .layout-align-xl-start-center { + align-items: center; + align-content: center; + max-width: 100%; + } + + .layout-align-xl-center-center>*, + .layout-align-xl-end-center>*, + .layout-align-xl-space-around-center>*, + .layout-align-xl-space-between-center>*, + .layout-align-xl-start-center>* { + max-width: 100%; + box-sizing: border-box; + } + + .layout-align-xl-center-end, + .layout-align-xl-end-end, + .layout-align-xl-space-around-end, + .layout-align-xl-space-between-end, + .layout-align-xl-start-end { + align-items: flex-end; + align-content: flex-end; + } + + .layout-align-xl-center-stretch, + .layout-align-xl-end-stretch, + .layout-align-xl-space-around-stretch, + .layout-align-xl-space-between-stretch, + .layout-align-xl-start-stretch { + align-items: stretch; + align-content: stretch; + } + + .flex-xl { + flex: 1; + box-sizing: border-box; + } + + .flex-xl-grow { + flex: 1 1 100%; + box-sizing: border-box; + } + + .flex-xl-initial { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-xl-auto { + flex: 1 1 auto; + box-sizing: border-box; + } + + .flex-xl-none { + flex: 0 0 auto; + box-sizing: border-box; + } + + .flex-xl-noshrink { + flex: 1 0 auto; + box-sizing: border-box; + } + + .flex-xl-nogrow { + flex: 0 1 auto; + box-sizing: border-box; + } + + .flex-xl-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-column>.flex-xl-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-0 { + flex: 1 1 100%; + max-width: 0; + max-height: 100%; + box-sizing: border-box; + min-width: 0; + } + + .layout-xl-column>.flex-xl-0 { + flex: 1 1 100%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; + min-height: 0; + } + + .flex-xl-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-5 { + flex: 1 1 100%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-5 { + flex: 1 1 100%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; + } + + .flex-xl-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-10 { + flex: 1 1 100%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-10 { + flex: 1 1 100%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; + } + + .flex-xl-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-15 { + flex: 1 1 100%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-15 { + flex: 1 1 100%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; + } + + .flex-xl-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-20 { + flex: 1 1 100%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-20 { + flex: 1 1 100%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; + } + + .flex-xl-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-25 { + flex: 1 1 100%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-25 { + flex: 1 1 100%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; + } + + .flex-xl-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-30 { + flex: 1 1 100%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-30 { + flex: 1 1 100%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; + } + + .flex-xl-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-35 { + flex: 1 1 100%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-35 { + flex: 1 1 100%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; + } + + .flex-xl-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-40 { + flex: 1 1 100%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-40 { + flex: 1 1 100%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; + } + + .flex-xl-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-45 { + flex: 1 1 100%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-45 { + flex: 1 1 100%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; + } + + .flex-xl-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-50 { + flex: 1 1 100%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-50 { + flex: 1 1 100%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; + } + + .flex-xl-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-55 { + flex: 1 1 100%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-55 { + flex: 1 1 100%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; + } + + .flex-xl-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-60 { + flex: 1 1 100%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-60 { + flex: 1 1 100%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; + } + + .flex-xl-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-65 { + flex: 1 1 100%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-65 { + flex: 1 1 100%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; + } + + .flex-xl-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-70 { + flex: 1 1 100%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-70 { + flex: 1 1 100%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; + } + + .flex-xl-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-75 { + flex: 1 1 100%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-75 { + flex: 1 1 100%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; + } + + .flex-xl-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-80 { + flex: 1 1 100%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-80 { + flex: 1 1 100%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; + } + + .flex-xl-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-85 { + flex: 1 1 100%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-85 { + flex: 1 1 100%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; + } + + .flex-xl-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-90 { + flex: 1 1 100%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-90 { + flex: 1 1 100%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; + } + + .flex-xl-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-95 { + flex: 1 1 100%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-95 { + flex: 1 1 100%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; + } + + .flex-xl-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-100 { + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-33 { + flex: 1 1 33.33%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-row>.flex-xl-66 { + flex: 1 1 66.66%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-33 { + flex: 1 1 33.33%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-column>.flex-xl-66 { + flex: 1 1 66.66%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-33 { + flex: 1 1 100%; + max-width: 33.33%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-row>.flex-xl-66 { + flex: 1 1 100%; + max-width: 66.66%; + max-height: 100%; + box-sizing: border-box; + } + + .layout-xl-row>.flex { + min-width: 0; + } + + .layout-xl-column>.flex-xl-33 { + flex: 1 1 100%; + max-width: 100%; + max-height: 33.33%; + box-sizing: border-box; + } + + .layout-xl-column>.flex-xl-66 { + flex: 1 1 100%; + max-width: 100%; + max-height: 66.66%; + box-sizing: border-box; + } + + .layout-xl-column>.flex { + min-height: 0; + } + + .layout-xl, + .layout-xl-column, + .layout-xl-row { + box-sizing: border-box; + display: flex; + } + + .layout-xl-column { + flex-direction: column; + } + + .layout-xl-row { + flex-direction: row; + } + + .hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), + .hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), + .hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), + .hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), + .hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show) { + display: none; + } + + .hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show) { + display: none; + } +} + +@media print { + .hide-print:not(.show-print):not(.show) { + display: none!important; + } +} +/*! + * Angular Material Design + * https://github.com/angular/material + * @license MIT + * v0.9.7 + */ + +/* mixin definition ; sets LTR and RTL within the same style call */ + +md-autocomplete button ng-md-icon { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0) scale(0.9); + transform: translate3d(-50%, -50%, 0) scale(0.9); +} + +md-autocomplete button ng-md-icon path { + stroke-width: 0; +} + +.md-button.ng-md-icon { + padding: 0; + background: none; +} + +.md-button.md-fab ng-md-icon { + margin-top: 0; +} + +md-checkbox .ng-md-icon { + transition: 240ms; + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + border: 2px solid; + border-radius: 2px; +} + +md-checkbox.md-checked .ng-md-icon { + border: none; +} + +md-checkbox.md-checked .ng-md-icon:after { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + left: 6px; + top: 2px; + display: table; + width: 6px; + height: 12px; + border: 2px solid; + border-top: 0; + border-left: 0; + content: ''; +} + +.md-chips .md-chip .md-chip-remove ng-md-icon { + height: 18px; + width: 18px; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +ng-md-icon { + margin: auto; + background-repeat: no-repeat no-repeat; + display: inline-block; + vertical-align: middle; + fill: currentColor; + height: 24px; + width: 24px; +} + +ng-md-icon svg { + pointer-events: none; + display: block; +} + +ng-md-icon[md-font-icon] { + line-height: 1; + width: auto; +} + +md-input-container > ng-md-icon { + position: absolute; + top: 5px; + left: 2px; +} + +md-input-container > ng-md-icon + input { + margin-left: 36px; +} + +md-input-container.md-icon-float > ng-md-icon { + top: 26px; + left: 2px; +} + +md-input-container.md-icon-float > ng-md-icon + input { + margin-left: 36px; +} + +@media screen and (-ms-high-contrast: active) { + md-input-container.md-default-theme > ng-md-icon { + fill: #fff; + } +} + +md-list-item > div.md-primary > ng-md-icon, +md-list-item > div.md-secondary > ng-md-icon, +md-list-item > ng-md-icon:first-child, +md-list-item > ng-md-icon.md-secondary, +md-list-item .md-list-item-inner > div.md-primary > ng-md-icon, +md-list-item .md-list-item-inner > div.md-secondary > ng-md-icon, +md-list-item .md-list-item-inner > ng-md-icon:first-child, +md-list-item .md-list-item-inner > ng-md-icon.md-secondary { + width: 24px; + margin-top: 16px; + margin-bottom: 12px; + box-sizing: content-box; +} + +md-list-item > ng-md-icon:first-child, +md-list-item .md-list-item-inner > ng-md-icon:first-child { + margin-right: 32px; +} + +md-list-item.md-2-line > ng-md-icon:first-child, +md-list-item.md-2-line > .md-no-style > ng-md-icon:first-child { + -webkit-align-self: flex-start; + -ms-flex-item-align: start; + align-self: flex-start; +} + +md-list-item.md-3-line > ng-md-icon:first-child, +md-list-item.md-3-line > .md-no-style > ng-md-icon:first-child { + margin-top: 16px; +} + +md-tabs-wrapper md-prev-button ng-md-icon, +md-tabs-wrapper md-next-button ng-md-icon { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +md-tabs-wrapper md-next-button ng-md-icon { + -webkit-transform: translate3d(-50%, -50%, 0) rotate(180deg); + transform: translate3d(-50%, -50%, 0) rotate(180deg); +} +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot'); + src: url('../fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2') format('woff2'), url('../fonts/fontawesome-webfont.woff') format('woff'), url('../fonts/fontawesome-webfont.ttf') format('truetype'), url('../fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ + +.fa-sm { + font-size: 0.875em; +} + +.fa-xs { + font-size: 0.75em; +} + +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-fw { + width: 1.28571429em; + text-align: center; +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} + +.fa-ul > li { + position: relative; +} + +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} + +.fa-li.fa-lg { + left: -1.85714286em; +} + +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +.fa-pull-left { + float: left; +} + +.fa-pull-right { + float: right; +} + +.fa.fa-pull-left { + margin-right: .3em; +} + +.fa.fa-pull-right { + margin-left: .3em; +} + +/* Deprecated as of 4.4.0 */ + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.fa.pull-left { + margin-right: .3em; +} + +.fa.pull-right { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #ffffff; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.fa-glass:before { + content: "\f000"; +} + +.fa-music:before { + content: "\f001"; +} + +.fa-search:before { + content: "\f002"; +} + +.fa-envelope-o:before { + content: "\f003"; +} + +.fa-heart:before { + content: "\f004"; +} + +.fa-star:before { + content: "\f005"; +} + +.fa-star-o:before { + content: "\f006"; +} + +.fa-user:before { + content: "\f007"; +} + +.fa-film:before { + content: "\f008"; +} + +.fa-th-large:before { + content: "\f009"; +} + +.fa-th:before { + content: "\f00a"; +} + +.fa-th-list:before { + content: "\f00b"; +} + +.fa-check:before { + content: "\f00c"; +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} + +.fa-search-plus:before { + content: "\f00e"; +} + +.fa-search-minus:before { + content: "\f010"; +} + +.fa-power-off:before { + content: "\f011"; +} + +.fa-signal:before { + content: "\f012"; +} + +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +.fa-trash-o:before { + content: "\f014"; +} + +.fa-home:before { + content: "\f015"; +} + +.fa-file-o:before { + content: "\f016"; +} + +.fa-clock-o:before { + content: "\f017"; +} + +.fa-road:before { + content: "\f018"; +} + +.fa-download:before { + content: "\f019"; +} + +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +.fa-inbox:before { + content: "\f01c"; +} + +.fa-play-circle-o:before { + content: "\f01d"; +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +.fa-refresh:before { + content: "\f021"; +} + +.fa-list-alt:before { + content: "\f022"; +} + +.fa-lock:before { + content: "\f023"; +} + +.fa-flag:before { + content: "\f024"; +} + +.fa-headphones:before { + content: "\f025"; +} + +.fa-volume-off:before { + content: "\f026"; +} + +.fa-volume-down:before { + content: "\f027"; +} + +.fa-volume-up:before { + content: "\f028"; +} + +.fa-qrcode:before { + content: "\f029"; +} + +.fa-barcode:before { + content: "\f02a"; +} + +.fa-tag:before { + content: "\f02b"; +} + +.fa-tags:before { + content: "\f02c"; +} + +.fa-book:before { + content: "\f02d"; +} + +.fa-bookmark:before { + content: "\f02e"; +} + +.fa-print:before { + content: "\f02f"; +} + +.fa-camera:before { + content: "\f030"; +} + +.fa-font:before { + content: "\f031"; +} + +.fa-bold:before { + content: "\f032"; +} + +.fa-italic:before { + content: "\f033"; +} + +.fa-text-height:before { + content: "\f034"; +} + +.fa-text-width:before { + content: "\f035"; +} + +.fa-align-left:before { + content: "\f036"; +} + +.fa-align-center:before { + content: "\f037"; +} + +.fa-align-right:before { + content: "\f038"; +} + +.fa-align-justify:before { + content: "\f039"; +} + +.fa-list:before { + content: "\f03a"; +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +.fa-indent:before { + content: "\f03c"; +} + +.fa-video-camera:before { + content: "\f03d"; +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} + +.fa-pencil:before { + content: "\f040"; +} + +.fa-map-marker:before { + content: "\f041"; +} + +.fa-adjust:before { + content: "\f042"; +} + +.fa-tint:before { + content: "\f043"; +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +.fa-share-square-o:before { + content: "\f045"; +} + +.fa-check-square-o:before { + content: "\f046"; +} + +.fa-arrows:before { + content: "\f047"; +} + +.fa-step-backward:before { + content: "\f048"; +} + +.fa-fast-backward:before { + content: "\f049"; +} + +.fa-backward:before { + content: "\f04a"; +} + +.fa-play:before { + content: "\f04b"; +} + +.fa-pause:before { + content: "\f04c"; +} + +.fa-stop:before { + content: "\f04d"; +} + +.fa-forward:before { + content: "\f04e"; +} + +.fa-fast-forward:before { + content: "\f050"; +} + +.fa-step-forward:before { + content: "\f051"; +} + +.fa-eject:before { + content: "\f052"; +} + +.fa-chevron-left:before { + content: "\f053"; +} + +.fa-chevron-right:before { + content: "\f054"; +} + +.fa-plus-circle:before { + content: "\f055"; +} + +.fa-minus-circle:before { + content: "\f056"; +} + +.fa-times-circle:before { + content: "\f057"; +} + +.fa-check-circle:before { + content: "\f058"; +} + +.fa-question-circle:before { + content: "\f059"; +} + +.fa-info-circle:before { + content: "\f05a"; +} + +.fa-crosshairs:before { + content: "\f05b"; +} + +.fa-times-circle-o:before { + content: "\f05c"; +} + +.fa-check-circle-o:before { + content: "\f05d"; +} + +.fa-ban:before { + content: "\f05e"; +} + +.fa-arrow-left:before { + content: "\f060"; +} + +.fa-arrow-right:before { + content: "\f061"; +} + +.fa-arrow-up:before { + content: "\f062"; +} + +.fa-arrow-down:before { + content: "\f063"; +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +.fa-expand:before { + content: "\f065"; +} + +.fa-compress:before { + content: "\f066"; +} + +.fa-plus:before { + content: "\f067"; +} + +.fa-minus:before { + content: "\f068"; +} + +.fa-asterisk:before { + content: "\f069"; +} + +.fa-exclamation-circle:before { + content: "\f06a"; +} + +.fa-gift:before { + content: "\f06b"; +} + +.fa-leaf:before { + content: "\f06c"; +} + +.fa-fire:before { + content: "\f06d"; +} + +.fa-eye:before { + content: "\f06e"; +} + +.fa-eye-slash:before { + content: "\f070"; +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +.fa-plane:before { + content: "\f072"; +} + +.fa-calendar:before { + content: "\f073"; +} + +.fa-random:before { + content: "\f074"; +} + +.fa-comment:before { + content: "\f075"; +} + +.fa-magnet:before { + content: "\f076"; +} + +.fa-chevron-up:before { + content: "\f077"; +} + +.fa-chevron-down:before { + content: "\f078"; +} + +.fa-retweet:before { + content: "\f079"; +} + +.fa-shopping-cart:before { + content: "\f07a"; +} + +.fa-folder:before { + content: "\f07b"; +} + +.fa-folder-open:before { + content: "\f07c"; +} + +.fa-arrows-v:before { + content: "\f07d"; +} + +.fa-arrows-h:before { + content: "\f07e"; +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} + +.fa-twitter-square:before { + content: "\f081"; +} + +.fa-facebook-square:before { + content: "\f082"; +} + +.fa-camera-retro:before { + content: "\f083"; +} + +.fa-key:before { + content: "\f084"; +} + +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +.fa-comments:before { + content: "\f086"; +} + +.fa-thumbs-o-up:before { + content: "\f087"; +} + +.fa-thumbs-o-down:before { + content: "\f088"; +} + +.fa-star-half:before { + content: "\f089"; +} + +.fa-heart-o:before { + content: "\f08a"; +} + +.fa-sign-out:before { + content: "\f08b"; +} + +.fa-linkedin-square:before { + content: "\f08c"; +} + +.fa-thumb-tack:before { + content: "\f08d"; +} + +.fa-external-link:before { + content: "\f08e"; +} + +.fa-sign-in:before { + content: "\f090"; +} + +.fa-trophy:before { + content: "\f091"; +} + +.fa-github-square:before { + content: "\f092"; +} + +.fa-upload:before { + content: "\f093"; +} + +.fa-lemon-o:before { + content: "\f094"; +} + +.fa-phone:before { + content: "\f095"; +} + +.fa-square-o:before { + content: "\f096"; +} + +.fa-bookmark-o:before { + content: "\f097"; +} + +.fa-phone-square:before { + content: "\f098"; +} + +.fa-twitter:before { + content: "\f099"; +} + +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} + +.fa-github:before { + content: "\f09b"; +} + +.fa-unlock:before { + content: "\f09c"; +} + +.fa-credit-card:before { + content: "\f09d"; +} + +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} + +.fa-hdd-o:before { + content: "\f0a0"; +} + +.fa-bullhorn:before { + content: "\f0a1"; +} + +.fa-bell:before { + content: "\f0f3"; +} + +.fa-certificate:before { + content: "\f0a3"; +} + +.fa-hand-o-right:before { + content: "\f0a4"; +} + +.fa-hand-o-left:before { + content: "\f0a5"; +} + +.fa-hand-o-up:before { + content: "\f0a6"; +} + +.fa-hand-o-down:before { + content: "\f0a7"; +} + +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +.fa-globe:before { + content: "\f0ac"; +} + +.fa-wrench:before { + content: "\f0ad"; +} + +.fa-tasks:before { + content: "\f0ae"; +} + +.fa-filter:before { + content: "\f0b0"; +} + +.fa-briefcase:before { + content: "\f0b1"; +} + +.fa-arrows-alt:before { + content: "\f0b2"; +} + +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +.fa-cloud:before { + content: "\f0c2"; +} + +.fa-flask:before { + content: "\f0c3"; +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +.fa-paperclip:before { + content: "\f0c6"; +} + +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +.fa-square:before { + content: "\f0c8"; +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} + +.fa-list-ul:before { + content: "\f0ca"; +} + +.fa-list-ol:before { + content: "\f0cb"; +} + +.fa-strikethrough:before { + content: "\f0cc"; +} + +.fa-underline:before { + content: "\f0cd"; +} + +.fa-table:before { + content: "\f0ce"; +} + +.fa-magic:before { + content: "\f0d0"; +} + +.fa-truck:before { + content: "\f0d1"; +} + +.fa-pinterest:before { + content: "\f0d2"; +} + +.fa-pinterest-square:before { + content: "\f0d3"; +} + +.fa-google-plus-square:before { + content: "\f0d4"; +} + +.fa-google-plus:before { + content: "\f0d5"; +} + +.fa-money:before { + content: "\f0d6"; +} + +.fa-caret-down:before { + content: "\f0d7"; +} + +.fa-caret-up:before { + content: "\f0d8"; +} + +.fa-caret-left:before { + content: "\f0d9"; +} + +.fa-caret-right:before { + content: "\f0da"; +} + +.fa-columns:before { + content: "\f0db"; +} + +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} + +.fa-envelope:before { + content: "\f0e0"; +} + +.fa-linkedin:before { + content: "\f0e1"; +} + +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +.fa-comment-o:before { + content: "\f0e5"; +} + +.fa-comments-o:before { + content: "\f0e6"; +} + +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +.fa-sitemap:before { + content: "\f0e8"; +} + +.fa-umbrella:before { + content: "\f0e9"; +} + +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +.fa-exchange:before { + content: "\f0ec"; +} + +.fa-cloud-download:before { + content: "\f0ed"; +} + +.fa-cloud-upload:before { + content: "\f0ee"; +} + +.fa-user-md:before { + content: "\f0f0"; +} + +.fa-stethoscope:before { + content: "\f0f1"; +} + +.fa-suitcase:before { + content: "\f0f2"; +} + +.fa-bell-o:before { + content: "\f0a2"; +} + +.fa-coffee:before { + content: "\f0f4"; +} + +.fa-cutlery:before { + content: "\f0f5"; +} + +.fa-file-text-o:before { + content: "\f0f6"; +} + +.fa-building-o:before { + content: "\f0f7"; +} + +.fa-hospital-o:before { + content: "\f0f8"; +} + +.fa-ambulance:before { + content: "\f0f9"; +} + +.fa-medkit:before { + content: "\f0fa"; +} + +.fa-fighter-jet:before { + content: "\f0fb"; +} + +.fa-beer:before { + content: "\f0fc"; +} + +.fa-h-square:before { + content: "\f0fd"; +} + +.fa-plus-square:before { + content: "\f0fe"; +} + +.fa-angle-double-left:before { + content: "\f100"; +} + +.fa-angle-double-right:before { + content: "\f101"; +} + +.fa-angle-double-up:before { + content: "\f102"; +} + +.fa-angle-double-down:before { + content: "\f103"; +} + +.fa-angle-left:before { + content: "\f104"; +} + +.fa-angle-right:before { + content: "\f105"; +} + +.fa-angle-up:before { + content: "\f106"; +} + +.fa-angle-down:before { + content: "\f107"; +} + +.fa-desktop:before { + content: "\f108"; +} + +.fa-laptop:before { + content: "\f109"; +} + +.fa-tablet:before { + content: "\f10a"; +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +.fa-circle-o:before { + content: "\f10c"; +} + +.fa-quote-left:before { + content: "\f10d"; +} + +.fa-quote-right:before { + content: "\f10e"; +} + +.fa-spinner:before { + content: "\f110"; +} + +.fa-circle:before { + content: "\f111"; +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +.fa-github-alt:before { + content: "\f113"; +} + +.fa-folder-o:before { + content: "\f114"; +} + +.fa-folder-open-o:before { + content: "\f115"; +} + +.fa-smile-o:before { + content: "\f118"; +} + +.fa-frown-o:before { + content: "\f119"; +} + +.fa-meh-o:before { + content: "\f11a"; +} + +.fa-gamepad:before { + content: "\f11b"; +} + +.fa-keyboard-o:before { + content: "\f11c"; +} + +.fa-flag-o:before { + content: "\f11d"; +} + +.fa-flag-checkered:before { + content: "\f11e"; +} + +.fa-terminal:before { + content: "\f120"; +} + +.fa-code:before { + content: "\f121"; +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +.fa-location-arrow:before { + content: "\f124"; +} + +.fa-crop:before { + content: "\f125"; +} + +.fa-code-fork:before { + content: "\f126"; +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +.fa-question:before { + content: "\f128"; +} + +.fa-info:before { + content: "\f129"; +} + +.fa-exclamation:before { + content: "\f12a"; +} + +.fa-superscript:before { + content: "\f12b"; +} + +.fa-subscript:before { + content: "\f12c"; +} + +.fa-eraser:before { + content: "\f12d"; +} + +.fa-puzzle-piece:before { + content: "\f12e"; +} + +.fa-microphone:before { + content: "\f130"; +} + +.fa-microphone-slash:before { + content: "\f131"; +} + +.fa-shield:before { + content: "\f132"; +} + +.fa-calendar-o:before { + content: "\f133"; +} + +.fa-fire-extinguisher:before { + content: "\f134"; +} + +.fa-rocket:before { + content: "\f135"; +} + +.fa-maxcdn:before { + content: "\f136"; +} + +.fa-chevron-circle-left:before { + content: "\f137"; +} + +.fa-chevron-circle-right:before { + content: "\f138"; +} + +.fa-chevron-circle-up:before { + content: "\f139"; +} + +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +.fa-html5:before { + content: "\f13b"; +} + +.fa-css3:before { + content: "\f13c"; +} + +.fa-anchor:before { + content: "\f13d"; +} + +.fa-unlock-alt:before { + content: "\f13e"; +} + +.fa-bullseye:before { + content: "\f140"; +} + +.fa-ellipsis-h:before { + content: "\f141"; +} + +.fa-ellipsis-v:before { + content: "\f142"; +} + +.fa-rss-square:before { + content: "\f143"; +} + +.fa-play-circle:before { + content: "\f144"; +} + +.fa-ticket:before { + content: "\f145"; +} + +.fa-minus-square:before { + content: "\f146"; +} + +.fa-minus-square-o:before { + content: "\f147"; +} + +.fa-level-up:before { + content: "\f148"; +} + +.fa-level-down:before { + content: "\f149"; +} + +.fa-check-square:before { + content: "\f14a"; +} + +.fa-pencil-square:before { + content: "\f14b"; +} + +.fa-external-link-square:before { + content: "\f14c"; +} + +.fa-share-square:before { + content: "\f14d"; +} + +.fa-compass:before { + content: "\f14e"; +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +.fa-gbp:before { + content: "\f154"; +} + +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +.fa-file:before { + content: "\f15b"; +} + +.fa-file-text:before { + content: "\f15c"; +} + +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +.fa-sort-amount-asc:before { + content: "\f160"; +} + +.fa-sort-amount-desc:before { + content: "\f161"; +} + +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +.fa-thumbs-up:before { + content: "\f164"; +} + +.fa-thumbs-down:before { + content: "\f165"; +} + +.fa-youtube-square:before { + content: "\f166"; +} + +.fa-youtube:before { + content: "\f167"; +} + +.fa-xing:before { + content: "\f168"; +} + +.fa-xing-square:before { + content: "\f169"; +} + +.fa-youtube-play:before { + content: "\f16a"; +} + +.fa-dropbox:before { + content: "\f16b"; +} + +.fa-stack-overflow:before { + content: "\f16c"; +} + +.fa-instagram:before { + content: "\f16d"; +} + +.fa-flickr:before { + content: "\f16e"; +} + +.fa-adn:before { + content: "\f170"; +} + +.fa-bitbucket:before { + content: "\f171"; +} + +.fa-bitbucket-square:before { + content: "\f172"; +} + +.fa-tumblr:before { + content: "\f173"; +} + +.fa-tumblr-square:before { + content: "\f174"; +} + +.fa-long-arrow-down:before { + content: "\f175"; +} + +.fa-long-arrow-up:before { + content: "\f176"; +} + +.fa-long-arrow-left:before { + content: "\f177"; +} + +.fa-long-arrow-right:before { + content: "\f178"; +} + +.fa-apple:before { + content: "\f179"; +} + +.fa-windows:before { + content: "\f17a"; +} + +.fa-android:before { + content: "\f17b"; +} + +.fa-linux:before { + content: "\f17c"; +} + +.fa-dribbble:before { + content: "\f17d"; +} + +.fa-skype:before { + content: "\f17e"; +} + +.fa-foursquare:before { + content: "\f180"; +} + +.fa-trello:before { + content: "\f181"; +} + +.fa-female:before { + content: "\f182"; +} + +.fa-male:before { + content: "\f183"; +} + +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} + +.fa-sun-o:before { + content: "\f185"; +} + +.fa-moon-o:before { + content: "\f186"; +} + +.fa-archive:before { + content: "\f187"; +} + +.fa-bug:before { + content: "\f188"; +} + +.fa-vk:before { + content: "\f189"; +} + +.fa-weibo:before { + content: "\f18a"; +} + +.fa-renren:before { + content: "\f18b"; +} + +.fa-pagelines:before { + content: "\f18c"; +} + +.fa-stack-exchange:before { + content: "\f18d"; +} + +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +.fa-dot-circle-o:before { + content: "\f192"; +} + +.fa-wheelchair:before { + content: "\f193"; +} + +.fa-vimeo-square:before { + content: "\f194"; +} + +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +.fa-plus-square-o:before { + content: "\f196"; +} + +.fa-space-shuttle:before { + content: "\f197"; +} + +.fa-slack:before { + content: "\f198"; +} + +.fa-envelope-square:before { + content: "\f199"; +} + +.fa-wordpress:before { + content: "\f19a"; +} + +.fa-openid:before { + content: "\f19b"; +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} + +.fa-yahoo:before { + content: "\f19e"; +} + +.fa-google:before { + content: "\f1a0"; +} + +.fa-reddit:before { + content: "\f1a1"; +} + +.fa-reddit-square:before { + content: "\f1a2"; +} + +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} + +.fa-stumbleupon:before { + content: "\f1a4"; +} + +.fa-delicious:before { + content: "\f1a5"; +} + +.fa-digg:before { + content: "\f1a6"; +} + +.fa-pied-piper-pp:before { + content: "\f1a7"; +} + +.fa-pied-piper-alt:before { + content: "\f1a8"; +} + +.fa-drupal:before { + content: "\f1a9"; +} + +.fa-joomla:before { + content: "\f1aa"; +} + +.fa-language:before { + content: "\f1ab"; +} + +.fa-fax:before { + content: "\f1ac"; +} + +.fa-building:before { + content: "\f1ad"; +} + +.fa-child:before { + content: "\f1ae"; +} + +.fa-paw:before { + content: "\f1b0"; +} + +.fa-spoon:before { + content: "\f1b1"; +} + +.fa-cube:before { + content: "\f1b2"; +} + +.fa-cubes:before { + content: "\f1b3"; +} + +.fa-behance:before { + content: "\f1b4"; +} + +.fa-behance-square:before { + content: "\f1b5"; +} + +.fa-steam:before { + content: "\f1b6"; +} + +.fa-steam-square:before { + content: "\f1b7"; +} + +.fa-recycle:before { + content: "\f1b8"; +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} + +.fa-tree:before { + content: "\f1bb"; +} + +.fa-spotify:before { + content: "\f1bc"; +} + +.fa-deviantart:before { + content: "\f1bd"; +} + +.fa-soundcloud:before { + content: "\f1be"; +} + +.fa-database:before { + content: "\f1c0"; +} + +.fa-file-pdf-o:before { + content: "\f1c1"; +} + +.fa-file-word-o:before { + content: "\f1c2"; +} + +.fa-file-excel-o:before { + content: "\f1c3"; +} + +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} + +.fa-file-code-o:before { + content: "\f1c9"; +} + +.fa-vine:before { + content: "\f1ca"; +} + +.fa-codepen:before { + content: "\f1cb"; +} + +.fa-jsfiddle:before { + content: "\f1cc"; +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} + +.fa-circle-o-notch:before { + content: "\f1ce"; +} + +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} + +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} + +.fa-git-square:before { + content: "\f1d2"; +} + +.fa-git:before { + content: "\f1d3"; +} + +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} + +.fa-tencent-weibo:before { + content: "\f1d5"; +} + +.fa-qq:before { + content: "\f1d6"; +} + +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} + +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} + +.fa-history:before { + content: "\f1da"; +} + +.fa-circle-thin:before { + content: "\f1db"; +} + +.fa-header:before { + content: "\f1dc"; +} + +.fa-paragraph:before { + content: "\f1dd"; +} + +.fa-sliders:before { + content: "\f1de"; +} + +.fa-share-alt:before { + content: "\f1e0"; +} + +.fa-share-alt-square:before { + content: "\f1e1"; +} + +.fa-bomb:before { + content: "\f1e2"; +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} + +.fa-tty:before { + content: "\f1e4"; +} + +.fa-binoculars:before { + content: "\f1e5"; +} + +.fa-plug:before { + content: "\f1e6"; +} + +.fa-slideshare:before { + content: "\f1e7"; +} + +.fa-twitch:before { + content: "\f1e8"; +} + +.fa-yelp:before { + content: "\f1e9"; +} + +.fa-newspaper-o:before { + content: "\f1ea"; +} + +.fa-wifi:before { + content: "\f1eb"; +} + +.fa-calculator:before { + content: "\f1ec"; +} + +.fa-paypal:before { + content: "\f1ed"; +} + +.fa-google-wallet:before { + content: "\f1ee"; +} + +.fa-cc-visa:before { + content: "\f1f0"; +} + +.fa-cc-mastercard:before { + content: "\f1f1"; +} + +.fa-cc-discover:before { + content: "\f1f2"; +} + +.fa-cc-amex:before { + content: "\f1f3"; +} + +.fa-cc-paypal:before { + content: "\f1f4"; +} + +.fa-cc-stripe:before { + content: "\f1f5"; +} + +.fa-bell-slash:before { + content: "\f1f6"; +} + +.fa-bell-slash-o:before { + content: "\f1f7"; +} + +.fa-trash:before { + content: "\f1f8"; +} + +.fa-copyright:before { + content: "\f1f9"; +} + +.fa-at:before { + content: "\f1fa"; +} + +.fa-eyedropper:before { + content: "\f1fb"; +} + +.fa-paint-brush:before { + content: "\f1fc"; +} + +.fa-birthday-cake:before { + content: "\f1fd"; +} + +.fa-area-chart:before { + content: "\f1fe"; +} + +.fa-pie-chart:before { + content: "\f200"; +} + +.fa-line-chart:before { + content: "\f201"; +} + +.fa-lastfm:before { + content: "\f202"; +} + +.fa-lastfm-square:before { + content: "\f203"; +} + +.fa-toggle-off:before { + content: "\f204"; +} + +.fa-toggle-on:before { + content: "\f205"; +} + +.fa-bicycle:before { + content: "\f206"; +} + +.fa-bus:before { + content: "\f207"; +} + +.fa-ioxhost:before { + content: "\f208"; +} + +.fa-angellist:before { + content: "\f209"; +} + +.fa-cc:before { + content: "\f20a"; +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} + +.fa-meanpath:before { + content: "\f20c"; +} + +.fa-buysellads:before { + content: "\f20d"; +} + +.fa-connectdevelop:before { + content: "\f20e"; +} + +.fa-dashcube:before { + content: "\f210"; +} + +.fa-forumbee:before { + content: "\f211"; +} + +.fa-leanpub:before { + content: "\f212"; +} + +.fa-sellsy:before { + content: "\f213"; +} + +.fa-shirtsinbulk:before { + content: "\f214"; +} + +.fa-simplybuilt:before { + content: "\f215"; +} + +.fa-skyatlas:before { + content: "\f216"; +} + +.fa-cart-plus:before { + content: "\f217"; +} + +.fa-cart-arrow-down:before { + content: "\f218"; +} + +.fa-diamond:before { + content: "\f219"; +} + +.fa-ship:before { + content: "\f21a"; +} + +.fa-user-secret:before { + content: "\f21b"; +} + +.fa-motorcycle:before { + content: "\f21c"; +} + +.fa-street-view:before { + content: "\f21d"; +} + +.fa-heartbeat:before { + content: "\f21e"; +} + +.fa-venus:before { + content: "\f221"; +} + +.fa-mars:before { + content: "\f222"; +} + +.fa-mercury:before { + content: "\f223"; +} + +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} + +.fa-transgender-alt:before { + content: "\f225"; +} + +.fa-venus-double:before { + content: "\f226"; +} + +.fa-mars-double:before { + content: "\f227"; +} + +.fa-venus-mars:before { + content: "\f228"; +} + +.fa-mars-stroke:before { + content: "\f229"; +} + +.fa-mars-stroke-v:before { + content: "\f22a"; +} + +.fa-mars-stroke-h:before { + content: "\f22b"; +} + +.fa-neuter:before { + content: "\f22c"; +} + +.fa-genderless:before { + content: "\f22d"; +} + +.fa-facebook-official:before { + content: "\f230"; +} + +.fa-pinterest-p:before { + content: "\f231"; +} + +.fa-whatsapp:before { + content: "\f232"; +} + +.fa-server:before { + content: "\f233"; +} + +.fa-user-plus:before { + content: "\f234"; +} + +.fa-user-times:before { + content: "\f235"; +} + +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} + +.fa-viacoin:before { + content: "\f237"; +} + +.fa-train:before { + content: "\f238"; +} + +.fa-subway:before { + content: "\f239"; +} + +.fa-medium:before { + content: "\f23a"; +} + +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} + +.fa-optin-monster:before { + content: "\f23c"; +} + +.fa-opencart:before { + content: "\f23d"; +} + +.fa-expeditedssl:before { + content: "\f23e"; +} + +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} + +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} + +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} + +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} + +.fa-mouse-pointer:before { + content: "\f245"; +} + +.fa-i-cursor:before { + content: "\f246"; +} + +.fa-object-group:before { + content: "\f247"; +} + +.fa-object-ungroup:before { + content: "\f248"; +} + +.fa-sticky-note:before { + content: "\f249"; +} + +.fa-sticky-note-o:before { + content: "\f24a"; +} + +.fa-cc-jcb:before { + content: "\f24b"; +} + +.fa-cc-diners-club:before { + content: "\f24c"; +} + +.fa-clone:before { + content: "\f24d"; +} + +.fa-balance-scale:before { + content: "\f24e"; +} + +.fa-hourglass-o:before { + content: "\f250"; +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} + +.fa-hourglass:before { + content: "\f254"; +} + +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} + +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} + +.fa-hand-scissors-o:before { + content: "\f257"; +} + +.fa-hand-lizard-o:before { + content: "\f258"; +} + +.fa-hand-spock-o:before { + content: "\f259"; +} + +.fa-hand-pointer-o:before { + content: "\f25a"; +} + +.fa-hand-peace-o:before { + content: "\f25b"; +} + +.fa-trademark:before { + content: "\f25c"; +} + +.fa-registered:before { + content: "\f25d"; +} + +.fa-creative-commons:before { + content: "\f25e"; +} + +.fa-gg:before { + content: "\f260"; +} + +.fa-gg-circle:before { + content: "\f261"; +} + +.fa-tripadvisor:before { + content: "\f262"; +} + +.fa-odnoklassniki:before { + content: "\f263"; +} + +.fa-odnoklassniki-square:before { + content: "\f264"; +} + +.fa-get-pocket:before { + content: "\f265"; +} + +.fa-wikipedia-w:before { + content: "\f266"; +} + +.fa-safari:before { + content: "\f267"; +} + +.fa-chrome:before { + content: "\f268"; +} + +.fa-firefox:before { + content: "\f269"; +} + +.fa-opera:before { + content: "\f26a"; +} + +.fa-internet-explorer:before { + content: "\f26b"; +} + +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} + +.fa-contao:before { + content: "\f26d"; +} + +.fa-500px:before { + content: "\f26e"; +} + +.fa-amazon:before { + content: "\f270"; +} + +.fa-calendar-plus-o:before { + content: "\f271"; +} + +.fa-calendar-minus-o:before { + content: "\f272"; +} + +.fa-calendar-times-o:before { + content: "\f273"; +} + +.fa-calendar-check-o:before { + content: "\f274"; +} + +.fa-industry:before { + content: "\f275"; +} + +.fa-map-pin:before { + content: "\f276"; +} + +.fa-map-signs:before { + content: "\f277"; +} + +.fa-map-o:before { + content: "\f278"; +} + +.fa-map:before { + content: "\f279"; +} + +.fa-commenting:before { + content: "\f27a"; +} + +.fa-commenting-o:before { + content: "\f27b"; +} + +.fa-houzz:before { + content: "\f27c"; +} + +.fa-vimeo:before { + content: "\f27d"; +} + +.fa-black-tie:before { + content: "\f27e"; +} + +.fa-fonticons:before { + content: "\f280"; +} + +.fa-reddit-alien:before { + content: "\f281"; +} + +.fa-edge:before { + content: "\f282"; +} + +.fa-credit-card-alt:before { + content: "\f283"; +} + +.fa-codiepie:before { + content: "\f284"; +} + +.fa-modx:before { + content: "\f285"; +} + +.fa-fort-awesome:before { + content: "\f286"; +} + +.fa-usb:before { + content: "\f287"; +} + +.fa-product-hunt:before { + content: "\f288"; +} + +.fa-mixcloud:before { + content: "\f289"; +} + +.fa-scribd:before { + content: "\f28a"; +} + +.fa-pause-circle:before { + content: "\f28b"; +} + +.fa-pause-circle-o:before { + content: "\f28c"; +} + +.fa-stop-circle:before { + content: "\f28d"; +} + +.fa-stop-circle-o:before { + content: "\f28e"; +} + +.fa-shopping-bag:before { + content: "\f290"; +} + +.fa-shopping-basket:before { + content: "\f291"; +} + +.fa-hashtag:before { + content: "\f292"; +} + +.fa-bluetooth:before { + content: "\f293"; +} + +.fa-bluetooth-b:before { + content: "\f294"; +} + +.fa-percent:before { + content: "\f295"; +} + +.fa-gitlab:before { + content: "\f296"; +} + +.fa-wpbeginner:before { + content: "\f297"; +} + +.fa-wpforms:before { + content: "\f298"; +} + +.fa-envira:before { + content: "\f299"; +} + +.fa-universal-access:before { + content: "\f29a"; +} + +.fa-wheelchair-alt:before { + content: "\f29b"; +} + +.fa-question-circle-o:before { + content: "\f29c"; +} + +.fa-blind:before { + content: "\f29d"; +} + +.fa-audio-description:before { + content: "\f29e"; +} + +.fa-volume-control-phone:before { + content: "\f2a0"; +} + +.fa-braille:before { + content: "\f2a1"; +} + +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} + +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} + +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} + +.fa-glide:before { + content: "\f2a5"; +} + +.fa-glide-g:before { + content: "\f2a6"; +} + +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} + +.fa-low-vision:before { + content: "\f2a8"; +} + +.fa-viadeo:before { + content: "\f2a9"; +} + +.fa-viadeo-square:before { + content: "\f2aa"; +} + +.fa-snapchat:before { + content: "\f2ab"; +} + +.fa-snapchat-ghost:before { + content: "\f2ac"; +} + +.fa-snapchat-square:before { + content: "\f2ad"; +} + +.fa-pied-piper:before { + content: "\f2ae"; +} + +.fa-first-order:before { + content: "\f2b0"; +} + +.fa-yoast:before { + content: "\f2b1"; +} + +.fa-themeisle:before { + content: "\f2b2"; +} + +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} + +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} + +.fa-handshake-o:before { + content: "\f2b5"; +} + +.fa-envelope-open:before { + content: "\f2b6"; +} + +.fa-envelope-open-o:before { + content: "\f2b7"; +} + +.fa-linode:before { + content: "\f2b8"; +} + +.fa-address-book:before { + content: "\f2b9"; +} + +.fa-address-book-o:before { + content: "\f2ba"; +} + +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} + +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} + +.fa-user-circle:before { + content: "\f2bd"; +} + +.fa-user-circle-o:before { + content: "\f2be"; +} + +.fa-user-o:before { + content: "\f2c0"; +} + +.fa-id-badge:before { + content: "\f2c1"; +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} + +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} + +.fa-quora:before { + content: "\f2c4"; +} + +.fa-free-code-camp:before { + content: "\f2c5"; +} + +.fa-telegram:before { + content: "\f2c6"; +} + +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} + +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} + +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} + +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} + +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} + +.fa-shower:before { + content: "\f2cc"; +} + +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} + +.fa-podcast:before { + content: "\f2ce"; +} + +.fa-window-maximize:before { + content: "\f2d0"; +} + +.fa-window-minimize:before { + content: "\f2d1"; +} + +.fa-window-restore:before { + content: "\f2d2"; +} + +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} + +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} + +.fa-bandcamp:before { + content: "\f2d5"; +} + +.fa-grav:before { + content: "\f2d6"; +} + +.fa-etsy:before { + content: "\f2d7"; +} + +.fa-imdb:before { + content: "\f2d8"; +} + +.fa-ravelry:before { + content: "\f2d9"; +} + +.fa-eercast:before { + content: "\f2da"; +} + +.fa-microchip:before { + content: "\f2db"; +} + +.fa-snowflake-o:before { + content: "\f2dc"; +} + +.fa-superpowers:before { + content: "\f2dd"; +} + +.fa-wpexplorer:before { + content: "\f2de"; +} + +.fa-meetup:before { + content: "\f2e0"; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +@charset "UTF-8"; + +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../fonts/MaterialIcons-Regular.eot"); + /* For IE6-8 */ + 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: normal; + font-style: normal; + font-size: 24px; + /* Preferred icon size */ + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + /* Support for all WebKit browsers. */ + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + text-rendering: optimizeLegibility; + /* Support for Firefox. */ + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + 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._5g:before { + content: "\ef38"; +} + +.material-icons._5k:before { + content: "\e96b"; +} + +.material-icons._5k_plus:before { + content: "\e96c"; +} + +.material-icons._5mp:before { + content: "\e96d"; +} + +.material-icons._6_ft_apart:before { + content: "\f21e"; +} + +.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.ad_units:before { + content: "\ef39"; +} + +.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_business:before { + content: "\e729"; +} + +.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_location_alt:before { + content: "\ef3a"; +} + +.material-icons.add_moderator:before { + content: "\e97d"; +} + +.material-icons.add_photo_alternate:before { + content: "\e43e"; +} + +.material-icons.add_road:before { + content: "\ef3b"; +} + +.material-icons.add_shopping_cart:before { + content: "\e854"; +} + +.material-icons.add_task:before { + content: "\f23a"; +} + +.material-icons.add_to_drive:before { + content: "\e65c"; +} + +.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.addchart:before { + content: "\ef3c"; +} + +.material-icons.adjust:before { + content: "\e39e"; +} + +.material-icons.admin_panel_settings:before { + content: "\ef3d"; +} + +.material-icons.agriculture:before { + content: "\ea79"; +} + +.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 { + content: "\e194"; +} + +.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.align_horizontal_center:before { + content: "\e00f"; +} + +.material-icons.align_horizontal_left:before { + content: "\e00d"; +} + +.material-icons.align_horizontal_right:before { + content: "\e010"; +} + +.material-icons.align_vertical_bottom:before { + content: "\e015"; +} + +.material-icons.align_vertical_center:before { + content: "\e011"; +} + +.material-icons.align_vertical_top:before { + content: "\e00c"; +} + +.material-icons.all_inbox:before { + content: "\e97f"; +} + +.material-icons.all_inclusive:before { + content: "\eb3d"; +} + +.material-icons.all_out:before { + content: "\e90b"; +} + +.material-icons.alt_route:before { + content: "\f184"; +} + +.material-icons.alternate_email:before { + content: "\e0e6"; +} + +.material-icons.amp_stories:before { + content: "\ea13"; +} + +.material-icons.analytics:before { + content: "\ef3e"; +} + +.material-icons.anchor:before { + content: "\f1cd"; +} + +.material-icons.android:before { + content: "\e859"; +} + +.material-icons.animation:before { + content: "\e71c"; +} + +.material-icons.announcement:before { + content: "\e85a"; +} + +.material-icons.apartment:before { + content: "\ea40"; +} + +.material-icons.api:before { + content: "\f1b7"; +} + +.material-icons.app_blocking:before { + content: "\ef3f"; +} + +.material-icons.app_registration:before { + content: "\ef40"; +} + +.material-icons.app_settings_alt:before { + content: "\ef41"; +} + +.material-icons.approval:before { + content: "\e982"; +} + +.material-icons.apps:before { + content: "\e5c3"; +} + +.material-icons.architecture:before { + content: "\ea3b"; +} + +.material-icons.archive:before { + content: "\e149"; +} + +.material-icons.arrow_back:before { + content: "\e5c4"; +} + +.material-icons.arrow_back_ios:before { + content: "\e5e0"; +} + +.material-icons.arrow_circle_down:before { + content: "\f181"; +} + +.material-icons.arrow_circle_up:before { + content: "\f182"; +} + +.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.article:before { + content: "\ef42"; +} + +.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_email:before { + content: "\ea5e"; +} + +.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.auto_awesome:before { + content: "\e65f"; +} + +.material-icons.auto_awesome_mosaic:before { + content: "\e660"; +} + +.material-icons.auto_awesome_motion:before { + content: "\e661"; +} + +.material-icons.auto_delete:before { + content: "\ea4c"; +} + +.material-icons.auto_fix_high:before { + content: "\e663"; +} + +.material-icons.auto_fix_normal:before { + content: "\e664"; +} + +.material-icons.auto_fix_off:before { + content: "\e665"; +} + +.material-icons.auto_stories:before { + content: "\e666"; +} + +.material-icons.autorenew:before { + content: "\e863"; +} + +.material-icons.av_timer:before { + content: "\e01b"; +} + +.material-icons.baby_changing_station:before { + content: "\f19b"; +} + +.material-icons.backpack:before { + content: "\f19c"; +} + +.material-icons.backspace:before { + content: "\e14a"; +} + +.material-icons.backup:before { + content: "\e864"; +} + +.material-icons.backup_table:before { + content: "\ef43"; +} + +.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.batch_prediction:before { + content: "\f0f5"; +} + +.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.bedtime:before { + content: "\ef44"; +} + +.material-icons.beenhere:before { + content: "\e52d"; +} + +.material-icons.bento:before { + content: "\f1f4"; +} + +.material-icons.bike_scooter:before { + content: "\ef45"; +} + +.material-icons.biotech:before { + content: "\ea3a"; +} + +.material-icons.block:before { + content: "\e14b"; +} + +.material-icons.block_flipped:before { + content: "\ef46"; +} + +.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.book_online:before { + content: "\f217"; +} + +.material-icons.bookmark:before { + content: "\e866"; +} + +.material-icons.bookmark_border:before { + content: "\e867"; +} + +.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.browser_not_supported:before { + content: "\ef47"; +} + +.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.build_circle:before { + content: "\ef48"; +} + +.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.calculate:before { + content: "\ea5f"; +} + +.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.campaign:before { + content: "\ef49"; +} + +.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.carpenter:before { + content: "\f1f8"; +} + +.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.cast_for_education:before { + content: "\efec"; +} + +.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.charging_station:before { + content: "\f19d"; +} + +.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.checkroom:before { + content: "\f19e"; +} + +.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:before { + content: "\ef4a"; +} + +.material-icons.circle_notifications:before { + content: "\e994"; +} + +.material-icons.class:before { + content: "\e86e"; +} + +.material-icons.clean_hands:before { + content: "\f21f"; +} + +.material-icons.cleaning_services:before { + content: "\f0ff"; +} + +.material-icons.clear:before { + content: "\e14c"; +} + +.material-icons.clear_all:before { + content: "\e0b8"; +} + +.material-icons.close:before { + content: "\e5cd"; +} + +.material-icons.close_fullscreen:before { + content: "\f1cf"; +} + +.material-icons.closed_caption:before { + content: "\e01c"; +} + +.material-icons.closed_caption_disabled:before { + content: "\f1dc"; +} + +.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.comment_bank:before { + content: "\ea4e"; +} + +.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 { + content: "\e638"; +} + +.material-icons.confirmation_number:before { + content: "\e638"; +} + +.material-icons.connect_without_contact:before { + content: "\f223"; +} + +.material-icons.connected_tv:before { + content: "\e998"; +} + +.material-icons.construction:before { + content: "\ea3c"; +} + +.material-icons.contact_mail:before { + content: "\e0d0"; +} + +.material-icons.contact_page:before { + content: "\f22e"; +} + +.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.coronavirus:before { + content: "\f221"; +} + +.material-icons.corporate_fare:before { + content: "\f1d0"; +} + +.material-icons.countertops:before { + content: "\f1f7"; +} + +.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.design_services:before { + content: "\f10a"; +} + +.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_off:before { + content: "\f10f"; +} + +.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.dirty_lens:before { + content: "\ef4b"; +} + +.material-icons.disabled_by_default:before { + content: "\f230"; +} + +.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.do_not_step:before { + content: "\f19f"; +} + +.material-icons.do_not_touch:before { + content: "\f1b0"; +} + +.material-icons.dock:before { + content: "\e30e"; +} + +.material-icons.domain:before { + content: "\e7ee"; +} + +.material-icons.domain_disabled:before { + content: "\e0ef"; +} + +.material-icons.domain_verification:before { + content: "\ef4c"; +} + +.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:before { + content: "\e675"; +} + +.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:before { + content: "\f1b3"; +} + +.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.dynamic_form:before { + content: "\f1bf"; +} + +.material-icons.east:before { + content: "\f1df"; +} + +.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.edit_road:before { + content: "\ef4d"; +} + +.material-icons.eject:before { + content: "\e8fb"; +} + +.material-icons.elderly:before { + content: "\f21a"; +} + +.material-icons.electric_bike:before { + content: "\eb1b"; +} + +.material-icons.electric_car:before { + content: "\eb1c"; +} + +.material-icons.electric_moped:before { + content: "\eb1d"; +} + +.material-icons.electric_rickshaw:before { + content: "\eb1e"; +} + +.material-icons.electric_scooter:before { + content: "\eb1f"; +} + +.material-icons.electrical_services:before { + content: "\f102"; +} + +.material-icons.elevator:before { + content: "\f1a0"; +} + +.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.engineering:before { + content: "\ea3d"; +} + +.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.escalator:before { + content: "\f1a1"; +} + +.material-icons.escalator_warning:before { + content: "\f1ac"; +} + +.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.face_retouching_natural:before { + content: "\ef4e"; +} + +.material-icons.facebook:before { + content: "\f234"; +} + +.material-icons.fact_check:before { + content: "\f0c5"; +} + +.material-icons.family_restroom:before { + content: "\f1a2"; +} + +.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 { + content: "\e87e"; +} + +.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.fence:before { + content: "\f1f6"; +} + +.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_alt:before { + content: "\ef4f"; +} + +.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.fire_extinguisher:before { + content: "\f1d8"; +} + +.material-icons.fire_hydrant:before { + content: "\f1a3"; +} + +.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.flaky:before { + content: "\ef50"; +} + +.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.follow_the_signs:before { + content: "\f222"; +} + +.material-icons.font_download:before { + content: "\e167"; +} + +.material-icons.food_bank:before { + content: "\f1f2"; +} + +.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 { + content: "\e249"; +} + +.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.forward_to_inbox:before { + content: "\f187"; +} + +.material-icons.foundation:before { + content: "\f200"; +} + +.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: "\ebff"; +} + +.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.grading:before { + content: "\ea4f"; +} + +.material-icons.grain:before { + content: "\e3ea"; +} + +.material-icons.graphic_eq:before { + content: "\e1b8"; +} + +.material-icons.grass:before { + content: "\f205"; +} + +.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.groups:before { + content: "\f233"; +} + +.material-icons.hail:before { + content: "\e9b1"; +} + +.material-icons.handyman:before { + content: "\f10b"; +} + +.material-icons.hardware:before { + content: "\ea59"; +} + +.material-icons.hd:before { + content: "\e052"; +} + +.material-icons.hdr_enhanced_select:before { + content: "\ef51"; +} + +.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.hearing_disabled:before { + content: "\f104"; +} + +.material-icons.height:before { + content: "\ea16"; +} + +.material-icons.help:before { + content: "\e887"; +} + +.material-icons.help_center:before { + content: "\f1c0"; +} + +.material-icons.help_outline:before { + content: "\e8fd"; +} + +.material-icons.high_quality:before { + content: "\e024"; +} + +.material-icons.highlight:before { + content: "\e25f"; +} + +.material-icons.highlight_alt:before { + content: "\ef52"; +} + +.material-icons.highlight_off:before { + content: "\e888"; +} + +.material-icons.highlight_remove:before { + content: "\e888"; +} + +.material-icons.history:before { + content: "\e889"; +} + +.material-icons.history_edu:before { + content: "\ea3e"; +} + +.material-icons.history_toggle_off:before { + content: "\f17d"; +} + +.material-icons.home:before { + content: "\e88a"; +} + +.material-icons.home_filled:before { + content: "\e9b2"; +} + +.material-icons.home_repair_service:before { + content: "\f100"; +} + +.material-icons.home_work:before { + content: "\ea09"; +} + +.material-icons.horizontal_distribute:before { + content: "\e014"; +} + +.material-icons.horizontal_rule:before { + content: "\f108"; +} + +.material-icons.horizontal_split:before { + content: "\e947"; +} + +.material-icons.hot_tub:before { + content: "\eb46"; +} + +.material-icons.hotel:before { + content: "\e53a"; +} + +.material-icons.hourglass_bottom:before { + content: "\ea5c"; +} + +.material-icons.hourglass_disabled:before { + content: "\ef53"; +} + +.material-icons.hourglass_empty:before { + content: "\e88b"; +} + +.material-icons.hourglass_full:before { + content: "\e88c"; +} + +.material-icons.hourglass_top:before { + content: "\ea5b"; +} + +.material-icons.house:before { + content: "\ea44"; +} + +.material-icons.house_siding:before { + content: "\f202"; +} + +.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.hvac:before { + content: "\f10e"; +} + +.material-icons.icecream:before { + content: "\ea69"; +} + +.material-icons.image:before { + content: "\e3f4"; +} + +.material-icons.image_aspect_ratio:before { + content: "\e3f5"; +} + +.material-icons.image_not_supported:before { + content: "\f116"; +} + +.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.insights:before { + content: "\f092"; +} + +.material-icons.integration_instructions:before { + content: "\ef54"; +} + +.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.ios_share:before { + content: "\e6b8"; +} + +.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.leaderboard:before { + content: "\f20c"; +} + +.material-icons.leak_add:before { + content: "\e3f8"; +} + +.material-icons.leak_remove:before { + content: "\e3f9"; +} + +.material-icons.leave_bags_at_home:before { + content: "\f21b"; +} + +.material-icons.legend_toggle:before { + content: "\f11b"; +} + +.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_fire_department:before { + content: "\ef55"; +} + +.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_police:before { + content: "\ef56"; +} + +.material-icons.local_post_office:before { + content: "\e554"; +} + +.material-icons.local_print_shop:before { + content: "\e555"; +} + +.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_pin:before { + content: "\f1db"; +} + +.material-icons.location_searching:before { + content: "\e1b7"; +} + +.material-icons.lock:before { + content: "\e897"; +} + +.material-icons.lock_clock:before { + content: "\ef57"; +} + +.material-icons.lock_open:before { + content: "\e898"; +} + +.material-icons.lock_outline:before { + content: "\e899"; +} + +.material-icons.login:before { + content: "\ea77"; +} + +.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.luggage:before { + content: "\f235"; +} + +.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.maps_ugc:before { + content: "\ef58"; +} + +.material-icons.margin:before { + content: "\e9bb"; +} + +.material-icons.mark_as_unread:before { + content: "\e9bc"; +} + +.material-icons.mark_chat_read:before { + content: "\f18b"; +} + +.material-icons.mark_chat_unread:before { + content: "\f189"; +} + +.material-icons.mark_email_read:before { + content: "\f18c"; +} + +.material-icons.mark_email_unread:before { + content: "\f18a"; +} + +.material-icons.markunread:before { + content: "\e159"; +} + +.material-icons.markunread_mailbox:before { + content: "\e89b"; +} + +.material-icons.masks:before { + content: "\f218"; +} + +.material-icons.maximize:before { + content: "\e930"; +} + +.material-icons.mediation:before { + content: "\efa7"; +} + +.material-icons.medical_services:before { + content: "\f109"; +} + +.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_external_off:before { + content: "\ef59"; +} + +.material-icons.mic_external_on:before { + content: "\ef5a"; +} + +.material-icons.mic_none:before { + content: "\e02a"; +} + +.material-icons.mic_off:before { + content: "\e02b"; +} + +.material-icons.microwave:before { + content: "\f204"; +} + +.material-icons.military_tech:before { + content: "\ea3f"; +} + +.material-icons.minimize:before { + content: "\e931"; +} + +.material-icons.miscellaneous_services:before { + content: "\f10c"; +} + +.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.model_training:before { + content: "\f0cf"; +} + +.material-icons.monetization_on:before { + content: "\e263"; +} + +.material-icons.money:before { + content: "\e57d"; +} + +.material-icons.money_off:before { + content: "\e25c"; +} + +.material-icons.monitor:before { + content: "\ef5b"; +} + +.material-icons.monochrome_photos:before { + content: "\e403"; +} + +.material-icons.mood:before { + content: "\e7f2"; +} + +.material-icons.mood_bad:before { + content: "\e7f3"; +} + +.material-icons.moped:before { + content: "\eb28"; +} + +.material-icons.more:before { + content: "\e619"; +} + +.material-icons.more_horiz:before { + content: "\e5d3"; +} + +.material-icons.more_time:before { + content: "\ea5d"; +} + +.material-icons.more_vert:before { + content: "\e5d4"; +} + +.material-icons.motion_photos_off:before { + content: "\e9c0"; +} + +.material-icons.motion_photos_on:before { + content: "\e9c1"; +} + +.material-icons.motion_photos_pause:before { + content: "\f227"; +} + +.material-icons.motion_photos_paused:before { + content: "\e9c2"; +} + +.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.multiple_stop:before { + content: "\f1b9"; +} + +.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.nat:before { + content: "\ef5c"; +} + +.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.near_me_disabled:before { + content: "\f1ef"; +} + +.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_plan:before { + content: "\ef5d"; +} + +.material-icons.next_week:before { + content: "\e16a"; +} + +.material-icons.nfc:before { + content: "\e1bb"; +} + +.material-icons.night_shelter:before { + content: "\f1f1"; +} + +.material-icons.nightlife:before { + content: "\ea62"; +} + +.material-icons.nightlight_round:before { + content: "\ef5e"; +} + +.material-icons.nights_stay:before { + content: "\ea46"; +} + +.material-icons.no_backpack:before { + content: "\f237"; +} + +.material-icons.no_cell:before { + content: "\f1a4"; +} + +.material-icons.no_drinks:before { + content: "\f1a5"; +} + +.material-icons.no_encryption:before { + content: "\e641"; +} + +.material-icons.no_flash:before { + content: "\f1a6"; +} + +.material-icons.no_food:before { + content: "\f1a7"; +} + +.material-icons.no_luggage:before { + content: "\f23b"; +} + +.material-icons.no_meals:before { + content: "\f1d6"; +} + +.material-icons.no_meals_ouline:before { + content: "\f229"; +} + +.material-icons.no_meeting_room:before { + content: "\eb4e"; +} + +.material-icons.no_photography:before { + content: "\f1a8"; +} + +.material-icons.no_sim:before { + content: "\e0cc"; +} + +.material-icons.no_stroller:before { + content: "\f1af"; +} + +.material-icons.no_transfer:before { + content: "\f1d5"; +} + +.material-icons.north:before { + content: "\f1e0"; +} + +.material-icons.north_east:before { + content: "\f1e1"; +} + +.material-icons.north_west:before { + content: "\f1e2"; +} + +.material-icons.not_accessible:before { + content: "\f0fe"; +} + +.material-icons.not_interested:before { + content: "\e033"; +} + +.material-icons.not_listed_location:before { + content: "\e575"; +} + +.material-icons.not_started:before { + content: "\f0d1"; +} + +.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.online_prediction:before { + content: "\f0eb"; +} + +.material-icons.opacity:before { + content: "\e91c"; +} + +.material-icons.open_in_browser:before { + content: "\e89d"; +} + +.material-icons.open_in_full:before { + content: "\f1ce"; +} + +.material-icons.open_in_new:before { + content: "\e89e"; +} + +.material-icons.open_with:before { + content: "\e89f"; +} + +.material-icons.outbond:before { + content: "\f228"; +} + +.material-icons.outbox:before { + content: "\ef5f"; +} + +.material-icons.outdoor_grill:before { + content: "\ea47"; +} + +.material-icons.outgoing_mail:before { + content: "\f0d2"; +} + +.material-icons.outlet:before { + content: "\f1d4"; +} + +.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 { + content: "\e40c"; +} + +.material-icons.panorama_fisheye:before { + content: "\e40c"; +} + +.material-icons.panorama_horizontal:before { + content: "\e40d"; +} + +.material-icons.panorama_horizontal_select:before { + content: "\ef60"; +} + +.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_vertical_select:before { + content: "\ef61"; +} + +.material-icons.panorama_wide_angle:before { + content: "\e40f"; +} + +.material-icons.panorama_wide_angle_select:before { + content: "\ef62"; +} + +.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.payments:before { + content: "\ef63"; +} + +.material-icons.pedal_bike:before { + content: "\eb29"; +} + +.material-icons.pending:before { + content: "\ef64"; +} + +.material-icons.pending_actions:before { + content: "\f1bb"; +} + +.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 { + content: "\e8a3"; +} + +.material-icons.perm_contact_calendar:before { + content: "\e8a3"; +} + +.material-icons.perm_data_setting:before { + content: "\e8a4"; +} + +.material-icons.perm_device_info:before { + content: "\e8a5"; +} + +.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_alt:before { + content: "\ea4d"; +} + +.material-icons.person_add_alt_1:before { + content: "\ef65"; +} + +.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.person_remove:before { + content: "\ef66"; +} + +.material-icons.person_remove_alt_1:before { + content: "\ef67"; +} + +.material-icons.person_search:before { + content: "\f106"; +} + +.material-icons.personal_video:before { + content: "\e63b"; +} + +.material-icons.pest_control:before { + content: "\f0fa"; +} + +.material-icons.pest_control_rodent:before { + content: "\f0fd"; +} + +.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_camera_back:before { + content: "\ef68"; +} + +.material-icons.photo_camera_front:before { + content: "\ef69"; +} + +.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.plagiarism:before { + content: "\ea5a"; +} + +.material-icons.play_arrow:before { + content: "\e037"; +} + +.material-icons.play_circle_fill:before { + content: "\e038"; +} + +.material-icons.play_circle_filled:before { + content: "\e038"; +} + +.material-icons.play_circle_outline:before { + content: "\e039"; +} + +.material-icons.play_disabled:before { + content: "\ef6a"; +} + +.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.plumbing:before { + content: "\f107"; +} + +.material-icons.plus_one:before { + content: "\e800"; +} + +.material-icons.point_of_sale:before { + content: "\f17e"; +} + +.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.preview:before { + content: "\f1c5"; +} + +.material-icons.print:before { + content: "\e8ad"; +} + +.material-icons.print_disabled:before { + content: "\e9cf"; +} + +.material-icons.priority_high:before { + content: "\e645"; +} + +.material-icons.privacy_tip:before { + content: "\f0dc"; +} + +.material-icons.psychology:before { + content: "\ea4a"; +} + +.material-icons.public:before { + content: "\e80b"; +} + +.material-icons.public_off:before { + content: "\f1ca"; +} + +.material-icons.publish:before { + content: "\e255"; +} + +.material-icons.published_with_changes:before { + content: "\f232"; +} + +.material-icons.push_pin:before { + content: "\f10d"; +} + +.material-icons.qr_code:before { + content: "\ef6b"; +} + +.material-icons.qr_code_2:before { + content: "\e00a"; +} + +.material-icons.qr_code_scanner:before { + content: "\f206"; +} + +.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.quickreply:before { + content: "\ef6c"; +} + +.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.read_more:before { + content: "\ef6d"; +} + +.material-icons.receipt:before { + content: "\e8b0"; +} + +.material-icons.receipt_long:before { + content: "\ef6e"; +} + +.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.reduce_capacity:before { + content: "\f21c"; +} + +.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.request_page:before { + content: "\f22c"; +} + +.material-icons.request_quote:before { + content: "\f1b6"; +} + +.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.rice_bowl:before { + content: "\f1f5"; +} + +.material-icons.ring_volume:before { + content: "\e0d1"; +} + +.material-icons.roofing:before { + content: "\f201"; +} + +.material-icons.room:before { + content: "\e8b4"; +} + +.material-icons.room_preferences:before { + content: "\f1b8"; +} + +.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.rule:before { + content: "\f1c2"; +} + +.material-icons.rule_folder:before { + content: "\f1c9"; +} + +.material-icons.run_circle:before { + content: "\ef6f"; +} + +.material-icons.rv_hookup:before { + content: "\e642"; +} + +.material-icons.sanitizer:before { + content: "\f21d"; +} + +.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.science:before { + content: "\ea4b"; +} + +.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_search_desktop:before { + content: "\ef70"; +} + +.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.search_off:before { + content: "\ea76"; +} + +.material-icons.security:before { + content: "\e32a"; +} + +.material-icons.segment:before { + content: "\e94b"; +} + +.material-icons.select_all:before { + content: "\e162"; +} + +.material-icons.self_improvement:before { + content: "\ea78"; +} + +.material-icons.send:before { + content: "\e163"; +} + +.material-icons.send_and_archive:before { + content: "\ea0c"; +} + +.material-icons.send_to_mobile:before { + content: "\f05c"; +} + +.material-icons.sensor_door:before { + content: "\f1b5"; +} + +.material-icons.sensor_window:before { + content: "\f1b4"; +} + +.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.set_meal:before { + content: "\f1ea"; +} + +.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_bag:before { + content: "\f1cc"; +} + +.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.sick:before { + content: "\f220"; +} + +.material-icons.signal_cellular_0_bar:before { + content: "\f0a8"; +} + +.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_0_bar:before { + content: "\f0b0"; +} + +.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.smart_button:before { + content: "\f1c1"; +} + +.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.snippet_folder:before { + content: "\f1c7"; +} + +.material-icons.snooze:before { + content: "\e046"; +} + +.material-icons.soap:before { + content: "\f1b2"; +} + +.material-icons.sort:before { + content: "\e164"; +} + +.material-icons.sort_by_alpha:before { + content: "\e053"; +} + +.material-icons.source:before { + content: "\f1c4"; +} + +.material-icons.south:before { + content: "\f1e3"; +} + +.material-icons.south_east:before { + content: "\f1e4"; +} + +.material-icons.south_west:before { + content: "\f1e5"; +} + +.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_bar:before { + content: "\f1f3"; +} + +.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.stacked_line_chart:before { + content: "\f22b"; +} + +.material-icons.stairs:before { + content: "\f1a9"; +} + +.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: "\f06f"; +} + +.material-icons.star_rate:before { + content: "\f0ec"; +} + +.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.sticky_note_2:before { + content: "\f1fc"; +} + +.material-icons.stop:before { + content: "\e047"; +} + +.material-icons.stop_circle:before { + content: "\ef71"; +} + +.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.stroller:before { + content: "\f1ae"; +} + +.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.subscript:before { + content: "\f111"; +} + +.material-icons.subscriptions:before { + content: "\e064"; +} + +.material-icons.subtitles:before { + content: "\e048"; +} + +.material-icons.subtitles_off:before { + content: "\ef72"; +} + +.material-icons.subway:before { + content: "\e56f"; +} + +.material-icons.superscript:before { + content: "\f112"; +} + +.material-icons.supervised_user_circle:before { + content: "\e939"; +} + +.material-icons.supervisor_account:before { + content: "\e8d3"; +} + +.material-icons.support:before { + content: "\ef73"; +} + +.material-icons.support_agent:before { + content: "\f0e2"; +} + +.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 { + content: "\e8d6"; +} + +.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_left:before { + content: "\f1d1"; +} + +.material-icons.switch_right:before { + content: "\f1d2"; +} + +.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 { + content: "\e8d7"; +} + +.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.table_rows:before { + content: "\f101"; +} + +.material-icons.table_view:before { + content: "\f1be"; +} + +.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.tapas:before { + content: "\f1e9"; +} + +.material-icons.taxi_alert:before { + content: "\ef74"; +} + +.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.text_snippet:before { + content: "\f1c6"; +} + +.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.topic:before { + content: "\f1c8"; +} + +.material-icons.touch_app:before { + content: "\e913"; +} + +.material-icons.tour:before { + content: "\ef75"; +} + +.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 { + content: "\e8e4"; +} + +.material-icons.trending_neutral:before { + content: "\e8e4"; +} + +.material-icons.trending_up:before { + content: "\e8e5"; +} + +.material-icons.trip_origin:before { + content: "\e57b"; +} + +.material-icons.tty:before { + content: "\f1aa"; +} + +.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.umbrella:before { + content: "\f1ad"; +} + +.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.unpublished:before { + content: "\f236"; +} + +.material-icons.unsubscribe:before { + content: "\e0eb"; +} + +.material-icons.update:before { + content: "\e923"; +} + +.material-icons.update_disabled:before { + content: "\e075"; +} + +.material-icons.upgrade:before { + content: "\f0fb"; +} + +.material-icons.upload_file:before { + content: "\e9fc"; +} + +.material-icons.usb:before { + content: "\e1e0"; +} + +.material-icons.verified:before { + content: "\ef76"; +} + +.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_distribute:before { + content: "\e076"; +} + +.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.video_settings:before { + content: "\ea75"; +} + +.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 { + content: "\e42a"; +} + +.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_sidebar:before { + content: "\f114"; +} + +.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.wash:before { + content: "\f1b1"; +} + +.material-icons.watch:before { + content: "\e334"; +} + +.material-icons.watch_later:before { + content: "\e924"; +} + +.material-icons.water_damage:before { + content: "\f203"; +} + +.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.west:before { + content: "\f1e6"; +} + +.material-icons.whatshot:before { + content: "\e80e"; +} + +.material-icons.wheelchair_pickup:before { + content: "\f1ab"; +} + +.material-icons.where_to_vote:before { + content: "\e177"; +} + +.material-icons.widgets:before { + content: "\e1bd"; +} + +.material-icons.wifi:before { + content: "\e63e"; +} + +.material-icons.wifi_calling:before { + content: "\ef77"; +} + +.material-icons.wifi_lock:before { + content: "\e1e1"; +} + +.material-icons.wifi_off:before { + content: "\e648"; +} + +.material-icons.wifi_protected_setup:before { + content: "\f0fc"; +} + +.material-icons.wifi_tethering:before { + content: "\e1e2"; +} + +.material-icons.wine_bar:before { + content: "\f1e8"; +} + +.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.wrong_location:before { + content: "\ef78"; +} + +.material-icons.wysiwyg:before { + content: "\f1c3"; +} + +.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"; +} +/*! + * Weather Icons Lite v1.6.1 + * Weather themed icons for Bootstrap + * Author - Paul Reed + * Maintained at https://github.com/Paul-Reed/weather-icons-lite + * Description - A lighweight version of Weather Icons + * Credit to Erik Flowers - erik@helloerik.com + * + */ + +@font-face { + font-family: 'weather-icons-lite'; + font-weight: normal; + font-style: normal; + src: url('../fonts/weather-icons-lite.woff2') format('woff2'), + url('../fonts/weather-icons-lite.woff') format('woff'), + url('../fonts/weather-icons-lite.ttf') format('truetype'), + url('../fonts/weather-icons-lite.eot') format('embedded-opentype'); +} + +.wi { + display: inline-block; + font-family: 'weather-icons-lite'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.wi-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; +} + +.wi-xs { + font-size: .75em; +} + +.wi-sm { + font-size: .875em; +} + +.wi-1x { + font-size: 1em; +} + +.wi-2x { + font-size: 2em; +} + +.wi-3x { + font-size: 3em; +} + +.wi-4x { + font-size: 4em; +} + +.wi-5x { + font-size: 5em; +} + +.wi-6x { + font-size: 6em; +} + +.wi-7x { + font-size: 7em; +} + +.wi-8x { + font-size: 8em; +} + +.wi-9x { + font-size: 9em; +} + +.wi-10x { + font-size: 10em; +} + +.wi-fw { + text-align: center; + width: 1.4em; +} + +.wi-rotate-0, +.wi-rotate-N, +.wi-towards-N, +.wi-from-S { + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); +} + +.wi-rotate-23, +.wi-rotate-NNE, +.wi-towards-NNE, +.wi-from-SSW { + -webkit-transform: rotate(23deg); + -ms-transform: rotate(23deg); + transform: rotate(23deg); +} + +.wi-rotate-45, +.wi-rotate-NE, +.wi-towards-NE, +.wi-from-SW { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.wi-rotate-68, +.wi-rotate-ENE, +.wi-towards-ENE, +.wi-from-WSW { + -webkit-transform: rotate(68deg); + -ms-transform: rotate(68deg); + transform: rotate(68deg); +} + +.wi-rotate-90, +.wi-rotate-E, +.wi-towards-E, +.wi-from-W { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.wi-rotate-113, +.wi-rotate-ESE, +.wi-towards-ESE, +.wi-from-WNW { + -webkit-transform: rotate(113deg); + -ms-transform: rotate(113deg); + transform: rotate(113deg); +} + +.wi-rotate-135, +.wi-rotate-SE, +.wi-towards-SE, +.wi-from-NW { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); +} + +.wi-rotate-158, +.wi-rotate-SSE, +.wi-towards-SSE, +.wi-from-NNW { + -webkit-transform: rotate(158deg); + -ms-transform: rotate(158deg); + transform: rotate(158deg); +} + +.wi-rotate-180, +.wi-rotate-S, +.wi-towards-S, +.wi-from-N { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.wi-rotate-203, +.wi-rotate-SSW, +.wi-towards-SSW, +.wi-from-NNE { + -webkit-transform: rotate(203deg); + -ms-transform: rotate(203deg); + transform: rotate(203deg); +} + +.wi-rotate-225, +.wi-rotate-SW, +.wi-towards-SW, +.wi-from-NE { + -webkit-transform: rotate(225deg); + -ms-transform: rotate(225deg); + transform: rotate(225deg); +} + +.wi-rotate-248, +.wi-rotate-WSW, +.wi-towards-WSW, +.wi-from-ENE { + -webkit-transform: rotate(248deg); + -ms-transform: rotate(248deg); + transform: rotate(248deg); +} + +.wi-rotate-270, +.wi-rotate-W, +.wi-towards-W, +.wi-from-E { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.wi-rotate-293, +.wi-rotate-WNW, +.wi-towards-WNW, +.wi-from-ESE { + -webkit-transform: rotate(293deg); + -ms-transform: rotate(293deg); + transform: rotate(293deg); +} + +.wi-rotate-315, +.wi-rotate-NW, +.wi-towards-NW, +.wi-from-SE { + -webkit-transform: rotate(315deg); + -ms-transform: rotate(315deg); + transform: rotate(315deg); +} + +.wi-rotate-338, +.wi-rotate-NNW, +.wi-towards-NNW, +.wi-from-SSE { + -webkit-transform: rotate(338deg); + -ms-transform: rotate(338deg); + transform: rotate(338deg); +} + +.wi-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, +mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.wi-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +.wi-arrow:before { + content: "\f0d2"; +} + +.wi-direction:before { + content: "\f0d1"; +} + +.wi-darksky-clear-day:before { + content: "\f00d"; +} + +.wi-darksky-clear-night:before { + content: "\f02e"; +} + +.wi-darksky-rain:before { + content: "\f019"; +} + +.wi-darksky-snow:before { + content: "\f01b"; +} + +.wi-darksky-sleet:before { + content: "\f0b5"; +} + +.wi-darksky-wind:before { + content: "\f050"; +} + +.wi-darksky-fog:before { + content: "\f014"; +} + +.wi-darksky-cloudy:before { + content: "\f013"; +} + +.wi-darksky-partly-cloudy-day:before { + content: "\f002"; +} + +.wi-darksky-partly-cloudy-night:before { + content: "\f086"; +} + +.wi-darksky-hail:before { + content: "\f015"; +} + +.wi-darksky-thunderstorm:before { + content: "\f01e"; +} + +.wi-darksky-tornado:before { + content: "\f056"; +} + +.wi-owm-01d:before { + content: "\f00d"; +} + +.wi-owm-02d:before { + content: "\f00c"; +} + +.wi-owm-03d:before { + content: "\f002"; +} + +.wi-owm-04d:before { + content: "\f013"; +} + +.wi-owm-09d:before { + content: "\f017"; +} + +.wi-owm-10d:before { + content: "\f019"; +} + +.wi-owm-11d:before { + content: "\f01e"; +} + +.wi-owm-13d:before { + content: "\f01b"; +} + +.wi-owm-50d:before { + content: "\f014"; +} + +.wi-owm-01n:before { + content: "\f02e"; +} + +.wi-owm-02n:before { + content: "\f081"; +} + +.wi-owm-03n:before { + content: "\f07e"; +} + +.wi-owm-04n:before { + content: "\f086"; +} + +.wi-owm-09n:before { + content: "\f026"; +} + +.wi-owm-10n:before { + content: "\f028"; +} + +.wi-owm-11n:before { + content: "\f02c"; +} + +.wi-owm-13n:before { + content: "\f02a"; +} + +.wi-owm-50n:before { + content: "\f04a"; +} + +.wi-wu-chanceflurries:before { + content: "\f064"; +} + +.wi-wu-chancerain:before { + content: "\f019"; +} + +.wi-wu-chancesleet:before { + content: "\f0b5"; +} + +.wi-wu-chancesnow:before { + content: "\f01b"; +} + +.wi-wu-chancetstorms:before { + content: "\f01e"; +} + +.wi-wu-clear:before { + content: "\f00d"; +} + +.wi-wu-cloudy:before { + content: "\f002"; +} + +.wi-wu-flurries:before { + content: "\f064"; +} + +.wi-wu-fog:before { + content: "\f014"; +} + +.wi-wu-hazy:before { + content: "\f0b6"; +} + +.wi-wu-mostlycloudy:before { + content: "\f002"; +} + +.wi-wu-mostlysunny:before { + content: "\f00c"; +} + +.wi-wu-partlycloudy:before { + content: "\f002"; +} + +.wi-wu-partlysunny:before { + content: "\f002"; +} + +.wi-wu-rain:before { + content: "\f01a"; +} + +.wi-wu-sleet:before { + content: "\f0b5"; +} + +.wi-wu-snow:before { + content: "\f01b"; +} + +.wi-wu-sunny:before { + content: "\f00d"; +} + +.wi-wu-tstorms:before { + content: "\f01e"; +} + +.wi-wu-nt_chanceflurries:before { + content: "\f067"; +} + +.wi-wu-nt_chancerain:before { + content: "\f028"; +} + +.wi-wu-nt_chancesleet:before { + content: "\f0b4"; +} + +.wi-wu-nt_chancesnow:before { + content: "\f02a"; +} + +.wi-wu-nt_chancetstorms:before { + content: "\f02d"; +} + +.wi-wu-nt_clear:before { + content: "\f02e"; +} + +.wi-wu-nt_flurries:before { + content: "\f067"; +} + +.wi-wu-nt_fog:before { + content: "\f04a"; +} + +.wi-wu-nt_hazy:before { + content: "\f07e"; +} + +.wi-wu-nt_mostlycloudy:before { + content: "\f081"; +} + +.wi-wu-nt_mostlysunny:before { + content: "\f02e"; +} + +.wi-wu-nt_partlycloudy:before { + content: "\f081"; +} + +.wi-wu-nt_partlysunny:before { + content: "\f086"; +} + +.wi-wu-nt_rain:before { + content: "\f028"; +} + +.wi-wu-nt_sleet:before { + content: "\f0b4"; +} + +.wi-wu-nt_snow:before { + content: "\f02a"; +} + +.wi-wu-nt_sunny:before { + content: "\f02e"; +} + +.wi-wu-nt_tstorms:before { + content: "\f02d"; +} + +.wi-wu-nt_cloudy:before { + content: "\f031"; +} + +.wi-moon-wax-cres-dark:before { + content: "\f0de"; +} + +.wi-moon-first-quart-dark:before { + content: "\f0df"; +} + +.wi-moon-wax-gibb-dark:before { + content: "\f0e0"; +} + +.wi-moon-full-dark:before { + content: "\f0e1"; +} + +.wi-moon-wan-gibb-dark:before { + content: "\f0da"; +} + +.wi-moon-third-quart-dark:before { + content: "\f0db"; +} + +.wi-moon-wan-cres-dark:before { + content: "\f0dc"; +} + +.wi-moon-new-dark:before { + content: "\f0dd"; +} + +.wi-moon-wax-cres:before { + content: "\f0da"; +} + +.wi-moon-first-quart:before { + content: "\f0db"; +} + +.wi-moon-wax-gibb:before { + content: "\f0dc"; +} + +.wi-moon-full:before { + content: "\f0dd"; +} + +.wi-moon-wan-gibb:before { + content: "\f0de"; +} + +.wi-moon-third-quart:before { + content: "\f0df"; +} + +.wi-moon-wan-cres:before { + content: "\f0e0"; +} + +.wi-moon-new:before { + content: "\f0e1"; +} +/*! + * angularjs-color-picker v3.4.8 + * https://github.com/ruhley/angular-color-picker/ + * + * Copyright 2017 ruhley + * + * 2017-10-06 09:52:03 + * + */ + +.color-picker-wrapper { + position: relative; +} + +.color-picker-wrapper .color-picker-input-wrapper { + display: table; + position: relative; +} + +.color-picker-wrapper .input-group { + position: relative; + border-collapse: separate; +} + +.color-picker-wrapper .input-group .color-picker-input, +.color-picker-wrapper .input-group .input-group-addon { + display: table-cell; +} + +.color-picker-wrapper .input-group .color-picker-input { + position: relative; + z-index: 2; + float: left; + margin-bottom: 0; +} + +.color-picker-wrapper .input-group .input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; +} + +.color-picker-wrapper .input-group .input-group-addon:first-child { + border-right-width: 0; +} + +.color-picker-wrapper .input-group .input-group-addon:last-child { + border-left-width: 0; +} + +.color-picker-wrapper .input-group .color-picker-input-swatch { + padding-left: 12px; +} + +.color-picker-wrapper .color-picker-input-swatch { + padding-left: 36px; +} + +.color-picker-wrapper .color-picker-swatch { + cursor: pointer; + z-index: 3; +} + +.color-picker-wrapper .color-picker-swatch:not(.input-group-addon) { + position: absolute; + top: 3px; + width: 28px; + height: 70%; + box-sizing: border-box; + border-radius: 3px; + vertical-align: middle; + background-position: -80px 0; + border: solid 1px #ccc; + padding: 0; + margin: 0; + display: inline-block; +} + +.color-picker-wrapper .color-picker-swatch:not(.input-group-addon).color-picker-swatch-left { + left: 3px; +} + +.color-picker-wrapper .color-picker-swatch:not(.input-group-addon).color-picker-swatch-right { + right: 3px; +} + +.color-picker-wrapper .color-picker-panel { + position: absolute; + background: #fff; + border: solid 1px #ccc; + box-shadow: 0 0 20px rgba(0,0,0,.5); + z-index: 99999; + width: 150px; + table-layout: fixed; + border: 1px solid #fff; + padding-right: 1px; + box-sizing: content-box; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper { + display: table; + width: 100%; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row { + display: table-row; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-overlay { + position: absolute; + width: 100%; + height: 150px; + top: 0; + left: 0; + z-index: 2; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-hue, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-lightness, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-opacity, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-saturation { + background-image: linear-gradient(45deg,grey 25%,transparent 25%),linear-gradient(-45deg,grey 25%,transparent 25%),linear-gradient(45deg,transparent 75%,grey 75%),linear-gradient(-45deg,transparent 75%,grey 75%); + background-size: 10px 10px; + background-position: 0 0,0 5px,5px -5px,-5px 0; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-hue, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-lightness, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-opacity, +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-saturation { + display: table-cell; + position: relative; + left: 1px; + width: 20px; + background-color: #fff; + cursor: row-resize; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-slider { + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 2px; + background: #fff; + border: solid 1px #000; + box-sizing: content-box; + margin-top: -1px; + z-index: 3; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid { + display: table-cell; + position: relative; + width: 150px; + height: 150px; + cursor: crosshair; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-grid-inner { + width: 150px; + height: 150px; + z-index: 9; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-overlay { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAAC9FBMVEUDAwMTExMFBQUGBgYMDAwICAgFBQUDAwMGBgYDAwMPDw8SEhIYGBgLCwsTExMfHx8GBgYcHBwGBgYmJiYcHBwfHx8XFxcJCQkODg4fHx8RERExMTEmJiYGBgYuLi4ZGRlDQ0MqKioICAgcHBxFRUUUFBQKCgooKCgzMzMnJycbGxsTExM8PDwvLy8xMTErKysLCwtNTU1CQkI5OTkUFBQlJSVmZmZeXl4mJiYfHx81NTVKSkoPDw9FRUVjY2NYWFhLS0srKys6OjpISEhQUFBsbGxEREQLCwsNDQ3a2to4ODhBQUE7OzsMDAwXFxchISFSUlJnZ2d4eHhlZWUzMzOampo+Pj4tLS1ISEhtbW1SUlJ0dHQQEBAwMDAhISFWVlZaWlpWVlZiYmJLS0snJyf09PQfHx+Xl5dHR0dPT08+Pj5qamrOzs5QUFBXV1dUVFR6enonJyddXV1xcXE2NjYWFhY8PDxKSkrNzc1/f3+hoaFfX1+KioqAgIB3d3esrKyYmJiKiookJCS7u7uhoaE6OjqLi4ssLCy8vLx6enpubm6Hh4eioqKFhYXp6enCwsKMjIzBwcGRkZHu7u44ODhycnLFxcVra2uioqLc3Nzl5eV4eHjl5eWSkpK+vr7h4eEzMzOSkpK7u7shISHW1taurq5aWlrPz89vb2/y8vJlZWWBgYHKyspeXl64uLh+fn4YGBg2NjbZ2dl6enrMzMy8vLyTk5POzs5xcXG/v79PT09paWmEhISbm5urq6u3t7djY2Pl5eXh4eFaWlqLi4u1tbW5ubl/f3/Q0NCCgoKTk5Ovr69KSkp1dXWpqanZ2dmvr6+ysrJMTEyenp719fWbm5tUVFSYmJjz8/ODg4PZ2dn19fWzs7NjY2Nra2uHh4enp6eIiIijo6PU1NSnp6eWlpbKysqpqal3d3ff39+KiorCwsLS0tLg4OC+vr7r6+uqqqry8vLj4+OWlpatra3r6+v39/fu7u75+fnv7+/5+fkBAQFzkre4AAAA+3RSTlP97ePc/P3u+Onz8/z79+Hz0+rL++D89bvl19jr8sL6wPndsq7m0anI0uPLyfry27Oh8O7oZ+n42tCl+x98o+jk+r7y2+Wxv5mGpr/O4JBcR6/AvI6b89iltO7Z5HF2kc7A8c7MiPKavHeIhuB2waL61H37n8m0qpfkyKqy9/j56OC/Ovbkki8sh66AsfbrZeXf0uvos9X21L6A93TB0MKyao5IvMSvfvX6jqIQj/Dm41Bd5u/Unay/xlpqYticw7Zv1kiWn9kenp2M+ZtOkG33ffZbg6LPQkjVaNSyyjRUVpF+0ipZdbP4RTjOqmKQbqDZfuhjOFPDxfhv3SDpqyEAABolSURBVHgBdNKxaipbGMVx38sn8EHs5jk8VtNMZRgYGNJIrGwOllqIVU4jJCSkihwiOIqDxmh1/2vW3pfBy11r7al/fNr5aaX/c+tT4rzevm/fr98x79/vIev3dcx4PQ45jo8h1+M1Jr2m6Tk9xyzOC7JdbGM+t59Nlp/L5fJp+RTSYt1+buz/TKhcUG2T20ahiq6zqjlb5t6ryFPTO1b/pt18rZbqdneptetYJJNqmElGRVcbRpWzUS2STZFllNqHZBOoV9a4mFmGWaZBii7LooqGpGl6PadG+QfUg7SIp2odC5VfZElkU6PKjFJkUi6YLv+inMP6gOnw3z9WJMUAU4xSpLr/Wznta8lkF6IsQ5VlUXXBdXECClXeqJyxYaiqIxsdR1empFeb6O7MDJNKvYMZpQnVhdWPrqyfCYUpC6i5THOb8vdcW+fFel0UB24lFK3GlYLJKjdJQ3bp7qwuZkFVLrZl09P29KkOPpcnqSIKVrfTRjlWzV2hlPySI5PqvVgX6wMwpTdWkR1FG1UjJ6VJmjBUMbPFjMGiUpW4iFyDJR08DbrLbvdJ7fSVh4d+9hBR9WvNZNKl9PIcFSlySISPSKDkquK9RtW14l4jrpVcIaVslwA673Z49NSyiVE61gmSXEZpXKtRNTVLKqPIhedTEf+EuVEFKki9ChXTpaiT6FY6VrKL15oxbkXLUi5uVXIux7C7axmV0YeszuqgqufAYAlkFSLq9IpeTy5gPlXblaj+BdXAQkRKVYHEZAKlLLsDGtORSbEKkoLKyTVI0eUccGFSKrVaaaOJUHZpRKq9BsuxKsAcuZS2q4PKMEyOTUa9zfO3nN3fqrCJrdyRO5mAMsmqvSqUXb7Wpnw5UX0GLzaZ1b6WU6vRJRkkq9RHtVAVqwxbYWIixSYJI3u62+/3vNk+ojChKlmgRdiHz6X84lr3KpGmDNQbyxksq9jveCuyMoo3oZxKxzIqqITCRJXNbLPZ2IWKIPoaDF4+Bh+sq1oVWH+MUqb1fDoF9abmVmEChuvxd1H8RkbNok0iajLkmyTDZLgfAguR6nm2YbMS2ItqFe9LMlTQPhC5kfWnbjqf1kJpupXy+IZIKL2G1Jj+9lZ/TQLFsRwuBWmoDxw98rx/foaFKiSqZKIfXzbRAPvVCajGNeUZBQmX82gZl3oEpQmlriybMLuGWlANhbIKEd1sWFAxTC8DnmTAmkhkllBKzZv+wxYdrDSPhlEc9w69ndCl36LuSjfDgNAhMNKNiAwNLkrNShiodIqBfkRKk4AtQuHb5Abmf877mBGZc5436x8nQwYUHJvsIn+AOika66xfeA5TcslEGGr7a7vVR1spA0p1ZAL1obmMUh2x5DJKHVCh4oUJlWAnqqnOJ7nUO1rcFdy1t3K2yAYVU0klV//+3vQ/m+Yn/bDLqsGltciwVpCEopkue1u8Lf5MNYmlxFJAnc9/cwWuO6uui2udAon84m22m5hLJFB9/940nF0KJlA7+m0tJbaaw8osCpUil0xkUJ1VXKQouLRWqLaoBAuW06sEklFN80HDJRW0UImVUPN/5n9RTHNUGaZMJonCtJDpqyql4AdKJJJQa7Po/6Pk6hsnUGRHce3Gu/FX1pwKxQ0opsqo8kinkk1PjzNIvMFVcJ+BpLbblhdb0WpzdGMsTjCzDh9UJgUWvRpfBQsXESqbv80zw4LkYHKFSi0lChYl62K9xmRWy1ItBVTxNnb1PecE6gAKEzWLP4gLklxizaVKMlwimaWKtEAUnT3OQKE6zc6z8gyuLEqh7LouUDGUTiZ1Q48EV8Dqvm4oLBXUYac6V+rYDRaRaB4mkybcdDHlRJqKpIOER7XpVl0r2qqViqlaTJXe0VuBojVJKkiYPlVfUIpcFwNq2GqiLiYcWyUUj6mQWVVqKg5XiUl/kCOtSipgQqFSnfqopaSqm2VTYxJMMexFLpMIayXUb2pGOasooMk0ZaY6pZpS3IKit+tYK5nMqiJhsqvmUkDVVAF0eNm9cOGyClaoEgnRkCnnhOmb6lawUH1zVapMqZ1QamR54JZCOaBQXaVGLjA5GW/CUoItZBq2mqnPs9k+sSJMpQRptB4ZFKYcU84dq+7odl1ddxSTe1gCo0ylc4y6FOphfMFSnGATbsLFUqF6Vq3i9vtS/aoybESBjdqVWq2AWZVXXdVJday77gaUnlyhej28/qeil5cBu5ApEiiz7lMDRfdhok/lE6oIotFIpNFKrFWbt6u8ojmvyzurGEqkG255I5TzukS1jLkuZaJSPYgV+WHUD3o/uU+qZ6v2zwmVxnqyioZKlUwmok+Vr4zKNZVgzk0nFSyaZKiWry+qXTq7HlgrkYQSKVB2aSqyn+6RfaIwQfJWvxulCLVacSTHJBUo3UCyKVQxllFLu4yKwHq4sIr+SxYdqya2RlEcz0P5HAZG0t3UmtvapVHJaTQDtxVCwDQWtxhic4rAiDCKWFhEON00YxOYykeY/39/bgnMWus79Y99Hkq+PYgymw0jmkqWqIprupyqmnorTkUCZRKl6fOpqFG2srrsAdXhcH0ARs8qrpWk/zAVkCZrILlEGX8gqum9KiMqb2VLdi+73S+6+/W0u5hWoJ6CtdJUAulwvZBkUL1yLVV5KpusPNXm9PP0k52WZxinUsWtbKLqYNUv39cvVBTHChV9emKT4lohcgcbsgXzYIvrV1X2KlUpShRvsDltTngYt0qUJWdT9/6+tojq9XcKKV0E1UTUBBRdyTIFdXg7GDyoAuXMVareH769Rwd2M2Cqimt5Oi6jU1wlwrr3VFQNClONx613a0AZXBNI6Sp5s28HujjQyPUiSJ7r6mwCxNKFCdhpcDKqluwYx5qyYjqjiB+vxbHMCyobpqxZsRVThYgiE8W9AnVNjaxQiTKDQVGB2lDDqU7HyNSWdD0Vq7uiIIFiJZIi+4QR7pUoWZRwrLfFOa/WyEKUGbxDEibKmjAt3bI5ThvLoVCRUGVStaPbHd3vKJvsVeW15jZVouzFdWGVW5VoSlWibKSZqnJdG7moPt1qu95iYph0TUrNfDJfhcpm/r6VrPCkKV2aqkF1qhKFChflVA0tKMse68e1j2oqqv1WlNGUqPk8VJ6qx5u9LdhipquNq/3a/vwTP94/yMDGqSBpqo7HiibKfEZ1R916JOpsghQje7cvKtqZdDqyrLCe5+rRRQ/XDFeboaLtYCXqvaC+2iCpqjQNRZWk6VnSqO4CGokiXMpmBJkOA0XnnXmJqF5P1KyHSdQMVDumrCXrw0IigapKS47DpkpUqJ4bTM+ghD26OkxEFItb9T1Wn3Yst5p3/oK5gBGOxWsbVW1Y55wPRZMEalgdmyElgJoGEotbmUduVbK14y0bYwLU7+9ReSsTsDTZCKgIJkgsXa0L62vJoKjMsBoOuZZths8NlcRGIzaKa1FlYzeGVFSalHX6iApMlTOq0pW09gUGimsVk41TMXIDClXVDIfFBYmRUWkmULpQbeP1+0yYKpuqu7vO3fyOoWKibKZVUOH65xUWopLKYaKeqkQZHN/F9Rk1Go/g4CJ9JqwkTelSZXs2Iut2xlC5dqvFULWuUkX03JTP8EaSEZSo388jRn77+WJVjb+oingqXqr+79gfnR93bM65vFZx/du7tbezaGvWcu0/TNGxiupqFMXxeahbOmVgSs1xKuNhuKS4xyLEKoQozBSWAQkEq/sCaXLBJoWdnY/iU9z/3nshWWvls/2x9RJYQYrOSUI57AyJPZ/PnyfBVePiXqlVJmdRMjBQprr/+sUg3UFFMP3Z/oNKMhvXeoVrScWU73B1tn+77zOk6DPCpWrqrjTl41h8YUq8wxAbuBTzSIUpXLst91L+2mLh8XuhyjKuFbcicSsGyHqmLuJa5hGsZj91nVJQmEChSqKohDKTo/Qn8rgLEp9gcvkTyf7L+BPDpHSoAHWfHS+mMyb/njRMdc33Y0t1LVclKSQz0QRU5H4fqI6lYDIVqC2ziPRyca43UzHFQA9cpurOwCKYbl4uBcuT2tJIggsVI8PALDK5qvjDU1FXRVDJlZks22aQSJZxLZkenw9M5FOob1wWRAwTT32rFZGkirrJqoSruNsQhYrNTXsfLgrIanv7DBTBZfU4SbmdbzZSPx0mFRXKTIpgzTAUQ1Hci8JI1B6H7ardLPvdfr/dZzwZLkTqm1BkhqKtTNZIHabSV0/1lFpZMqHRsWhjqKaQ685TFVVl98JEWZDCRAyGiikzllSH7nzo2q6F1ra3VirBylKqiUqV4ErSVaI0nIqayb5A3SkBJdUJFaOSZVY/F4P1CBRB5IV0OLeguFV7u41BKm8lq3nLeiphTaiIuWiyok3SMFRNYfUQXAqu0+7ErJCYIpUCKwLnceAB1TJQnGo0FaOYakSBMhcwgmg1JSvCnVahCtQgFyRf5EQhIct3+WmfezGpcxYcRkC17YESYOYaIdnKEVAEkk1xFTNa07CIm3Sq4h0PHyKq5Ce51MV+schsYqESjLQdaxVuhQgVJJtQcslEFUfJRJeMvtNqWYUMFSM7Bmx/ykO1YNaMioVI8TspcPg8pdXSe6deDZZMUWVpDRV7Z5Xt9A4qkkeVRb6wYbLnI/tYwJLJegR2NJR1purHclP2PSoPpst0WV3wzF2AvqSCROwHlFS4qjU0uegsnAqYs3At3gJ1tJqLtldI7VWqzbgpNxtEuIKEybtC9kKtvhqKCxNzEaAlM5SZ6BrU2pqzcOlWVPnIKCyp6NFUV0TH8erFxKUAjT2yyKXHdOFW3r/plzVcbPm1nAWVggnZGhMPqLU3//2ihQxUXEsiTPR6vKLio6DIuOl5+3BdLixQPI4imADZ5yb7JPJPKLZeAwsZJki/Wf4RXXhJ9sG1AmXfy2Sqq4H+54qOUVvXoigMZ0bqYlxE6uTgYLgPDJIcsI0FaoRalx6FHp5CmlSZ4Pv//fa9B+5aS9spP05+m+iMaQaVuT0hEc71BkgYD8UoIf2btv7N3YVZIgwSLj5cDtX7GVX8D8lLikJlDQ9lM5ien89/Z46R9I+qNFFNJlXLr6Xvf9H+zaqimuIzZ6fIvKMSZbzxWn+bjCgXmT/nmQ/Xk8mykasrJrZce1iSQsUHiR3vjJ9MqBjBJk1bsuK1zMP+PP6QhiQNYfKxZvKkeFgmUO6iarkuiw+19MygulthfsfAdWGKBkyTLSksUbLiDo/PzwckUPlYaZpv8+0537hFdWH/kzh9yHqWEcXMMVyso9OxO0+apvP5EC5b8iIp88M3POQMQ9x5mEtEobptaJwLFWU1LaanS0FFM93x3nWY6LGbpuNEAjYdztF3aw4HWOkyww+FpokAK7SN3fBpCpSL6LosGVHgzFpQqBwmM/GLK2SgJlGhsv71UlRwbIg0CWKmhhQuQYz6UnpsMfW0Xdo+etd1b+8r7SzhHDVZAwmYBZY0ZLBMQRkzOzzWgSI1KHOxGVWOSAoRW93arqpYt6aMTG5ykTSJMiZYX4Y7fA0sUw91jSlgGyssUUUlarws4zKyttXlhEGKiCK4SLpsUbFoJlh60lRctWWQCCYbEcQpERWq1rWZNep7GU22CtvWbSdKd362mGRJyqh6HdhrsowqB6jhI6fN6eJnR+uEJarASkIGCk8FCpXdhmw3hWra7Q7Ydnb3Isog+gLEQvRaFxVtRNlTo6i5nE5uPI2iTOs8acque0nVWlXAqqrqqu22ClGieCtgFE0pr2Ug/VYhsvV3HWncpgFGT41v5VSNLExGlKaPdt/uXWS1VVSTqnUrzRhMlni0GVmaLBGVKmHSABFIBk8DSRQk6yIfqD5a7n4EFdUEai9KE4ds2Zb9LSsoWYJcRhecbz7afDe6GPGx/qOD7nHTV7cojDOLWyJhZNAtCE4aUiUWrgK1i3ToPwCkyB4RdeZ4nsf7ZWPOx1prv25/sihOFKNwjtwJ1+nP15/TF3/r9PWUF2s02ZjZ3037wknWE+rXBsp82BJJiTLHb0BWFSh+lSjOPkiWzVO9vFdTSYUtii11iwLSxFCRNCWKdN+s+2bHe8OlyTMpirQTjCXIOoKr2lf7d64kYfWd9UN/aaIYKJ/LR2dFdaLY1NNR0/HkCsqLDrT1dw0vbftSWk0u9s4osoDZCCS6XxST72/UXdiH/SgqRAHrEHVHIgoVzeAZTgMi5tO2LcegcfnDMntHZwHFFoio+S29kF8u0nUXSgB59gjNnFjUDFFGREETRQJWtbfqVrWVm7vqaQVVT1toYhFIP5BEfVD+jyY+JE0kUZOot4r64ZGWtSxTlSGruJGXp566r0tFeYtE8ZvoBMtgyqQqZb3tITGfYXD/AbsxSXZkBUVqYYgmVv6tRxKUpCbbrbs1Eh4+XG+ZHs4fte2HLZ0CZ8P8hOl2y1M2srEax7EeIRlfWZFkXX8u1/KnrqxrLo2TxLNujlQaXa97XGtRmYFRXVbdZjNsWivGh4giIzMVLmYzybray5XHl7s0tmOUTSCGSBck2nORrd16A7Ob7SZQudsjo80Ul5uzAqXGeU3DHllHI8LO/q1Anem2wCCVgBoon5YBvFE2Z7mE0VVds3tWC02ZJvrvpEhP0TAKzObvSljU6CmmzfKWHSmilSVjvVqxcrKeVfMkKmVn6mMjW+t2M1KaMku71LXUxKtrtUTFqKtTlqzP6ydrvNL1Z/OK6tW9QvKKKdLHhIHyyEEXOwTsECTqc+N4REVXSyuppC7PIkwWCit9pT6QOMrO0VmwnHdut2V8DtvdYXcgG47XLzhVkJ6jyMf9PQs4zuQXzieNSCKKAuWZXdTfVFwHXIetvZMQRafRe/7nWVE8/2TRFGm6d04L0ht7eztP3b2F6pFD/q2IqMj/lzHCw4ppueJZaaNszpolTc95u/ccJqPrLy7IYNVRIAqi+QYRpBVBF73QNm8x4UFwNfj/HzWnypvp6Km61S4P0h81rM6IKrYqKj9qZQnt7KVEoXqNF63p7/RnQmmaVCesLAax1rkowUx+5vfMvWcnSYpGLOUtvKVbSbEaMAIjglhnrWlyz/vvdRDN63W8tBV+1MzM9CWhmRPvKBEpvG50UYLYFXsRtKYzFbsd9jqsxMjN7/DipDMQVOq9P2rrnFCSVLLH+ypVusKPYsl4fowXK/KYbuBz0ACxQE6DMswqh9f8mnWVFFmTWX2RshZgaGCpUV5j52Dke1z+0zZt2xFi00XoGDDiIvKJwHCRIvRNTym2JFTYMKpSZVRGvMypxz6qkJHOleETKjNU1FBalOXys8AjVk9OKeMEueQ1lyCcqKYjFFi0tpDSHrznXZwg9vSCRe9C7OWmJc2UfJNJ0Qo+UFPHPFpMXuTGA5crB8XqSWXipd9gE/0i6TBjeEKJeiAVqWFlmlyabDUGyk1r2pTKsO3bsB/7cfAQeEY5Kz05Ra1S1GZtWlqGVim9XzQFO4s1TXFHpdI8tmBXd3VgZPT0UBgIXcjvQPgQv9WrpS1C9Ew8uc2pz3cahZbq5fvWCh2wFDwVGqAkcJLU81flYOEAKeJHbpA1qeftoc2qQxvHYpwJqfhAa69WTDjdvcA2zkJ5qhJCjrBU4iTkSQzpezVCm77JHEOrW+Qhq8rdpzoRi0UrbVRGN/pPei7TXjSUhBPPPzbIHNdRKAqiDImjNxiDrC8+O3DYSe9/YV114KFL4xrqPrIjvqg7gba/2/bRcJAfn8/6WVfPH1kbBRRIZyLSweXcBV4piuZZ5CeNWEA1JCIDtK3b5quCJmnlqjS/KHZeCSQH/w9WbAYgTE6s0sFy19oMzAcaatfVUDcmu75SMldSflJSo2GCTJE8PJ6UDL871kbuUM43VadWJuqlpqSTbCQ60M4U96fx8AgylP7VUEoXYCZnWuHxVTQyyuYA546EwGGt6gQVxTNyyqjsvnENv8MTLHAmes6KQcp5yjmLi63wVYaidCQR5spkILmkUcvDZD+iGpthgmrsTNTs0J0IG2ltTDVL+1RKrmBvFxgvlc2U3AOKhgHLVLh08HyXkSTORaD11VGD31WWfPqkEZEEWHoLACXCBImqNKqxm6wtomCkcyfqleZeKAYzUV8VjtZkyExolHdCvVx0pYILMLCaZpnDL5p3MB8G9RTzs0xEicE07ysZUCxWoPIEiclQ9MCa7dkNysfJzDIveVl0TyiltQkmhpXvGgRFh3Hw7NKHuRpYB5AScFo0RpnbOIzb777JOGz0QyDByEgEGSqom6WJIrQ48nI+UIRSsOcL3cMZqJB6/Hg/GpDTFOmebboTJ0IBFoEiGeoJA5f9rxgy2I0bBmKoEtiSpayu/f//9KXUM2vZSrV1gQIlOZyRc8jDlo+WzaEwTJsAiS7w3iqY5XVYuerHL3cV7P1Rioa62jg9GnBIKx/qGdar+5SZBpWXSNpIULGAsja7ePDGIBAPKB9UHKligKeFogcWu/S7s9EmUnzyUFNe7EEGgys756816Mv7xDgv5Y+KwEVZZLy22EZf9P+jfHyy+PQZTURwuPIo+JuqvhW5dSW4dhgFc3CpiWfjsDY386nkm4X1BRCmkF+QFFz5XiqjJyo0lzs2a5mMMOgOBpugBiRWgASIt6qNhKZqaXhado1m4pbV3dREuQUUyh2mIAu/kCmggcyPqXJFMXPLOWpa8dAfMjT4CDQuVuxYC4O/i2+1LrbkhbJM2RKrdTSYFImr336azB0aD/9YbSKfzFxVk+UEYhKpXndIyFjuQXEAOpWCMR4pMc25ddWbU3cTZ9ZynTZSyo8F1qB1WX+ntC5pherY0Oj0VnkxNEdXvpwAzxTCag7iiznzTimJ1iDaaILC4WLRsO3ExRHWv1JSbraS+2bEnirvmHTfsUKP/FCJoVijUkrBvojHLicoiM07oJUMGuGeUxLPRDDJSidy6VvoQD5H7eSfaPcE8yRvK7uV0HyKs7/+n34CHR2uy7vpg7IAAAAASUVORK5CYII=); + pointer-events: none; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-picker { + position: absolute; + top: 70px; + left: 70px; + width: 12px; + height: 12px; + border: solid 1px #000; + border-radius: 10px; + margin-top: -6px; + margin-left: -6px; + background: 0 0; + box-sizing: content-box; + z-index: 99; +} + +.color-picker-wrapper .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-picker>div { + position: absolute; + top: 0; + left: 0; + width: 8px; + height: 8px; + border-radius: 8px; + border: solid 2px #fff; + box-sizing: content-box; +} + +.color-picker-wrapper .color-picker-panel .color-picker-actions .color-picker-action { + width: calc(33.3333% - 6px); + margin: 3px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-inline { + position: relative; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-saturation.color-picker-show-lightness.color-picker-show-alpha { + width: 230px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-saturation.color-picker-show-lightness { + width: 210px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-saturation.color-picker-show-alpha { + width: 210px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-lightness.color-picker-show-alpha { + width: 210px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-saturation { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-lightness { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue.color-picker-show-alpha { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-saturation.color-picker-show-alpha { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-saturation.color-picker-show-lightness { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-saturation.color-picker-show-lightness.color-picker-show-alpha { + width: 210px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-lightness.color-picker-show-alpha { + width: 190px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-hue { + width: 170px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-saturation { + width: 170px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-lightness { + width: 170px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-show-alpha { + width: 170px; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-bottom { + top: auto; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-top { + bottom: 100%; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-left { + left: 0; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-right { + right: 0; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-round .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-overlay { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAAC/VBMVEVHcEx/YZRsq11jnYp2lXKEZYmShGCagIB+f3yAfX5up19rZqKRT5xcopqkW2qAfHxdaqmYl1R6S6xVaLKrR4x+QLOMAspUU7utVFSmX1lWp6ixRl4yBP1CL92BAPJCTMz0AH97uEi9PUtet1ulQ5pYLNJTv15JU8M9AvZXAOnLLzywL6VXtHQ8RNWhl07ENkN8u0S3nD2sAM6QM7RoPcGvOptOurU8H+ktLO6DKMF3AORRuo5L1E0vP+aJ5ACiAMiatDpMzVZ5HMpH+ilqxUWAANmyqzVRorSIzyheB+BG/yhLxYBeOMd9/gBJfr3STCidILi0FrND5EjBJ56/hDnUALnUJjWQAOOYqkS6ArflAI1SAPxFz9HAAMlLxLfNGpS4ZEC8AMBnD9mA3RtvzDvJKW7QAaqeyh9cAPJoAPnRlide4DBHncXaHy/CtCSlANxCBe/sAJM9y/HBMnOWwS+zlUT1BxNx+ADEojCsuCvPIWVO8SzaFlrrAEeYAOyVANZD7D46cNTTrR1zAO2C8ADuBh1C+6rCWjhSx1RE3rgzXd8+td/gFirjVxjnDiPJUzBl0TtB56Y/9XpA5G8tW+/qAG3pAMDJezBGvMzSAMW7ANexb0a5Ono/pNU4h9ziCVJD2to3l+WFxzTWEIBIzZNJ20frbQ5BdMg/7WF+APzcAJbFwQ8xcOg9wOdE9vaY9gDScydE15lAkc612ADaRSFV5jHgAnRH0LdC4JFb6yTaix2Z1Q9y5RngtwIyh/ApSfr0AFw0nflF0nc4qu/fsxBB/I1p2DDEyQDiALAoJvnbaB+r0gJC4Oau5QD0ADlC2221whlD6+9D+sT1eQDoALTriQU5uvr0WQVA/m4sZ/pt7wuf4AD0AKUwgfk/2PlA64XRyQD1NAte/gRD58jjeRVB8LXsowBD8NXRANHrUBGV7gDnMxb1lgBB9jtA8pjjlhHtLhL1tQDpvADI1gBE+t3fNx0//kvgyQA/9luxAOdY9hdRIP33AM3H6gD21QDrnpHAAAAA/HRSTlMAOlc9MC47AyQaSEZQT0UOVk1fZ1xvqHZiVGBx+bvqm/dkg21opHuI7NKnh2KtXJZ3e9F9gXZ/y96KynWmy8u4gpea7oO5jXCjwfmJk/l9s5WhwpWLzLbab6/a+K/cj6l+xLC0lKC5r+TxrLmMxKvk3unkkJZp++qaoLHcw+b0x9Gpudvc7fOQi7u+vtLW36KgzeTD3+X0np3n8G+ArrvVwcyKu5mz5ZPV+8jG0ND6+bCtn+TDxtCivdDAvsPY4PP29KLfyPWs1dfyxM3U8/eyu+j09+bm9fb29Nba9vT20uT498/T3+Xh+Ojp3fXk4dPr9+j09c/29eb65VLGWq2zAAAbp0lEQVR4AbTSsariaBwF8C0uZLSReQSbLQf2BcKCU12w2VdIYSFMtYNFGgufxNbCIlhIcrtBiyBYJ01IGbDQgIFAwp7zHROvbKWj5/y/7zZX+PH/8sdjsSzzp9ftzh1nNrxkyS5njj/vdnvt/706Lcni/aU/jyYNSCiqmmTx/OsXq/33l6N4dfpBlA6HKfsZpl5SLavY75utvRamN3n7HqQpPDgs5tak7ESrdqO/3177mpbZU5Qqza4mlw4zdZnhBaHaIbyrqgr7Hf78ZajuJm1RDDgYXtkkmxBlXBjK0Fb279dXwIRap0pLapJxMkyTHatUHMAWgj0dVd6gWEzr0vxfpuSEbZ8L4+faX9+akHKizNgZTqYyMaZ15WyeE/bteR+/ped7f09RoMp0UqYlVJxIKoxCWJyhOxxvh/G8FpbrKa3nrKqzgQcgzCAtSwxQaKRSM2lQs5gqljDPy+DCUMUUVfWj84SF8f0G7whhg8GAKKhwGhQPaUqsmngsAljewIq8zn8+YWGdFU3oIJXJJFKVGYvYMzvG2EI1MgUuhq6iXnR+9wG1KoSbGtyoGhQOQJFt02WThQqlyoUBSgsrfj7+kNz0mCK9Hsu4ZeQKpNiqIRF1VYWSmSRekicJUQWmqH889JBSva20KK6KKpBcToSuozUmClCgApxPCdkYDUMPs0WvMrl+vT3m0gNKJdSBKHpciDjBGqrAxgCGtiZcuAXzWMCgAiopksKkPn17wIVf/Nl+VIblKmuXMESmQNcV5XNCtskWqu1nWC5X/dcDqt73K+pQHg5YlFRrJWAVuRyM7ftmkBC41oVupWKIkqt3z8KosqZGdSaKdeGiSlkFGFVxnMABzMcwlIUsURyuizEqDHOs619w3bWrKUgGZUwKUVOYVpgAE4w5YwcmFPHVNnJpX0IZ1yk5FafiiMp1167OeMGzUR0uu5pOjUohiKaxTIzf0pQ9G+4X4UIuJpELLLqOd7i4K6D0gIwL1dSlaXolMbgdtg1NzsgfOaP9SCq6wsUCNKI+WLOuExZ2p6v3z9mozvyqtCqoDEoZr8bKBqaNs8E4CkAYXD5qVHt/sSdsi2GSj+SDr0jYsf6PUfp3UeSM4zheJGC2SPrUga1SeP0WI4gMKZ/q/gAhoGBlwOnEylK0SC/MIWydRrA51JQKy8B0NstUJsNeIZZ5f3/snHFZuffn0frFV9VV+xZXrRZO9r/CRLCGEqqhoTxE3a2QfLENkwcMFZ/HPfcC9vdaryUwVUm4voHFRccniVudDMWheK+o0O3yaOsoLd7GMaT4d1vVXmQOI/sdV+4ihY3sZ7ytusf0GyxR0bBChb9CcFLaVVNF8icwp7nqyrXWc9GXlaGsD7ddovr1ZL2qxOUsmZBApVueNond9f9ElrjMYdr6ceUwy1x/iOuW6vtzpTKUFYbBTSwV0gMiKdZPzKtKZKB4PZ2oRvvHESiGye5VfCleipcjK34Q1w3W4pSL6vyPzV12qJCG1FSgJqi2hmrHk3Zs6+sSGzST7Xuo9iNcj+JyWCGu4kVdpbDeV+1A5afzWV1DLwQeQXKUbOK1mZnmrN/vywdaX2BJDxcpDJep1nYuVRXH4wuv876LP1Z+yoGdgeE6D8/DxTDgoq6oBHVtaiOS5u2+TWEJMAKVcC5ouBS2rmDFqtCO0q2/1x0mdlbUYohKClpqQXp4mBgLEs9JHIvvOSg+UiLTkHGu3giYumhVMnMdxUV37x5rlkt6Ky4FTGYopipcrmq0G21HyeZ8LHeZzFkWMP0hpXK1KgvLWEsA7/yEudxKroVJUcFDZChC1fiKarqqQvEi1mLOctioN5LWI1OVnAtY5ud6OtrPeK2q3eWWqXCJLCzsWMa6VLExa7abzeZcnruieWQuWzJQl1fBRFaWRQkrO2ageHe1Ny6knx01ZQtHWeklqtEQlZukuY0XNTHJosqVtBJgg+pe5lquS1TqyiRQ7E8Qb1Tf5do0F5W4aLYIszDzv5VlpxLTuDnmVF69WY/qqOoRCawV8aF+qyWsQW+Aq2Ou5VdYxr04Vwbr6eknGNes2SbfiGrKtRZTTELipWGXpjtXNchUoC5Jzfq8DozHyaxWnweMg8FCxRt1Xs+1LK2MXHV8hnH9f0fFBDVV1Ewmt7pUTQTVGNOlinmRzeJiLWswUFiHAeNaS1wKy3juIv71V6zDRlW45FYHcQlqls52otpVtxJU21X35vHeytw1aAlKBqwDzFzlsnwun02VPUmfKparfhTVZrpBpa7FQVG7sEMFSlUPpiJU97J6/Z699tFG0cfoQ8RzGDKpg4vERahKdT1/ypi6fr46178byk11OCwOB/kFSVSK+iykCmUm2S++/7iof5dG8zUM42Iy8Qeo2CVOFQ9MISHuNtOkWjicKVKkEZlCgrVg6XD+AQ2BiSKnyIDNFGHLwYAwYcvANkE46BaWizghDIKkiP3e1/0+8VXv7zvWH64nTPGXYpj0Vy49XL+GauraA/bHnnJpP/6QSqxQketlrAwqaqHSDQUDRS2p9PUVC1W4hHr3DCVTsWhZERhDJhXvpYvJpQHDRS3trxu95chl1lxvqnqQ6m+pREKlwfqtb1TEkujfoORhxaI+w6Ty836V6iMos1AxUHZFLY0rkgvXX4M5syLWkVmo5EqGCpdUfZ2wn6oUy6p3Mv0ik2HTpS7LtP/wbwuYVJbhOhcrYL+LFbVubnLkClbn6E/BHh7+FGtq6v2v51b9//f7UqWpqGUTC1CszGdYWgyUVHq42nvtvb1zPbkGkStcN79zxXOzvAWp9EA9/I1L61GrZ1fEqv5WlQpUqDDxSsXiLK9cjFcufyx/PNAzzDNrq/3fNjBcYsk1+DGwy7vxFp5irR2hItaDbwhKD1W3z0ARqwoqbYVodlYfJqlm/ZcXrgNUoPTsUq5pL2CDAarWj5ZQP8ml5Z9yPRzJpScVtaTCBStOqEerKrFeqfQZxVDxmGAHliUwVFu42oaBOlcsw2C1xPrpWq1prOyRBwrXqV5Pk6obtaqoxHpXfaaaLZVmS24VpNVZfVJFMooJdRAsw9pbbUYsZKAGLbvM8t6IBOv9tVUJDNSpUKolFCpGK1geptK/Suo0Na3qLeqPPv5A8w40BUOlz7n4ccnVxuVY5FKt1k8GqxGsplmghg+nuHpJLbn6uDpCdarVpFUFFCrdL1CLvNXFVVTJn/JqorJLvQzDFb1AwTo3atDSVAvV7c1tSyRt5QiWJpVrnfbI1Y1aHb1qh1awKvqs8gWZTXrMOE2uCIbLuXZR2ZUscTGuqEUtwRYca+3aruFwmNTyEXEJ5VgdVBoomQKFSqZYoPSlwdJeZ2e4XteqOdeFYqGy65ZceaG4Ia6hYHKdaj1exOp2OvzgvUqVVBVYmlG8WG41PsvC5V5n+txrV6zGVrvRbp+0z0+ACRUwq+y6vYC1MoQFClW4HMsqhokTVipWGcWWwpRbzOnj8a3mpocExTujl1CwtoSCdeJaA2At716o8c1Yrp8r+nHNX7Ph9ZChEqvZa3Zxdbr6ZXFEt6qkrbhgisos5jKAsvqHzrJwOZdqiQVMtRoNcp2fiFVDdXHRupCqJZVqsXn9uJaEUq6hckWsJq6uJ5NVsKSqSFV5qcoEKptdzAYMlVcoF8rlfOI62z3bNYtcjRNcqOxqPVLrXq6xXQWx6pNrL2rd4aJWE1W4hOJJBUqzagmUXjaTy2anHyzTloElrrxUZweqFS5UGrku5NJc6165xrBqYt1N4oij4fBOKsWaqr53I1YdV6qSySqxMjk9SjGpwhV3LNh1IJZgUsnV0KJWjUmlWo+PqiXW2Kx7/a81MitRJbAms+o7rDqq96g0brg2W5IrLpiR5NWe90prabuG2aVYNeXSHEsqXKqFa7wyszS51htdSzUa3lkVR0QlV73zDCXVmmP5gppSZUIz78/NQJlV8O8rjyt+XA3vhBll1qOmWPfUYsszmQmua7mkkuuueUes782uWVLV62IFTCh9UxawqWl+Puvvda9CgVxn+ahFLqka7RTGkiPCAvZpeeb9BJdVI6F8Q7s8u6p1saxaq4AqLeHKoEpRLGzhWpbqqVY+cr2u5VyPzCyjbm/XZ75+m2hSadSKXD4iLmqhwmWVY6lWhvmCoVqYwrJv7DJMrkJBudJaCWzzda17uca4DgV7nNmBNZqMolaodpoRS6qqjmjWh8qaVSVU6QXDtMBskytYObnSXG9BrTfWA7VR26jVti+2n9fSVOvT9sxILM2xEtfXZrhYnb0n11OtJU2stFWgPFi4gAmlM0YtsXYFW49aJ8jkota+XZ/FOlassVjjGVTUsutSKNX6imoHFSckFrWIhapkV4Y9tXo23xFV1PIV+c2/lYpayrW5KdbGBrXItf+4r1ifQ8Vmvn0T7GoyuhqNLqMWqp2dhBW5NFjA1vhpZZJaLFQrCytauMhlF78uzmgXseQSzGd0re3atnKpFbXGuG4Pb2FNzJJKrEuZpEprpSipPiS10iOCCpVNfImLI75RreWopbmWYMSilmJJRa19u+4/Hx+Pjw/Hh0ktuVBdoeKKyIgl1xc9WC9qLRlmVbiilWeWXZGLWuGySrWUC5hdgnFDxdIN5To8/CQXLMGutNHV5aVcrrWjK1LrS93zb+vDhzVyGRVHfCNUqpqzCpdryWSVXPlC1JJpN1BinbgWsfZRyTVWrLRWmkswuXbkmuYySxNLrcIVtZhZRs3NGRZX1KJWxHqbf6ute5uNzQ2uuL3hI+671jFLa0n1jVyXV6DIFa4vX0BxRKvIFTfMxBHnpzfEpVkVLNeasoC51m6C0v6hy45ZGsv3MI7noBkcPKMhKnLHYkACgnKZ4uK8hdvZCFMNY5UuNkkXYpFiGiPTBSxiYrBIYxqLlMGQdgjY2K1vZJv9Ps/5+/dkmH3O2a0/fH9HdtFDzbWIda5aVsVaWlCxW08oYmlWwRIs1lpZt6toFjOLYLlaLLpAwdKyWEvf/LlqMcdaquVZRS2jQq38DR0r98knq6tFAPGI+VrFNdcyioVYe47FT6JgIZZZ8YjLtaxaquVcYl1/r32vxVrxiFktJlZwebGWYrlW/tvady7fEBdDZReqK1S5b+sl1nIsFmOJVcvdUK4SLKmotVKMuQQzKqrebRQDKrDeVHbFWkax5Vq4nl6e6k/1X3Vc49vxbee208lqMVrVvtRwsXDEEizDioplVlTFWIYxwbajy6w/1mKB5VrEeslcsMawbmGBunmrBcuxYi1UK3z0Ca6Qi4m0FOtdspGASlVrO9zQ+70WMyrWCixcT3VqOdZYsTqwblDFWieZawvWxw/Khcoffd7lSeVaSVbLKsf687cVXeHbWvxYwPrlWPW6XGOmI37ruBau2nWNWXUCa+sjsFI4onOxV1dUGaUvi1gptbhhXtX43LBrGeVcF6HWz8I3WKxeVy6OiEojFqoHw1wLFHOtErnWlStZTVbtEkw0o6ziP9QJKrn4tshVMay33wMmV/Wwetg8bH792vraOm+dXw1+Xl3gUqwF/xt4K1bdrHFduTrjDrluUMkVcqkWqP9ntUqhlmDulV/Rs8modFuqPaMci1yoVAsUr2oNrq4GoPRtLch1XvjyEllW4dK+KdcDucIRayfZFV9zrWtJAsyKN1RgbSRsI8XFDdWq4iP2etkRq66Fi1qt1vkgq0UsclFrv7ASbzjmcSx241xy1R6yWie4lMu1fEZ6JcqVBYsPS2xisFC5lmOh6jWCixPycMNzsQa4xLJqsVH4AOq5/vx7LVRZLatwieVauJCt08tfPSv+tqQoVdYqRcUVaVURi0+rwT5X2WGzKRWxWlIpFlvItVHYrMMybD4fz8fjoXK5FiymWqBqjnWyBUyqeEaCofgTSqo0zVCwrKKWY1XjF9/UFz9ANfg5uPANtc1CYfzy/GxVvW4XsKFZ7NqwUa0GiwEjFzAWYIl7BVrC6xm2FKsSb8g4oWsxYimXXKq1cK2rQqFwrVix1tCqTl+sh5tQSy5f8TWXYeshWHDl/vFX5VjbKaqKVMd7xz3W0BGrjQx1SCqjtAvth1mfYX1Qref58xyXYLBQ9W/6dmkjXCGXVKwUWXlZ7JSkSUQ5FirFQhVqMcNayjXgjLAMW2j/gbUmlV1iDckFDBe52gGFamQVtRixlmBJHpbaxBNZ+VhWGdX0Wl6sFY64VuBXuvXg8obzoHKurJZcZkXYksswlvBYtZGup1HF587yqhysxataUgXX42JxsalfgHeM0mOVlqna5GqT62E0GjnXrlTBpUVXkKV2gcq3Uqze8XFPLt+w+u+1HqVatApifUQ1e57Ns3FERi4GS1MsXAeG7VoVZXmaQCFUbLXtVpU9VOwoxmra1bprtSatwcS1uq+w7E93m1bNZvNZrNUfGtV/aLfbqsWodWDWbgYrlXlKpVSqNDz6V15VNkoXpFaGOn2NddZs3jXvgmvQFap78SjV43tQvuIMl1TT+XAaWFq7ryu2R94BuQ5Q0QuYZQHmxyS/nk1BpVHrqNcwrHpaPauiakoFajJRrq5UdnFDs2qvtaZvLqZeDBYwf112MbvKeoDx2lVO48rbfsIBM9VR7wjV6WkDFaxm8+xOtVqZqtvNXNp+YK2B8mBNxbo3TLGAWeVcB2ZFWEZDpqccaOXsdSzPKqGscivH0hFdy6yoolYRkjfPUOQCNpzC6t+HIzLDdEPBdg+s0uNepcyV8v6NR49LlaOJcUAeq2AZhUmqyUSu7qTLHruONXj7E/pbLXY/5JHrMnONeD/xwLLLufKXZOiE0jBVQPHuhBMe6Tk6PTpl+rAYJzRsAkwurkgus/xzaNZ7mf6aTWdSDYPr0i7vU/uTXcy9rNrh3draMSs3QpkllUuZxSjFe6ZYLK8ahFqefw6D6wGVnqlrTe/vVevysn/Zvgwu9TqgVx62u2OYguW2A2one44r/4uq5Vh3Z1HFrAqwaogl1kpQBdcwuHhw/de1/mHTDnlUR8MojsvJzU2uuLtMsoIEQ1ZsUO1mqahBV5RMEMU0rHh9PwIWzbWbbMY1o5Gw6/oBMCTMJ1mz//M+fQIlnPO0Zswvp8jxvVC5a8T9REffeX2PReQoQAlnKEyKxlJAkfa9PbSHwxqQ/bQmsL7BcdfL3/9+ElygVLL72MVs5VJj5BItNRg1GSSOFyLd7zTB5VPRe1UdpBIK1uFHlE3+oYcXV2mur7AkOwLbSyXXX5jobEvNpJIUFnUXh4cAsheoxIpJedgq2FaMBWqNCpSxfKw+Rxvrcy+VXD6Xu3wtXAOZwzzAEismldhWy7dlXXN1YKsACtWascSSaoLqx70J4X+fyuUo1/5j7yoy281mmmvWuwqhuBSWHkjpiCPGSeJUBNcQpd5QPLiiqqGgJpNfoAxcR1C6PTBz5dDMtQXWuwqTAaOCcSNvYrVoKV35W/lWSvV2myq0oSVrqYhQMQdTPcx1Ya6L5sKFapff5nKXUMWvqlieaEqpx1CZo6TSVFUdFMay9CjGmkTYz0AeXB9SXZjrDpZLNhbMXbbYEAYKUpoNZJikMhcqUtV1FQRrB2s1uJqnY4n1FRRBRVDlxkKFy/eamorgSovUk4DK0ixJcGWJRGpJ9AF9qypYTNX1qoiKrm9iPbq2Ut1gchGDjW8uZAVngYamb8KLwMKUlVLpWZZLpVqGZagctWq7dt3RJrqiqn5QGevLQJVTg6HizCWVXG6iLrMktMy4HsVQhqppsKxAoeo62yqirrCe/WO6fvXmOl32p34vssOVo7LBJAM29S9JMmvmsjI+pUdbaaqKT8hJJVdUdV2zPkvVoLra7/2JaweJSjXfz/M5exFcYyabjWWiqLhiWjzAFsaSyFWATBVjU61Ct6JSrc9RdUV1vb4/VflnPJ04ZMCiTCquDzBVsEJdeDNVr3IxmOpVKNuKbpgKmI1Fzg0sVLCaL6Z4/hmlAjU/MRcqarBoUqWywMJj1SllhMn2ioiCeq0sYRO4ldLFYKKm8k/43LU7Wcxlsj/uB/tzNra9PIupOI5SSrpcaCi5XLWppNqsglTRde7OqEAp9ctzlcKf8v97uWMUt/EwCuDbDJNAILAMTuPxNmuQWm+CEsMiGFDhbofFiMGokCu5kk8gF76DwbqB9yTjPqUPoCsYqdj3vmd5/2YHnDHOvPdJaTLix2czU+n/H4uRC9W++M3v37sk1gl2xIvTecQ8mSqUKtWuxPqu7JR/zrxD9o6mLWowuYIWpkxBM5tkGpJQoWii6gklKpQKGadkaVdEsczNuVfuaqjYr6wlkCu4D1oX2p8e2ulPH6YPnamR3JAUhqFUIUjcVapdraVql9XcnX9B8RNRHLm0L8RgI6BaGVCtCwXMoREV8qIsTLktyxhJoHpeG2q1W62g+nJORddv2zbOvph7ljD1mA5GjVpUyCpclQIRCpVQK2RH1d9nVWTd/nnqmgumcGHsCU2wCK5OhArFYVLWkhD2DBZd6+8rwHbNrnm+Pa9iPsLVNZa3/eoRdmSNOGAh05GJlAjtRBFRrEgWmQZAjdOE24KJqpWFqh97sZr7CrrbbtdUW48qNJgHgU8YaxuzRCOIMLwBxAkPlQqzMFU6GJsqWTPcFT/DZvyDKrmgoos1lWA+KhijlUFmKoWqA2qBDhaDQaomljU/Q+zKttW0qte4GMEoQwDzLSP2mIiNRJNrEYG0ACrEokKYBsmAH2C7K6qY16no+iiX1/WQOcbia2EuLJJrGA1Jokgm3rAqDJLShVAl1gUqpd9VPMEOLgwj2HB06JAq3kzFYWAKTSWUWEJVaNM8UvXafGr3tT2F+S/DDq6hSFIx/1NV60qqL5cdgVJ7Ly3MlQ1ZJ4u2UqFSyVUm5bqkaoU2q7tLj2a5cb9gLczHACbVKWwhWawO2JxN8qTMaZKqomp8Q9Vlrl/kcheWoYAhS193RxazrkoosliqDFU1T3z85YcR1XNDsUzm0ZXh8jOIlpjhcokLEy+pQhmYYpAULqtkqrJimup3PvvinP6mcGAcyATz5WJjZSFYTlmCQrUuOVI9vb/CQVd11zLpTryJuSAyVLak65hYVSA6plS4Kw5Whcde4ViwvlgeXTNckim0uTLBclUq1mKox/ZYsCssLGjXhUIml0xy9di4t4x71riAqXgBlX7Qqq7hcmBwcWbebJbNMk6PFYtjrLyXF3EB1z4v9vl+X3KqfZXcXfW8RT6pnhuLyVTIUKpmuBCZAJKKFYoF6sNPOTmwDiaCWWZwIT3dem0KDFwFkhfFvtgTxqTXRjmw/hGlysQeYSApRJHElH9dH+XC3te+I3PS28w2vU2xAQttXdgWMvj1/c9CCXbLv5Sfp61Lsg27AQwuylqUTOEfN/rJNziGtR5lk8lGbV0gbYhSC5risNYxrG94aG394GdQIbg5KTBI/K1+d8v//abn6eqfuv48nS43J4k70bcaW2IuJf0L+L3oUNPhVQ0AAAAASUVORK5CYII=); + border-radius: 50%; +} + +.color-picker-wrapper .color-picker-panel.color-picker-panel-round .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-grid-inner { + background-color: #fff; +} + +.color-picker-wrapper .color-picker-hidden { + display: none; +} + +.color-picker-wrapper.color-picker-disabled .color-picker-grid, +.color-picker-wrapper.color-picker-disabled .color-picker-hue, +.color-picker-wrapper.color-picker-disabled .color-picker-input, +.color-picker-wrapper.color-picker-disabled .color-picker-opacity, +.color-picker-wrapper.color-picker-disabled .color-picker-swatch { + cursor: not-allowed!important; +} + +.color-picker-wrapper.color-picker-swatch-only .color-picker-input { + padding-left: 33px; + padding-right: 0; + width: 35px; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .input-group-addon { + width: 35px; + height: 100%; + border-right: 1px solid #ccc; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .input-group-addon:first-child { + border-right-width: 1px; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .input-group-addon:last-child { + border-left-width: 1px; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .color-picker-input { + padding: 0; + width: 1px; + opacity: 0; + cursor: pointer; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .color-picker-input:focus { + outline: 0; +} + +.color-picker-wrapper.color-picker-closed .color-picker-panel { + display: none; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel { + width: 150px!important; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row { + display: block; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-grid { + display: block; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-hue, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-lightness, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-opacity, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-saturation { + cursor: col-resize; + display: block; + left: 0; + width: 150px; + height: 20px; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-hue .color-picker-overlay, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-lightness .color-picker-overlay, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-opacity .color-picker-overlay, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-saturation .color-picker-overlay { + height: 20px; +} + +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-hue .color-picker-slider, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-lightness .color-picker-slider, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-opacity .color-picker-slider, +.color-picker-wrapper.color-picker-horizontal .color-picker-panel .color-picker-grid-wrapper .color-picker-row .color-picker-saturation .color-picker-slider { + width: 2px; + height: 18px; + margin-top: 0; +} +.nr-dashboard-button { + background: none; +} + +.nr-dashboard-button .md-button { + box-shadow: none; + width: 100%; + height: 100%; + margin: 0px; + min-width: 0px; + min-height: 0px; +} + +md-card .nr-dashboard-button { + padding: 2px; +} + +.nr-dashboard-button i { + vertical-align: middle; + width: unset; +} + +.nr-dashboard-button .fa-2x { + vertical-align: middle; + padding-bottom: 2px; +} + +.nr-dashboard-button .fa-3x { + vertical-align: middle; + padding-bottom: 1px; +} +p.nr-dashboard-chart-title { + padding: 10px 10px 4px 10px; + margin: 0px 0px 0px 0px; + text-align: center; + z-index: 1; + min-height: 10px; +} + +p.blank-label { + color: #c3c3c3; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + position: absolute; + z-index: 2; +} + +.nr-dashboard-chart-container { + width: 100%; + height: 100%; +} + +canvas.chart.chart-line { + /* full height - label_padding - label_height - nr-dashboard-chart_padding */ + height: calc(100% + 22px) !important; + width: calc(100%) !important; +} + +.nr-dashboard-chart { + /* full height - label_padding - label_height - nr-dashboard-chart_padding */ + height: calc(100% - 55px); + width: calc(100% - 10px); + padding: 5px; +} + +.nr-dashboard-chart-nolabel { + /* full height - label_padding - nr-dashboard-chart_padding */ + height: calc(100% - 40px); +} +/* +overwrite the default md-errors-spacer min-height +reason: https://github.com/angular/material/issues/6214 +*/ + +.nr-dashboard-colour-picker p { + padding: 0 0 0 12px; +} + +.color-picker-wrapper { + padding-right: 12px; +} + +.color-picker-wrapper.color-picker-open { + border-width: 0; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open { + width: 32px; + border-width: 0px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline { + right: 121px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-lightness { + right: 141px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-alpha { + right: 141px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-hue { + right: 141px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-hue.color-picker-show-alpha { + right: 161px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-hue.color-picker-show-lightness { + right: 161px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-alpha.color-picker-show-lightness { + right: 161px; +} + +.color-picker-wrapper.color-picker-swatch-only.color-picker-open .color-picker-panel.color-picker-panel-right.color-picker-show-inline.color-picker-show-hue.color-picker-show-alpha.color-picker-show-lightness { + right: 181px; +} + +.color-picker-wrapper .input-group .input-group-addon { + padding: 12px 12px; + border-width: 0px; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .input-group-addon { + width: 0px; +} + +.color-picker-wrapper.color-picker-swatch-only .input-group .input-group-addon:last-child { + border-left-width: 0px; +} + +.color-picker-wrapper .input-group .input-group-addon:last-child { + border-width: 0px; + width: 1px; +} + +.color-picker-wrapper .input-group .color-picker-input { + position: relative; + width: 122px; + height: 20px; + text-indent: 6px; + text-align: center; + font-size: smaller; + padding-right: 4px; +} + +.color-picker-input-wrapper.input-group > span { + border-radius: 3px; +} + +.color-picker-wrapper .color-picker-swatch:not(.input-group-addon).color-picker-swatch-right { + /* right: -1px; */ +} + +.color-picker-input-wrapper { + width: 100%; +} + +.color-picker-input-wrapper > input { + width: 164px; + height: 22px; + text-indent: 6px; + font-size: smaller; + border-width: 0px; +} + +color-picker { + z-index: 2; +} +.nr-dashboard-date-picker { + padding: 0 0px; + width: 100%; + margin-top: 8px; + margin-right: 0px; +} + +.nr-dashboard-date-picker-label { + margin-left: 8px; +} + +.md-button.md-icon-button { + margin: 0 0px; +} + +.md-icon-button+.md-datepicker-input-container { + /* margin-left: 12px; */ +} + +.md-icon-button+.md-datepicker-input-container { + width: calc(100% - 55px); + margin-left: 0px; +} + +._md-datepicker-floating-label>md-datepicker .md-datepicker-button { + float: left; + margin-top: -15px; +} + +.nr-dashboard-date-picker .md-datepicker-triangle-button.md-button.md-icon-button { + height: 40px; + width: 40px; + top: -5px; +} +.nr-dashboard-dropdown md-input-container { + width: 100%; + height: 90%; + padding-left: 8px; + padding-right: 4px; + margin: 0px; + margin-right: 4px; +} + +.nr-dashboard-dropdown md-input-container>md-select { + overflow: hidden; + /* margin-left: 4px !important; */ + margin-top: 6px; +} + +.nr-dashboard-theme .nr-dashboard-dropdown md-select-value { + min-width: 16px; +} + +.nr-dashboard-theme .nr-dashboard-dropdown .md-select-value .md-select-icon { + margin: 0px; + width: 12px; +} + +.nr-dashboard-dropdown .layout-row>.flex-100 { + flex: 1 1 50%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; +} + +.nr-dashboard-dropdown p.label { + margin: 0px; + line-height: 34px; + margin-right: 4px; + margin-top: 3px; + padding-right: 2px; + white-space: normal; + overflow: hidden; + min-width: 20%; +} + +.nr-dashboard-dropdown-header { + padding-top: 6px; + padding-left: 6px; + padding-right: 8px; + height: 34px; + cursor: pointer; + position: relative; + display: flex; + align-items: center; + width: auto; +} + +.nr-dashboard-dropdown-header input { + padding-left: 8px; +} + +.nr-dashboard-dropdown-header ng-md-icon { + right: 0px; + left: inherit; +} +.nr-dashboard-gauge text { + /* font-weight: 500;*/ +} +.nr-dashboard-numeric { + padding: 0 0 0 12px; +} + +.nr-dashboard-numeric .value { + font-weight: bold; + text-align: center; + border: 0px; +} + +.nr-dashboard-numeric .md-button { + margin: 0; +} +.nr-dashboard-slider { + padding: 0 12px; +} + +.nr-dashboard-slider-v { + flex-direction: column; + padding: 0; + font-size: small; +} + +.nr-dashboard-slider p.label { + margin-right: 15px; + white-space: nowrap; +} + +.nr-dashboard-slider p.label-v { + margin-top: 6px; + white-space: nowrap; + overflow: hidden; + padding-bottom: 4px; +} + +md-slider[md-vertical] .md-slider-wrapper { + width: unset; +} + +.nr-dashboard-switch:focus { + outline: 0px; +} + +.nr-dashboard-switch:hover { + cursor: -webkit-grab; + cursor: grab; +} + +.nr-dashboard-switch p { + padding: 0 0 0 12px; +} + +.nr-dashboard-switch md-switch { + padding: 0 8px 0 8px; +} + +.nr-dashboard-switch md-switch:hover { + cursor: -webkit-grab; + cursor: grab; +} + +.nr-dashboard-switch md-switch.center { + margin: 0px auto; +} + +.nr-dashboard-switch ui-icon { + padding: 0 8px; +} + +.nr-dashboard-switch ui-icon.center { + margin: 0px auto; +} +/* +overwrite the default md-errors-spacer min-height +reason: https://github.com/angular/material/issues/6214 +*/ + +.nr-dashboard-textinput md-input-container { + padding: 0px 12px; + margin: 15px 0px; + transition: 0.3s margin; + -webkit-transition: 0.3s margin; +} + +.nr-dashboard-textinput md-input-container .md-input { + padding-top: 1px; +} + +.nr-dashboard-textinput input { + border-bottom-width: 1px; + padding-left: 8px; +} + +.nr-dashboard-textinput input[type="color"] { + border: none; +} + +.nr-dashboard-textinput md-input-container .md-errors-spacer { + min-height: 0; +} + +.nr-dashboard-textinput md-input-container .md-placeholder, +.nr-dashboard-textinput md-input-container label:not(.md-no-float):not(.md-container-ignore) { + padding-left: 12px; + margin-bottom: 3px; +} + +.nr-dashboard-textinput md-input-container.md-input-focused.has-label label:not(.md-no-float):not(.md-container-ignore), +.nr-dashboard-textinput md-input-container.md-input-has-value.has-label label:not(.md-no-float):not(.md-container-ignore) { + margin-bottom: -2px; +} + +.nr-dashboard-textinput md-input-container.md-input-focused.has-label, +.nr-dashboard-textinput md-input-container.md-input-has-value.has-label { + margin: 15px 0px 5px; +} +.nr-dashboard-text { + padding: 0 12px; +} + +.nr-dashboard-text p { + margin-top: 0.1em; + margin-bottom: 0.1em; + margin-left: 0; + margin-right: 0.25em; +} + +.nr-dashboard-text .value { + font-weight: bold; +} +.nr-dashboard-template { + overflow-y: auto; + vertical-align: inherit; +} + +.nr-dashboard-template p { + margin: 0.2em 0; +} + +.nr-dashboard-template h4 { + margin: 0.2em 0; +} + +.nr-dashboard-template h3 { + margin: 0.2em 0; +} + +.nr-dashboard-template h2 { + margin: 0.3em 0; +} + +.nr-dashboard-template h1 { + margin: 0.4em 0; +} +.nr-dashboard-form { + display: inline-block; + width: 100%; + overflow-y: auto; +} + +.nr-dashboard-form form { + padding: 0px 6px 0px 6px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} + +.nr-dashboard-form .formlabel { + font-size: large; + font-weight: 500; + margin-top: 12px; + margin-bottom: 6px; + padding: 0 6px; + width: 100%; +} + +.nr-dashboard-form .formElement { + width: calc(100% - 12px); + margin-left: 6px; + margin-right: 6px; +} + +.nr-dashboard-form .formElementSplit { + width: calc(50% - 12px); + margin-left: 6px; + margin-right: 6px; +} + +.nr-dashboard-form .form-control { + width: 100%; + display: flex; + justify-content: flex-start; + margin-top: -20px; +} + +.nr-dashboard-form .form-control-single { + justify-content: space-around; +} + +.nr-dashboard-form .form-control-single > .nr-dashboard-form-button { + width: 100%; +} + +.nr-dashboard-form .form-control-no-label { + margin-top: -10px; +} + +.nr-dashboard-form md-input-container { + display: inline-block; + margin-top: 0px; + margin-bottom: 0px; + padding-top: 1px; + padding-bottom: 1px; +} + +md-input-container label:not(.md-container-ignore) { + position: absolute; + bottom: 94%; + left: 0; + right: auto; +} + +.nr-dashboard-form form md-input-container input { + margin-top: 2px; +} + +.nr-dashboard-form md-input-container.md-input-focused label:not(.md-no-float), +md-input-container.md-input-has-placeholder label:not(.md-no-float), +md-input-container.md-input-has-value label:not(.md-no-float) { + -webkit-transform: translate3d(0,10px,0) scale(.75); + transform: translate3d(0,10px,0) scale(.75); + -webkit-transition: width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1); + transition: width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1); + transition: transform .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1); + transition: transform .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1); +} + +.nr-dashboard-form md-datepicker { + padding-bottom: 10px; +} + +.nr-dashboard-form md-switch { + margin-top: 0px; + margin-bottom: 0px; +} + +.nr-dashboard-form input[type="checkbox"] { + margin-top: 0px; + margin-bottom: 0px; +} + +.nr-dashboard-form md-input-container .md-errors-spacer { + float: right; + min-height: 0px; + min-width: 1px; +} + +.nr-dashboard-form-button { + width: 50%; + margin-bottom: 0px; + margin-top: 0px; + min-height: 28px; +} + +.nr-dashboard-form form md-input-container md-checkbox .md-label { + position: unset; + top: unset; +} +.masonry-container { + position: relative; + width: 100%; + margin: 0 auto; +} + +.masonry-container > * { + position: absolute; + opacity: 0; +} + +.masonry-container > .visible { + opacity: 1; +} + +.nr-dashboard-cardpanel { + box-sizing: border-box; +} + +.nr-dashboard-cardpanel > p { + max-height: 32px; + min-height: 32px; + margin-left: 12px; + margin-top: 10px; + margin-bottom: 12px; + font-weight: 500; + font-size: larger; +} + +.nr-dashboard-cardcarat:focus { + outline: 0; +} + +.nr-dashboard-cardcarat { + float: right; + vertical-align: baseline; + margin-right: 12px; +} + +.nr-dashboard-cardcontainer { + position: relative; +} + +.nr-dashboard-cardcontainer > * { + margin: 0 !important; + position: absolute; + opacity: 0; +} + +.nr-dashboard-cardcontainer > .visible { + opacity: 1; +} diff --git a/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.less b/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.less new file mode 100644 index 0000000..c39ee8f --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/css/app.min.less @@ -0,0 +1,883 @@ +/* */ +/* Copyright 2016,2020 JS Foundation and other contributors, https://js.foundation/ */ +/* Copyright 2016 IBM Corp. */ +/* Copyright 2015 Andrei Tatar */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* */ + +@media(max-width: 959px) { + .md-sidenav-left, md-sidenav { + top: 48px !important; + z-index: 99; + } +} +@media (max-width: 959px) and (min-width: 0) and (orientation: portrait) { + md-toolbar { + min-height: 48px; + height: 48px; + max-height: 48px; + } +} +@media(min-width: 960px) { + .md-sidenav-left, md-sidenav { + top: 64px; + z-index: 99; + } +} +@media(max-width: 660px) { + md-sidenav, + md-sidenav.md-locked-open, + md-sidenav.md-closed.md-locked-open-add-active { + min-width: 64px !important; + width: auto; + max-width: 200px !important; + } +} +@media(min-width: 661px) { + md-sidenav, + md-sidenav.md-locked-open, + md-sidenav.md-closed.md-locked-open-add-active { + min-width: 64px !important; + width: auto; + max-width: 320px !important; + } +} +md-sidenav ng-md-icon { + padding-right: 4px; +} +md-sidenav i { + padding-right: 4px; +} +md-sidenav md-list-item .md-list-item-inner>p { + line-height: 20px; +} +md-list > md-list-item > md-icon > ui-icon > ng-md-icon { + vertical-align:unset !important; +} + +md-toast .md-toast-content { + height: auto; +} +md-toast .md-toast-error { + color: rgba(255, 64, 41, 0.84); + font-weight: 500; + font-size: large; +} +md-backdrop.md-sidenav-backdrop { + z-index: 80; +} +md-card { + box-shadow: none; +} + +.md-button { + min-width: 64px; +} +.md-tooltip { + background-color: #888 !important; + color: #fff !important; + border-radius: 3px; + opacity: 1 !important; +} +.md-tooltip.md-origin-bottom { + margin-top: -6px; + margin-left: -8px; +} + +.node-red-ui--notabs { + color: #888; + font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; + display: flex; + height: 100%; + width: 100%; + align-items: center; + justify-content: center; + opacity: 1; + animation-name: fadeInOpacity; + animation-iteration-count: 1; + animation-timing-function: ease-in; + animation-duration: 2.5s; +} + +.node-red-ui--loading { + color: #888; + font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; + display: flex; + height: 100%; + width: 100%; + align-items: center; + justify-content: center; +} + +.node-red-ui--inline-link { + width: 100%; + height: 100%; + position: absolute; +} +.node-red-ui--inline-link iframe { + width: 100%; + height: 100%; +} + +.material-icons { + vertical-align: middle; +} + +.ie9 img[src$=".svg"] { + width: 100%; +} + +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + img[src$=".svg"] { + width: 100%; + } +} + +@keyframes fadeInOpacity { + 0% { + opacity: 0; + } + 30% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.flip-icon { + animation: flip-icon 0.3s linear both; +} + +@keyframes flip-icon { + 0% { + transform: rotateY(180deg); + } + 100% { + transform: rotateY(0deg); + } +} + +@supports (-ms-overflow-style: none) { + overflow: auto !important; +} + +/* + ALL COMPONENTS/CONTENT +*/ +@baseFont: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; +@baseColor: #fff; +@pageBackgroundColor: #eee; +@pageSidebarBackgroundColor: #eee; +@pageTitlebarBackgroundColor: #0094CE; +@groupBackgroundColor: #fff; +@groupTextColor: #00A4DE; +@groupBorderColor: #fff; +@widgetTextColor: #000; +@widgetBackgroundColor: #4FBAE4; +@widgetBorderColor: #fff; +@nrTheme: true; +@nrTemplateTheme: true; +@nrUnitHeight: 24px; +@wtc-light: boolean(luma(@widgetTextColor) > 50%); +@wbc-light: boolean(luma(@widgetBackgroundColor) > 50%); + +// define some CSS variables for user usage +:root { + --nr-dashboard-pageBackgroundColor: @pageBackgroundColor; + --nr-dashboard-pageTitlebarBackgroundColor: @pageTitlebarBackgroundColor; + --nr-dashboard-pageSidebarBackgroundColor: @pageSidebarBackgroundColor; + --nr-dashboard-groupTextColor: @groupTextColor; + --nr-dashboard-groupBackgroundColor: @groupBackgroundColor; + --nr-dashboard-groupBorderColor: @groupBorderColor; + --nr-dashboard-widgetTextColor: @widgetTextColor; + --nr-dashboard-widgetBackgroundColor: @widgetBackgroundColor; // deprecated - will be removed at some point + --nr-dashboard-widgetBorderColor: @widgetBorderColor; // deprecated - will be removed at some point + --nr-dashboard-widgetColor: @widgetBackgroundColor; + --nr-dashboard-widgetBgndColor: @widgetBorderColor; +} + +.nr-dashboard-disabled { + opacity: 0.4 !important; + pointer-events: none !important; +} + +& when (@nrTheme = false) { + .nr-menu-item-active div button { + border-right: 4px solid #888; + } +} + +& when (@nrTheme = true) { + +body.nr-dashboard-theme { + background-color: @pageBackgroundColor; + font-family: @baseFont; +} + +body.nr-dashboard-theme md-content { + background: transparent; + height: 100%; + & when (@nrTemplateTheme = true) { + color: @groupTextColor; + } +} + +// body.nr-dashboard-theme md-select-menu md-content { +// max-height: 80%; +// } + +body.nr-dashboard-theme md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child { + -webkit-transform: translateY(-28px) scale(.75); + transform: translateY(-28px) scale(.75); +} +body.nr-dashboard-theme md-input-container.md-input-focused:not(.md-input-has-value) md-select .md-select-value.md-select-placeholder { + color: @widgetTextColor; +} + +body.nr-dashboard-theme md-content md-card { + background-color: @widgetBorderColor; + color: @widgetTextColor; +} + +/* Some colour classes */ +body.nr-dashboard-theme .nr-dashboard-color { color: @groupTextColor; } +body.nr-dashboard-theme .nr-dashboard-error { color: #ff2929; } +body.nr-dashboard-theme .nr-dashboard-warning { color: #eaf42f; } +body.nr-dashboard-theme .nr-dashboard-ok { color: #49db3c; } +body.nr-dashboard-theme .nr-dashboard-dim { opacity: 0.5 !important; } + + +/* + DASHBOARD HEADER +*/ +body.nr-dashboard-theme md-toolbar { + background-color: @pageTitlebarBackgroundColor; + color: #fff; +} +body.nr-dashboard-theme md-toolbar .md-toolbar-tools { + color: #fff; + filter: invert(if(@wbc-light, 100%, 0%)); +} + +/* + DASHBOARD SIDEBAR +*/ +body.nr-dashboard-theme md-sidenav { + color: @groupTextColor; + background-color: @pageSidebarBackgroundColor; +} +body.nr-dashboard-theme md-sidenav md-list-item._md-button-wrap > div.md-button:first-child { + background-color: transparent; +} +body.nr-dashboard-theme md-sidenav div.md-list-item-inner { + color: @groupTextColor; + background-color: transparent; +} +a.md-no-style, button.md-no-style { + background-color: transparent; +} +.nr-menu-item-active div button { + border-right: 4px solid @groupTextColor; +} + + +/* + GROUP SPECIFIC +*/ +.nr-dashboard-theme ui-card-panel { + background-color: @groupBackgroundColor; + border: 1px solid @groupBorderColor; + & p.nr-dashboard-cardtitle { + color: @groupTextColor; + } +} + +/* + COMPONENT-SPECIFIC +*/ + +.nr-dashboard-theme .nr-dashboard-spacer { + opacity: 0; +} + +.md-button.md-default-theme.md-primary, .md-button.md-primary { + background-color: @widgetBackgroundColor !important; + color: white; +} +// .md-button.md-default-theme:not([disabled]):hover, .md-button:not([disabled]):hover { +// filter: grayscale(75%); +// } +// .nr-dashboard-theme .md-button.md-primary { +// color: lighten(@widgetBackgroundColor, 8); +// } +.nr-dashboard-theme .md-button[disabled] { + color: rgba(0,0,0,0.38); + cursor: default; +} + +/* Button */ +.nr-dashboard-theme .nr-dashboard-button .md-button { + background-color: @widgetBackgroundColor; + color: white; +} +.nr-dashboard-theme .nr-dashboard-button .md-button:hover { + background-color: lighten(@widgetBackgroundColor, 6); +} +.nr-dashboard-theme .nr-dashboard-template .md-button[disabled] { + color: #888; +} +.nr-dashboard-theme .nr-dashboard-button .md-button.md-primary { + color: white; + background-color: lighten(@widgetBackgroundColor, 4); +} +.nr-dashboard-theme .nr-dashboard-button .md-button.md-raised:not([disabled]).md-focused { + background-color: @widgetBackgroundColor; +} + +/* Date picker */ +.nr-dashboard-theme .nr-dashboard-date-picker md-input-container .md-input { + color: @widgetTextColor; + border-bottom-color: @widgetBackgroundColor; + font-family: inherit; +} +.nr-dashboard-theme .nr-dashboard-date-picker md-input-container .md-input::-webkit-input-placeholder { + color: @widgetTextColor; +} +.nr-dashboard-theme .nr-dashboard-date-picker .md-button.md-icon-button { + /* background-color: @widgetBackgroundColor; */ +} +.nr-dashboard-theme .nr-dashboard-date-picker .md-button.md-icon-button md-icon { + color: @widgetBackgroundColor; +} +.nr-dashboard-theme .nr-dashboard-date-picker .md-datepicker-triangle-button .md-datepicker-expand-triangle { + border-top-color: @widgetTextColor; +} + +.md-default-theme .md-calendar-day-header, .md-calendar-day-header { + color: contrast(@pageTitlebarBackgroundColor); + background-color: @pageTitlebarBackgroundColor; +} +.md-default-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator, .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator, .md-default-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator, .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator { + background: @widgetBackgroundColor; + color: contrast(@widgetBackgroundColor); + border-color: transparent; +} +.md-default-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator, .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator { + border: 1px solid @widgetBackgroundColor; +} +.md-datepicker-calendar-pane.md-pane-open { + width: 345px; + background-color: @groupBackgroundColor; +} + +/* Chart */ +.nr-dashboard-theme .nr-dashboard-chart-title { +} +.nr-dashboard-theme .nr-dashboard-chart-titlel { + font-size: larger; + font-weight: 500; +} + +/* Colour Picker */ +.nr-dashboard-theme .color-picker-panel { + background-color: @groupBackgroundColor; + border-color: @groupBorderColor; + box-shadow: 0 0 1px rgba(255,255,255,.5); +} +.nr-dashboard-theme .color-picker-input-wrapper > input { + color: @widgetTextColor; + background-color: @widgetBorderColor; + font-family: inherit; +} +.nr-dashboard-theme .color-picker-wrapper .color-picker-panel.color-picker-panel-round .color-picker-grid-wrapper .color-picker-row .color-picker-grid .color-picker-grid-inner { + background-color: @widgetBorderColor; +} + +/* Dropdown */ + +.nr-dashboard-theme .nr-dashboard-dropdown md-select .md-select-value, +.nr-dashboard-theme .nr-dashboard-dropdown md-select .md-select-value.md-select-placeholder { + color: @widgetTextColor; + border-color: @widgetTextColor; + border-bottom-width: 1px; + padding: 0px 2px; +} +.nr-dashboard-theme .nr-dashboard-dropdown .md-select-icon { + color: @widgetTextColor; +} +.nr-dashboard-theme .md-select-menu-container { + max-height: 85%; + overflow-y: auto; + border: 1px solid @pageTitlebarBackgroundColor; +} +.nr-dashboard-theme md-select-menu { + margin-left: -2px; + max-height: 85%; +} +.nr-dashboard-theme md-select-menu md-content { + padding: 0px; + max-height: 85%; +} +.nr-dashboard-theme md-select-menu, .nr-dashboard-theme md-select-menu md-option { + background-color: @groupBackgroundColor; + color: @widgetTextColor; +} +.nr-dashboard-theme md-select-menu md-option[selected] { + color: @groupTextColor !important; + background-color: @groupBackgroundColor !important; +} +.nr-dashboard-theme md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon { + background-color: lighten(@widgetBackgroundColor, 10) !important; + border-color: transparent !important; +} +.nr-dashboard-theme md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon { + border-color: @widgetBackgroundColor !important; +} +.nr-dashboard-theme md-select-menu.md-default-theme md-option:focus:not([disabled]):not([selected]), +md-select-menu md-option:focus:not([disabled]):not([selected]) { + background-color: @groupBackgroundColor; +} +.nr-dashboard-theme md-select-menu md-option:hover { + background-color: lighten(@widgetBackgroundColor, 4) !important; +} +.nr-dashboard-theme md-menu-content { + background-color: @groupBackgroundColor; + color: @widgetTextColor; +} +.nr-dashboard-theme md-menu-content md-menu-item { + background-color: @groupBackgroundColor; + color: @widgetTextColor; +} + + +/* Gauge */ +.nr-dashboard-theme .nr-dashboard-gauge {} +.nr-dashboard-theme .nr-dashboard-gauge text { + fill: @widgetTextColor; + margin: 8px; +} +.nr-dashboard-theme .nr-dashboard-gauge-title { + margin: 6px 0px 20px 0px; + z-index: 1; +} +.nr-dashboard-theme .nr-dashboard-gauge-titlel { + font-size: larger; + font-weight: 500; + z-index: 1; +} +.nr-dashboard-theme .nr-dashboard-gauge-titlem { + font-weight: 500; + margin: 2px 0px 14px 0px; + z-index: 1; +} +.nr-dashboard-theme .nr-dashboard-gauge-titles { + font-size: x-small; + margin-top: 2px; + height: 10px; + padding-bottom: 14px; + z-index: 1; +} + +/* Numeric */ +.nr-dashboard-theme .nr-dashboard-numeric .value { + background-color: @widgetBorderColor; + color: @widgetTextColor; +} + +/* Slider */ +.nr-dashboard-theme .nr-dashboard-slider {} +.nr-dashboard-theme .nr-dashboard-slider .md-track { + background-color: rgba(111, 111, 111, 0.5); +} +.nr-dashboard-theme .nr-dashboard-slider .md-track-fill { + background-color: @widgetBackgroundColor; +} +.nr-dashboard-theme .nr-dashboard-slider .md-thumb:after { + background-color: @widgetBackgroundColor; + border-color: @widgetBackgroundColor; +} +.nr-dashboard-theme .nr-dashboard-slider .md-focus-ring { + background-color: @widgetBackgroundColor; + transform: scale(.4); + opacity: 1; +} +.nr-dashboard-theme .nr-dashboard-slider .md-sign { + background-color: @widgetBackgroundColor; +} +.nr-dashboard-theme .nr-dashboard-slider .md-sign:after { + border-top-color: @widgetBackgroundColor !important; +} +.nr-dashboard-theme .nr-dashboard-slider .md-min[md-discrete] .md-sign { + background-color: @widgetBackgroundColor; +} +.nr-dashboard-theme .nr-dashboard-slider md-slider[md-discrete] .md-sign, +.nr-dashboard-theme .nr-dashboard-slider md-slider[md-discrete] .md-sign:after { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0) scale(1); + transform: translate3d(0, 0, 0) scale(1); +} +.nr-dashboard-theme .nr-dashboard-slider .md-sign:after { + border-top-color: @widgetBackgroundColor; +} +.nr-dashboard-theme md-slider.md-default-theme[md-vertical] .md-sign:after, .nr-dashboard-theme md-slider[md-vertical] .md-sign:after { + content: none;; +} +.nr-dashboard-theme .nr-dashboard-slider md-slider.md-default-theme.md-min[md-discrete] .md-thumb:after, md-slider.md-min[md-discrete] .md-thumb:after { + background-color: @widgetBackgroundColor; + border-color: transparent; +} +.nr-dashboard-theme .nr-dashboard-slider md-slider .md-track-ticks { + color: transparent; +} +.nr-dashboard-theme .nr-dashboard-slider md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring { + transform: scale(0.4); + animation: unset; +} +.nr-dashboard-theme .nr-dashboard-slider .md-thumb-text { + color: white; + filter: invert(if(@wbc-light, 100%, 0%)); +} + +/* Switch */ +.nr-dashboard-theme .nr-dashboard-switch {} +.nr-dashboard-theme .nr-dashboard-switch md-switch .md-bar { + background-color: rgba(111, 111, 111, 0.5); +} +.nr-dashboard-theme .nr-dashboard-switch md-switch.md-checked .md-bar { + background-color: rgba(red(@widgetBackgroundColor), green(@widgetBackgroundColor), blue(@widgetBackgroundColor), 0.5); +} +.nr-dashboard-theme .nr-dashboard-switch md-switch .md-thumb { + background-color: rgb(148, 148, 148); +} +.nr-dashboard-theme .nr-dashboard-switch md-switch.md-checked .md-thumb { + background-color: rgba(red(@widgetBackgroundColor), green(@widgetBackgroundColor), blue(@widgetBackgroundColor), 1); +} + +/* Template */ +& when (@nrTemplateTheme = true) { + md-list { + padding: unset; + } + md-list-item[disabled] { + color: #888; + // text-decoration: line-through; + } + md-list-item { + min-height: @nrUnitHeight * 2; + height: @nrUnitHeight * 2; + } + md-list-item._md-button-wrap>div.md-button:first-child { + background-color: @widgetBorderColor; + height: inherit; + padding: 0 6px; + } + md-list-item.md-2-line { + height: @nrUnitHeight * 2; + min-height: @nrUnitHeight * 2; + } + md-list-item.md-3-line { + height: @nrUnitHeight * 3; + min-height: @nrUnitHeight * 3; + } + md-list-item .md-list-item-inner { + background: @widgetBorderColor; + //color: @widgetTextColor; + padding-left: 8px; + width: 100%; + height: 100%; + } + + md-progress-linear { + padding-top: 4px !important; + } + md-progress-linear .md-container { + margin-top: @nrUnitHeight / 2; + background-color: @pageBackgroundColor; + } + md-progress-linear .md-container .md-bar { + background-color: lighten(@widgetBackgroundColor, 5); + } + + md-checkbox { + min-height: @nrUnitHeight * 2; + margin-left: 6px; + margin-bottom: 0px; + width: 100%; + } + md-checkbox .md-icon { + border-color: @widgetBackgroundColor !important; + } + md-checkbox[disabled] .md-icon { + border-color: #888 !important; + } + md-checkbox.md-checked .md-icon { + background-color: lighten(@widgetBackgroundColor, 5); + border-color: transparent !important; + } + md-checkbox .md-label { + position: absolute; + top: 32%; + } + md-checkbox[disabled] .md-label { + color: #888; + } + md-checkbox:last-of-type { + margin-left: 6px; + } + + .nr-dashboard-theme .nr-dashboard-template { + // padding: 0; + background-color: @widgetBorderColor; + } + .nr-dashboard-theme .nr-dashboard-template md-switch .md-thumb { + background-color: rgb(148, 148, 148); + } + .nr-dashboard-theme .nr-dashboard-template md-switch .md-bar { + background-color: rgba(111, 111, 111, 0.5); + } + .nr-dashboard-theme .nr-dashboard-template md-switch.md-checked:not([disabled]) .md-thumb { + background-color: lighten(@widgetBackgroundColor, 5); + } + .nr-dashboard-theme .nr-dashboard-template md-switch.md-checked:not([disabled]) .md-bar { + background-color: rgba(red(@widgetBackgroundColor), green(@widgetBackgroundColor), blue(@widgetBackgroundColor), 0.5); + } + + md-radio-button { + min-height: @nrUnitHeight * 2; + margin-left: 6px; + margin-bottom: 0px; + } + md-radio-button .md-off, md-radio-button .md-on { + border-color: @widgetBackgroundColor !important; + } + md-radio-button[disabled] .md-off, md-radio-button[disabled] .md-on { + border-color: #888 !important; + } + md-radio-button.md-checked .md-on { + background-color: @widgetBackgroundColor !important; + } + md-radio-button .md-label { + position: absolute; + top: 32%; + } + md-radio-button[disabled] .md-label { + color: #888; + } + md-divider { + border-color: @widgetBackgroundColor !important; + } + .nr-dashboard-theme .nr-dashboard-template path { + fill: @widgetBackgroundColor; + } + .nr-dashboard-template { + padding: (@nrUnitHeight / 8) 6px; + p, h1, h2, h3, h4 { + color: @widgetTextColor !important; + background-color : @widgetBorderColor !important; + } + } + .nr-dashboard-theme .nr-dashboard-template .md-button .md-no-style { + background: initial !important; + color: initial !important; + } + .nr-dashboard-theme .nr-dashboard-template .md-button[disabled] { + color: #ccc; + } + .nr-dashboard-theme .nr-dashboard-template .md-button.md-primary:not([disabled]) { + color: @widgetTextColor; + background-color: lighten(@widgetBackgroundColor, 5); + } + .nr-dashboard-theme .nr-dashboard-template .md-button .ng-scope { + color: unset; + } + .nr-dashboard-template .md-button { + color: white; + } + .nr-dashboard-theme .nr-dashboard-template .md-button:not(:first-of-type) { + margin-top: @nrUnitHeight * 3 / 4; + } + .nr-dashboard-theme .nr-dashboard-template .md-button { + background-color: @widgetBackgroundColor; + margin: 0; + // padding: 0px 12px; + min-height: @nrUnitHeight * 3 / 2; + min-width: unset; + line-height: unset; + &.md-fab.md-mini { + padding: unset; + } + } + .nr-dashboard-theme .nr-dashboard-template .md-button:not([disabled]):hover { + background-color: lighten(@widgetBackgroundColor, 4); + } + .nr-dashboard-theme .nr-dashboard-template .md-button.md-primary:not([disabled]):hover { + background-color: lighten(@widgetBackgroundColor, 4); + } + .nr-dashboard-theme .nr-dashboard-template .md-button.md-primary.md-raised:not([disabled]) { + background-color: lighten(@widgetBackgroundColor, 2); + } + .nr-dashboard-theme .nr-dashboard-template .md-button.md-primary.md-raised:not([disabled]):hover { + background-color: lighten(@widgetBackgroundColor, 4); + } + + // .md-button:disabled { + // background-color: @widgetBackgroundColor; + // } + + .nr-dashboard-theme .nr-dashboard-template { + ::-webkit-scrollbar { + height: 12px; + width: 12px; + } + ::-webkit-scrollbar-thumb { + background-color: @baseColor; + -webkit-border-radius: 1ex; + -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75); + } + ::-webkit-scrollbar-track { + background-color: @pageBackgroundColor; + } + } +} + +/* Text-Input */ +.nr-dashboard-theme .nr-dashboard-textinput {} +.nr-dashboard-theme .nr-dashboard-textinput label { + color: @widgetTextColor; +} +.nr-dashboard-theme .nr-dashboard-textinput md-input-container.md-input-has-value label { + color: @widgetTextColor; +} +.nr-dashboard-theme .nr-dashboard-textinput md-input-container.md-input-focused label { + color: @groupTextColor; +} +.nr-dashboard-theme .nr-dashboard-textinput md-input-container.md-input-focused input { + border-color: @groupTextColor; + font-family: inherit; +} +.nr-dashboard-theme .nr-dashboard-textinput md-input-container .md-input:invalid { + color: #DA5252; +} +.nr-dashboard-theme .nr-dashboard-textinput input { + border-color: @widgetTextColor; + color: @widgetTextColor; + font-family: inherit; +} +.nr-dashboard-theme input[type="time"]::-webkit-calendar-picker-indicator { + filter: invert(if(@wtc-light, 100%, 0%)); +} +.nr-dashboard-theme input[type="date"]::-webkit-calendar-picker-indicator { + filter: invert(if(@wtc-light, 100%, 0%)); +} + +/* Text */ +.nr-dashboard-theme .nr-dashboard-text {} + +/* Dialog */ +.nr-dashboard-theme md-dialog { + color: @widgetTextColor; + background-color: @groupBackgroundColor; + border: 3px solid @groupBorderColor; +} +.nr-dashboard-theme .md-dialog-content { + padding: 24px; +} +.nr-dashboard-theme md-input-container.md-default-theme .md-input, md-input-container .md-input { + color: @widgetTextColor; + border-color: @pageTitlebarBackgroundColor !important; +} + + +/* Form */ +.nr-dashboard-theme .nr-dashboard-form md-input-container { + display: block; +} +.nr-dashboard-theme .nr-dashboard-form-button { + background-color: @widgetBackgroundColor; + color: white; +} +.nr-dashboard-theme .nr-dashboard-form-button:hover { + background-color: lighten(@widgetBackgroundColor, 10) !important; +} +.nr-dashboard-theme .nr-dashboard-form-button:focus { + background-color: lighten(@widgetBackgroundColor, 10) !important; +} +.nr-dashboard-theme .nr-dashboard-form { + color: @widgetTextColor; +} +.nr-dashboard-theme .nr-dashboard-form form md-input-container input { + border-color: @widgetTextColor; + color: @widgetTextColor; + font-family: inherit; +} +.nr-dashboard-theme .nr-dashboard-form form md-input-container label { + color: @widgetTextColor;; +} +.nr-dashboard-theme .nr-dashboard-form form md-input-container.md-input-has-value:not(.md-input-invalid) label { + color: @widgetTextColor;; +} +.nr-dashboard-theme .nr-dashboard-form form md-input-container:not(.md-input-invalid).md-input-focused input { + border-color: @groupTextColor ; +} +.nr-dashboard-theme .nr-dashboard-form form md-input-container:not(.md-input-invalid).md-input-focused label { + color: @groupTextColor ; +} +.nr-dashboard-theme .nr-dashboard-form form .md-input-invalid input { + border-color: #d00 !important; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-input-invalid label { + color: #d00 !important; +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-checkbox.md-checked .md-icon { + background-color: lighten(@widgetBackgroundColor, 10); +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-checkbox .md-icon { + border-color: @widgetTextColor; +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-switch .md-bar { + background-color: rgba(111, 111, 111, 0.5); +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-switch .md-thumb { + background-color: rgb(148, 148, 148); +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-switch.md-checked .md-bar { + background-color: lighten(@widgetBackgroundColor, 10); +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container md-switch.md-checked .md-thumb { + background-color: @widgetBackgroundColor; +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-datepicker { + background-color: inherit; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-datepicker-calendar-icon { + fill: @groupTextColor; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-datepicker-open .md-datepicker-calendar-icon { + fill: @widgetBackgroundColor ; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-datepicker-input { + color: @widgetTextColor; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-datepicker-input-container { + border-color: @widgetTextColor;; +} +.nr-dashboard-theme md-content .nr-dashboard-form form .md-datepicker-expand-triangle{ + border-top-color: @widgetBackgroundColor ; +} +.nr-dashboard-theme md-content .nr-dashboard-form form md-input-container .md-input { + color: @widgetTextColor; +} + +} diff --git a/data_node_red/node_modules/node-red-dashboard/dist/css/gridstack-extra.min.css b/data_node_red/node_modules/node-red-dashboard/dist/css/gridstack-extra.min.css new file mode 100644 index 0000000..aa291e0 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/css/gridstack-extra.min.css @@ -0,0 +1,6 @@ +/*! + * gridstack 0.6.3-dev extra CSS for [2-11] columns (non default) + * https://gridstackjs.com/ + * (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov + * gridstack.js may be freely distributed under the MIT license. +*/.grid-stack.grid-stack-2>.grid-stack-item{min-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='1']{width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='1']{left:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='1']{min-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='1']{max-width:50%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-width='2']{width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-x='2']{left:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-min-width='2']{min-width:100%}.grid-stack.grid-stack-2>.grid-stack-item[data-gs-max-width='2']{max-width:100%}.grid-stack.grid-stack-3>.grid-stack-item{min-width:33.33333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='1']{width:33.33333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='1']{left:33.33333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='1']{min-width:33.33333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='1']{max-width:33.33333%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='2']{width:66.66667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='2']{left:66.66667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='2']{min-width:66.66667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='2']{max-width:66.66667%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-width='3']{width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-x='3']{left:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-min-width='3']{min-width:100%}.grid-stack.grid-stack-3>.grid-stack-item[data-gs-max-width='3']{max-width:100%}.grid-stack.grid-stack-4>.grid-stack-item{min-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='1']{width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='1']{left:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='1']{min-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='1']{max-width:25%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='2']{width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='2']{left:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='2']{min-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='2']{max-width:50%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='3']{width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='3']{left:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='3']{min-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='3']{max-width:75%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-width='4']{width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-x='4']{left:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-min-width='4']{min-width:100%}.grid-stack.grid-stack-4>.grid-stack-item[data-gs-max-width='4']{max-width:100%}.grid-stack.grid-stack-5>.grid-stack-item{min-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='1']{width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='1']{left:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='1']{min-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='1']{max-width:20%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='2']{width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='2']{left:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='2']{min-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='2']{max-width:40%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='3']{width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='3']{left:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='3']{min-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='3']{max-width:60%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='4']{width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='4']{left:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='4']{min-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='4']{max-width:80%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-width='5']{width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-x='5']{left:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-min-width='5']{min-width:100%}.grid-stack.grid-stack-5>.grid-stack-item[data-gs-max-width='5']{max-width:100%}.grid-stack.grid-stack-6>.grid-stack-item{min-width:16.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='1']{width:16.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='1']{left:16.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='1']{min-width:16.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='1']{max-width:16.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='2']{width:33.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='2']{left:33.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='2']{min-width:33.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='2']{max-width:33.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='3']{width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='3']{left:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='3']{min-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='3']{max-width:50%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='4']{width:66.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='4']{left:66.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='4']{min-width:66.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='4']{max-width:66.66667%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='5']{width:83.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='5']{left:83.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='5']{min-width:83.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='5']{max-width:83.33333%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-width='6']{width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-x='6']{left:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-min-width='6']{min-width:100%}.grid-stack.grid-stack-6>.grid-stack-item[data-gs-max-width='6']{max-width:100%}.grid-stack.grid-stack-7>.grid-stack-item{min-width:14.28571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='1']{width:14.28571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='1']{left:14.28571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='1']{min-width:14.28571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='1']{max-width:14.28571%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='2']{width:28.57143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='2']{left:28.57143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='2']{min-width:28.57143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='2']{max-width:28.57143%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='3']{width:42.85714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='3']{left:42.85714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='3']{min-width:42.85714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='3']{max-width:42.85714%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='4']{width:57.14286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='4']{left:57.14286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='4']{min-width:57.14286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='4']{max-width:57.14286%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='5']{width:71.42857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='5']{left:71.42857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='5']{min-width:71.42857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='5']{max-width:71.42857%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='6']{width:85.71429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='6']{left:85.71429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='6']{min-width:85.71429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='6']{max-width:85.71429%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-width='7']{width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-x='7']{left:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-min-width='7']{min-width:100%}.grid-stack.grid-stack-7>.grid-stack-item[data-gs-max-width='7']{max-width:100%}.grid-stack.grid-stack-8>.grid-stack-item{min-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='1']{width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='1']{left:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='1']{min-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='1']{max-width:12.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='2']{width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='2']{left:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='2']{min-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='2']{max-width:25%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='3']{width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='3']{left:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='3']{min-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='3']{max-width:37.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='4']{width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='4']{left:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='4']{min-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='4']{max-width:50%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='5']{width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='5']{left:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='5']{min-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='5']{max-width:62.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='6']{width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='6']{left:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='6']{min-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='6']{max-width:75%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='7']{width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='7']{left:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='7']{min-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='7']{max-width:87.5%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-width='8']{width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-x='8']{left:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-min-width='8']{min-width:100%}.grid-stack.grid-stack-8>.grid-stack-item[data-gs-max-width='8']{max-width:100%}.grid-stack.grid-stack-9>.grid-stack-item{min-width:11.11111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='1']{width:11.11111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='1']{left:11.11111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='1']{min-width:11.11111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='1']{max-width:11.11111%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='2']{width:22.22222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='2']{left:22.22222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='2']{min-width:22.22222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='2']{max-width:22.22222%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='3']{width:33.33333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='3']{left:33.33333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='3']{min-width:33.33333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='3']{max-width:33.33333%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='4']{width:44.44444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='4']{left:44.44444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='4']{min-width:44.44444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='4']{max-width:44.44444%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='5']{width:55.55556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='5']{left:55.55556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='5']{min-width:55.55556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='5']{max-width:55.55556%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='6']{width:66.66667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='6']{left:66.66667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='6']{min-width:66.66667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='6']{max-width:66.66667%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='7']{width:77.77778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='7']{left:77.77778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='7']{min-width:77.77778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='7']{max-width:77.77778%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='8']{width:88.88889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='8']{left:88.88889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='8']{min-width:88.88889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='8']{max-width:88.88889%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-width='9']{width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-x='9']{left:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-min-width='9']{min-width:100%}.grid-stack.grid-stack-9>.grid-stack-item[data-gs-max-width='9']{max-width:100%}.grid-stack.grid-stack-10>.grid-stack-item{min-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='1']{width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='1']{left:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='1']{min-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='1']{max-width:10%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='2']{width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='2']{left:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='2']{min-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='2']{max-width:20%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='3']{width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='3']{left:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='3']{min-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='3']{max-width:30%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='4']{width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='4']{left:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='4']{min-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='4']{max-width:40%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='5']{width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='5']{left:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='5']{min-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='5']{max-width:50%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='6']{width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='6']{left:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='6']{min-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='6']{max-width:60%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='7']{width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='7']{left:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='7']{min-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='7']{max-width:70%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='8']{width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='8']{left:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='8']{min-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='8']{max-width:80%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='9']{width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='9']{left:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='9']{min-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='9']{max-width:90%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-width='10']{width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-x='10']{left:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-min-width='10']{min-width:100%}.grid-stack.grid-stack-10>.grid-stack-item[data-gs-max-width='10']{max-width:100%}.grid-stack.grid-stack-11>.grid-stack-item{min-width:9.09091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='1']{width:9.09091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='1']{left:9.09091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='1']{min-width:9.09091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='1']{max-width:9.09091%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='2']{width:18.18182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='2']{left:18.18182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='2']{min-width:18.18182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='2']{max-width:18.18182%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='3']{width:27.27273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='3']{left:27.27273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='3']{min-width:27.27273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='3']{max-width:27.27273%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='4']{width:36.36364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='4']{left:36.36364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='4']{min-width:36.36364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='4']{max-width:36.36364%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='5']{width:45.45455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='5']{left:45.45455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='5']{min-width:45.45455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='5']{max-width:45.45455%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='6']{width:54.54545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='6']{left:54.54545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='6']{min-width:54.54545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='6']{max-width:54.54545%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='7']{width:63.63636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='7']{left:63.63636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='7']{min-width:63.63636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='7']{max-width:63.63636%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='8']{width:72.72727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='8']{left:72.72727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='8']{min-width:72.72727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='8']{max-width:72.72727%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='9']{width:81.81818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='9']{left:81.81818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='9']{min-width:81.81818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='9']{max-width:81.81818%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='10']{width:90.90909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='10']{left:90.90909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='10']{min-width:90.90909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='10']{max-width:90.90909%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-width='11']{width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-x='11']{left:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-min-width='11']{min-width:100%}.grid-stack.grid-stack-11>.grid-stack-item[data-gs-max-width='11']{max-width:100%}.grid-stack.grid-stack-12>.grid-stack-item{min-width:8.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='1']{width:8.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='1']{left:8.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='1']{min-width:8.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='1']{max-width:8.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='2']{width:16.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='2']{left:16.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='2']{min-width:16.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='2']{max-width:16.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='3']{width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='3']{left:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='3']{min-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='3']{max-width:25%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='4']{width:33.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='4']{left:33.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='4']{min-width:33.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='4']{max-width:33.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='5']{width:41.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='5']{left:41.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='5']{min-width:41.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='5']{max-width:41.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='6']{width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='6']{left:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='6']{min-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='6']{max-width:50%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='7']{width:58.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='7']{left:58.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='7']{min-width:58.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='7']{max-width:58.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='8']{width:66.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='8']{left:66.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='8']{min-width:66.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='8']{max-width:66.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='9']{width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='9']{left:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='9']{min-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='9']{max-width:75%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='10']{width:83.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='10']{left:83.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='10']{min-width:83.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='10']{max-width:83.33333%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='11']{width:91.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='11']{left:91.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='11']{min-width:91.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='11']{max-width:91.66667%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-width='12']{width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-x='12']{left:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-min-width='12']{min-width:100%}.grid-stack.grid-stack-12>.grid-stack-item[data-gs-max-width='12']{max-width:100%}.grid-stack.grid-stack-13>.grid-stack-item{min-width:7.69231%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='1']{width:7.69231%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='1']{left:7.69231%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='1']{min-width:7.69231%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='1']{max-width:7.69231%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='2']{width:15.38462%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='2']{left:15.38462%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='2']{min-width:15.38462%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='2']{max-width:15.38462%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='3']{width:23.07692%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='3']{left:23.07692%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='3']{min-width:23.07692%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='3']{max-width:23.07692%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='4']{width:30.76923%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='4']{left:30.76923%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='4']{min-width:30.76923%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='4']{max-width:30.76923%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='5']{width:38.46154%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='5']{left:38.46154%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='5']{min-width:38.46154%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='5']{max-width:38.46154%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='6']{width:46.15385%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='6']{left:46.15385%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='6']{min-width:46.15385%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='6']{max-width:46.15385%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='7']{width:53.84615%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='7']{left:53.84615%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='7']{min-width:53.84615%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='7']{max-width:53.84615%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='8']{width:61.53846%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='8']{left:61.53846%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='8']{min-width:61.53846%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='8']{max-width:61.53846%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='9']{width:69.23077%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='9']{left:69.23077%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='9']{min-width:69.23077%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='9']{max-width:69.23077%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='10']{width:76.92308%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='10']{left:76.92308%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='10']{min-width:76.92308%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='10']{max-width:76.92308%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='11']{width:84.61538%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='11']{left:84.61538%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='11']{min-width:84.61538%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='11']{max-width:84.61538%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='12']{width:92.30769%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='12']{left:92.30769%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='12']{min-width:92.30769%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='12']{max-width:92.30769%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-width='13']{width:100%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-x='13']{left:100%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-min-width='13']{min-width:100%}.grid-stack.grid-stack-13>.grid-stack-item[data-gs-max-width='13']{max-width:100%}.grid-stack.grid-stack-14>.grid-stack-item{min-width:7.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='1']{width:7.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='1']{left:7.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='1']{min-width:7.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='1']{max-width:7.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='2']{width:14.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='2']{left:14.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='2']{min-width:14.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='2']{max-width:14.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='3']{width:21.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='3']{left:21.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='3']{min-width:21.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='3']{max-width:21.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='4']{width:28.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='4']{left:28.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='4']{min-width:28.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='4']{max-width:28.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='5']{width:35.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='5']{left:35.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='5']{min-width:35.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='5']{max-width:35.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='6']{width:42.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='6']{left:42.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='6']{min-width:42.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='6']{max-width:42.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='7']{width:50%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='7']{left:50%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='7']{min-width:50%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='7']{max-width:50%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='8']{width:57.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='8']{left:57.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='8']{min-width:57.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='8']{max-width:57.14286%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='9']{width:64.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='9']{left:64.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='9']{min-width:64.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='9']{max-width:64.28571%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='10']{width:71.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='10']{left:71.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='10']{min-width:71.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='10']{max-width:71.42857%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='11']{width:78.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='11']{left:78.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='11']{min-width:78.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='11']{max-width:78.57143%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='12']{width:85.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='12']{left:85.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='12']{min-width:85.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='12']{max-width:85.71429%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='13']{width:92.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='13']{left:92.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='13']{min-width:92.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='13']{max-width:92.85714%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-width='14']{width:100%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-x='14']{left:100%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-min-width='14']{min-width:100%}.grid-stack.grid-stack-14>.grid-stack-item[data-gs-max-width='14']{max-width:100%}.grid-stack.grid-stack-15>.grid-stack-item{min-width:6.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='1']{width:6.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='1']{left:6.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='1']{min-width:6.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='1']{max-width:6.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='2']{width:13.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='2']{left:13.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='2']{min-width:13.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='2']{max-width:13.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='3']{width:20%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='3']{left:20%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='3']{min-width:20%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='3']{max-width:20%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='4']{width:26.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='4']{left:26.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='4']{min-width:26.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='4']{max-width:26.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='5']{width:33.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='5']{left:33.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='5']{min-width:33.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='5']{max-width:33.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='6']{width:40%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='6']{left:40%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='6']{min-width:40%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='6']{max-width:40%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='7']{width:46.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='7']{left:46.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='7']{min-width:46.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='7']{max-width:46.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='8']{width:53.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='8']{left:53.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='8']{min-width:53.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='8']{max-width:53.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='9']{width:60%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='9']{left:60%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='9']{min-width:60%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='9']{max-width:60%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='10']{width:66.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='10']{left:66.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='10']{min-width:66.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='10']{max-width:66.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='11']{width:73.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='11']{left:73.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='11']{min-width:73.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='11']{max-width:73.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='12']{width:80%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='12']{left:80%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='12']{min-width:80%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='12']{max-width:80%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='13']{width:86.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='13']{left:86.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='13']{min-width:86.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='13']{max-width:86.66667%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='14']{width:93.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='14']{left:93.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='14']{min-width:93.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='14']{max-width:93.33333%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-width='15']{width:100%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-x='15']{left:100%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-min-width='15']{min-width:100%}.grid-stack.grid-stack-15>.grid-stack-item[data-gs-max-width='15']{max-width:100%}.grid-stack.grid-stack-16>.grid-stack-item{min-width:6.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='1']{width:6.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='1']{left:6.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='1']{min-width:6.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='1']{max-width:6.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='2']{width:12.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='2']{left:12.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='2']{min-width:12.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='2']{max-width:12.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='3']{width:18.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='3']{left:18.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='3']{min-width:18.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='3']{max-width:18.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='4']{width:25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='4']{left:25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='4']{min-width:25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='4']{max-width:25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='5']{width:31.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='5']{left:31.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='5']{min-width:31.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='5']{max-width:31.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='6']{width:37.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='6']{left:37.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='6']{min-width:37.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='6']{max-width:37.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='7']{width:43.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='7']{left:43.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='7']{min-width:43.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='7']{max-width:43.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='8']{width:50%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='8']{left:50%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='8']{min-width:50%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='8']{max-width:50%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='9']{width:56.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='9']{left:56.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='9']{min-width:56.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='9']{max-width:56.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='10']{width:62.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='10']{left:62.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='10']{min-width:62.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='10']{max-width:62.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='11']{width:68.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='11']{left:68.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='11']{min-width:68.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='11']{max-width:68.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='12']{width:75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='12']{left:75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='12']{min-width:75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='12']{max-width:75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='13']{width:81.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='13']{left:81.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='13']{min-width:81.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='13']{max-width:81.25%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='14']{width:87.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='14']{left:87.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='14']{min-width:87.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='14']{max-width:87.5%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='15']{width:93.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='15']{left:93.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='15']{min-width:93.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='15']{max-width:93.75%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-width='16']{width:100%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-x='16']{left:100%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-min-width='16']{min-width:100%}.grid-stack.grid-stack-16>.grid-stack-item[data-gs-max-width='16']{max-width:100%}.grid-stack.grid-stack-17>.grid-stack-item{min-width:5.88235%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='1']{width:5.88235%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='1']{left:5.88235%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='1']{min-width:5.88235%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='1']{max-width:5.88235%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='2']{width:11.76471%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='2']{left:11.76471%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='2']{min-width:11.76471%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='2']{max-width:11.76471%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='3']{width:17.64706%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='3']{left:17.64706%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='3']{min-width:17.64706%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='3']{max-width:17.64706%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='4']{width:23.52941%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='4']{left:23.52941%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='4']{min-width:23.52941%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='4']{max-width:23.52941%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='5']{width:29.41176%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='5']{left:29.41176%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='5']{min-width:29.41176%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='5']{max-width:29.41176%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='6']{width:35.29412%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='6']{left:35.29412%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='6']{min-width:35.29412%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='6']{max-width:35.29412%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='7']{width:41.17647%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='7']{left:41.17647%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='7']{min-width:41.17647%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='7']{max-width:41.17647%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='8']{width:47.05882%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='8']{left:47.05882%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='8']{min-width:47.05882%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='8']{max-width:47.05882%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='9']{width:52.94118%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='9']{left:52.94118%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='9']{min-width:52.94118%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='9']{max-width:52.94118%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='10']{width:58.82353%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='10']{left:58.82353%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='10']{min-width:58.82353%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='10']{max-width:58.82353%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='11']{width:64.70588%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='11']{left:64.70588%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='11']{min-width:64.70588%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='11']{max-width:64.70588%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='12']{width:70.58824%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='12']{left:70.58824%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='12']{min-width:70.58824%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='12']{max-width:70.58824%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='13']{width:76.47059%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='13']{left:76.47059%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='13']{min-width:76.47059%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='13']{max-width:76.47059%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='14']{width:82.35294%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='14']{left:82.35294%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='14']{min-width:82.35294%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='14']{max-width:82.35294%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='15']{width:88.23529%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='15']{left:88.23529%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='15']{min-width:88.23529%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='15']{max-width:88.23529%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='16']{width:94.11765%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='16']{left:94.11765%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='16']{min-width:94.11765%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='16']{max-width:94.11765%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-width='17']{width:100%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-x='17']{left:100%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-min-width='17']{min-width:100%}.grid-stack.grid-stack-17>.grid-stack-item[data-gs-max-width='17']{max-width:100%}.grid-stack.grid-stack-18>.grid-stack-item{min-width:5.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='1']{width:5.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='1']{left:5.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='1']{min-width:5.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='1']{max-width:5.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='2']{width:11.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='2']{left:11.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='2']{min-width:11.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='2']{max-width:11.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='3']{width:16.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='3']{left:16.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='3']{min-width:16.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='3']{max-width:16.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='4']{width:22.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='4']{left:22.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='4']{min-width:22.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='4']{max-width:22.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='5']{width:27.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='5']{left:27.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='5']{min-width:27.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='5']{max-width:27.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='6']{width:33.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='6']{left:33.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='6']{min-width:33.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='6']{max-width:33.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='7']{width:38.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='7']{left:38.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='7']{min-width:38.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='7']{max-width:38.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='8']{width:44.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='8']{left:44.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='8']{min-width:44.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='8']{max-width:44.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='9']{width:50%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='9']{left:50%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='9']{min-width:50%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='9']{max-width:50%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='10']{width:55.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='10']{left:55.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='10']{min-width:55.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='10']{max-width:55.55556%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='11']{width:61.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='11']{left:61.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='11']{min-width:61.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='11']{max-width:61.11111%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='12']{width:66.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='12']{left:66.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='12']{min-width:66.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='12']{max-width:66.66667%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='13']{width:72.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='13']{left:72.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='13']{min-width:72.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='13']{max-width:72.22222%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='14']{width:77.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='14']{left:77.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='14']{min-width:77.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='14']{max-width:77.77778%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='15']{width:83.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='15']{left:83.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='15']{min-width:83.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='15']{max-width:83.33333%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='16']{width:88.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='16']{left:88.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='16']{min-width:88.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='16']{max-width:88.88889%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='17']{width:94.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='17']{left:94.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='17']{min-width:94.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='17']{max-width:94.44444%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-width='18']{width:100%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-x='18']{left:100%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-min-width='18']{min-width:100%}.grid-stack.grid-stack-18>.grid-stack-item[data-gs-max-width='18']{max-width:100%}.grid-stack.grid-stack-19>.grid-stack-item{min-width:5.26316%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='1']{width:5.26316%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='1']{left:5.26316%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='1']{min-width:5.26316%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='1']{max-width:5.26316%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='2']{width:10.52632%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='2']{left:10.52632%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='2']{min-width:10.52632%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='2']{max-width:10.52632%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='3']{width:15.78947%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='3']{left:15.78947%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='3']{min-width:15.78947%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='3']{max-width:15.78947%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='4']{width:21.05263%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='4']{left:21.05263%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='4']{min-width:21.05263%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='4']{max-width:21.05263%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='5']{width:26.31579%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='5']{left:26.31579%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='5']{min-width:26.31579%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='5']{max-width:26.31579%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='6']{width:31.57895%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='6']{left:31.57895%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='6']{min-width:31.57895%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='6']{max-width:31.57895%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='7']{width:36.84211%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='7']{left:36.84211%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='7']{min-width:36.84211%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='7']{max-width:36.84211%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='8']{width:42.10526%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='8']{left:42.10526%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='8']{min-width:42.10526%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='8']{max-width:42.10526%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='9']{width:47.36842%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='9']{left:47.36842%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='9']{min-width:47.36842%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='9']{max-width:47.36842%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='10']{width:52.63158%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='10']{left:52.63158%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='10']{min-width:52.63158%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='10']{max-width:52.63158%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='11']{width:57.89474%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='11']{left:57.89474%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='11']{min-width:57.89474%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='11']{max-width:57.89474%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='12']{width:63.15789%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='12']{left:63.15789%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='12']{min-width:63.15789%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='12']{max-width:63.15789%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='13']{width:68.42105%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='13']{left:68.42105%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='13']{min-width:68.42105%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='13']{max-width:68.42105%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='14']{width:73.68421%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='14']{left:73.68421%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='14']{min-width:73.68421%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='14']{max-width:73.68421%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='15']{width:78.94737%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='15']{left:78.94737%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='15']{min-width:78.94737%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='15']{max-width:78.94737%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='16']{width:84.21053%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='16']{left:84.21053%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='16']{min-width:84.21053%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='16']{max-width:84.21053%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='17']{width:89.47368%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='17']{left:89.47368%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='17']{min-width:89.47368%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='17']{max-width:89.47368%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='18']{width:94.73684%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='18']{left:94.73684%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='18']{min-width:94.73684%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='18']{max-width:94.73684%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-width='19']{width:100%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-x='19']{left:100%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-min-width='19']{min-width:100%}.grid-stack.grid-stack-19>.grid-stack-item[data-gs-max-width='19']{max-width:100%}.grid-stack.grid-stack-20>.grid-stack-item{min-width:5%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='1']{width:5%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='1']{left:5%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='1']{min-width:5%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='1']{max-width:5%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='2']{width:10%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='2']{left:10%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='2']{min-width:10%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='2']{max-width:10%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='3']{width:15%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='3']{left:15%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='3']{min-width:15%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='3']{max-width:15%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='4']{width:20%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='4']{left:20%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='4']{min-width:20%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='4']{max-width:20%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='5']{width:25%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='5']{left:25%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='5']{min-width:25%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='5']{max-width:25%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='6']{width:30%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='6']{left:30%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='6']{min-width:30%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='6']{max-width:30%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='7']{width:35%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='7']{left:35%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='7']{min-width:35%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='7']{max-width:35%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='8']{width:40%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='8']{left:40%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='8']{min-width:40%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='8']{max-width:40%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='9']{width:45%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='9']{left:45%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='9']{min-width:45%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='9']{max-width:45%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='10']{width:50%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='10']{left:50%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='10']{min-width:50%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='10']{max-width:50%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='11']{width:55%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='11']{left:55%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='11']{min-width:55%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='11']{max-width:55%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='12']{width:60%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='12']{left:60%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='12']{min-width:60%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='12']{max-width:60%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='13']{width:65%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='13']{left:65%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='13']{min-width:65%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='13']{max-width:65%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='14']{width:70%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='14']{left:70%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='14']{min-width:70%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='14']{max-width:70%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='15']{width:75%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='15']{left:75%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='15']{min-width:75%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='15']{max-width:75%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='16']{width:80%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='16']{left:80%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='16']{min-width:80%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='16']{max-width:80%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='17']{width:85%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='17']{left:85%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='17']{min-width:85%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='17']{max-width:85%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='18']{width:90%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='18']{left:90%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='18']{min-width:90%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='18']{max-width:90%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='19']{width:95%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='19']{left:95%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='19']{min-width:95%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='19']{max-width:95%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-width='20']{width:100%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-x='20']{left:100%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-min-width='20']{min-width:100%}.grid-stack.grid-stack-20>.grid-stack-item[data-gs-max-width='20']{max-width:100%}.grid-stack.grid-stack-21>.grid-stack-item{min-width:4.7619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='1']{width:4.7619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='1']{left:4.7619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='1']{min-width:4.7619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='1']{max-width:4.7619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='2']{width:9.52381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='2']{left:9.52381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='2']{min-width:9.52381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='2']{max-width:9.52381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='3']{width:14.28571%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='3']{left:14.28571%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='3']{min-width:14.28571%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='3']{max-width:14.28571%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='4']{width:19.04762%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='4']{left:19.04762%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='4']{min-width:19.04762%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='4']{max-width:19.04762%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='5']{width:23.80952%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='5']{left:23.80952%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='5']{min-width:23.80952%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='5']{max-width:23.80952%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='6']{width:28.57143%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='6']{left:28.57143%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='6']{min-width:28.57143%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='6']{max-width:28.57143%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='7']{width:33.33333%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='7']{left:33.33333%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='7']{min-width:33.33333%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='7']{max-width:33.33333%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='8']{width:38.09524%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='8']{left:38.09524%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='8']{min-width:38.09524%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='8']{max-width:38.09524%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='9']{width:42.85714%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='9']{left:42.85714%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='9']{min-width:42.85714%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='9']{max-width:42.85714%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='10']{width:47.61905%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='10']{left:47.61905%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='10']{min-width:47.61905%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='10']{max-width:47.61905%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='11']{width:52.38095%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='11']{left:52.38095%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='11']{min-width:52.38095%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='11']{max-width:52.38095%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='12']{width:57.14286%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='12']{left:57.14286%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='12']{min-width:57.14286%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='12']{max-width:57.14286%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='13']{width:61.90476%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='13']{left:61.90476%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='13']{min-width:61.90476%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='13']{max-width:61.90476%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='14']{width:66.66667%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='14']{left:66.66667%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='14']{min-width:66.66667%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='14']{max-width:66.66667%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='15']{width:71.42857%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='15']{left:71.42857%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='15']{min-width:71.42857%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='15']{max-width:71.42857%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='16']{width:76.19048%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='16']{left:76.19048%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='16']{min-width:76.19048%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='16']{max-width:76.19048%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='17']{width:80.95238%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='17']{left:80.95238%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='17']{min-width:80.95238%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='17']{max-width:80.95238%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='18']{width:85.71429%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='18']{left:85.71429%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='18']{min-width:85.71429%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='18']{max-width:85.71429%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='19']{width:90.47619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='19']{left:90.47619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='19']{min-width:90.47619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='19']{max-width:90.47619%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='20']{width:95.2381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='20']{left:95.2381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='20']{min-width:95.2381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='20']{max-width:95.2381%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-width='21']{width:100%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-x='21']{left:100%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-min-width='21']{min-width:100%}.grid-stack.grid-stack-21>.grid-stack-item[data-gs-max-width='21']{max-width:100%}.grid-stack.grid-stack-22>.grid-stack-item{min-width:4.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='1']{width:4.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='1']{left:4.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='1']{min-width:4.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='1']{max-width:4.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='2']{width:9.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='2']{left:9.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='2']{min-width:9.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='2']{max-width:9.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='3']{width:13.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='3']{left:13.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='3']{min-width:13.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='3']{max-width:13.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='4']{width:18.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='4']{left:18.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='4']{min-width:18.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='4']{max-width:18.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='5']{width:22.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='5']{left:22.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='5']{min-width:22.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='5']{max-width:22.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='6']{width:27.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='6']{left:27.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='6']{min-width:27.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='6']{max-width:27.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='7']{width:31.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='7']{left:31.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='7']{min-width:31.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='7']{max-width:31.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='8']{width:36.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='8']{left:36.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='8']{min-width:36.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='8']{max-width:36.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='9']{width:40.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='9']{left:40.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='9']{min-width:40.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='9']{max-width:40.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='10']{width:45.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='10']{left:45.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='10']{min-width:45.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='10']{max-width:45.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='11']{width:50%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='11']{left:50%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='11']{min-width:50%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='11']{max-width:50%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='12']{width:54.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='12']{left:54.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='12']{min-width:54.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='12']{max-width:54.54545%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='13']{width:59.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='13']{left:59.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='13']{min-width:59.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='13']{max-width:59.09091%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='14']{width:63.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='14']{left:63.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='14']{min-width:63.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='14']{max-width:63.63636%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='15']{width:68.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='15']{left:68.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='15']{min-width:68.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='15']{max-width:68.18182%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='16']{width:72.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='16']{left:72.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='16']{min-width:72.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='16']{max-width:72.72727%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='17']{width:77.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='17']{left:77.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='17']{min-width:77.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='17']{max-width:77.27273%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='18']{width:81.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='18']{left:81.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='18']{min-width:81.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='18']{max-width:81.81818%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='19']{width:86.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='19']{left:86.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='19']{min-width:86.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='19']{max-width:86.36364%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='20']{width:90.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='20']{left:90.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='20']{min-width:90.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='20']{max-width:90.90909%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='21']{width:95.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='21']{left:95.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='21']{min-width:95.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='21']{max-width:95.45455%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-width='22']{width:100%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-x='22']{left:100%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-min-width='22']{min-width:100%}.grid-stack.grid-stack-22>.grid-stack-item[data-gs-max-width='22']{max-width:100%}.grid-stack.grid-stack-23>.grid-stack-item{min-width:4.34783%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='1']{width:4.34783%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='1']{left:4.34783%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='1']{min-width:4.34783%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='1']{max-width:4.34783%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='2']{width:8.69565%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='2']{left:8.69565%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='2']{min-width:8.69565%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='2']{max-width:8.69565%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='3']{width:13.04348%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='3']{left:13.04348%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='3']{min-width:13.04348%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='3']{max-width:13.04348%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='4']{width:17.3913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='4']{left:17.3913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='4']{min-width:17.3913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='4']{max-width:17.3913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='5']{width:21.73913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='5']{left:21.73913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='5']{min-width:21.73913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='5']{max-width:21.73913%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='6']{width:26.08696%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='6']{left:26.08696%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='6']{min-width:26.08696%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='6']{max-width:26.08696%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='7']{width:30.43478%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='7']{left:30.43478%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='7']{min-width:30.43478%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='7']{max-width:30.43478%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='8']{width:34.78261%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='8']{left:34.78261%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='8']{min-width:34.78261%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='8']{max-width:34.78261%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='9']{width:39.13043%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='9']{left:39.13043%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='9']{min-width:39.13043%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='9']{max-width:39.13043%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='10']{width:43.47826%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='10']{left:43.47826%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='10']{min-width:43.47826%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='10']{max-width:43.47826%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='11']{width:47.82609%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='11']{left:47.82609%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='11']{min-width:47.82609%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='11']{max-width:47.82609%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='12']{width:52.17391%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='12']{left:52.17391%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='12']{min-width:52.17391%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='12']{max-width:52.17391%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='13']{width:56.52174%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='13']{left:56.52174%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='13']{min-width:56.52174%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='13']{max-width:56.52174%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='14']{width:60.86957%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='14']{left:60.86957%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='14']{min-width:60.86957%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='14']{max-width:60.86957%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='15']{width:65.21739%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='15']{left:65.21739%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='15']{min-width:65.21739%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='15']{max-width:65.21739%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='16']{width:69.56522%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='16']{left:69.56522%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='16']{min-width:69.56522%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='16']{max-width:69.56522%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='17']{width:73.91304%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='17']{left:73.91304%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='17']{min-width:73.91304%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='17']{max-width:73.91304%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='18']{width:78.26087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='18']{left:78.26087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='18']{min-width:78.26087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='18']{max-width:78.26087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='19']{width:82.6087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='19']{left:82.6087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='19']{min-width:82.6087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='19']{max-width:82.6087%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='20']{width:86.95652%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='20']{left:86.95652%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='20']{min-width:86.95652%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='20']{max-width:86.95652%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='21']{width:91.30435%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='21']{left:91.30435%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='21']{min-width:91.30435%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='21']{max-width:91.30435%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='22']{width:95.65217%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='22']{left:95.65217%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='22']{min-width:95.65217%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='22']{max-width:95.65217%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-width='23']{width:100%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-x='23']{left:100%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-min-width='23']{min-width:100%}.grid-stack.grid-stack-23>.grid-stack-item[data-gs-max-width='23']{max-width:100%}.grid-stack.grid-stack-24>.grid-stack-item{min-width:4.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='1']{width:4.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='1']{left:4.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='1']{min-width:4.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='1']{max-width:4.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='2']{width:8.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='2']{left:8.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='2']{min-width:8.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='2']{max-width:8.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='3']{width:12.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='3']{left:12.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='3']{min-width:12.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='3']{max-width:12.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='4']{width:16.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='4']{left:16.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='4']{min-width:16.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='4']{max-width:16.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='5']{width:20.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='5']{left:20.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='5']{min-width:20.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='5']{max-width:20.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='6']{width:25%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='6']{left:25%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='6']{min-width:25%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='6']{max-width:25%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='7']{width:29.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='7']{left:29.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='7']{min-width:29.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='7']{max-width:29.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='8']{width:33.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='8']{left:33.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='8']{min-width:33.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='8']{max-width:33.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='9']{width:37.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='9']{left:37.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='9']{min-width:37.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='9']{max-width:37.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='10']{width:41.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='10']{left:41.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='10']{min-width:41.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='10']{max-width:41.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='11']{width:45.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='11']{left:45.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='11']{min-width:45.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='11']{max-width:45.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='12']{width:50%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='12']{left:50%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='12']{min-width:50%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='12']{max-width:50%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='13']{width:54.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='13']{left:54.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='13']{min-width:54.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='13']{max-width:54.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='14']{width:58.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='14']{left:58.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='14']{min-width:58.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='14']{max-width:58.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='15']{width:62.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='15']{left:62.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='15']{min-width:62.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='15']{max-width:62.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='16']{width:66.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='16']{left:66.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='16']{min-width:66.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='16']{max-width:66.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='17']{width:70.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='17']{left:70.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='17']{min-width:70.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='17']{max-width:70.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='18']{width:75%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='18']{left:75%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='18']{min-width:75%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='18']{max-width:75%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='19']{width:79.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='19']{left:79.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='19']{min-width:79.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='19']{max-width:79.16667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='20']{width:83.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='20']{left:83.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='20']{min-width:83.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='20']{max-width:83.33333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='21']{width:87.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='21']{left:87.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='21']{min-width:87.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='21']{max-width:87.5%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='22']{width:91.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='22']{left:91.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='22']{min-width:91.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='22']{max-width:91.66667%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='23']{width:95.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='23']{left:95.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='23']{min-width:95.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='23']{max-width:95.83333%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-width='24']{width:100%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-x='24']{left:100%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-min-width='24']{min-width:100%}.grid-stack.grid-stack-24>.grid-stack-item[data-gs-max-width='24']{max-width:100%}.grid-stack.grid-stack-25>.grid-stack-item{min-width:4%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='1']{width:4%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='1']{left:4%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='1']{min-width:4%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='1']{max-width:4%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='2']{width:8%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='2']{left:8%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='2']{min-width:8%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='2']{max-width:8%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='3']{width:12%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='3']{left:12%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='3']{min-width:12%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='3']{max-width:12%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='4']{width:16%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='4']{left:16%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='4']{min-width:16%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='4']{max-width:16%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='5']{width:20%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='5']{left:20%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='5']{min-width:20%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='5']{max-width:20%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='6']{width:24%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='6']{left:24%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='6']{min-width:24%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='6']{max-width:24%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='7']{width:28%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='7']{left:28%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='7']{min-width:28%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='7']{max-width:28%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='8']{width:32%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='8']{left:32%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='8']{min-width:32%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='8']{max-width:32%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='9']{width:36%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='9']{left:36%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='9']{min-width:36%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='9']{max-width:36%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='10']{width:40%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='10']{left:40%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='10']{min-width:40%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='10']{max-width:40%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='11']{width:44%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='11']{left:44%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='11']{min-width:44%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='11']{max-width:44%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='12']{width:48%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='12']{left:48%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='12']{min-width:48%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='12']{max-width:48%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='13']{width:52%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='13']{left:52%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='13']{min-width:52%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='13']{max-width:52%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='14']{width:56%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='14']{left:56%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='14']{min-width:56%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='14']{max-width:56%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='15']{width:60%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='15']{left:60%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='15']{min-width:60%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='15']{max-width:60%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='16']{width:64%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='16']{left:64%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='16']{min-width:64%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='16']{max-width:64%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='17']{width:68%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='17']{left:68%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='17']{min-width:68%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='17']{max-width:68%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='18']{width:72%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='18']{left:72%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='18']{min-width:72%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='18']{max-width:72%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='19']{width:76%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='19']{left:76%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='19']{min-width:76%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='19']{max-width:76%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='20']{width:80%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='20']{left:80%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='20']{min-width:80%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='20']{max-width:80%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='21']{width:84%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='21']{left:84%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='21']{min-width:84%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='21']{max-width:84%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='22']{width:88%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='22']{left:88%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='22']{min-width:88%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='22']{max-width:88%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='23']{width:92%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='23']{left:92%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='23']{min-width:92%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='23']{max-width:92%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='24']{width:96%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='24']{left:96%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='24']{min-width:96%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='24']{max-width:96%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-width='25']{width:100%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-x='25']{left:100%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-min-width='25']{min-width:100%}.grid-stack.grid-stack-25>.grid-stack-item[data-gs-max-width='25']{max-width:100%}.grid-stack.grid-stack-26>.grid-stack-item{min-width:3.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='1']{width:3.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='1']{left:3.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='1']{min-width:3.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='1']{max-width:3.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='2']{width:7.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='2']{left:7.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='2']{min-width:7.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='2']{max-width:7.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='3']{width:11.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='3']{left:11.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='3']{min-width:11.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='3']{max-width:11.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='4']{width:15.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='4']{left:15.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='4']{min-width:15.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='4']{max-width:15.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='5']{width:19.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='5']{left:19.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='5']{min-width:19.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='5']{max-width:19.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='6']{width:23.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='6']{left:23.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='6']{min-width:23.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='6']{max-width:23.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='7']{width:26.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='7']{left:26.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='7']{min-width:26.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='7']{max-width:26.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='8']{width:30.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='8']{left:30.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='8']{min-width:30.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='8']{max-width:30.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='9']{width:34.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='9']{left:34.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='9']{min-width:34.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='9']{max-width:34.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='10']{width:38.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='10']{left:38.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='10']{min-width:38.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='10']{max-width:38.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='11']{width:42.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='11']{left:42.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='11']{min-width:42.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='11']{max-width:42.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='12']{width:46.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='12']{left:46.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='12']{min-width:46.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='12']{max-width:46.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='13']{width:50%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='13']{left:50%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='13']{min-width:50%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='13']{max-width:50%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='14']{width:53.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='14']{left:53.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='14']{min-width:53.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='14']{max-width:53.84615%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='15']{width:57.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='15']{left:57.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='15']{min-width:57.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='15']{max-width:57.69231%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='16']{width:61.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='16']{left:61.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='16']{min-width:61.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='16']{max-width:61.53846%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='17']{width:65.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='17']{left:65.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='17']{min-width:65.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='17']{max-width:65.38462%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='18']{width:69.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='18']{left:69.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='18']{min-width:69.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='18']{max-width:69.23077%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='19']{width:73.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='19']{left:73.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='19']{min-width:73.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='19']{max-width:73.07692%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='20']{width:76.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='20']{left:76.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='20']{min-width:76.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='20']{max-width:76.92308%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='21']{width:80.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='21']{left:80.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='21']{min-width:80.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='21']{max-width:80.76923%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='22']{width:84.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='22']{left:84.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='22']{min-width:84.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='22']{max-width:84.61538%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='23']{width:88.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='23']{left:88.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='23']{min-width:88.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='23']{max-width:88.46154%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='24']{width:92.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='24']{left:92.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='24']{min-width:92.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='24']{max-width:92.30769%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='25']{width:96.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='25']{left:96.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='25']{min-width:96.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='25']{max-width:96.15385%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-width='26']{width:100%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-x='26']{left:100%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-min-width='26']{min-width:100%}.grid-stack.grid-stack-26>.grid-stack-item[data-gs-max-width='26']{max-width:100%}.grid-stack.grid-stack-27>.grid-stack-item{min-width:3.7037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='1']{width:3.7037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='1']{left:3.7037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='1']{min-width:3.7037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='1']{max-width:3.7037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='2']{width:7.40741%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='2']{left:7.40741%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='2']{min-width:7.40741%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='2']{max-width:7.40741%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='3']{width:11.11111%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='3']{left:11.11111%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='3']{min-width:11.11111%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='3']{max-width:11.11111%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='4']{width:14.81481%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='4']{left:14.81481%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='4']{min-width:14.81481%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='4']{max-width:14.81481%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='5']{width:18.51852%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='5']{left:18.51852%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='5']{min-width:18.51852%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='5']{max-width:18.51852%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='6']{width:22.22222%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='6']{left:22.22222%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='6']{min-width:22.22222%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='6']{max-width:22.22222%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='7']{width:25.92593%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='7']{left:25.92593%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='7']{min-width:25.92593%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='7']{max-width:25.92593%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='8']{width:29.62963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='8']{left:29.62963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='8']{min-width:29.62963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='8']{max-width:29.62963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='9']{width:33.33333%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='9']{left:33.33333%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='9']{min-width:33.33333%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='9']{max-width:33.33333%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='10']{width:37.03704%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='10']{left:37.03704%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='10']{min-width:37.03704%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='10']{max-width:37.03704%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='11']{width:40.74074%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='11']{left:40.74074%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='11']{min-width:40.74074%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='11']{max-width:40.74074%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='12']{width:44.44444%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='12']{left:44.44444%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='12']{min-width:44.44444%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='12']{max-width:44.44444%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='13']{width:48.14815%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='13']{left:48.14815%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='13']{min-width:48.14815%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='13']{max-width:48.14815%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='14']{width:51.85185%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='14']{left:51.85185%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='14']{min-width:51.85185%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='14']{max-width:51.85185%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='15']{width:55.55556%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='15']{left:55.55556%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='15']{min-width:55.55556%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='15']{max-width:55.55556%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='16']{width:59.25926%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='16']{left:59.25926%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='16']{min-width:59.25926%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='16']{max-width:59.25926%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='17']{width:62.96296%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='17']{left:62.96296%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='17']{min-width:62.96296%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='17']{max-width:62.96296%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='18']{width:66.66667%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='18']{left:66.66667%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='18']{min-width:66.66667%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='18']{max-width:66.66667%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='19']{width:70.37037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='19']{left:70.37037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='19']{min-width:70.37037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='19']{max-width:70.37037%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='20']{width:74.07407%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='20']{left:74.07407%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='20']{min-width:74.07407%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='20']{max-width:74.07407%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='21']{width:77.77778%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='21']{left:77.77778%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='21']{min-width:77.77778%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='21']{max-width:77.77778%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='22']{width:81.48148%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='22']{left:81.48148%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='22']{min-width:81.48148%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='22']{max-width:81.48148%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='23']{width:85.18519%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='23']{left:85.18519%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='23']{min-width:85.18519%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='23']{max-width:85.18519%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='24']{width:88.88889%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='24']{left:88.88889%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='24']{min-width:88.88889%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='24']{max-width:88.88889%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='25']{width:92.59259%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='25']{left:92.59259%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='25']{min-width:92.59259%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='25']{max-width:92.59259%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='26']{width:96.2963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='26']{left:96.2963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='26']{min-width:96.2963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='26']{max-width:96.2963%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-width='27']{width:100%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-x='27']{left:100%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-min-width='27']{min-width:100%}.grid-stack.grid-stack-27>.grid-stack-item[data-gs-max-width='27']{max-width:100%}.grid-stack.grid-stack-28>.grid-stack-item{min-width:3.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='1']{width:3.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='1']{left:3.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='1']{min-width:3.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='1']{max-width:3.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='2']{width:7.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='2']{left:7.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='2']{min-width:7.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='2']{max-width:7.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='3']{width:10.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='3']{left:10.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='3']{min-width:10.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='3']{max-width:10.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='4']{width:14.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='4']{left:14.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='4']{min-width:14.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='4']{max-width:14.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='5']{width:17.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='5']{left:17.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='5']{min-width:17.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='5']{max-width:17.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='6']{width:21.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='6']{left:21.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='6']{min-width:21.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='6']{max-width:21.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='7']{width:25%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='7']{left:25%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='7']{min-width:25%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='7']{max-width:25%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='8']{width:28.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='8']{left:28.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='8']{min-width:28.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='8']{max-width:28.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='9']{width:32.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='9']{left:32.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='9']{min-width:32.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='9']{max-width:32.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='10']{width:35.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='10']{left:35.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='10']{min-width:35.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='10']{max-width:35.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='11']{width:39.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='11']{left:39.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='11']{min-width:39.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='11']{max-width:39.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='12']{width:42.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='12']{left:42.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='12']{min-width:42.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='12']{max-width:42.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='13']{width:46.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='13']{left:46.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='13']{min-width:46.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='13']{max-width:46.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='14']{width:50%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='14']{left:50%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='14']{min-width:50%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='14']{max-width:50%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='15']{width:53.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='15']{left:53.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='15']{min-width:53.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='15']{max-width:53.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='16']{width:57.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='16']{left:57.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='16']{min-width:57.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='16']{max-width:57.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='17']{width:60.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='17']{left:60.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='17']{min-width:60.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='17']{max-width:60.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='18']{width:64.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='18']{left:64.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='18']{min-width:64.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='18']{max-width:64.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='19']{width:67.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='19']{left:67.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='19']{min-width:67.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='19']{max-width:67.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='20']{width:71.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='20']{left:71.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='20']{min-width:71.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='20']{max-width:71.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='21']{width:75%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='21']{left:75%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='21']{min-width:75%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='21']{max-width:75%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='22']{width:78.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='22']{left:78.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='22']{min-width:78.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='22']{max-width:78.57143%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='23']{width:82.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='23']{left:82.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='23']{min-width:82.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='23']{max-width:82.14286%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='24']{width:85.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='24']{left:85.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='24']{min-width:85.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='24']{max-width:85.71429%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='25']{width:89.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='25']{left:89.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='25']{min-width:89.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='25']{max-width:89.28571%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='26']{width:92.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='26']{left:92.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='26']{min-width:92.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='26']{max-width:92.85714%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='27']{width:96.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='27']{left:96.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='27']{min-width:96.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='27']{max-width:96.42857%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-width='28']{width:100%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-x='28']{left:100%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-min-width='28']{min-width:100%}.grid-stack.grid-stack-28>.grid-stack-item[data-gs-max-width='28']{max-width:100%}.grid-stack.grid-stack-29>.grid-stack-item{min-width:3.44828%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='1']{width:3.44828%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='1']{left:3.44828%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='1']{min-width:3.44828%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='1']{max-width:3.44828%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='2']{width:6.89655%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='2']{left:6.89655%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='2']{min-width:6.89655%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='2']{max-width:6.89655%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='3']{width:10.34483%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='3']{left:10.34483%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='3']{min-width:10.34483%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='3']{max-width:10.34483%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='4']{width:13.7931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='4']{left:13.7931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='4']{min-width:13.7931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='4']{max-width:13.7931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='5']{width:17.24138%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='5']{left:17.24138%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='5']{min-width:17.24138%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='5']{max-width:17.24138%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='6']{width:20.68966%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='6']{left:20.68966%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='6']{min-width:20.68966%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='6']{max-width:20.68966%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='7']{width:24.13793%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='7']{left:24.13793%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='7']{min-width:24.13793%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='7']{max-width:24.13793%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='8']{width:27.58621%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='8']{left:27.58621%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='8']{min-width:27.58621%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='8']{max-width:27.58621%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='9']{width:31.03448%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='9']{left:31.03448%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='9']{min-width:31.03448%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='9']{max-width:31.03448%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='10']{width:34.48276%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='10']{left:34.48276%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='10']{min-width:34.48276%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='10']{max-width:34.48276%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='11']{width:37.93103%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='11']{left:37.93103%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='11']{min-width:37.93103%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='11']{max-width:37.93103%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='12']{width:41.37931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='12']{left:41.37931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='12']{min-width:41.37931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='12']{max-width:41.37931%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='13']{width:44.82759%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='13']{left:44.82759%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='13']{min-width:44.82759%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='13']{max-width:44.82759%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='14']{width:48.27586%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='14']{left:48.27586%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='14']{min-width:48.27586%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='14']{max-width:48.27586%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='15']{width:51.72414%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='15']{left:51.72414%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='15']{min-width:51.72414%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='15']{max-width:51.72414%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='16']{width:55.17241%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='16']{left:55.17241%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='16']{min-width:55.17241%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='16']{max-width:55.17241%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='17']{width:58.62069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='17']{left:58.62069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='17']{min-width:58.62069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='17']{max-width:58.62069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='18']{width:62.06897%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='18']{left:62.06897%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='18']{min-width:62.06897%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='18']{max-width:62.06897%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='19']{width:65.51724%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='19']{left:65.51724%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='19']{min-width:65.51724%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='19']{max-width:65.51724%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='20']{width:68.96552%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='20']{left:68.96552%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='20']{min-width:68.96552%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='20']{max-width:68.96552%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='21']{width:72.41379%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='21']{left:72.41379%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='21']{min-width:72.41379%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='21']{max-width:72.41379%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='22']{width:75.86207%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='22']{left:75.86207%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='22']{min-width:75.86207%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='22']{max-width:75.86207%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='23']{width:79.31034%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='23']{left:79.31034%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='23']{min-width:79.31034%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='23']{max-width:79.31034%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='24']{width:82.75862%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='24']{left:82.75862%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='24']{min-width:82.75862%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='24']{max-width:82.75862%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='25']{width:86.2069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='25']{left:86.2069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='25']{min-width:86.2069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='25']{max-width:86.2069%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='26']{width:89.65517%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='26']{left:89.65517%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='26']{min-width:89.65517%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='26']{max-width:89.65517%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='27']{width:93.10345%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='27']{left:93.10345%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='27']{min-width:93.10345%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='27']{max-width:93.10345%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='28']{width:96.55172%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='28']{left:96.55172%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='28']{min-width:96.55172%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='28']{max-width:96.55172%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-width='29']{width:100%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-x='29']{left:100%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-min-width='29']{min-width:100%}.grid-stack.grid-stack-29>.grid-stack-item[data-gs-max-width='29']{max-width:100%}.grid-stack.grid-stack-30>.grid-stack-item{min-width:3.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='1']{width:3.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='1']{left:3.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='1']{min-width:3.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='1']{max-width:3.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='2']{width:6.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='2']{left:6.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='2']{min-width:6.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='2']{max-width:6.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='3']{width:10%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='3']{left:10%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='3']{min-width:10%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='3']{max-width:10%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='4']{width:13.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='4']{left:13.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='4']{min-width:13.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='4']{max-width:13.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='5']{width:16.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='5']{left:16.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='5']{min-width:16.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='5']{max-width:16.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='6']{width:20%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='6']{left:20%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='6']{min-width:20%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='6']{max-width:20%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='7']{width:23.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='7']{left:23.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='7']{min-width:23.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='7']{max-width:23.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='8']{width:26.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='8']{left:26.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='8']{min-width:26.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='8']{max-width:26.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='9']{width:30%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='9']{left:30%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='9']{min-width:30%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='9']{max-width:30%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='10']{width:33.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='10']{left:33.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='10']{min-width:33.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='10']{max-width:33.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='11']{width:36.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='11']{left:36.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='11']{min-width:36.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='11']{max-width:36.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='12']{width:40%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='12']{left:40%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='12']{min-width:40%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='12']{max-width:40%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='13']{width:43.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='13']{left:43.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='13']{min-width:43.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='13']{max-width:43.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='14']{width:46.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='14']{left:46.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='14']{min-width:46.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='14']{max-width:46.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='15']{width:50%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='15']{left:50%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='15']{min-width:50%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='15']{max-width:50%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='16']{width:53.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='16']{left:53.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='16']{min-width:53.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='16']{max-width:53.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='17']{width:56.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='17']{left:56.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='17']{min-width:56.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='17']{max-width:56.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='18']{width:60%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='18']{left:60%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='18']{min-width:60%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='18']{max-width:60%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='19']{width:63.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='19']{left:63.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='19']{min-width:63.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='19']{max-width:63.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='20']{width:66.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='20']{left:66.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='20']{min-width:66.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='20']{max-width:66.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='21']{width:70%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='21']{left:70%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='21']{min-width:70%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='21']{max-width:70%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='22']{width:73.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='22']{left:73.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='22']{min-width:73.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='22']{max-width:73.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='23']{width:76.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='23']{left:76.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='23']{min-width:76.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='23']{max-width:76.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='24']{width:80%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='24']{left:80%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='24']{min-width:80%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='24']{max-width:80%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='25']{width:83.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='25']{left:83.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='25']{min-width:83.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='25']{max-width:83.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='26']{width:86.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='26']{left:86.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='26']{min-width:86.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='26']{max-width:86.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='27']{width:90%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='27']{left:90%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='27']{min-width:90%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='27']{max-width:90%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='28']{width:93.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='28']{left:93.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='28']{min-width:93.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='28']{max-width:93.33333%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='29']{width:96.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='29']{left:96.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='29']{min-width:96.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='29']{max-width:96.66667%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-width='30']{width:100%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-x='30']{left:100%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-min-width='30']{min-width:100%}.grid-stack.grid-stack-30>.grid-stack-item[data-gs-max-width='30']{max-width:100%}.grid-stack>.grid-stack-item>.grid-stack-item-content{overflow:hidden;line-height:18px} diff --git a/data_node_red/node_modules/node-red-dashboard/dist/dashboard.appcache b/data_node_red/node_modules/node-red-dashboard/dist/dashboard.appcache new file mode 100644 index 0000000..fa809dd --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/dashboard.appcache @@ -0,0 +1,29 @@ +CACHE MANIFEST +# Time: Sat Jun 12 2021 16:24:39 GMT+0100 (British Summer Time) + +CACHE: +i18n.js +icon120x120.png +icon192x192.png +icon64x64.png +css/app.min.css +css/app.min.less +css/gridstack-extra.min.css +js/app.min.js +js/tinycolor-min.js +socket.io/socket.io.js +fonts/MaterialIcons-Regular.woff +fonts/MaterialIcons-Regular.woff2 +fonts/fontawesome-webfont.woff +fonts/fontawesome-webfont.woff2 +fonts/weather-icons-lite.woff +fonts/weather-icons-lite.woff2 +gs/gridstack.jQueryUI.min.js +gs/gridstack.min.css +gs/gridstack.min.js +loading.html + +NETWORK: +* + +# hash: 7389ae975ada1ebb23ec32f35138dbd55413646b47ccfd723fd2bd08fc6af53d diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff b/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff new file mode 100644 index 0000000..76cd97c Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff2 b/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff2 new file mode 100644 index 0000000..c2c1a87 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/MaterialIcons-Regular.woff2 differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff b/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff2 b/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/fontawesome-webfont.woff2 differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff b/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff new file mode 100644 index 0000000..b021592 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff2 b/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff2 new file mode 100644 index 0000000..ade0290 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/fonts/weather-icons-lite.woff2 differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/i18n.js b/data_node_red/node_modules/node-red-dashboard/dist/i18n.js new file mode 100644 index 0000000..4becae8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/i18n.js @@ -0,0 +1,4 @@ +// Placeholder only - This is NOT a sustainable solution to i18n localisation +// Replace/overwrite this file with an angular-locale_... file of your choice from the npm angular-i18n project +// Then edit dashboard.appcache - (for example add a digit to the hash) +// Stop, start Node-RED and refresh the browser page twice to flush the cache. diff --git a/data_node_red/node_modules/node-red-dashboard/dist/icon120x120.png b/data_node_red/node_modules/node-red-dashboard/dist/icon120x120.png new file mode 100644 index 0000000..82f5234 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/icon120x120.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/icon192x192.png b/data_node_red/node_modules/node-red-dashboard/dist/icon192x192.png new file mode 100644 index 0000000..2808b60 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/icon192x192.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/icon64x64.png b/data_node_red/node_modules/node-red-dashboard/dist/icon64x64.png new file mode 100644 index 0000000..56c699b Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/dist/icon64x64.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/dist/index.html b/data_node_red/node_modules/node-red-dashboard/dist/index.html new file mode 100644 index 0000000..f045e73 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/index.html @@ -0,0 +1,17 @@ +

Welcome to the Node-RED Dashboard

Please add some UI nodes to your flow and redeploy.
diff --git a/data_node_red/node_modules/node-red-dashboard/dist/js/app.min.js b/data_node_red/node_modules/node-red-dashboard/dist/js/app.min.js new file mode 100644 index 0000000..d3677e3 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/js/app.min.js @@ -0,0 +1,608 @@ +/* */ +/* Copyright 2016,2020 JS Foundation and other contributors, https://js.foundation/ */ +/* Copyright 2016 IBM Corp. */ +/* Copyright 2015 Andrei Tatar */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* */ + +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0c)return"...";var d=b.$$hashKey,f;if(H(a)){f=0;for(var g=a.length;f").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Vc(a){try{return decodeURIComponent(a)}catch(b){}}function hc(a){var b={};r((a||"").split("&"), +function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Vc(e),w(e)&&(f=w(f)?Vc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Ce(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function ic(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a, +b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function De(a,b){var d,c,e=Qa.length;for(c=0;c protocol indicates an extension, document.location.href does not match."))}function Wc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===z.document?"document":Aa(a);throw oa("btstrpd",c.replace(//,">"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider", +function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;z&&e.test(z.name)&&(d.debugInfoEnabled=!0,z.name=z.name.replace(e,""));if(z&&!f.test(z.name))return c();z.name=z.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&& +ca.resumeDeferredBootstrap()}function Ge(){z.name="NG_ENABLE_DEBUG_INFO!"+z.name;z.location.reload()}function He(a){a=ca.element(a).injector();if(!a)throw oa("test");return a.get("$$testability")}function Xc(a,b){b=b||"_";return a.replace(Ie,function(a,c){return(c?b:"")+a.toLowerCase()})}function Je(){var a;if(!Yc){var b=rb();(sb=A(b)?z.jQuery:b?z[b]:void 0)&&sb.fn.on?(x=sb,S(sb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})): +x=U;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Yc=!0}}function Ke(){U.legacyXHTMLReplacement=!0}function gb(a,b,d){if(!a)throw oa("areq",b||"?",d||"required");return a}function tb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw oa("badname", +b);}function Le(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g"):a;if(10>wa)for(c=hb[c]||hb._default,d.innerHTML=c[1]+e+c[2],k=c[0];k--;)d=d.firstChild;else{c=qa[c]||[];for(k=c.length;-1<--k;)d.appendChild(z.document.createElement(c[k])),d=d.firstChild;d.innerHTML=e}g=db(g,d.childNodes);d=f.firstChild;d.textContent=""}else g.push(b.createTextNode(a)); +f.textContent="";f.innerHTML="";r(g,function(a){f.appendChild(a)});return f}function U(a){if(a instanceof U)return a;var b;C(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!==a.charAt(0))throw oc("nosel");return new U(a)}if(b){b=z.document;var d;a=(d=tg.exec(a))?[b.createElement(d[1])]:(d=gd(a,b))?d.childNodes:[];pc(this,a)}else B(a)?hd(a):pc(this,a)}function qc(a){return a.cloneNode(!0)}function zb(a,b){!b&&mc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function id(a){for(var b in a)return!1; +return!0}function jd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!id(d)||c&&!id(c)||(delete Ka[b],a.ng339=void 0)}function kd(a,b,d,c){if(w(c))throw oc("offargs");var e=(c=Ab(a))&&c.events,f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0l&&this.remove(n.key);return b}},get:function(a){if(l";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement; +h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("
").append(a).html())):c?Wa.clone.call(a):a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;mu.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&& +!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Jb=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],oa(f,Ha.call(M,0),b),R=Z(Jb,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=z.document.createDocumentFragment();var Xa= +T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[xa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||z.document.createDocumentFragment(),ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Jb,R,e));M=x(M.childNodes)}else M=x(qc(b)).contents();y.empty();R=Z(Jb,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P= +!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=nc.test(O)?td(ja(u.templateNamespace,V(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",Q,"");oa(f,y,b);C={$attr:{}};O=tc(b,[],C);var Ig=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Ig);ga(d,C);C=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!== +u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),C=a.length;else if(u.compile)try{q=u.compile(y,d,R);var Y=u.$$originalDirective||u;B(q)?m(null,Va(Y,q),E,jb):q&&m(Va(Y,q.pre),Va(Y,q.post),E,jb)}catch(ca){c(ca,Aa(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function X(a,b,c,d){var e;if(C(b)){var f=b.match(l);b=b.substring(f[0].length); +var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;gc.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=bc(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null}; +D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function qa(a,b){if("srcdoc"=== +b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:"a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function ya(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function za(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c, +d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=ya(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=za;b.push({priority:100,compile:function(a,b){var e=p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=qa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",Aa(a));if(m.test(e))throw $("nodomevents");c.push({priority:100, +compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function oa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Kg.call(a,b,1)}return a} +function Gg(a,b){if(b&&C(b))return b;if(C(a)){var d=wd.exec(a);if(d)return d[3]}}function Kf(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,"controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&C(g)&&(l=g);if(C(c)){g=c.match(wd);if(!g)throw xd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Le(e.$scope, +h,!0);if(!c)throw xd("ctrlreg",h);tb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Lf(){this.$get=["$window",function(a){return x(a.document)}]}function Mf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden; +a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function Nf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function vc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Tf(){this.$get=function(){return function(a){if(!a)return"";var b=[];Qc(a,function(a,c){null===a||A(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(vc(a)))}):b.push(ba(c)+"="+ba(vc(a))))});return b.join("&")}}}function Uf(){this.$get= +function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Qc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):(B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(vc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function wc(a,b){if(C(a)){var d=a.replace(Lg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(yd),e;(e=c)||(e=(e=d.match(Mg))&&Ng[e[0]].test(d));if(e)try{a=Tc(d)}catch(f){if(!c)return a;throw Lb("baddata",a,f);}}}return a} +function zd(a){var b=T(),d;C(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&r(a,function(a,d){var f=K(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function Ad(a){var b;return function(d){b||(b=zd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function Bd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Sf(){var a=this.defaults={transformResponse:[wc],transformRequest:[function(a){return D(a)&& +"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja(xc),put:ja(xc),patch:ja(xc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins", +{get:function(){return this.xsrfTrustedOrigins},set:function(a){this.xsrfTrustedOrigins=a}});this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;da?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!C(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method= +vb(g.method);g.paramSerializer=C(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});b=c(b,h);b=b.then(function(b){var c=b.headers,d=Bd(b.data,Ad(c),void 0,b.transformRequest);A(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});A(b.withCredentials)&&!A(a.withCredentials)&& +(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,zd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300> +b?L.resolve:L.reject)({data:a,status:b,headers:Ad(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),O=c.url;x?O=p.getTrustedResourceUrl(O):C(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache|| +!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));A(q)&&((q=kc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Cd(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host= +d.hostname;b.$$port=fa(d.port)||Rg[d.protocol]||null}function Dd(a,b,d){if(Sg.test(a))throw kb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=hc(a.search);b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function yc(a,b){return a.slice(0, +b.length)===b}function ya(a,b){if(yc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function zc(a,b,d){this.$$html5=!0;d=d||"";Cd(a,this);this.$$parse=function(a){var d=ya(b,a);if(!C(d))throw kb("ipthprfx",a,b);Dd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=ya(a,c))?(g=f,g=d&&w(f=ya(d,f))? +b+(ya("/",f)||f):a+g):w(f=ya(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function Ac(a,b,d){Cd(a,this);this.$$parse=function(c){var e=ya(a,c)||ya(b,c),f;A(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",A(e)&&(a=c,this.replace())):(f=ya(d,e),A(f)&&(f=e));Dd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;yc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b, +d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Ed(a,b,d){this.$$html5=!0;Ac.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=ya(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Mb(a){return function(){return this[a]}}function Fd(a,b){return function(d){if(A(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Yf(){var a="!", +b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||C(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a, +b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw kb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?zc:Ed}else s=Da(n),p=Ac;var r=s.substr(0,Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i; +f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!C(e)||!A(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!== +n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){yc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=!1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!== +m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Zf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){dc(a)&&(a.stack&&f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&& +(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=wa||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Tg(a){return a+""}function Ug(a,b){return"undefined"!==typeof a?a: +b}function Gd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Vg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Hd:b}function Z(a,b,d){var c,e,f=a.isPure=Vg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch= +[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&& +a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left, +b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant= +!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Id(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Jd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Kd(a){if(1===a.body.length&&Jd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}function Ld(a){this.$filter=a}function Md(a){this.$filter=a}function Nb(a,b,d){this.ast= +new q(a,d);this.astCompiler=d.csp?new Md(b):new Ld(b)}function Bc(a){return B(a.valueOf)?a.valueOf():Wg.call(a)}function $f(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Ob(G),d=(new Nb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E, +c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Bc(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Bc(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;fa)for(b in l++, +f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1r&&(A=4-r,N[A]||(N[A]=[]),N[A].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s= +!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;Jwa)throw Ea("iequirks");var c=ja(W);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(W, +function(a,b){var d=K(b);c[("parse_as_"+d).replace(Dc,xb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Dc,xb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Dc,xb)]=function(b){return g(a,b)}});return c}]}function fg(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))|| +[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===a&&wa)return!1;if(A(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ba(),transitions:h,animations:l,android:e}}]}function gg(){this.$get=ia(function(a){return new Yg(a)})}function Yg(a){function b(){var a=e.pop();return a&& +a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}): +a()}}function ig(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!C(k)||A(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==wc}):l===wc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)}, +function(a){h||(a=Zg("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function jg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Od(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-", +"data-ng-","ng\\:"],k=0;kc&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Fc;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Fc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Yd&&(d=d.splice(0,Yd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ih(a, +b,d,c){var e=a.d,f=e.length-a.i;b=A(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;fk;)h.unshift(0),k++;0=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+ +h+b.posSuf}function Pb(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length-d)f+=d;0===f&&-12===d&&(f=12);return Pb(f,b,c,e)}}function lb(a,b,d){return function(c,e){var f=c["get"+a](),g=vb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Zd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function $d(a){return function(b){var d= +Zd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Pb(b,a)}}function Gc(a,b){return 0>=a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Td(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+ +(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;C(c)&&(c=jh.test(c)?fa(c):b(c));X(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=kh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=fc(f,m),c=gc(c,f,!0));r(k,function(b){h=lh[b];g+=h?h(c,a.DATETIME_FORMATS, +m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ch(){return function(a,b){A(b)&&(b=2);return eb(a,b)}}function dh(){return function(a,b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(Y(b))return a;X(a)&&(a=a.toString());if(!za(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Hc(a,d,d+b):0===d?Hc(a,b,a.length):Hc(a,Math.max(0,d+b),d)}}function Hc(a,b,d){return C(a)?a.slice(b,d):Ha.call(a,b,d)}function Vd(a){function b(b){return b.map(function(b){var c= +1,d=Ta;if(B(b))d=b;else if(C(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c= +hb||37<=b&&40>=b|| +m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ee[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Rb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(C(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length- +1)&&(d=d.substring(1,d.length-1));if(mh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){cf.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function ob(a,b,d,c){return function(e,f,g,k,h,l,m, +p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Uc(b,fc(v)));var e=d(a,b);!isNaN(e)&&c&&(e=gc(e,c));return e}Jc(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw pb("datefmt",a);if(n(a)){q=a;var b= +k.$options.getOption("timezone");b&&(v=b,q=gc(q,b,!0));var d=c;t&&C(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),z=s(x);k.$validators.min=function(a){return!n(a)||A(z)||d(a)>=z};g.$observe("min",function(a){a!==x&&(z=s(a),x=a,k.$validate())})}if(w(g.max)|| +g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||A(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Jc(a,b,d,c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function fe(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(nh.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!X(b))throw pb("numfmt", +b);b=b.toString()}return b})}function na(a){w(a)&&!X(a)&&(a=parseFloat(a));return Y(a)?void 0:a}function Kc(a){var b=a.toString(),d=b.indexOf(".");return-1===d?-1a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ge(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Kc(a):0,k=e?Kc(b):0,h=f?Kc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function he(a,b,d,c,e){if(w(c)){a= +a(c);if(!a.constant)throw pb("constexpr",d,c);return a(b)}return e}function Lc(a,b){function d(a,b){if(!a||!a.length)return[];if(!b||!b.length)return a;var c=[],d=0;a:for(;d(?:<\/\1>|)$/,nc=/<|&#?\w+;/,rg=/<([\w:-]+)/,sg=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,qa={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr", +"tbody","table"]};qa.tbody=qa.tfoot=qa.colgroup=qa.caption=qa.thead;qa.th=qa.td;var hb={option:[1,'"],_default:[0,"",""]},Nc;for(Nc in qa){var le=qa[Nc],me=le.slice().reverse();hb[Nc]=[me.length,"<"+me.join("><")+">",""]}hb.optgroup=hb.option;var zg=z.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=U.prototype={ready:hd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+ +"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:ph,sort:[].sort,splice:[].splice},Hb={};r("multiple selected checked disabled readOnly required open".split(" "),function(a){Hb[K(a)]=a});var od={};r("input select option textarea button form details".split(" "),function(a){od[a]=!0});var vd={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:sc,removeData:rc,hasData:function(a){for(var b in Ka[a.ng339])return!0; +return!1},cleanData:function(a){for(var b=0,d=a.length;b/,Cg=/^[^(]*\(\s*([^)]*)\)/m,sh=/,/,th=/^\s*(_?)(\S+?)\1\s*$/,Ag=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ca=F("$injector");fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw C(d)&&d||(d=a.name||Dg(a)),Ca("strictdi",d);b=qd(a);r(b[1].split(sh),function(a){a.replace(th,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,tb(a[b],"fn"),c=a.slice(0,b)):tb(a,"fn",!0);return c};var ne=F("$animate"), +Ef=function(){this.$get=E},Ff=function(){var a=new Ib,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=C(b)?b.split(" "):H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=Eg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Eb(a,e);f&&Db(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g, +k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Cf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw ne("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g, +d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,ne("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e <= >= && || ! = |".split(" "),function(a){Vb[a]= +!0});var wh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ob=function(a){this.options=a};Ob.prototype={constructor:Ob,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"=== +typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)}, +isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b= +w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index","<=",">=");)a={type:q.BinaryExpression,operator:b.text, +left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()}, +primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression", +this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression()); +return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]"); +return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"), +b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe", +this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Hd=2;Ld.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[], +body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Kd(a))this.state.computing="assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Id(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage= +"main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Tg,Ug,Gd);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+ +";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")}, +recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0, +void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right, +b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)), +h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b, +m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)): +(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context, +g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId(); +h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+ +b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a, +b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a, +b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(C(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(a))return a.toString();if(!0===a)return"true";if(!1=== +a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Md.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Kd(a))c=this.recurse(d);d=Id(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body, +function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left), +e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c, +e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c= +a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c= +e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d, +c,e,f){return f?f[b]:a(d,c,e)}}};Nb.prototype={constructor:Nb,parse:function(a){a=this.getAst(a);var b=this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a), +oneTime:b}}};var Ea=F("$sce"),W={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Dc=/_([a-z])/g,Zg=F("$templateRequest"),$g=F("$timeout"),aa=z.document.createElement("a"),Qd=ga(z.location.href),Na;aa.href="http://[::1]";var ah="[::1]"===aa.hostname;Rd.$inject=["$document"];fd.$inject=["$provide"];var Yd=22,Xd=".",Fc="0";Sd.$inject=["$locale"];Ud.$inject=["$locale"];var lh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0), +MMMM:lb("Month"),MMM:lb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:lb("Month",!1,!0),dd:ea("Date",2),d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:lb("Day"),EEE:lb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Pb(Math[0=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},kh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,jh=/^-?\d+$/;Td.$inject=["$locale"];var eh=ia(K),fh=ia(vb);Vd.$inject=["$parse"];var Re=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href"; +b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),wb={};r(Hb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});wb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(vd,function(a,b){wb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ke))){e.$set("ngPattern",new RegExp(c[1], +c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=xa("ng-"+a);wb[b]=["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),wa&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var mb={$addControl:E,$getControls:ia([]),$$renameControl:function(a, +b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Qb.$inject=["$element","$attrs","$scope","$animate","$interpolate"];Qb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)}, +$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=mb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element, +Wb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Za,Wb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==mb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element, +"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ce({clazz:Qb,set:function(a,b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var oe=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Qb,compile:function(d,f){d.addClass(Za).addClass(nb); +var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))})); +d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,mb)})}}}}}]},Se=oe(),df=oe(!0),mh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,xh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,yh=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/, +nh=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,pe=/^(\d{4,})-(\d{2})-(\d{2})$/,qe=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Oc=/^(\d{4,})-W(\d\d)$/,re=/^(\d{4,})-(\d\d)$/,se=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ee=T();r(["date","datetime-local","month","time","week"],function(a){ee[a]=!0});var te={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c)},date:ob("date",pe,Rb(pe,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ob("datetimelocal",qe,Rb(qe,"yyyy MM dd HH mm ss sss".split(" ")), +"yyyy-MM-ddTHH:mm:ss.sss"),time:ob("time",se,Rb(se,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ob("week",Oc,function(a,b){if(ha(a))return a;if(C(a)){Oc.lastIndex=0;var d=Oc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Zd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:ob("month",re,Rb(re,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Jc(a,b,d,c,"number");fe(c);Sa(a, +b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||A(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||A(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)|| +A(s)||ge(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||xh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||yh.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==V(d.ngTrim);A(d.name)&&b.attr("name",++qb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g= +V(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=V(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);Y(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);Y(c.$modelValue)||(m?(a=b.val(),n=p},g("min",k)); +e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||A(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:function(a,b){return c.$isEmpty(b)||A(s)||ge(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=he(k,a,"ngTrueValue",d.ngTrueValue,!0),l=he(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty= +function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},$c=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(te[K(g.type)]||te.text)(e,f,g,k[0],b,a,d,c)}}}}],Af=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}}; +return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&Object.defineProperty(b,"value",a)}}}}},zh=/^(true|false|\d+)$/,xf=function(){function a(a,d,c){var e=w(c)?c:9===wa?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return zh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue, +function(b){a(d,f,b)})}}}},We=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=jc(a)})}}}}],Ye=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=A(a)?"":a})}}}}], +Xe=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],wf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ze=Lc("",!0),af=Lc("Odd",0),$e=Lc("Even",1),bf=Ra({compile:function(a, +b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),cf=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ed={},Ah={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);ed[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return sd(d,c,e,b,a,Ah[a])}]});var ff=["$animate","$compile",function(a,b){return{multiElement:!0, +transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=ub(k.clone),a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],gf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element", +controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded", +f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],zf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?(d.empty(),a(gd(e.template,z.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],hf=Ra({priority:450,compile:function(){return{pre:function(a, +b,d){a.$eval(d.ngInit)}}}}),vf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!A(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},nb="ng-valid",be="ng-invalid",Za="ng-pristine",Wb="ng-dirty",pb=F("ngModel");Sb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" "); +Sb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw pb("nonassign",this.$$attr.ngModel,Aa(this.$$element));},$render:E,$isEmpty:function(a){return A(a)|| +""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Wb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element, +Za);this.$$animate.addClass(this.$$element,Wb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!Y(this.$modelValue)){var a= +this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e, +g){var h=e(a,b);if(!h||!B(h.then))throw pb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(A(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a, +b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid= +A(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;dg||e.$isEmpty(b)||b.length<=g}}}}}],cd= +["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Ub(f)||-1;c.$observe("minlength",function(a){f!==a&&(g=Ub(a)||-1,f=a,e.$validate())});e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];z.angular.bootstrap?z.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Je(),Oe(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1== +b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "), +WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a, +c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ee(z.document,Wc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element("

Welcome to the Node-RED Dashboard

Please sign in to see your flow.
'),e.put("partials/main.html",'

{{main.name}}

{{main.selectedTab.header || main.selectedTab.name}}

{{main.getMenuName(obj)}}

'),e.put("partials/toast.html",'

{{::toast.title}}

'),e.put("components/ui-card-panel/ui-card-panel.html",'

{{group.header.name}}

'),e.put("components/ui-chart-js/ui-chart-js.html",'
'),e.put("components/ui-gauge/ui-gauge.html","
"),e.put("components/ui-icon/ui-icon.html",'
{{icon.substr(3)}}
'),e.put("components/ui-component/templates/button.html",' '),e.put("components/ui-component/templates/chart.html",'

{{ me.item.nodata }}

'),e.put("components/ui-component/templates/colour-picker.html",'

'),e.put("components/ui-component/templates/date-picker.html",'

'),e.put("components/ui-component/templates/dropdown.html",'

{{ opt.label }} {{ opt.label }}
'),e.put("components/ui-component/templates/form.html",'

{{opt.label}} {{opt.label}} \x3c!-- --\x3e
{{me.item.submit}} {{me.item.cancel}}
cancel'),e.put("components/ui-component/templates/gauge.html",'

'),e.put("components/ui-component/templates/numeric.html",'

'),e.put("components/ui-component/templates/slider.html",'

'),e.put("components/ui-component/templates/spacer.html",' '),e.put("components/ui-component/templates/switch.html",'

'),e.put("components/ui-component/templates/template.html",' '),e.put("components/ui-component/templates/text-input-CR.html",' '),e.put("components/ui-component/templates/text-input.html",' '),e.put("components/ui-component/templates/text.html",'

')}]); diff --git a/data_node_red/node_modules/node-red-dashboard/dist/js/tinycolor-min.js b/data_node_red/node_modules/node-red-dashboard/dist/js/tinycolor-min.js new file mode 100644 index 0000000..64bf76d --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/dist/js/tinycolor-min.js @@ -0,0 +1,4 @@ +// TinyColor v1.4.2 +// https://github.com/bgrins/TinyColor +// 2020-09-25, Brian Grinstead, MIT License +!function(a){function b(a,d){if(a=a?a:"",d=d||{},a instanceof b)return a;if(!(this instanceof b))return new b(a,d);var e=c(a);this._originalInput=a,this._r=e.r,this._g=e.g,this._b=e.b,this._a=e.a,this._roundA=P(100*this._a)/100,this._format=d.format||e.format,this._gradientType=d.gradientType,this._r<1&&(this._r=P(this._r)),this._g<1&&(this._g=P(this._g)),this._b<1&&(this._b=P(this._b)),this._ok=e.ok,this._tc_id=O++}function c(a){var b={r:0,g:0,b:0},c=1,e=null,g=null,i=null,j=!1,k=!1;return"string"==typeof a&&(a=K(a)),"object"==typeof a&&(J(a.r)&&J(a.g)&&J(a.b)?(b=d(a.r,a.g,a.b),j=!0,k="%"===String(a.r).substr(-1)?"prgb":"rgb"):J(a.h)&&J(a.s)&&J(a.v)?(e=G(a.s),g=G(a.v),b=h(a.h,e,g),j=!0,k="hsv"):J(a.h)&&J(a.s)&&J(a.l)&&(e=G(a.s),i=G(a.l),b=f(a.h,e,i),j=!0,k="hsl"),a.hasOwnProperty("a")&&(c=a.a)),c=z(c),{ok:j,format:a.format||k,r:Q(255,R(b.r,0)),g:Q(255,R(b.g,0)),b:Q(255,R(b.b,0)),a:c}}function d(a,b,c){return{r:255*A(a,255),g:255*A(b,255),b:255*A(c,255)}}function e(a,b,c){a=A(a,255),b=A(b,255),c=A(c,255);var d,e,f=R(a,b,c),g=Q(a,b,c),h=(f+g)/2;if(f==g)d=e=0;else{var i=f-g;switch(e=h>.5?i/(2-f-g):i/(f+g),f){case a:d=(b-c)/i+(c>b?6:0);break;case b:d=(c-a)/i+2;break;case c:d=(a-b)/i+4}d/=6}return{h:d,s:e,l:h}}function f(a,b,c){function d(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}var e,f,g;if(a=A(a,360),b=A(b,100),c=A(c,100),0===b)e=f=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;e=d(i,h,a+1/3),f=d(i,h,a),g=d(i,h,a-1/3)}return{r:255*e,g:255*f,b:255*g}}function g(a,b,c){a=A(a,255),b=A(b,255),c=A(c,255);var d,e,f=R(a,b,c),g=Q(a,b,c),h=f,i=f-g;if(e=0===f?0:i/f,f==g)d=0;else{switch(f){case a:d=(b-c)/i+(c>b?6:0);break;case b:d=(c-a)/i+2;break;case c:d=(a-b)/i+4}d/=6}return{h:d,s:e,v:h}}function h(b,c,d){b=6*A(b,360),c=A(c,100),d=A(d,100);var e=a.floor(b),f=b-e,g=d*(1-c),h=d*(1-f*c),i=d*(1-(1-f)*c),j=e%6,k=[d,h,g,g,i,d][j],l=[i,d,d,h,g,g][j],m=[g,g,i,d,d,h][j];return{r:255*k,g:255*l,b:255*m}}function i(a,b,c,d){var e=[F(P(a).toString(16)),F(P(b).toString(16)),F(P(c).toString(16))];return d&&e[0].charAt(0)==e[0].charAt(1)&&e[1].charAt(0)==e[1].charAt(1)&&e[2].charAt(0)==e[2].charAt(1)?e[0].charAt(0)+e[1].charAt(0)+e[2].charAt(0):e.join("")}function j(a,b,c,d,e){var f=[F(P(a).toString(16)),F(P(b).toString(16)),F(P(c).toString(16)),F(H(d))];return e&&f[0].charAt(0)==f[0].charAt(1)&&f[1].charAt(0)==f[1].charAt(1)&&f[2].charAt(0)==f[2].charAt(1)&&f[3].charAt(0)==f[3].charAt(1)?f[0].charAt(0)+f[1].charAt(0)+f[2].charAt(0)+f[3].charAt(0):f.join("")}function k(a,b,c,d){var e=[F(H(d)),F(P(a).toString(16)),F(P(b).toString(16)),F(P(c).toString(16))];return e.join("")}function l(a,c){c=0===c?0:c||10;var d=b(a).toHsl();return d.s-=c/100,d.s=B(d.s),b(d)}function m(a,c){c=0===c?0:c||10;var d=b(a).toHsl();return d.s+=c/100,d.s=B(d.s),b(d)}function n(a){return b(a).desaturate(100)}function o(a,c){c=0===c?0:c||10;var d=b(a).toHsl();return d.l+=c/100,d.l=B(d.l),b(d)}function p(a,c){c=0===c?0:c||10;var d=b(a).toRgb();return d.r=R(0,Q(255,d.r-P(255*-(c/100)))),d.g=R(0,Q(255,d.g-P(255*-(c/100)))),d.b=R(0,Q(255,d.b-P(255*-(c/100)))),b(d)}function q(a,c){c=0===c?0:c||10;var d=b(a).toHsl();return d.l-=c/100,d.l=B(d.l),b(d)}function r(a,c){var d=b(a).toHsl(),e=(d.h+c)%360;return d.h=0>e?360+e:e,b(d)}function s(a){var c=b(a).toHsl();return c.h=(c.h+180)%360,b(c)}function t(a){var c=b(a).toHsl(),d=c.h;return[b(a),b({h:(d+120)%360,s:c.s,l:c.l}),b({h:(d+240)%360,s:c.s,l:c.l})]}function u(a){var c=b(a).toHsl(),d=c.h;return[b(a),b({h:(d+90)%360,s:c.s,l:c.l}),b({h:(d+180)%360,s:c.s,l:c.l}),b({h:(d+270)%360,s:c.s,l:c.l})]}function v(a){var c=b(a).toHsl(),d=c.h;return[b(a),b({h:(d+72)%360,s:c.s,l:c.l}),b({h:(d+216)%360,s:c.s,l:c.l})]}function w(a,c,d){c=c||6,d=d||30;var e=b(a).toHsl(),f=360/d,g=[b(a)];for(e.h=(e.h-(f*c>>1)+720)%360;--c;)e.h=(e.h+f)%360,g.push(b(e));return g}function x(a,c){c=c||6;for(var d=b(a).toHsv(),e=d.h,f=d.s,g=d.v,h=[],i=1/c;c--;)h.push(b({h:e,s:f,v:g})),g=(g+i)%1;return h}function y(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[a[c]]=c);return b}function z(a){return a=parseFloat(a),(isNaN(a)||0>a||a>1)&&(a=1),a}function A(b,c){D(b)&&(b="100%");var d=E(b);return b=Q(c,R(0,parseFloat(b))),d&&(b=parseInt(b*c,10)/100),a.abs(b-c)<1e-6?1:b%c/parseFloat(c)}function B(a){return Q(1,R(0,a))}function C(a){return parseInt(a,16)}function D(a){return"string"==typeof a&&-1!=a.indexOf(".")&&1===parseFloat(a)}function E(a){return"string"==typeof a&&-1!=a.indexOf("%")}function F(a){return 1==a.length?"0"+a:""+a}function G(a){return 1>=a&&(a=100*a+"%"),a}function H(b){return a.round(255*parseFloat(b)).toString(16)}function I(a){return C(a)/255}function J(a){return!!V.CSS_UNIT.exec(a)}function K(a){a=a.replace(M,"").replace(N,"").toLowerCase();var b=!1;if(T[a])a=T[a],b=!0;else if("transparent"==a)return{r:0,g:0,b:0,a:0,format:"name"};var c;return(c=V.rgb.exec(a))?{r:c[1],g:c[2],b:c[3]}:(c=V.rgba.exec(a))?{r:c[1],g:c[2],b:c[3],a:c[4]}:(c=V.hsl.exec(a))?{h:c[1],s:c[2],l:c[3]}:(c=V.hsla.exec(a))?{h:c[1],s:c[2],l:c[3],a:c[4]}:(c=V.hsv.exec(a))?{h:c[1],s:c[2],v:c[3]}:(c=V.hsva.exec(a))?{h:c[1],s:c[2],v:c[3],a:c[4]}:(c=V.hex8.exec(a))?{r:C(c[1]),g:C(c[2]),b:C(c[3]),a:I(c[4]),format:b?"name":"hex8"}:(c=V.hex6.exec(a))?{r:C(c[1]),g:C(c[2]),b:C(c[3]),format:b?"name":"hex"}:(c=V.hex4.exec(a))?{r:C(c[1]+""+c[1]),g:C(c[2]+""+c[2]),b:C(c[3]+""+c[3]),a:I(c[4]+""+c[4]),format:b?"name":"hex8"}:(c=V.hex3.exec(a))?{r:C(c[1]+""+c[1]),g:C(c[2]+""+c[2]),b:C(c[3]+""+c[3]),format:b?"name":"hex"}:!1}function L(a){var b,c;return a=a||{level:"AA",size:"small"},b=(a.level||"AA").toUpperCase(),c=(a.size||"small").toLowerCase(),"AA"!==b&&"AAA"!==b&&(b="AA"),"small"!==c&&"large"!==c&&(c="small"),{level:b,size:c}}var M=/^\s+/,N=/\s+$/,O=0,P=a.round,Q=a.min,R=a.max,S=a.random;b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var a=this.toRgb();return(299*a.r+587*a.g+114*a.b)/1e3},getLuminance:function(){var b,c,d,e,f,g,h=this.toRgb();return b=h.r/255,c=h.g/255,d=h.b/255,e=.03928>=b?b/12.92:a.pow((b+.055)/1.055,2.4),f=.03928>=c?c/12.92:a.pow((c+.055)/1.055,2.4),g=.03928>=d?d/12.92:a.pow((d+.055)/1.055,2.4),.2126*e+.7152*f+.0722*g},setAlpha:function(a){return this._a=z(a),this._roundA=P(100*this._a)/100,this},toHsv:function(){var a=g(this._r,this._g,this._b);return{h:360*a.h,s:a.s,v:a.v,a:this._a}},toHsvString:function(){var a=g(this._r,this._g,this._b),b=P(360*a.h),c=P(100*a.s),d=P(100*a.v);return 1==this._a?"hsv("+b+", "+c+"%, "+d+"%)":"hsva("+b+", "+c+"%, "+d+"%, "+this._roundA+")"},toHsl:function(){var a=e(this._r,this._g,this._b);return{h:360*a.h,s:a.s,l:a.l,a:this._a}},toHslString:function(){var a=e(this._r,this._g,this._b),b=P(360*a.h),c=P(100*a.s),d=P(100*a.l);return 1==this._a?"hsl("+b+", "+c+"%, "+d+"%)":"hsla("+b+", "+c+"%, "+d+"%, "+this._roundA+")"},toHex:function(a){return i(this._r,this._g,this._b,a)},toHexString:function(a){return"#"+this.toHex(a)},toHex8:function(a){return j(this._r,this._g,this._b,this._a,a)},toHex8String:function(a){return"#"+this.toHex8(a)},toRgb:function(){return{r:P(this._r),g:P(this._g),b:P(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+P(this._r)+", "+P(this._g)+", "+P(this._b)+")":"rgba("+P(this._r)+", "+P(this._g)+", "+P(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:P(100*A(this._r,255))+"%",g:P(100*A(this._g,255))+"%",b:P(100*A(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+P(100*A(this._r,255))+"%, "+P(100*A(this._g,255))+"%, "+P(100*A(this._b,255))+"%)":"rgba("+P(100*A(this._r,255))+"%, "+P(100*A(this._g,255))+"%, "+P(100*A(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":this._a<1?!1:U[i(this._r,this._g,this._b,!0)]||!1},toFilter:function(a){var c="#"+k(this._r,this._g,this._b,this._a),d=c,e=this._gradientType?"GradientType = 1, ":"";if(a){var f=b(a);d="#"+k(f._r,f._g,f._b,f._a)}return"progid:DXImageTransform.Microsoft.gradient("+e+"startColorstr="+c+",endColorstr="+d+")"},toString:function(a){var b=!!a;a=a||this._format;var c=!1,d=this._a<1&&this._a>=0,e=!b&&d&&("hex"===a||"hex6"===a||"hex3"===a||"hex4"===a||"hex8"===a||"name"===a);return e?"name"===a&&0===this._a?this.toName():this.toRgbString():("rgb"===a&&(c=this.toRgbString()),"prgb"===a&&(c=this.toPercentageRgbString()),("hex"===a||"hex6"===a)&&(c=this.toHexString()),"hex3"===a&&(c=this.toHexString(!0)),"hex4"===a&&(c=this.toHex8String(!0)),"hex8"===a&&(c=this.toHex8String()),"name"===a&&(c=this.toName()),"hsl"===a&&(c=this.toHslString()),"hsv"===a&&(c=this.toHsvString()),c||this.toHexString())},clone:function(){return b(this.toString())},_applyModification:function(a,b){var c=a.apply(null,[this].concat([].slice.call(b)));return this._r=c._r,this._g=c._g,this._b=c._b,this.setAlpha(c._a),this},lighten:function(){return this._applyModification(o,arguments)},brighten:function(){return this._applyModification(p,arguments)},darken:function(){return this._applyModification(q,arguments)},desaturate:function(){return this._applyModification(l,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(n,arguments)},spin:function(){return this._applyModification(r,arguments)},_applyCombination:function(a,b){return a.apply(null,[this].concat([].slice.call(b)))},analogous:function(){return this._applyCombination(w,arguments)},complement:function(){return this._applyCombination(s,arguments)},monochromatic:function(){return this._applyCombination(x,arguments)},splitcomplement:function(){return this._applyCombination(v,arguments)},triad:function(){return this._applyCombination(t,arguments)},tetrad:function(){return this._applyCombination(u,arguments)}},b.fromRatio=function(a,c){if("object"==typeof a){var d={};for(var e in a)a.hasOwnProperty(e)&&("a"===e?d[e]=a[e]:d[e]=G(a[e]));a=d}return b(a,c)},b.equals=function(a,c){return a&&c?b(a).toRgbString()==b(c).toRgbString():!1},b.random=function(){return b.fromRatio({r:S(),g:S(),b:S()})},b.mix=function(a,c,d){d=0===d?0:d||50;var e=b(a).toRgb(),f=b(c).toRgb(),g=d/100,h={r:(f.r-e.r)*g+e.r,g:(f.g-e.g)*g+e.g,b:(f.b-e.b)*g+e.b,a:(f.a-e.a)*g+e.a};return b(h)},b.readability=function(c,d){var e=b(c),f=b(d);return(a.max(e.getLuminance(),f.getLuminance())+.05)/(a.min(e.getLuminance(),f.getLuminance())+.05)},b.isReadable=function(a,c,d){var e,f,g=b.readability(a,c);switch(f=!1,e=L(d),e.level+e.size){case"AAsmall":case"AAAlarge":f=g>=4.5;break;case"AAlarge":f=g>=3;break;case"AAAsmall":f=g>=7}return f},b.mostReadable=function(a,c,d){var e,f,g,h,i=null,j=0;d=d||{},f=d.includeFallbackColors,g=d.level,h=d.size;for(var k=0;kj&&(j=e,i=b(c[k]));return b.isReadable(a,i,{level:g,size:h})||!f?i:(d.includeFallbackColors=!1,b.mostReadable(a,["#fff","#000"],d))};var T=b.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},U=b.hexNames=y(T),V=function(){var a="[-\\+]?\\d+%?",b="[-\\+]?\\d*\\.\\d+%?",c="(?:"+b+")|(?:"+a+")",d="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?",e="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?";return{CSS_UNIT:new RegExp(c),rgb:new RegExp("rgb"+d),rgba:new RegExp("rgba"+e),hsl:new RegExp("hsl"+d),hsla:new RegExp("hsla"+e),hsv:new RegExp("hsv"+d),hsva:new RegExp("hsva"+e),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):window.tinycolor=b}(Math); diff --git a/data_node_red/node_modules/node-red-dashboard/fixfa.js b/data_node_red/node_modules/node-red-dashboard/fixfa.js new file mode 100644 index 0000000..fe185a3 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/fixfa.js @@ -0,0 +1,43 @@ +#!/usr/bin/env node + +// Patch to fix Font-Awesome urls for loading font +// and to add in fa-sm(all) and fa-xs(extra small) modifiers +var fs = require("fs"); +fs.readFile("node_modules/font-awesome/css/font-awesome.css", 'utf8', function (err, file) { + if (err) { return; } + else { + console.log("Fixing up Font-Awesome css"); + var res1 = file.replace(/\?v=4\.7\../g, ''); + var res2 = res1.replace(/\&v=4\.7\../g, ''); + var res3; + if (res2.indexOf("fa-sm ") === -1) { + res3 = res2.replace(/fa-lg/, 'fa-sm {font-size:0.875em;}\n.fa-xs {font-size:0.75em;}\n.fa-lg'); + } + else { res3 = res2; } + fs.writeFile("node_modules/font-awesome/css/font-awesome.css", res3, 'utf8', function (err) { + if (err) { console.log("Failed to re-write file."); } + else { + console.log("Fixed up Font-Awesome css"); + } + }); + } +}); + +// Google-Material-Font +// Fix relative path of fonts from `./fonts/` to `../fonts/` in css file. +fs.readFile('node_modules/material-design-icons-iconfont/dist/material-design-icons.css', 'utf8', function (err, file) { + if (err) { return; } + else { + console.log('Fixing up Google-Material-Font css'); + const res1 = file + .replace(/"\.\/fonts\//g, '"../fonts/') + .replace(/'\.\/fonts\//g, '\'../fonts/'); + fs.writeFile('node_modules/material-design-icons-iconfont/dist/material-design-icons.css', res1, 'utf8', function (err) { + if (err) { + console.log('Failed to re-write file.'); + } else { + console.log('Fixed up Google-Material-Font css'); + } + }); + } +}); diff --git a/data_node_red/node_modules/node-red-dashboard/gulpfile.old b/data_node_red/node_modules/node-red-dashboard/gulpfile.old new file mode 100644 index 0000000..2e4daf4 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/gulpfile.old @@ -0,0 +1,161 @@ + +var + gulp = require('gulp'), + concat = require('gulp-concat'), + eol = require('gulp-eol'), + exec = require('child_process').exec, + fs = require('fs'), + ghtmlSrc = require('gulp-html-src'), + gulpif = require('gulp-if'), + gutil = require('gulp-util'), + header = require("gulp-header"), + htmlreplace = require('gulp-html-replace'), + jscs = require('gulp-jscs'), + jshint = require('gulp-jshint'), + manifest = require('gulp-manifest'), + minifyCss = require('gulp-clean-css'), + minifyHTML = require('gulp-htmlmin'), + path = require('path'), + replace = require('gulp-replace'), + streamqueue = require('streamqueue'), + templateCache = require('gulp-angular-templatecache'), + uglify = require('gulp-uglify'), + sass = require('gulp-sass'), + rename = require('gulp-rename'); + +//gulp.task('default', ['manifest']); +gulp.task('default', ['lint','jscs'], function() { + gulp.start('manifest'); + //gulp.start('build'); +}); + +gulp.task('build', ['icon', 'js', 'css', 'less', 'index', 'fonts', 'gridstack']); + +gulp.task('manifest', ['build'], function() { + gulp.src(['dist/*','dist/css/*','dist/js/*','dist/fonts/*'], { base: 'dist/' }) + .pipe(manifest({ + hash: true, + //preferOnline: true, + network: ['*'], + filename: 'dashboard.appcache', + // exclude: 'dashboard.appcache' + exclude: ['dashboard.appcache','index.html'] + })) + .pipe(replace('tinycolor-min.js', 'tinycolor-min.js\nsocket.io/socket.io.js')) + .pipe(eol('\n')) + .pipe(gulp.dest('dist/')); +}); + +gulp.task('lint', function() { + return gulp.src('**/*.js') + .pipe(jshint('.jshintrc')) + .pipe(jshint.reporter('default')) + .pipe(jshint.reporter('fail')); +}); + +gulp.task('jscs', function() { + return gulp.src(['*.js','nodes/*.js','src/*.js','src/*/*.js','src/*/*/*.js']) + .pipe(jscs()) + //.pipe(jscs({fix: true})) + .pipe(jscs.reporter("inline")) +}); + +gulp.task('index', function() { + return gulp.src('src/index.html') + .pipe(htmlreplace({ + 'css': 'css/app.min.css', + 'js': 'js/app.min.js', + 'less': '' + })) + .pipe(minifyHTML({collapseWhitespace:true, conservativeCollapse:true})) + .pipe(eol('\n')) + .pipe(gulp.dest('dist/')); +}); + +gulp.task('icon', function() { + // gulp.src('src/wheel.png').pipe(gulp.dest('dist/css/')); + gulp.src('src/icon192x192.png').pipe(gulp.dest('dist/')); + gulp.src('src/icon120x120.png').pipe(gulp.dest('dist/')); + return gulp.src('src/icon64x64.png').pipe(gulp.dest('dist/')); +}); + +gulp.task('fonts', function() { + //return gulp.src('node_modules/font-awesome/fonts/*').pipe(gulp.dest('dist/fonts/')); + gulp.src('node_modules/font-awesome/fonts/fontawesome-webfont.woff').pipe(gulp.dest('dist/fonts/')); + gulp.src('node_modules/weather-icons-lite/fonts/weather-icons-lite.woff').pipe(gulp.dest('dist/fonts/')); + gulp.src('node_modules/font-awesome/fonts/fontawesome-webfont.woff2').pipe(gulp.dest('dist/fonts/')); + gulp.src('node_modules/weather-icons-lite/fonts/weather-icons-lite.woff2').pipe(gulp.dest('dist/fonts/')); + return; +}); + +gulp.task('js', function () { + var scripts = gulp.src('src/index.html') + .pipe(ghtmlSrc({getFileName:getFileName.bind(this, 'src')})); + + var templates = gulp.src(['src/**/*.html', '!src/index.html']) + .pipe(minifyHTML({collapseWhitespace:true, conservativeCollapse:true})) + .pipe(templateCache('templates.js', {root:'', module:'ui'})); + + var tiny = gulp.src('node_modules/tinycolor2/dist/tinycolor-min.js') + .pipe(eol('\n')) + .pipe(gulp.dest('./dist/js')); + + var i18n = gulp.src('src/i18n.js') + .pipe(eol('\n')) + .pipe(gulp.dest('dist/')); + + return streamqueue({ objectMode:true }, scripts, templates) + .pipe(gulpif(/[.]min[.]js$/, gutil.noop(), uglify())) + .pipe(concat('app.min.js')) + .pipe(header(fs.readFileSync('license.js'))) + .pipe(eol('\n')) + .pipe(gulp.dest('dist/js/')); +}); + +gulp.task('css', function () { + exec('node fixfa.js', function (err, stdout, stderr) { + if (err) { + console.log(stdout); + console.log(stderr); + } + }); + + return gulp.src('src/index.html') + .pipe(ghtmlSrc({getFileName:getFileName.bind(this, 'href'), presets:'css'})) + .pipe(minifyCss({compatibility:'ie8'})) + .pipe(concat('app.min.css')) + .pipe(header(fs.readFileSync('license.js'))) + .pipe(eol('\n')) + .pipe(gulp.dest('dist/css/')); +}); + +gulp.task('less', function() { + return gulp.src(['src/*.less']) + .pipe(concat('app.min.less')) + .pipe(header(fs.readFileSync('license.js'))) + .pipe(eol('\n')) + .pipe(gulp.dest('./dist/css')); +}); + +gulp.task('gridstack', function() { + gulp.src('node_modules/gridstack/dist/gridstack.min.css').pipe(gulp.dest('dist/css/')); + gulp.src('node_modules/gridstack/dist/gridstack.jQueryUI.min.js').pipe(gulp.dest('dist/js/')); + gulp.src('node_modules/gridstack/dist/gridstack.min.js').pipe(gulp.dest('dist/js/')); + gulp.src('node_modules/gridstack/dist/gridstack.min.map').pipe(gulp.dest('dist/js/')); + gulp.src('node_modules/lodash/lodash.min.js').pipe(gulp.dest('dist/js/')); + gulp.src('node_modules/gridstack/src/gridstack-extra.scss') + .pipe(replace('$gridstack-columns: 12 !default;','$gridstack-columns: 30;')) + .pipe(sass({outputStyle: 'compressed'})) + .pipe(rename({extname: '.min.css'})) + .pipe(gulp.dest('dist/css')) + return; +}); + +var vendorPrefix = "vendor/"; +function getFileName(attr, node) { + var file = node.attr(attr); + if (file.indexOf(vendorPrefix) === 0) { + file = path.join("..", "node_modules", file.substr(vendorPrefix.length)); + } + return file; +} diff --git a/data_node_red/node_modules/node-red-dashboard/index.js b/data_node_red/node_modules/node-red-dashboard/index.js new file mode 100644 index 0000000..1240e89 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/index.js @@ -0,0 +1,142 @@ +/** + * Copyright JS Foundation and other contributors, http://js.foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ + +var ui = null; + +function init(RED) { + if (!ui) { + ui = require("./ui")(RED); + } +} + +/* addWidget: + - options + - RED: RED object + - options: options to create dashboard widget + * [node] - the node that represents the control on a flow + * format - HTML code of widget + * [group] - group name (optional if templateScope = 'global') + * [width] - width of widget (default automatic) + * [height] - height of widget (default automatic) + * [order] - property to hold the placement order of the widget (default 0) + * [templateScope] - scope of widget/global or local (default local) + * [emitOnlyNewValues] - boolean (default true). + If true, it checks if the payload changed before sending it + to the front-end. If the payload is the same no message is sent. + * [forwardInputMessages] - boolean (default true). + If true, forwards input messages to the output + * [storeFrontEndInputAsState] - boolean (default true). + If true, any message received from front-end is stored as state + [persistantFrontEndValue] - boolean (default true). + If true, last received message is send again when front end reconnect. + * [convert] - callback to convert the value before sending it to the front-end + * [beforeEmit] - callback to prepare the message that is emitted to the front-end + * [convertBack] - callback to convert the message from front-end before sending it to the next connected node + * [beforeSend] - callback to prepare the message that is sent to the output + * [initController] - callback to initialize in controller +*/ + +function addWidget(RED, options) { + var is_local = (options.templateScope !== "global"); + var group = null; + var tab = null; + init(RED); + + var ui_control = { + type: "template", + order: options.order, + format: options.format, + class: "nr-dashboard-"+(options.node.type || "template-blank") + }; + + var node = options.node; + + if (isNaN(options.order)) { + node.warn("*** Order property not set. Please contact developer. ***"); + } + + if (is_local) { + group = RED.nodes.getNode(options.group); + tab = RED.nodes.getNode(group.config.tab); + ui_control.width = options.hasOwnProperty("width") ? options.width : group.config.width; + ui_control.height = options.hasOwnProperty("height") ? options.height : 0; + } + else { + node = { + id: "-dummy-", + on: function() {} + }; + } + ui_control.templateScope = options.hasOwnProperty("templateScope") ? options.templateScope : "local"; + var ui_options = { + node: node, + control: ui_control + } + if (is_local) { + ui_options.group = group; + ui_options.tab = tab; + } + if (options.hasOwnProperty("emitOnlyNewValues")) { + ui_options.emitOnlyNewValues = options.emitOnlyNewValues; + } + if (options.hasOwnProperty("forwardInputMessages")) { + ui_options.forwardInputMessages = options.forwardInputMessages; + } + if (options.hasOwnProperty("storeFrontEndInputAsState")) { + ui_options.storeFrontEndInputAsState = options.storeFrontEndInputAsState; + } + if (options.hasOwnProperty("persistantFrontEndValue")) { + ui_options.persistantFrontEndValue = options.persistantFrontEndValue; + } + if (options.hasOwnProperty("convert")) { + ui_options.convert = options.convert; + } + if (options.hasOwnProperty("beforeEmit")) { + ui_options.beforeEmit = options.beforeEmit; + } + if (options.hasOwnProperty("convertBack")) { + ui_options.convertBack = options.convertBack; + } + if (options.hasOwnProperty("beforeSend")) { + ui_options.beforeSend = options.beforeSend; + } + if (options.hasOwnProperty("initController")) { + ui_control.initController = options.initController.toString(); + } + return ui.add(ui_options); +} + +/* getSizes: + returns the grid size in pixels + default - { sx: 48, sy: 48, gx: 6, gy: 6, cx: 6, cy: 6, px: 0, py: 0 } +*/ + +/* getTheme: + returns the current theme object +*/ + +/* isDark: + returns true or false if the dahsboard theme background is dark or light. +*/ + +module.exports = function (RED) { + return { + addWidget: function (options) { return addWidget(RED, options); }, + getSizes: function() { return require("./ui")(RED).getSizes(); }, + getTheme: function() { return require("./ui")(RED).getTheme(); }, + isDark: function() { return require("./ui")(RED).isDark(); } + }; +}; diff --git a/data_node_red/node_modules/node-red-dashboard/license.js b/data_node_red/node_modules/node-red-dashboard/license.js new file mode 100644 index 0000000..9b0d602 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/license.js @@ -0,0 +1,17 @@ +/* */ +/* Copyright 2016,2020 JS Foundation and other contributors, https://js.foundation/ */ +/* Copyright 2016 IBM Corp. */ +/* Copyright 2015 Andrei Tatar */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* */ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_button.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_button.png new file mode 100644 index 0000000..add7645 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_button.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_chart.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_chart.png new file mode 100644 index 0000000..93e7e14 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_chart.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_colour_picker.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_colour_picker.png new file mode 100644 index 0000000..a3eec52 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_colour_picker.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_date_picker.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_date_picker.png new file mode 100644 index 0000000..a94b50b Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_date_picker.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_dropdown.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_dropdown.png new file mode 100644 index 0000000..cd0fc33 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_dropdown.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_form.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_form.png new file mode 100644 index 0000000..c7198ad Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_form.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_gauge.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_gauge.png new file mode 100644 index 0000000..9a2ae87 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_gauge.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_numeric.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_numeric.png new file mode 100644 index 0000000..69a6d6e Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_numeric.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_slider.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_slider.png new file mode 100644 index 0000000..86b485b Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_slider.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_switch.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_switch.png new file mode 100644 index 0000000..abe47c4 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_switch.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_template.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_template.png new file mode 100644 index 0000000..0e5ff11 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_template.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_text.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_text.png new file mode 100644 index 0000000..3638c00 Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_text.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_toast.png b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_toast.png new file mode 100644 index 0000000..6a4e73f Binary files /dev/null and b/data_node_red/node_modules/node-red-dashboard/nodes/icons/ui_toast.png differ diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_base.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_base.json new file mode 100644 index 0000000..d59da6b --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_base.json @@ -0,0 +1,100 @@ +{ + "ui_base": { + "label": { + "dashboard": "Dashboard", + "category": "Dashboard", + "title": "Titel", + "options": "Optionen", + "date-format": "Datumsformat", + "sizes": "Gr枚脽en", + "horizontal": "Horizontal", + "vertical": "Vertikal", + "widget-size": "1x1 Widget-Gr枚脽e", + "widget-spacing": "Widget-Abst盲nde", + "group-padding": "Gruppenabst盲nde innen", + "group-spacing": "Gruppenabst盲nde au脽en", + "layout": "Layout", + "angular": "Angular", + "theme": "Theme", + "site": "Site" + }, + "auto": "Auto", + "title": "Node-RED Dashboard", + "layout": { + "tab-and-link": "Tabs & Links", + "tab": "Tab", + "link": "Link", + "group": "Gruppe", + "edit": "Bearbeiten", + "spacer": "Abstand", + "layout": "Layout", + "layout-editor": "Dashboard Layout-Editor", + "width": "Breite", + "auto": "Automatische Gr枚脽enanpassung", + "manual": "Manuelle Gr枚脽enanpassung" + }, + "theme": { + "style": "Stil", + "custom-profile": "Benutzerdefiniertes Profil", + "custom-profile-name": "Erscheinungsbild ohne Titel 1", + "base-settings": "Basiseinstellungen", + "page-settings": "Seiteneinstellungen", + "page": { + "title": "Hintergrund Titelleiste", + "page": "Hintergrund Seite", + "side": "Hintergrund Seitenleiste" + }, + "group-settings": "Gruppeneinstellungen", + "group": { + "text": "Gruppentext", + "border": "Gruppenrand", + "background": "Gruppenhintergrund" + }, + "widget-settings": "Widget-Einstellungen", + "widget": { + "text": "Widget-Text", + "colour": "Widget-Farbe", + "background": "Widget-Hintergrund" + } + }, + "style": { + "light": "Hell (Standard)", + "dark": "Dunkel", + "custom": "Benutzerdefiniert", + "primary": "Prim盲r", + "accents": "Akzente", + "background": "Hintergrund", + "warnings": "Warnungen", + "palette": "Hell / Dunkel" + }, + "base": { + "colour": "Farbe", + "font": "Schriftart" + }, + "font": { + "system": "System-Schriftart (Standard)" + }, + "site": { + "title": "Node-RED Dashboard", + "date-format": "DD.MM.YYYY" + }, + "title-bar": { + "show": "Titelleiste anzeigen", + "hide": "Titelleiste verbergen" + }, + "swipe": { + "no-swipe": "Kein Wischen zwischen Tabs", + "allow-swipe": "Wischen zwischen Tabs zulassen" + }, + "lock": { + "clicked": "Klicken, um das Seitenmen眉 anzuzeigen", + "locked": "Seitenmen眉 immer anzeigen", + "locked-icon": "Nur Icons anzeigen" + }, + "temp": { + "allow-theme": "Node-RED-Erscheinungsbild", + "no-theme": "Angular-Erscheinungsbild in ui_template", + "none": "Angular-Erscheinungsbild" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_button.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_button.json new file mode 100644 index 0000000..083b320 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_button.json @@ -0,0 +1,22 @@ +{ + "ui_button": { + "label": { + "group": "Gruppe", + "size": "Gr枚脽e", + "icon": "Icon", + "optionalIcon": "Optionales Icon", + "label": "Beschriftung", + "optionalLabel": "Optionale Beschriftung", + "tooltip": "Tooltipp", + "optionalTooltip": "Optionaler Tooltipp", + "color": "Farbe", + "optionalColor": "Optionale Text/Icon-Farbe", + "background": "Hintergrund", + "optionalBackgroundColor": "Optionale Hintergrundfarbe", + "whenClicked": "Sende beim Klicken:", + "payload": "Payload", + "topic": "Topic", + "emulateClick": "Emuliere einen Klick bei einer eingehenden Nachricht:" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.html new file mode 100644 index 0000000..19a54d6 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.html @@ -0,0 +1,24 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.json new file mode 100644 index 0000000..7892321 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_chart.json @@ -0,0 +1,54 @@ +{ + "ui_chart": { + "label": { + "group": "Gruppe", + "size": "Gr枚脽e", + "label": "Beschriftung", + "optionalChartTitle": "Optionaler Diagrammtitel", + "type": "Typ", + "lineChart": "  Liniendiagramm", + "barChart": "  Balkendiagramm", + "barChartH": "  Balkendiagramm (H)", + "pieChart": "  Kreisdiagramm", + "polarAreaChart": "  Polargebietskarte", + "radarChart": "  Radarkarte", + "enlargePoints": "Punkte vergr枚脽ern", + "xAxis": "X-Achse", + "last": "Letzten", + "seconds": "Sekunden", + "minutes": "Minuten", + "hours": "Stunden", + "days": "Tage", + "weeks": "Wochen", + "or": "oder", + "points": "Punkte", + "xAxisLabel": "X-Beschriftung", + "HHmmss": "HH:mm:ss", + "HHmm": "HH:mm", + "yearMonthDate": "Jahr-Monat-Tag", + "dateMonth": "Tag/Monat", + "dayHHmm": "Wochentag HH:mm", + "custom": "benutzerdefiniert", + "automatic": "automatisch", + "asUTC": "als UTC", + "yAxis": "Y-Achse", + "min": "min", + "max": "max", + "legend": "Legende", + "none": "Keine", + "show": "Anzeigen", + "interpolate": "Interpolation", + "linear": "Linear", + "step": "Stufen", + "bezier": "Bezier", + "cubic": "Kubisch", + "cubicMono": "Kubisch-Mono", + "cutout": "Ausschnitt", + "useFirstColourForAllBars": "Erste Farbe f眉r alle Balken verwenden", + "seriesColours": "Serienfarben", + "blankLabel": "Leer-Text", + "displayThisTextBeforeValidDataArrives": "Anzuzeigender Text bevor g眉ltige Daten eintreffen", + "useDifferentColor": "Unterschiedliche Farben f眉r Datenserie verwenden" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.html new file mode 100644 index 0000000..e9ebb79 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.html @@ -0,0 +1,17 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.json new file mode 100644 index 0000000..7522afb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_form.json @@ -0,0 +1,33 @@ +{ + "ui_form": { + "label": { + "group": "Gruppe", + "size": "Gr枚脽e", + "label": "Beschriftung", + "optionalLabel": "Optionale Beschriftung", + "formElements": "Formular- elemente", + "type": "Typ", + "required": "Erforderlich", + "rows": "UiZeilen", + "remove": "Entfernen", + "egName": "z.B. Name", + "egName2": "z.B. Name", + "text": "Text", + "multiline": "Mehrzeilig", + "number": "Zahl", + "email": "E-Mail", + "password": "Kennwort", + "checkbox": "Auswahlk盲stchen", + "switch": "Schalter", + "date": "Datum", + "time": "Zeit", + "element": "Element", + "buttons": "Schaltfl盲chen", + "submitButtonText": "Text Absenden-Schaltfl盲che", + "cancelButtonText": "Text Abbrechen-Schaltfl盲che", + "topic": "Topic", + "optionalMsgTopic": "Optionaler msg.topic", + "splitLayout": "Platzieren sie die formularelemente in 2 spalten" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_group.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_group.json new file mode 100644 index 0000000..a8a449f --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_group.json @@ -0,0 +1,14 @@ +{ + "ui_group": { + "label": { + "name": "Name", + "tab": "Tab", + "width": "Breite", + "default": "Standard", + "group": "Gruppe", + "unassigned": "nicht zugewiesen" + }, + "display-name": "Gruppenname anzeigen", + "collapse-name": "Gruppenreduzierung zulassen" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_link.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_link.json new file mode 100644 index 0000000..608c4f3 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_link.json @@ -0,0 +1,14 @@ +{ + "ui_link": { + "label": { + "name": "Name", + "link": "Link", + "icon": "Icon", + "open-in": "脰ffnen im", + "new-tab": "neuen Tab", + "this-tab": "selben Tab", + "iframe": "iframe" + }, + "tip": "Das Icon kann entweder ein Material-Design-Icon (z.B. check oder close), ein Font-Awesome-Icon (z.B. fa-fire) oder ein Wetter-Icon (z.B. wi-wu-sunny) sein.

Des Weiteren k枚nnen alle Google-Material-Icons verwendet werden, indem dem Icon-Namen mi- vorangestellt wird (z.B. mi-videogame_asset).

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_tab.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_tab.json new file mode 100644 index 0000000..bddeb8e --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_tab.json @@ -0,0 +1,21 @@ +{ + "ui_tab": { + "label": { + "home": "Home", + "tab": "Tab", + "name": "Name", + "icon": "Icon", + "state": "Status", + "navmenu": "Nav. Men眉", + "enabled": "Aktiviert", + "disabled": "Deaktivert", + "visible": "Sichtbar", + "hidden": "Versteckt" + }, + "info": { + "disabled": " Tab im Dashboard deaktiviert.", + "hidden": " Tab im Nav.-Men眉 versteckt." + }, + "tip": "Das Icon kann entweder ein Material-Design-Icon (z.B. check oder close), ein Font-Awesome-Icon (z.B. fa-fire) oder ein Wetter-Icon (z.B. wi-wu-sunny) sein.

Des Weiteren k枚nnen alle Google-Material-Icons verwendet werden, indem dem Icon-Namen mi- vorangestellt wird (z.B. mi-videogame_asset).

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.html new file mode 100644 index 0000000..1d59f82 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.html @@ -0,0 +1,47 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.json new file mode 100644 index 0000000..0c9a504 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_template.json @@ -0,0 +1,17 @@ +{ + "ui_template": { + "label": { + "type": "Vorlagentyp", + "local": "Widget in Gruppe", + "global": "Hinzugef眉gt zur -Sektion der Seite", + "group": "Gruppe", + "size": "Gr枚脽e", + "name": "Name", + "pass-through": "Nachrichten vom Eingang weiterleiten", + "store-state": "Ausgehende Nachrichten speichern", + "template": "Vorlage", + "expand": "Erweitern", + "resend": "Letzten Wert beim Aktualisieren neuladen" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.html new file mode 100644 index 0000000..3216b6b --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.html @@ -0,0 +1,29 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.json new file mode 100644 index 0000000..7a75486 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/de/ui_ui_control.json @@ -0,0 +1,10 @@ +{ + "ui_ui_control": { + "label": { + "name": "Name" + }, + "placeholder": { + "name": "Name" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_audio.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_audio.html new file mode 100644 index 0000000..5173d72 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_audio.html @@ -0,0 +1,16 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.html new file mode 100644 index 0000000..fa51334 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.html @@ -0,0 +1,2 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.json new file mode 100644 index 0000000..69db46f --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_base.json @@ -0,0 +1,100 @@ +{ + "ui_base": { + "label": { + "dashboard": "dashboard", + "category": "dashboard", + "title": "Title", + "options": "Options", + "date-format": "Date Format", + "sizes": "Sizes", + "horizontal": "Horizontal", + "vertical": "Vertical", + "widget-size": "1x1 Widget Size", + "widget-spacing": "Widget Spacing", + "group-padding": "Group Padding", + "group-spacing": "Group Spacing", + "layout": "Layout", + "angular": "Angular", + "theme": "Theme", + "site": "Site" + }, + "auto": "auto", + "title": "Node-RED Dashboard", + "layout": { + "tab-and-link": "Tabs & Links", + "tab": "tab", + "link": "link", + "group": "group", + "edit": "edit", + "spacer": "spacer", + "layout": "layout", + "layout-editor": "Dashboard layout editor", + "width": "Width", + "auto": "auto-sizing", + "manual": "manual resize" + }, + "theme": { + "style": "Style", + "custom-profile": "Custom Profile", + "custom-profile-name": "Untitled Theme 1", + "base-settings": "Base Settings", + "page-settings": "Page Settings", + "page": { + "title": "Title Bar Background", + "page": "Page Background", + "side": "Side Bar Background" + }, + "group-settings": "Group Settings", + "group": { + "text": "Group Text", + "border": "Group Border", + "background": "Group Background" + }, + "widget-settings": "Widget Settings", + "widget": { + "text": "Widget Text", + "colour": "Widget Colour", + "background": "Widget Background" + } + }, + "style": { + "light": "Light (default)", + "dark": "Dark", + "custom": "Custom", + "primary": "Primary", + "accents": "Accents", + "background": "Background", + "warnings": "Warnings", + "palette": "Light / Dark" + }, + "base": { + "colour": "Colour", + "font": "Font" + }, + "font": { + "system": "System Font (default)" + }, + "site": { + "title": "Node-RED Dashboard", + "date-format": "DD/MM/YYYY" + }, + "title-bar": { + "show": "Show the title bar", + "hide": "Hide the title bar" + }, + "swipe": { + "no-swipe": "No swipe between tabs", + "allow-swipe": "Allow swipe between tabs" + }, + "lock": { + "clicked": "Click to show side menu", + "locked": "Always show side menu", + "locked-icon": "Always show icons only" + }, + "temp": { + "allow-theme": "Node-RED theme everywhere", + "no-theme": "Use Angular theme in ui_template", + "none": "Angular theme everywhere" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.html new file mode 100644 index 0000000..91e4928 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.html @@ -0,0 +1,19 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.json new file mode 100644 index 0000000..cd29db5 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_button.json @@ -0,0 +1,22 @@ +{ + "ui_button": { + "label": { + "group": "Group", + "size": "Size", + "icon": "Icon", + "optionalIcon": "optional icon", + "label": "Label", + "optionalLabel": "optional label", + "tooltip": "Tooltip", + "optionalTooltip": "optional tooltip", + "color": "Color", + "optionalColor": "optional text/icon color", + "background": "Background", + "optionalBackgroundColor": "optional background color", + "whenClicked": "When clicked, send:", + "payload": "Payload", + "topic": "Topic", + "emulateClick": "If msg arrives on input, emulate a button click:" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.html new file mode 100644 index 0000000..6dbc3c2 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.html @@ -0,0 +1,20 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.json new file mode 100644 index 0000000..aceaa99 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_chart.json @@ -0,0 +1,54 @@ +{ + "ui_chart": { + "label": { + "group": "Group", + "size": "Size", + "label": "Label", + "optionalChartTitle": "optional chart title", + "type": "Type", + "lineChart": "  Line chart", + "barChart": "  Bar chart", + "barChartH": "  Bar chart (H)", + "pieChart": "  Pie chart", + "polarAreaChart": "  Polar area chart", + "radarChart": "  Radar chart", + "enlargePoints": "enlarge points", + "xAxis": "X-axis", + "last": "last", + "seconds": "seconds", + "minutes": "minutes", + "hours": "hours", + "days": "days", + "weeks": "weeks", + "or": "OR", + "points": "points", + "xAxisLabel": "X-axis Label", + "HHmmss": "HH:mm:ss", + "HHmm": "HH:mm", + "yearMonthDate": "Year-Month-Date", + "dateMonth": "Date/Month", + "dayHHmm": "Day HH:mm", + "custom": "custom", + "automatic": "automatic", + "asUTC": "as UTC", + "yAxis": "Y-axis", + "min": "min", + "max": "max", + "legend": "Legend", + "none": "None", + "show": "Show", + "interpolate": "Interpolate", + "linear": "linear", + "step": "step", + "bezier": "bezier", + "cubic": "cubic", + "cubicMono": "cubic-mono", + "cutout": "Cutout", + "useFirstColourForAllBars": "Use first colour for all bars", + "seriesColours": "Series Colours", + "blankLabel": "Blank label", + "displayThisTextBeforeValidDataArrives": "display this text before valid data arrives", + "useDifferentColor": "Use different colour for series data" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_colour_picker.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_colour_picker.html new file mode 100644 index 0000000..e6ce51f --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_colour_picker.html @@ -0,0 +1,9 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_date_picker.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_date_picker.html new file mode 100644 index 0000000..6fb1e0d --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_date_picker.html @@ -0,0 +1,6 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_dropdown.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_dropdown.html new file mode 100644 index 0000000..e5caa9e --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_dropdown.html @@ -0,0 +1,15 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.html new file mode 100644 index 0000000..e414b61 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.html @@ -0,0 +1,16 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.json new file mode 100644 index 0000000..82bde92 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_form.json @@ -0,0 +1,33 @@ +{ + "ui_form": { + "label": { + "group": "Group", + "size": "Size", + "label": "Label", + "optionalLabel": "optional label", + "formElements": "Form elements", + "type": "Type", + "required": "Required", + "rows": "UiRows", + "remove": "Remove", + "egName": "e.g. Name", + "egName2": "e.g. name", + "text": "Text", + "multiline": "Multiline", + "number": "Number", + "email": "E-mail", + "password": "Password", + "checkbox": "Checkbox", + "switch": "Switch", + "date": "Date", + "time": "Time", + "element": "element", + "buttons": "Buttons", + "submitButtonText": "submit button text", + "cancelButtonText": "cancel button text", + "topic": "Topic", + "optionalMsgTopic": "optional msg.topic", + "splitLayout":"Place the form elements in two columns" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_gauge.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_gauge.html new file mode 100644 index 0000000..158edc8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_gauge.html @@ -0,0 +1,14 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.html new file mode 100644 index 0000000..aee92f3 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.html @@ -0,0 +1,3 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.json new file mode 100644 index 0000000..d3c3be4 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_group.json @@ -0,0 +1,14 @@ +{ + "ui_group" : { + "label" : { + "name" : "Name", + "tab" : "Tab", + "width" : "Width", + "default" : "Default", + "group" : "Group", + "unassigned" : "unassigned" + }, + "display-name" : "Display group name", + "collapse-name" : "Allow group to be collapsed" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.html new file mode 100644 index 0000000..04dac12 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.html @@ -0,0 +1,7 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.json new file mode 100644 index 0000000..ce9ebdc --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_link.json @@ -0,0 +1,14 @@ +{ + "ui_link" : { + "label" : { + "name" : "Name", + "link" : "Link", + "icon" : "Icon", + "open-in" : "Open in", + "new-tab" : "New Tab", + "this-tab" : "This Tab", + "iframe" : "iframe" + }, + "tip" : "The Icon field can be either a Material Design icon (e.g. 'check', 'close') or a Font Awesome icon (e.g. 'fa-fire'), or a Weather icon (e.g. 'wi-wu-sunny').

You can use the full set of google material icons if you add 'mi-' to the icon name. e.g. 'mi-videogame_asset'.

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_numeric.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_numeric.html new file mode 100644 index 0000000..c7b18ff --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_numeric.html @@ -0,0 +1,16 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_slider.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_slider.html new file mode 100644 index 0000000..2b1466d --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_slider.html @@ -0,0 +1,14 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_spacer.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_spacer.html new file mode 100644 index 0000000..ee250d6 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_spacer.html @@ -0,0 +1,2 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_switch.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_switch.html new file mode 100644 index 0000000..ad044ce --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_switch.html @@ -0,0 +1,18 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.html new file mode 100644 index 0000000..b460a30 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.html @@ -0,0 +1,13 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.json new file mode 100644 index 0000000..b64cac1 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_tab.json @@ -0,0 +1,21 @@ +{ + "ui_tab" : { + "label" : { + "home" : "Home", + "tab" : "Tab", + "name" : "Name", + "icon" : "Icon", + "state" : "State", + "navmenu" : "Nav. Menu", + "enabled" : "Enabled", + "disabled" : "Disabled", + "visible" : "Visible", + "hidden" : "Hidden" + }, + "info": { + "disabled": " Tab is inactive in Dashboard.", + "hidden": " Tab is not shown in Navigation Menu." + }, + "tip" : "The Icon field can be either a Material Design icon (e.g. 'check', 'close') or a Font Awesome icon (e.g. 'fa-fire'), or a Weather icon (e.g. 'wi-wu-sunny').

You can use the full set of google material icons if you add 'mi-' to the icon name. e.g. 'mi-videogame_asset'.

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.html new file mode 100644 index 0000000..58b51a0 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.html @@ -0,0 +1,48 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.json new file mode 100644 index 0000000..ff367ef --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_template.json @@ -0,0 +1,17 @@ +{ + "ui_template": { + "label": { + "type": "Template type", + "local": "Widget in group", + "global": "Added to site section", + "group": "Group", + "size": "Size", + "name": "Name", + "pass-through": "Pass through messages from input.", + "store-state": "Add output messages to stored state.", + "template": "Template", + "expand": "Expand", + "resend": "Reload last value on refresh." + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text.html new file mode 100644 index 0000000..9cfba1c --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text.html @@ -0,0 +1,15 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text_input.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text_input.html new file mode 100644 index 0000000..6665637 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_text_input.html @@ -0,0 +1,15 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_toast.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_toast.html new file mode 100644 index 0000000..fee6058 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_toast.html @@ -0,0 +1,14 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.html new file mode 100644 index 0000000..1701aae --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.html @@ -0,0 +1,28 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.json new file mode 100644 index 0000000..7a75486 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/en-US/ui_ui_control.json @@ -0,0 +1,10 @@ +{ + "ui_ui_control": { + "label": { + "name": "Name" + }, + "placeholder": { + "name": "Name" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_base.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_base.json new file mode 100644 index 0000000..a5fe6e7 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_base.json @@ -0,0 +1,99 @@ +{ + "ui_base" : { + "label" : { + "dashboard" : "銉銉冦偡銉ャ儨銉笺儔", + "title" : "銈裤偆銉堛儷", + "options" : "銈儣銈枫儳銉", + "date-format" : "鏃ヤ粯褰㈠紡", + "sizes" : "銈点偆銈", + "horizontal" : "妯", + "vertical" : "绺", + "widget-size" : "鏈灏廤idget銈点偆銈", + "widget-spacing" : "Widget闁撻殧", + "group-padding" : "銈般儷銉笺儣銉戙儑銈c兂銈", + "group-spacing" : "銈般儷銉笺儣闁撻殧", + "layout" : "閰嶇疆", + "angular": "Angular", + "theme" : "銉嗐兗銉", + "site" : "銈点偆銉" + }, + "auto" : "鑷嫊", + "title" : "Node-RED銉銉冦偡銉ャ儨銉笺儔", + "layout" : { + "tab-and-link" : "銈裤儢 & 銉兂銈", + "tab" : "銈裤儢", + "link" : "銉兂銈", + "group" : "銈般儷銉笺儣", + "edit" : "绶ㄩ泦", + "spacer": "銈广儦銉笺偟", + "layout" : "銉偆銈€偊銉", + "layout-editor" : "銉銉冦偡銉ャ儨銉笺儔銉偆銈€偊銉堛偍銉囥偅銈", + "width" : "骞", + "auto": "鑷嫊銈点偆銈鸿鏁", + "manual": "鎵嬪嫊銈点偆銈哄鏇" + }, + "theme" : { + "style" : "銈广偪銈ゃ儷", + "custom-profile" : "銈偣銈裤儬銉椼儹銉曘偂銈ゃ儷", + "custom-profile-name" : "鍚嶇О鏈ō瀹氥儐銉笺優 1", + "base-settings" : "鍩烘湰瑷畾", + "page-settings" : "銉氥兗銈歌ō瀹", + "page" : { + "title" : "銈裤偆銉堛儷銉愩兗鑳屾櫙鑹", + "page" : "銉氥兗銈歌儗鏅壊", + "side" : "銈点偆銉夈儛銉艰儗鏅壊" + }, + "group-settings" : "銈般儷銉笺儣瑷畾", + "group" : { + "text" : "銈般儷銉笺儣鏂囧瓧鑹", + "border" : "銈般儷銉笺儣銉溿兗銉銉艰壊", + "background" : "銈般儷銉笺儣鑳屾櫙鑹" + }, + "widget-settings" : "Widget瑷畾", + "widget" : { + "text" : "Widget鏂囧瓧鑹", + "colour" : "Widget鑹", + "background" : "Widget鑳屾櫙鑹" + } + }, + "style" : { + "light" : "銉┿偆銉 (銉囥儠銈┿儷銉)", + "dark" : "銉銉笺偗", + "custom" : "銈偣銈裤儬", + "primary" : "銉椼儵銈ゃ優銉", + "accents" : "銈€偗銈汇兂銉", + "background" : "鑳屾櫙", + "warnings" : "璀﹀憡", + "palette": "銉┿偆銉/銉銉笺偗" + }, + "base" : { + "colour" : "鑹", + "font" : "銉曘偐銉炽儓" + }, + "font" : { + "system" : "銈枫偣銉嗐儬銉曘偐銉炽儓 (銉囥儠銈┿儷銉)" + }, + "site" : { + "title" : "Node-RED 銉銉冦偡銉ャ儨銉笺儔", + "date-format" : "YYYY/MM/DD" + }, + "title-bar" : { + "show" : "銈裤偆銉堛儷銉愩兗琛ㄧず", + "hide" : "銈裤偆銉堛儷銉愩兗闈炶〃绀" + }, + "swipe" : { + "no-swipe" : "銈广儻銈ゃ儣銇倛銈嬨偪銉栧垏銈婃浛銇堛倰銇椼仾銇", + "allow-swipe" : "銈广儻銈ゃ儣銇倛銈嬨偪銉栧垏銈婃浛銇堛倰銇欍倠" + }, + "lock" : { + "clicked" : "銈点偆銉夈儭銉嬨儱銉笺倰銈儶銉冦偗銇ц〃绀", + "locked" : "銈点偆銉夈儭銉嬨儱銉笺倰琛ㄧず銇椼仧銇俱伨銇仚銈", + "locked-icon": "甯搞伀銈€偆銈炽兂銇伩銈掕〃绀" + }, + "temp" : { + "no-theme" : "ui_template銇с儐銉笺優瑷畾銈掕ū鍙仐銇亜", + "allow-theme" : "ui_template銇с儐銉笺優瑷畾銈掕ū鍙仚銈", + "none" : "Angular銉嗐兗銉炪倰鍏ㄣ仸銇畤鎵銇т娇鐢" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.html new file mode 100644 index 0000000..1bd7456 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.html @@ -0,0 +1,12 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.json new file mode 100644 index 0000000..bad4046 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_chart.json @@ -0,0 +1,54 @@ +{ + "ui_chart": { + "label": { + "group": "銈般儷銉笺儣", + "size": "銈点偆銈", + "label": "銉┿儥銉", + "optionalChartTitle": "浠绘剰銇偘銉┿儠銈裤偆銉堛儷", + "type": "绋", + "lineChart": "  鎶樸倢绶氥偘銉┿儠", + "barChart": "  妫掋偘銉┿儠", + "barChartH": "  妫掋偘銉┿儠(妯)", + "pieChart": "  鍐嗐偘銉┿儠", + "polarAreaChart": "  槎忛牠鍥", + "radarChart": "  銉兗銉銉笺儊銉c兗銉", + "enlargePoints": "銉濄偆銉炽儓銈掕〃绀", + "xAxis": "X杌", + "last": "鐩磋繎", + "seconds": "绉", + "minutes": "鍒", + "hours": "鏅傞枔", + "days": "鏃", + "weeks": "閫", + "or": "鍙堛伅", + "points": "銉濄偆銉炽儓", + "xAxisLabel": "X杌搞儵銉欍儷", + "HHmmss": "HH:mm:ss", + "HHmm": "HH:mm", + "yearMonthDate": "骞-鏈-鏃", + "dateMonth": "鏃/鏈", + "dayHHmm": "鏇滄棩 HH:mm", + "custom": "銈偣銈裤儬", + "automatic": "鑷嫊", + "asUTC": "UTC銈掍娇鐢", + "yAxis": "Y杌", + "min": "鏈灏", + "max": "鏈澶", + "legend": "鍑′緥", + "none": "闈炶〃绀", + "show": "琛ㄧず", + "interpolate": "瑁滃畬", + "linear": "鐩寸窔", + "step": "娈甸殠", + "bezier": "銉欍偢銈", + "cubic": "3娆¤闁", + "cubicMono": "鍗樿3娆¤闁", + "cutout": "涓績銇垏鎶溿亶鐜", + "useFirstColourForAllBars": "鏈鍒濄伄鑹层倰鍏ㄣ偘銉┿儠銇т娇鐢", + "seriesColours": "閰嶈壊", + "blankLabel": "鍒濇湡銉┿儥銉", + "displayThisTextBeforeValidDataArrives": "鏈夊姽銇儑銉笺偪銇屽眾銇忓墠銇湰鏂囧瓧鍒椼倰琛ㄧず", + "useDifferentColor": "銈枫儶銉笺偤銇垾銇壊銈掍娇鐢" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.html new file mode 100644 index 0000000..87a8fee --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.html @@ -0,0 +1,16 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.json new file mode 100644 index 0000000..4072578 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_form.json @@ -0,0 +1,33 @@ +{ + "ui_form": { + "label": { + "group": "銈般儷銉笺儣", + "size": "銈点偆銈", + "label": "銉┿儥銉", + "optionalLabel": "浠绘剰銇儵銉欍儷", + "formElements": "銉曘偐銉笺儬銇绱", + "type": "绋", + "required": "蹇呴爤", + "rows": "琛屾暟", + "remove": "鍓婇櫎", + "egName": "渚) 鍚嶅墠", + "egName2": "渚) name", + "text": "鏂囧瓧鍒", + "multiline": "瑜囨暟琛", + "number": "鏁板", + "email": "E-銉°兗銉", + "password": "銉戙偣銉兗銉", + "checkbox": "銉併偋銉冦偗銉溿儍銈偣", + "switch": "銈广偆銉冦儊", + "date": "鏃ヤ粯", + "time": "鏅傞枔", + "element": "瑕佺礌", + "buttons": "銉溿偪銉", + "submitButtonText": "閫佷俊銉溿偪銉炽伄鏂囧瓧鍒", + "cancelButtonText": "銈儯銉炽偦銉儨銈裤兂銇枃瀛楀垪", + "topic": "銉堛償銉冦偗", + "optionalMsgTopic": "浠绘剰銇甿sg.topic", + "splitLayout": "銉曘偐銉笺儬瑕佺礌銈2鍒椼伀閰嶇疆" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_group.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_group.json new file mode 100644 index 0000000..37b8cce --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_group.json @@ -0,0 +1,14 @@ +{ + "ui_group" : { + "label" : { + "name" : "鍚嶅墠", + "tab" : "銈裤儢", + "width" : "骞", + "default" : "銉囥儠銈┿儷銉", + "group" : "銈般儷銉笺儣", + "unassigned" : "鏈ō瀹" + }, + "display-name" : "銈般儷銉笺儣鍚嶃倰琛ㄧず銇欍倠", + "collapse-name" : "銈般儷銉笺儣銇姌銈娿仧銇熴伩銈掓湁鍔广伀銇欍倠" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_link.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_link.json new file mode 100644 index 0000000..1265812 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_link.json @@ -0,0 +1,14 @@ +{ + "ui_link" : { + "label" : { + "name" : "鍚嶅墠", + "link" : "銉兂銈", + "icon" : "銈€偆銈炽兂", + "open-in" : "闁嬨亸鏂规硶", + "new-tab" : "鏂拌銈裤儢", + "this-tab" : "銇撱伄銈裤儢", + "iframe" : "iframe" + }, + "tip" : "銈€偆銈炽兂銉曘偅銉笺儷銉夈伀銇 Material Design icon (渚: 'check', 'close')Font Awesome icon (渚: 'fa-fire')銆併倐銇椼亸銇 Weather icon (渚: 'wi-wu-sunny')銈掓寚瀹氥仹銇嶃伨銇欍

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_tab.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_tab.json new file mode 100644 index 0000000..aac24c8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_tab.json @@ -0,0 +1,21 @@ +{ + "ui_tab" : { + "label" : { + "home" : "銉涖兗銉", + "tab" : "銈裤儢", + "name" : "鍚嶅墠", + "icon" : "銈€偆銈炽兂", + "state" : "鐘舵厠", + "navmenu" : "銉°儖銉ャ兗", + "enabled" : "鏈夊姽", + "disabled" : "鐒″姽", + "visible" : "琛ㄧず", + "hidden" : "闈炶〃绀" + }, + "info": { + "disabled": " 銈裤儢銈掔劇鍔瑰寲銇椼伨銇", + "hidden": " 銈裤儢銈掔Щ鍕曘儭銉嬨儱銉笺伀琛ㄧず銇椼伨銇涖倱" + }, + "tip" : "銈€偆銈炽兂銉曘偅銉笺儷銉夈伀銇 Material Design icon (渚: 'check', 'close')Font Awesome icon (渚: 'fa-fire')銆併倐銇椼亸銇 Weather icon (渚: 'wi-wu-sunny')銈掓寚瀹氥仹銇嶃伨銇欍

" + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.html new file mode 100644 index 0000000..37cf945 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.html @@ -0,0 +1,43 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.json new file mode 100644 index 0000000..d0b62fb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_template.json @@ -0,0 +1,17 @@ +{ + "ui_template" : { + "label" : { + "type" : "銈炽兗銉夌ó鍒", + "local" : "銈般儷銉笺儣鍐呫伄Widget", + "global" : "銉樸儍銉夈偦銈偡銉с兂銇歌拷鍔", + "group" : "銈般儷銉笺儣", + "size" : "銈点偆銈", + "name" : "鍚嶅墠", + "pass-through" : "鍏ュ姏銉°儍銈汇兗銈搞倰銇濄伄銇俱伨娓°仚", + "store-state" : "鍑哄姏銉°儍銈汇兗銈搞倰鐘舵厠銇ㄣ仐銇︿繚瀛", + "template" : "HTML銈炽兗銉", + "expand": "灞曢枊銇欍倠", + "resend": "鏇存柊鏅傘伀鏈寰屻伄鍊ゃ倰鍐嶅害瑾伩杈笺個" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.html b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.html new file mode 100644 index 0000000..c0cabcb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.html @@ -0,0 +1,15 @@ + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.json b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.json new file mode 100644 index 0000000..3076d25 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/locales/ja/ui_ui_control.json @@ -0,0 +1,10 @@ +{ + "ui_ui_control" : { + "label" : { + "name" : "鍚嶅墠" + }, + "placeholder" : { + "name" : "鍚嶅墠" + } + } +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.html new file mode 100644 index 0000000..c1cff50 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.html @@ -0,0 +1,69 @@ + + + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.js new file mode 100644 index 0000000..b7b0aa8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_audio.js @@ -0,0 +1,49 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function uiAudioNode(config) { + RED.nodes.createNode(this,config); + this.voice = config.voice; + this.group = config.group; + this.always = config.always || false; + if (this.group && RED.nodes.getNode(this.group).hasOwnProperty("config")) { + this.tabname = RED.nodes.getNode(RED.nodes.getNode(this.group).config.tab).name; + } + var node = this; + node.status({}); + + this.on('input', function(msg) { + if (msg.hasOwnProperty("level") && (isNaN(msg.level) || msg.level > 300 || msg.level < 0)) { + delete msg.level; + } + if (msg.reset == true) { + ui.emit('ui-audio', { reset:true, tabname:node.tabname, always:node.always }); + } + else if (Buffer.isBuffer(msg.payload)) { + ui.emit('ui-audio', { audio:msg.payload, tabname:node.tabname, always:node.always, vol:msg.level }); + } + else if (typeof msg.payload === "string") { + ui.emit('ui-audio', { tts:msg.payload, voice:(node.voice || msg.voice || 0), tabname:node.tabname, always:node.always, vol:msg.level }); + } + }); + + var updateStatus = function(audioStatus) { + if (audioStatus === "complete") { + // When the audio or speech has played completely, clear the node status + node.status({}); + } + else if (audioStatus.indexOf("error") === 0) { + node.status({shape:"ring",fill:"red",text:audioStatus}); + } + else { + node.status({shape:"dot",fill:"blue",text:audioStatus}); + } + }; + ui.ev.on('audiostatus', updateStatus); + + this.on('close', function() { + ui.ev.removeListener('audiostatus', updateStatus); + }) + } + RED.nodes.registerType("ui_audio", uiAudioNode); +} diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.html new file mode 100644 index 0000000..d9d3f42 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.html @@ -0,0 +1,3311 @@ + + + + + + + + + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.js new file mode 100644 index 0000000..171e9ae --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_base.js @@ -0,0 +1,125 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + var path= require('path'); + var gsp = require.resolve('gridstack'); + var node; + var uiset = RED.settings.ui || "{}"; + + function BaseNode(config) { + RED.nodes.createNode(this, config); + node = this; + var baseFontName = "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"; + + var defaultLightTheme = { + baseColor: '#0094CE', + baseFont: baseFontName + } + var defaultDarkTheme = { + baseColor: '#097479', + baseFont: baseFontName + } + var defaultCustomTheme = { + name: 'Untitled Theme 1', + baseColor: defaultLightTheme.baseColor, + baseFont: baseFontName + } + var defaultAngularTheme = { + primary:'indigo', + accents:'teal', + warn: "red", + background:'grey', + palette:'light' + }; + + // Setup theme name + // First try old format (for upgrading with old flow file) + // Then try new format + // Else fallback to theme-light + var themeName; + if (typeof(config.theme) === 'string') { themeName = config.theme; } + else { themeName = config.theme.name || "theme-light"; } + + // Setup other styles + var defaultThemeState = {} + if (themeName === 'theme-light') { + defaultThemeState["base-font"] = {value: baseFontName}; + defaultThemeState["base-color"] = {value: "#0094CE"}; + defaultThemeState["page-backgroundColor"] = {value: "#fafafa"}; + defaultThemeState["page-titlebar-backgroundColor"] = {value: "#0094CE"}; + defaultThemeState["page-sidebar-backgroundColor"] = {value: "#ffffff"}; + defaultThemeState["group-backgroundColor"] = {value: "#ffffff"}; + defaultThemeState["group-textColor"] = {value: "#000000"}; + defaultThemeState["group-borderColor"] = {value: "#ffffff"}; + defaultThemeState["widget-textColor"] = {value: "#111111"}; + defaultThemeState["widget-backgroundColor"] = {value: "#0094CE"}; + } + else { + defaultThemeState["base-font"] = {value: baseFontName}; + defaultThemeState["base-color"] = {value: "#097479"}; + defaultThemeState["page-backgroundColor"] = {value: "#111111"}; + defaultThemeState["page-titlebar-backgroundColor"] = {value: "#097479"}; + defaultThemeState["page-sidebar-backgroundColor"] = {value: "#333333"}; + defaultThemeState["group-backgroundColor"] = {value: "#333333"}; + defaultThemeState["group-textColor"] = {value: "#10cfd8"}; + defaultThemeState["group-borderColor"] = {value: "#555555"}; + defaultThemeState["widget-textColor"] = {value: "#eeeeee"}; + defaultThemeState["widget-backgroundColor"] = {value: "#097479"}; + } + + var defaultThemeObject = { + name: themeName, + lightTheme: config.theme.lightTheme || defaultLightTheme, + darkTheme: config.theme.darkTheme || defaultDarkTheme, + customTheme: config.theme.customTheme || defaultCustomTheme, + angularTheme: config.theme.angularTheme || defaultAngularTheme, + themeState: config.theme.themeState || defaultThemeState + } + + this.config = { + theme: defaultThemeObject, + site: config.site + } + ui.addBaseConfig(this.config); + } + RED.nodes.registerType("ui_base", BaseNode); + + RED.library.register("themes"); + + RED.httpAdmin.get('/uisettings', function(req, res) { + res.json(uiset); + }); + + const optsjs = { root: path.join(__dirname , '../dist/js'), dotfiles: 'deny' }; + const optscss = { root: path.join(__dirname , '../dist/css'), dotfiles: 'deny' }; + const optsgs = { root: path.dirname(gsp), dotfiles: 'deny' }; + + RED.httpAdmin.get('/ui_base/js/*', function(req, res) { + res.sendFile(req.params[0], optsjs, function (err) { + if (err) { + res.sendStatus(404); + if (node) { node.warn("JS File not found."); } + else { console.log("ui_base - error:",err); } + } + }); + }); + + RED.httpAdmin.get('/ui_base/css/*', function(req, res) { + res.sendFile(req.params[0], optscss, function (err) { + if (err) { + res.sendStatus(404); + if (node) { node.warn("CSS File not found."); } + else { console.log("ui_base - error:",err); } + } + }); + }); + + RED.httpAdmin.get('/ui_base/gs/*', function(req, res) { + res.sendFile(req.params[0], optsgs, function (err) { + if (err) { + res.sendStatus(404); + if (node) { node.warn("Gridstack file not found."); } + else { console.log("ui_base - error:",err); } + } + }); + }); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.html new file mode 100644 index 0000000..dca0b3b --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.html @@ -0,0 +1,111 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.js new file mode 100644 index 0000000..1eac3cf --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_button.js @@ -0,0 +1,77 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function ButtonNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + var payloadType = config.payloadType; + var payload = config.payload; + + if (payloadType === 'flow' || payloadType === 'global') { + try { + var parts = RED.util.normalisePropertyExpression(payload); + if (parts.length === 0) { + throw new Error(); + } + } + catch(err) { + node.warn("Invalid payload property expression - defaulting to node id") + payload = node.id; + payloadType = 'str'; + } + } + else { + payload = payload || node.id; + } + + node.on("input", function(msg) { + node.topi = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg); + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + emitOnlyNewValues: false, + forwardInputMessages: config.passthru || false, + storeFrontEndInputAsState: false, + control: { + type: 'button', + label: config.label, + tooltip: config.tooltip, + color: config.color, + bgcolor: config.bgcolor, + icon: config.icon, + order: config.order, + value: payload, + format: config.bgcolor, + width: config.width || group.config.width || 3, + height: config.height || 1 + }, + beforeSend: function (msg,m2) { + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) + if (typeof t === "undefined") { t = node.topi; } + if (t !== undefined) { msg.topic = t; } + if (((config.topicType || "str") === "str") && t == "") { delete msg.topic; } + if (m2 !== undefined) { msg.event = m2.event; } + }, + convertBack: function (value) { + if (payloadType === "date") { + value = Date.now(); + } + else { + value = RED.util.evaluateNodeProperty(payload,payloadType,node); + } + return value; + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_button", ButtonNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.html new file mode 100644 index 0000000..f56a06e --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.html @@ -0,0 +1,290 @@ + + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.js new file mode 100644 index 0000000..8d7e8ff --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_chart.js @@ -0,0 +1,231 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + var ChartIdList = {}; + + function ChartNode(config) { + RED.nodes.createNode(this, config); + this.chartType = config.chartType || "line"; + var node = this; + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + if (config.width === "0") { delete config.width; } + if (config.height === "0") { delete config.height; } + // number of pixels wide the chart will be... 43 = sizes.sx - sizes.px + //var pixelsWide = ((config.width || group.config.width || 6) - 1) * 43 - 15; + if (!tab || !group) { return; } + var dnow = Date.now(); + var options = { + emitOnlyNewValues: true, + node: node, + tab: tab, + group: group, + control: { + type: 'chart', + look: node.chartType, + order: config.order, + label: config.label, + legend: config.legend || false, + interpolate: config.interpolate, + nodata: config.nodata, + width: parseInt(config.width || group.config.width || 6), + height: parseInt(config.height || group.config.width/2+1 || 4), + ymin: config.ymin, + ymax: config.ymax, + dot: config.dot || false, + xformat : config.xformat || "HH:mm:ss", + cutout: parseInt(config.cutout || 0), + colors: config.colors, + useOneColor: config.useOneColor || false, + useUTC: config.useUTC || false, + animation: false, + spanGaps: false, + useDifferentColor: config.useDifferentColor || false, + options: {}, + }, + convertBack: function(data) { + if (data) { + if (data[0] && data[0].hasOwnProperty("values")) { + return [data[0].values]; + } + if (data.length == 0) { + return []; + } + } + }, + convert: function(value, oldValue, msg) { + var converted = {}; + if (ChartIdList.hasOwnProperty(node.id) && ChartIdList[node.id] !== node.chartType) { + value = []; + } + if (this.control.look !== node.chartType) { + if ((this.control.look === "line") || (node.chartType === "line")) { value = []; } + node.chartType = this.control.look; + } + ChartIdList[node.id] = node.chartType; + if (Array.isArray(value)) { + if (value.length === 0) { // reset chart + converted.update = false; + converted.updatedValues = []; + return converted; + } + if (value[0].hasOwnProperty("series") && value[0].hasOwnProperty("data")) { + var flag = true; + for (var dd = 0; dd < value[0].data.length; dd++ ) { + if (!isNaN(value[0].data[dd][0])) { flag = false; } + } + if (node.chartType === "line") { + if (flag) { delete value[0].labels; } + if (config.removeOlderPoints) { + for (var dl=0; dl < value[0].data.length; dl++ ) { + if (value[0].data[dl].length > config.removeOlderPoints) { + value[0].data[dl] = value[0].data[dl].slice(-config.removeOlderPoints); + } + } + } + } + else if (node.chartType === "bar" || node.chartType === "horizontalBar") { + if (flag) { + var tmp = []; + for (var d=0; d 0) { refill = true; } + } + if (l === -1) { + oldValue[0].values.labels.push(label); + l = oldValue[0].values.labels.length - 1; + if (l > 0) { refill = true; } + } + if (node.chartType === "line") { + var time; + if (msg.timestamp !== undefined) { time = new Date(msg.timestamp).getTime(); } + else { time = new Date().getTime(); } + var limitOffsetSec = parseInt(config.removeOlder) * parseInt(config.removeOlderUnit); + var limitTime = time - limitOffsetSec * 1000; + if (time < limitTime) { return oldValue; } // ignore if too old for window + var point = { "x":time, "y":value }; + oldValue[0].values.data[s].push(point); + converted.newPoint = [{ key:node.id, update:true, values:{ series:series, data:point, labels:label } }]; + var rc = 0; + for (var u = 0; u < oldValue[0].values.data[s].length; u++) { + if (oldValue[0].values.data[s][u].x >= limitTime) { break; } // stop as soon as we are in time window. + else { rc += 1; } + } + if (rc > 0) { oldValue[0].values.data[s].splice(0,rc); } + if (config.removeOlderPoints) { + var rc2 = oldValue[0].values.data[s].length-config.removeOlderPoints; + if (rc2 > 0) { oldValue[0].values.data[s].splice(0,rc2); rc = rc2;} + } + if (rc > 0) { converted.newPoint[0].remove = rc; } + var swap; // insert correctly if a timestamp was earlier. + for (var t = oldValue[0].values.data[s].length-2; t>=0; t--) { + if (oldValue[0].values.data[s][t].x <= time) { + break; // stop if we are in the right place + } + else { + swap = oldValue[0].values.data[s][t]; + oldValue[0].values.data[s][t] = oldValue[0].values.data[s][t+1]; + oldValue[0].values.data[s][t+1] = swap; + } + } + if (swap) { converted.newPoint = true; } // if inserted then update whole chart + + if (Date.now() > (dnow + 60000)) { + dnow = Date.now(); + for (var x = 0; x < oldValue[0].values.data.length; x++) { + for (var y = 0; y < oldValue[0].values.data[x].length; y++) { + if (oldValue[0].values.data[x][y].x >= limitTime) { + break; // stop as soon as we are in time window. + } + else { + oldValue[0].values.data[x].splice(0,1); + converted.newPoint = true; + y = y - 1; + } + } + } + } + + } + else { + oldValue[0].values.data[s][l] = value; + if (refill) { + for (var i = 0; i < oldValue[0].values.series.length; i++) { + for (var k = 0; k < oldValue[0].values.labels.length; k++) { + oldValue[0].values.data[i][k] = oldValue[0].values.data[i][k] || null; + } + } + } + } + converted.update = true; + converted.updatedValues = oldValue; + } + return converted; + } + }; + + var chgtab = function() { + node.receive({payload:"R"}); + }; + ui.ev.on('changetab', chgtab); + + var done = ui.add(options); + + var st = setTimeout(function() { + node.emit("input",{payload:"start"}); // trigger a redraw at start to flush out old data. + }, 100); + + node.on("close", function() { + if (st) { clearTimeout(st); } + ui.ev.removeListener('changetab', chgtab); + done(); + }) + } + RED.nodes.registerType("ui_chart", ChartNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.html new file mode 100644 index 0000000..34d0553 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.html @@ -0,0 +1,158 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.js new file mode 100644 index 0000000..a4042cc --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_colour_picker.js @@ -0,0 +1,62 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + var tc = require('../dist/js/tinycolor-min'); + + function ColourPickerNode(config) { + RED.nodes.createNode(this, config); + this.format = config.format; + this.outformat = config.outformat; + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: config.passthru, + control: { + type: 'colour-picker', + label: config.label, + format: config.format, + showPicker: config.showPicker, + showSwatch: config.showSwatch, + showValue: config.showValue, + showHue: config.showHue, + showAlpha: config.showAlpha, + showLightness: config.showLightness, + square: (config.square == 'true') || false, + dynOutput: config.dynOutput, + allowEmpty: true, + order: config.order, + value: '', + width: config.width || group.config.width || 6, + height: config.height || 1 + }, + beforeSend: function (msg) { + if (node.outformat === 'object') { + var pay = tc(msg.payload); + if (node.format === 'rgb') { msg.payload = pay.toRgb(); } + if (node.format === 'hsl') { msg.payload = pay.toHsl(); } + if (node.format === 'hsv') { msg.payload = pay.toHsv(); } + } + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + }, + convert: function(p,o,m) { + if (m.payload === undefined || m.payload === null) { return; } + var colour = tc(m.payload); + return colour.toString(config.format); + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_colour_picker", ColourPickerNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.html new file mode 100644 index 0000000..da78726 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.html @@ -0,0 +1,81 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.js new file mode 100644 index 0000000..b99d8cb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_date_picker.js @@ -0,0 +1,52 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function DatePickerNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: config.passthru, + control: { + type: 'date-picker', + label: config.label, + order: config.order, + ddd : new Date().setUTCHours(0,0,0,0), + width: config.width || group.config.width || 6, + height: config.height || 1 + }, + convert: function (p,o,m) { + var d = new Date(m.payload); + this.control.ddd = d; + return m.payload; + }, + beforeEmit: function (msg, value) { + if (value === undefined) { return; } + value = new Date(value); + return { msg:msg, value:value }; + }, + convertBack: function (value) { + var d = new Date(value).valueOf(); + return d; + }, + beforeSend: function (msg) { + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_date_picker", DatePickerNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.html new file mode 100644 index 0000000..be2ca6b --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.html @@ -0,0 +1,174 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.js new file mode 100644 index 0000000..f4878fa --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_dropdown.js @@ -0,0 +1,212 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function DropdownNode(config) { + RED.nodes.createNode(this, config); + this.pt = config.passthru; + this.multiple = config.multiple || false; + this.state = [" "," "]; + var node = this; + node.status({}); + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + var control = { + type: 'dropdown', + multiple: config.multiple, + label: config.label, + tooltip: config.tooltip, + place: config.place, + order: config.order, + value: config.payload || node.id, + width: config.width || group.config.width || 6, + height: config.height || 1 + }; + + for (var o=0; o 0) { emitOptions.value = null; } + // or send the preselected value + if (msg.payload) { emitOptions.value = msg.payload; } + emitOptions.isOptionsValid = true; + } while (false); + // finally adjust msg to reflect the input + msg._dontSend = true; + if (emitOptions.isOptionsValid) { + control.options = emitOptions.newOptions; + control.value = emitOptions.value; + } + else { + if (msg.options) { + node.error("ERR: Invalid Options", msg); + } + } + + if (msg.hasOwnProperty("payload")) { + if (node.multiple) { + if (typeof msg.payload === "string") { + msg.payload = msg.payload.split(','); + } + } + emitOptions.value = msg.payload; + control.value = emitOptions.value; + delete msg._dontSend; + return emitOptions; + } + // we do not overide payload here due to 'opt.emitOnlyNewValues' in ui.js + // when undefined is returned, msg will not be forwarded + return emitOptions.isOptionsValid ? emitOptions : undefined; // always pass entire object (newValue == oldValue) + }, + + beforeEmit: function (msg, newValue) { + if (msg.socketid) { emitOptions.socketid = msg.socketid; } + return emitOptions; + }, + + convertBack: function (msg) { + var val = node.multiple ? [] : ""; + var m = RED.util.cloneMessage(msg); + var mm = (m.hasOwnProperty("id")) ? m.value : m; + for (var i=0; i delete x["$$mdSelectId"]) + for (var j = 0; j < mm.length; j++) { + if (JSON.stringify(control.options[i].value) === JSON.stringify(mm[j])) { + var v = control.options[i].value; + if (typeof v === "string" && control.options[i].type !== "string") { + try { v = JSON.parse(v); } + catch(e) {} + } + val.push(v); + break; + } + } + } + } + return val; + }, + + beforeSend: function (msg) { + if (msg.payload === undefined) { msg.payload = []; } + if (msg.payload === "") { msg._dontSend = true; } + if (msg._dontSend) { + delete msg.options; + msg.payload = emitOptions.value; + } + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + if (msg.payload === null || msg._dontSend) { node.status({}); } + else { + var stat = ""; + if (Array.isArray(msg.payload)) { stat = msg.payload.length + " items"; } + else { + if (typeof msg.payload === "object") { stat = JSON.stringify(msg.payload); } + else { stat = msg.payload.toString(); } + if (stat.length > 32) { stat = stat.substr(0,31)+"..."; } + } + if (node.pt) { + node.status({shape:"dot",fill:"grey",text:stat}); + } + else { + node.state[1] = stat; + node.status({shape:"dot",fill:"grey",text:node.state[1] + " | " + node.state[1]}); + } + } + } + }); + + if (!node.pt) { + node.on("input", function(msg) { + node.state[0] = msg.payload; + node.status({shape:"dot",fill:"grey",text:node.state[0] + " | " + node.state[1]}); + }); + } + + node.on("close", done); + } + RED.nodes.registerType("ui_dropdown", DropdownNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.html new file mode 100644 index 0000000..a2a5ffc --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.html @@ -0,0 +1,312 @@ + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.js new file mode 100644 index 0000000..ad54591 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_form.js @@ -0,0 +1,45 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function FormNode(config) { + RED.nodes.createNode(this, config); + var node = this; + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: false, + storeFrontEndInputAsState: false, + control: { + type: 'form', + label: config.label, + order: config.order, + value: config.payload || node.id, + width: config.width || group.config.width || 6, + height: config.height || config.splitLayout == true ? Math.ceil(config.options.length/2) : config.options.length, + options: config.options, + formValue: config.formValue, + submit: config.submit, + cancel: config.cancel, + splitLayout: config.splitLayout || false, + sy: ui.getSizes().sy, + cy: ui.getSizes().cy + }, + beforeSend: function (msg) { + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_form", FormNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.html new file mode 100644 index 0000000..a434afc --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.html @@ -0,0 +1,162 @@ + + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.js new file mode 100644 index 0000000..c56d7f2 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_gauge.js @@ -0,0 +1,88 @@ +module.exports = function (RED) { + var ui = require('../ui')(RED); + + function GaugeNode(config) { + RED.nodes.createNode(this, config); + this.colors = config.colors || ["#00B500","#E6E600","#CA3838"]; + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + if (config.width === "0") { delete config.width; } + if (config.height === "0") { delete config.height; } + if (config.height === "1") { config.hideMinMax = true; } + node.autoheight = parseInt(group.config.width*0.5+1.5) || 4; + if (config.gtype && config.gtype === "wave") { node.autoheight = parseInt(group.config.width*0.75+0.5); } + if (config.gtype && config.gtype === "donut") { node.autoheight = parseInt(group.config.width -1); } + if (config.gtype && config.gtype === "compass") { node.autoheight = parseInt(group.config.width -1); } + + var sizes = ui.getSizes(); + var theme = ui.getTheme(); + + if (theme === undefined) { + theme = {"group-textColor":{value:"#000"}}; + theme["widget-textColor"] = {value:"#000"}; + theme["widget-backgroundColor"] = {value:'#1784be'}; + } + + var gageoptions = {}; + gageoptions.lineWidth = {'theme-dark':0.75}; + gageoptions.pointerOptions = {'theme-dark':{color:'#8e8e93'}, 'theme-custom':theme["group-textColor"].value}; + gageoptions.backgroundColor = {'theme-dark':'#515151', 'theme-custom':theme["widget-textColor"].value }; + gageoptions.compassColor = {'theme-dark':theme["widget-backgroundColor"].value, 'theme-light':theme["widget-backgroundColor"].value, 'theme-custom':theme["widget-backgroundColor"].value}; + gageoptions.valueFontColor = {'theme-dark':'#eee', 'theme-light':'#111', 'theme-custom':theme["widget-textColor"].value}; + + var waveoptions = {}; + waveoptions.circleColor = {'theme-dark':theme["widget-backgroundColor"].value, 'theme-light':theme["widget-backgroundColor"].value, 'theme-custom':theme["widget-backgroundColor"].value}; + waveoptions.waveColor = {'theme-dark':theme["widget-backgroundColor"].value, 'theme-light':theme["widget-backgroundColor"].value, 'theme-custom':theme["widget-backgroundColor"].value}; + waveoptions.textColor = {'theme-dark':theme["widget-textColor"].value, 'theme-light':theme["widget-textColor"].value, 'theme-custom':theme["widget-textColor"].value}; + waveoptions.waveTextColor = {'theme-dark':theme["widget-textColor"].value, 'theme-light':theme["widget-textColor"].value, 'theme-custom':theme["widget-textColor"].value}; + + var done = ui.add({ + node: node, + tab: tab, + group: group, + emitOnlyNewValues: false, + control: { + type: 'gauge', + name: config.name, + label: config.title, + units: config.label, + order: config.order, + value: config.min, + format: config.format, + gtype: config.gtype || 'gage', + min: (parseFloat(config.min) < parseFloat(config.max)) ? parseFloat(config.min) : parseFloat(config.max), + seg1: (parseFloat(config.seg1) < parseFloat(config.seg2)) ? parseFloat(config.seg1) : parseFloat(config.seg2), + seg2: (parseFloat(config.seg1) < parseFloat(config.seg2)) ? parseFloat(config.seg2) : parseFloat(config.seg1), + max: (parseFloat(config.min) < parseFloat(config.max)) ? parseFloat(config.max) : parseFloat(config.min), + reverse: (parseFloat(config.max) < parseFloat(config.min)) ? true : false, + sizes: sizes, + hideMinMax: config.hideMinMax, + width: config.width || group.config.width || 6, + height: config.height || node.autoheight, + colors: node.colors, + gageoptions: gageoptions, + waveoptions: waveoptions, + options: null + }, + convert: function(p,o,m) { + var form = config.format.replace(/{{/g,"").replace(/}}/g,"").replace(/\s/g,"") || "_zzz_zzz_zzz_"; + form = form.split('|')[0]; + var value = RED.util.getMessageProperty(m,form); + if (value !== undefined) { + if (!isNaN(parseFloat(value))) { value = parseFloat(value); } + return value; + } + if (!isNaN(parseFloat(p))) { p = parseFloat(p); } + return p; + //return ui.toFloat.bind(this, config); + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_gauge", GaugeNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.html new file mode 100644 index 0000000..8294597 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.html @@ -0,0 +1,82 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.js new file mode 100644 index 0000000..8e2eec7 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_group.js @@ -0,0 +1,19 @@ +module.exports = function(RED) { + + function GroupNode(config) { + RED.nodes.createNode(this, config); + this.config = { + name: config.name, + disp: config.disp, + width: config.width, + order: config.order, + tab: config.tab, + collapse: config.collapse || false + }; + if (!this.config.hasOwnProperty("disp")) { this.config.disp = true; } + if (this.config.disp !== false) { this.config.disp = true; } + if (!this.config.hasOwnProperty("collapse")) { this.config.collapse = false; } + } + + RED.nodes.registerType("ui_group", GroupNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.html new file mode 100644 index 0000000..4d6bc0c --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.html @@ -0,0 +1,60 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.js new file mode 100644 index 0000000..72ddceb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_link.js @@ -0,0 +1,12 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function LinkNode(config) { + RED.nodes.createNode(this, config); + var node = this; + var done = ui.addLink(config.name, config.link, config.icon, config.order, config.target); + node.on("close", done); + } + + RED.nodes.registerType("ui_link", LinkNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.html new file mode 100644 index 0000000..d892b19 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.html @@ -0,0 +1,108 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.js new file mode 100644 index 0000000..11c086d --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_numeric.js @@ -0,0 +1,65 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function NumericNode(config) { + RED.nodes.createNode(this, config); + this.pt = config.passthru; + this.state = [" "," "]; + var node = this; + node.status({}); + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: config.passthru, + control: { + type: 'numeric', + label: config.label, + tooltip: config.tooltip, + order: config.order, + format: config.format, + pre: config.format.split('{{')[0] || "", + post: config.format.split('}}')[1] || "", + value: Number(config.min), + min: Number(config.min), + max: Number(config.max), + step: Number(config.step || 1), + wrap: config.wrap || false, + width: config.width || group.config.width || 6, + height: config.height || 1, + ed: (config.format.includes("value") ? false : true) + }, + beforeSend: function (msg) { + msg.payload = parseFloat(msg.payload); + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + if (node.pt) { + node.status({shape:"dot",fill:"grey",text:msg.payload}); + } + else { + node.state[1] = msg.payload; + node.status({shape:"dot",fill:"grey",text:node.state[1] + " | " + node.state[1]}); + } + }, + convert: ui.toFloat.bind(this, config) + }); + if (!node.pt) { + node.on("input", function(msg) { + node.state[0] = msg.payload; + node.status({shape:"dot",fill:"grey",text:node.state[0] + " | " + node.state[1]}); + }); + } + node.on("close", done); + } + RED.nodes.registerType("ui_numeric", NumericNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.html new file mode 100644 index 0000000..2f19da5 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.html @@ -0,0 +1,107 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.js new file mode 100644 index 0000000..0a7f621 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_slider.js @@ -0,0 +1,66 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function SliderNode(config) { + RED.nodes.createNode(this, config); + this.pt = config.passthru; + this.state = [" "," "]; + var node = this; + node.status({}); + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: config.passthru, + control: { + type: 'slider', + label: config.label, + tooltip: config.tooltip, + order: config.order, + value: config.min, + min: Math.min(config.min, config.max), + max: Math.max(config.max, config.min), + invert: (parseFloat(config.min) > parseFloat(config.max)) ? true : undefined, + step: Math.abs(config.step) || 1, + outs: config.outs || "all", + width: config.width || group.config.width || 6, + height: config.height || 1 + }, + beforeSend: function (msg) { + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + if (node.pt) { + node.status({shape:"dot",fill:"grey",text:msg.payload}); + } + else { + node.state[1] = msg.payload; + node.status({shape:"dot",fill:"grey",text:node.state[1] + " | " + node.state[1]}); + } + }, + convert: ui.toFloat.bind(this, config) + }); + if (!node.pt) { + node.on("input", function(msg) { + node.state[0] = msg.payload; + node.status({shape:"dot",fill:"grey",text:node.state[0] + " | " + node.state[1]}); + }); + } + else if (node._wireCount === 0) { + node.on("input", function(msg) { + node.status({shape:"dot",fill:"grey",text:msg.payload}); + }); + } + node.on("close", done); + } + RED.nodes.registerType("ui_slider", SliderNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.html new file mode 100644 index 0000000..a71ed70 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.html @@ -0,0 +1,48 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.js new file mode 100644 index 0000000..8047e74 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_spacer.js @@ -0,0 +1,27 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function SpacerNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + var done = ui.add({ + node: node, + tab: tab, + group: group, + control: { + type: 'spacer', + order: config.order, + width: config.width || group.config.width || 6, + height: config.height || 1 + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_spacer", SpacerNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.html new file mode 100644 index 0000000..604c03f --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.html @@ -0,0 +1,177 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.js new file mode 100644 index 0000000..90fede7 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_switch.js @@ -0,0 +1,145 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function validateSwitchValue(node,property,type,payload) { + if (payloadType === 'flow' || payloadType === 'global') { + try { + var parts = RED.util.normalisePropertyExpression(payload); + if (parts.length === '') { + throw new Error(); + } + } catch(err) { + node.warn("Invalid payload property expression - defaulting to node id") + payload = node.id; + payloadType = 'str'; + } + } + else { + payload = payload || node.id; + } + } + function SwitchNode(config) { + RED.nodes.createNode(this, config); + this.pt = config.passthru; + this.state = ["off"," "]; + this.decouple = (config.decouple === "true") ? false : true; + var node = this; + node.status({}); + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + var parts; + var onvalue = config.onvalue; + var onvalueType = config.onvalueType; + if (onvalueType === 'flow' || onvalueType === 'global') { + try { + parts = RED.util.normalisePropertyExpression(onvalue); + if (parts.length === 0) { + throw new Error(); + } + } catch(err) { + node.warn("Invalid onvalue property expression - defaulting to true") + onvalue = true; + onvalueType = 'bool'; + } + } + var offvalue = config.offvalue; + var offvalueType = config.offvalueType; + if (offvalueType === 'flow' || offvalueType === 'global') { + try { + parts = RED.util.normalisePropertyExpression(offvalue); + if (parts.length === 0) { + throw new Error(); + } + } catch(err) { + node.warn("Invalid offvalue property expression - defaulting to false") + offvalue = false; + offvalueType = 'bool'; + } + } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + emitOnlyNewValues: false, + forwardInputMessages: config.passthru, + storeFrontEndInputAsState: (config.decouple === "true") ? false : true, //config.passthru, + state: false, + control: { + type: 'switch' + (config.style ? '-' + config.style : ''), + label: config.label, + tooltip: config.tooltip, + order: config.order, + value: false, + onicon: config.onicon, + officon: config.officon, + oncolor: config.oncolor, + offcolor: config.offcolor, + animate: config.animate?"flip-icon":"", + width: config.width || group.config.width || 6, + height: config.height || 1 + }, + convert: function (payload, oldval, msg) { + var myOnValue,myOffValue; + + if (onvalueType === "date") { myOnValue = Date.now(); } + else { myOnValue = RED.util.evaluateNodeProperty(onvalue,onvalueType,node); } + + if (offvalueType === "date") { myOffValue = Date.now(); } + else { myOffValue = RED.util.evaluateNodeProperty(offvalue,offvalueType,node); } + + if (!this.forwardInputMessages && this.storeFrontEndInputAsState) { + if (myOnValue === oldval) { return true; } + if (oldval === true) { return true; } + else { return false; } + } + + if (RED.util.compareObjects(myOnValue,msg.payload)) { node.state[0] = "on"; return true; } + else if (RED.util.compareObjects(myOffValue,msg.payload)) { node.state[0] = "off"; return false; } + else { return oldval; } + }, + convertBack: function (value) { + node.state[1] = value?"on":"off"; + if (node.pt) { + node.status({fill:(value?"green":"red"),shape:(value?"dot":"ring"),text:value?"on":"off"}); + } + else { + var col = (node.decouple) ? ((node.state[1]=="on")?"green":"red") : ((node.state[0]=="on")?"green":"red"); + var shp = (node.decouple) ? ((node.state[1]=="on")?"dot":"ring") : ((node.state[0]=="on")?"dot":"ring"); + var txt = (node.decouple) ? (node.state[0] +" | "+node.state[1].toUpperCase()) : (node.state[0].toUpperCase() +" | "+node.state[1]) + node.status({fill:col, shape:shp, text:txt}); + } + var payload = value ? onvalue : offvalue; + var payloadType = value ? onvalueType : offvalueType; + + if (payloadType === "date") { value = Date.now(); } + else { value = RED.util.evaluateNodeProperty(payload,payloadType,node); } + return value; + }, + beforeSend: function (msg) { + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + } + }); + + if (!node.pt) { + node.on("input", function() { + var col = (node.state[0]=="on") ? "green" : "red"; + var shp = (node.state[0]=="on") ? "dot" : "ring"; + var txt = (node.decouple) ? (node.state[0] +" | "+node.state[1].toUpperCase()) : (node.state[0].toUpperCase() +" | "+node.state[1]) + node.status({fill:col, shape:shp, text:txt}); + }); + } + + node.on("close", done); + } + RED.nodes.registerType("ui_switch", SwitchNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.html new file mode 100644 index 0000000..2fd6127 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.html @@ -0,0 +1,91 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.js new file mode 100644 index 0000000..d15b65a --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_tab.js @@ -0,0 +1,15 @@ +module.exports = function(RED) { + + function TabNode(config) { + RED.nodes.createNode(this, config); + this.config = { + name: config.name, + order: config.order || 0, + icon: config.icon || '', + disabled: config.disabled || false, + hidden: config.hidden || false + }; + } + + RED.nodes.registerType("ui_tab", TabNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.html new file mode 100644 index 0000000..cb30dc5 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.html @@ -0,0 +1,202 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.js new file mode 100644 index 0000000..9b620b7 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_template.js @@ -0,0 +1,89 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function TemplateNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group && config.templateScope !== 'global') { return; } + var tab = null; + if (config.templateScope !== 'global') { + tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + if (!config.width) { + config.width = group.config.width; + } + } + var hei = Number(config.height|| 0); + var previousTemplate = null + var theme = ui.getTheme(); + var colortheme = {}; + for (var i in theme) { + if (theme.hasOwnProperty(i)) { + colortheme[i.replace(/-/g, "_")] = theme[i].value; + } + } + + var done = ui.add({ + forwardInputMessages: config.fwdInMessages, + storeFrontEndInputAsState: config.storeOutMessages, + persistantFrontEndValue: config.resendOnRefresh, + emitOnlyNewValues: false, + node: node, + tab: tab, + group: group, + control: { + type: 'template', + order: config.order, + width: config.width || 6, + height: hei, + format: config.format, + templateScope: config.templateScope, + theme: colortheme + }, + beforeEmit: function(msg) { + var properties = Object.getOwnPropertyNames(msg).filter(function (p) { return p[0] != '_'; }); + var clonedMsg = { + templateScope: config.templateScope + }; + for (var i=0; i + RED.nodes.registerType('ui_text',{ + category: RED._("node-red-dashboard/ui_base:ui_base.label.category"), + color: 'rgb(119, 198, 204)', + defaults: { + group: {type: 'ui_group', required:true}, + order: {value: 0}, + width: {value: 0, validate: function(v) { + var width = v||0; + var currentGroup = $('#node-input-group').val()||this.group; + var groupNode = RED.nodes.node(currentGroup); + var valid = !groupNode || +width <= +groupNode.width; + $("#node-input-size").toggleClass("input-error",!valid); + return valid; + } + }, + height: {value: 0}, + name: {value: ''}, + label: {value: 'text'}, + format: {value: '{{msg.payload}}'}, + layout: {value:'row-spread'} + }, + inputs:1, + outputs:0, + align: "right", + icon: "ui_text.png", + paletteLabel: 'text', + label: function() { return this.name || (~this.label.indexOf("{{") ? null : this.label) || 'text'; }, + labelStyle: function() { return this.name?"node_label_italic":""; }, + oneditprepare: function() { + $("#node-input-size").elementSizer({ + width: "#node-input-width", + height: "#node-input-height", + group: "#node-input-group" + }); + + $(".nr-db-text-layout-"+(this.layout||'row-spread')).addClass('selected'); + + [ ".nr-db-text-layout-row-left",".nr-db-text-layout-row-center",".nr-db-text-layout-row-right", + ".nr-db-text-layout-row-spread",".nr-db-text-layout-col-center"].forEach(function(id) { + $(id).click(function(e) { + $(".nr-db-text-layout").removeClass('selected'); + $(this).addClass('selected'); + $('#node-input-layout').val(id.substring(".nr-db-text-layout-".length)); + e.preventDefault(); + }) + }) + } + }); + + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_text.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text.js new file mode 100644 index 0000000..d6c65fb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text.js @@ -0,0 +1,54 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function TextNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + var layout = config.layout||"row-spread"; + var angLayout = "row"; + var angLayoutAlign = "space-between center"; + if (layout === "row-spread") { angLayout = 'row'; angLayoutAlign = 'space-between center'} + else if (layout === "row-left") { angLayout = 'row'; angLayoutAlign = 'start center'} + else if (layout === "row-center") { angLayout = 'row'; angLayoutAlign = 'center center'} + else if (layout === "row-right") { angLayout = 'row'; angLayoutAlign = 'end center'} + else if (layout === "col-center") { angLayout = 'column'; angLayoutAlign = 'center center'} + var done = ui.add({ + emitOnlyNewValues: false, + node: node, + tab: tab, + group: group, + control: { + type: 'text', + label: config.label, + order: config.order, + format: config.format, + width: config.width || group.config.width || 6, + height: config.height || 1, + layout: angLayout, + layoutAlign: angLayoutAlign + }, + convert: function(value,oldValue,msg) { + if (value !== undefined && value !== null) { + if (Buffer.isBuffer(value)) { + value = value.toString('binary'); + } + else { + value = value.toString(); + } + } + else { + msg.payload = oldValue; + } + return value; + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_text", TextNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.html new file mode 100644 index 0000000..05cdcc9 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.html @@ -0,0 +1,106 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.js new file mode 100644 index 0000000..08f23d8 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_text_input.js @@ -0,0 +1,48 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function TextInputNode(config) { + RED.nodes.createNode(this, config); + var node = this; + + var group = RED.nodes.getNode(config.group); + if (!group) { return; } + var tab = RED.nodes.getNode(group.config.tab); + if (!tab) { return; } + + node.on("input", function(msg) { + node.topi = msg.topic; + }); + + var done = ui.add({ + node: node, + tab: tab, + group: group, + forwardInputMessages: config.passthru, + control: { + type: (config.delay <= 0 ? 'text-input-CR' : 'text-input'), + label: config.label, + tooltip: config.tooltip, + mode: config.mode, + delay: config.delay, + order: config.order, + value: '', + width: config.width || group.config.width || 6, + height: config.height || 1 + }, + beforeSend: function (msg) { + if (config.mode === "time") { + if (typeof msg.payload === "string") { + msg.payload = Date.parse(msg.payload); + } + } + // if (config.mode === "week") { msg.payload = Date.parse(msg.payload); } + // if (config.mode === "month") { msg.payload = Date.parse(msg.payload); } + var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi; + if (t) { msg.topic = t; } + } + }); + node.on("close", done); + } + RED.nodes.registerType("ui_text_input", TextInputNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.html new file mode 100644 index 0000000..7216a5b --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.html @@ -0,0 +1,109 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.js new file mode 100644 index 0000000..04b4058 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_toast.js @@ -0,0 +1,66 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function ToastNode(config) { + RED.nodes.createNode(this, config); + if (config.hasOwnProperty("displayTime") && (config.displayTime.length > 0)) { + try { this.displayTime = parseFloat(config.displayTime) * 1000; } + catch(e) { this.displayTime = 3000; } + } + this.position = config.position || "top right"; + this.highlight = config.highlight; + this.ok = config.ok; + this.cancel = config.cancel; + this.topic = config.topic; + if (config.sendall === undefined) { this.sendall = true; } + else { this.sendall = config.sendall; } + this.raw = config.raw || false; + var node = this; + + // var noscript = function (content) { + // if (typeof content === "object") { return null; } + // content = '' + content; + // content = content.replace(/<.*cript.*/ig, ''); + // content = content.replace(/.on\w+=.*".*"/g, ''); + // content = content.replace(/.on\w+=.*\'.*\'/g, ''); + // return content; + // } + + var done = ui.add({ + node: node, + control: {}, + storeFrontEndInputAsState: false, + forwardInputMessages: false, + beforeSend: function (msg) { + var m = msg.payload.msg; + m.topic = node.topic || m.topic; + return m; + } + }); + + node.on('input', function(msg) { + if (node.sendall === true) { delete msg.socketid; } + var dt = node.displayTime || msg.timeout * 1000 || 3000; + if (dt <= 0) { dt = 1; } + //msg.payload = noscript(msg.payload); + ui.emitSocket('show-toast', { + title: node.topic || msg.topic, + message: msg.payload, + highlight: node.highlight || msg.highlight, + displayTime: dt, + position: node.position, + id: node.id, + dialog: (node.position === "dialog" || node.position === "prompt") || false, + prompt: (node.position === "prompt") || false, + ok: node.ok, + cancel: node.cancel, + socketid: msg.socketid, + raw: node.raw, + msg: msg + }); + }); + + node.on("close", done); + } + RED.nodes.registerType("ui_toast", ToastNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.html b/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.html new file mode 100644 index 0000000..39ff5e0 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.html @@ -0,0 +1,38 @@ + + + diff --git a/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.js b/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.js new file mode 100644 index 0000000..4491bbb --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/nodes/ui_ui_control.js @@ -0,0 +1,72 @@ +module.exports = function(RED) { + var ui = require('../ui')(RED); + + function UiControlNode(config) { + RED.nodes.createNode(this, config); + this.events = config.events || "all"; + var node = this; + + this.on('input', function(msg) { + if (typeof msg.payload !== "object") { msg.payload = {tab:msg.payload}; } + // show/hide or enable/disable tabs + if (msg.payload.hasOwnProperty("tabs")) { + ui.emit('ui-control', {tabs:msg.payload.tabs, socketid:msg.socketid}); + } + // switch to tab name (or number) + if (msg.payload.hasOwnProperty("tab")) { + ui.emit('ui-control', {tab:msg.payload.tab, socketid:msg.socketid}); + } + // show or hide ui groups + if (msg.payload.hasOwnProperty("group")) { + ui.emit('ui-control', {group:msg.payload.group, socketid:msg.socketid}); + } + }); + + var sendconnect = function(id, ip) { + node.send({payload:"connect", socketid:id, socketip:ip}); + }; + + var sendlost = function(id, ip) { + node.send({payload:"lost", socketid:id, socketip:ip}); + }; + + var sendchange = function(index, name, id, ip, p) { + node.send({payload:"change", tab:index, name:name, socketid:id, socketip:ip, params:p}); + } + + var sendcollapse = function(group, state, id, ip) { + node.send({payload:"group", group:group, open:state, socketid:id, socketip:ip,}); + } + + if (node.events === "connect") { + ui.ev.on('newsocket', sendconnect); + } + else if (node.events === "change") { + ui.ev.on('changetab', sendchange); + ui.ev.on('collapse', sendcollapse); + } + else { + ui.ev.on('newsocket', sendconnect); + ui.ev.on('changetab', sendchange); + ui.ev.on('collapse', sendcollapse); + ui.ev.on('endsocket', sendlost); + } + + this.on('close', function() { + if (node.events === "connect") { + ui.ev.removeListener('newsocket', sendconnect); + } + else if (node.events === "change") { + ui.ev.removeListener('changetab', sendchange); + ui.ev.removeListener('collapse', sendcollapse); + } + else { + ui.ev.removeListener('newsocket', sendconnect); + ui.ev.removeListener('changetab', sendchange); + ui.ev.removeListener('collapse', sendcollapse); + ui.ev.removeListener('endsocket', sendlost); + } + }) + } + RED.nodes.registerType("ui_ui_control", UiControlNode); +}; diff --git a/data_node_red/node_modules/node-red-dashboard/package.json b/data_node_red/node_modules/node-red-dashboard/package.json new file mode 100644 index 0000000..00d94dd --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/package.json @@ -0,0 +1,172 @@ +{ + "_from": "node-red-dashboard@2.29.3", + "_id": "node-red-dashboard@2.29.3", + "_inBundle": false, + "_integrity": "sha512-oaApDGBXypXIRJ8Tg9uLWGlxBaqDD5FDBdjLK9oFjMuNt7LQqsnQZLeNc8zHIu84PelLdOWnDLD1XYUd7h8xwg==", + "_location": "/node-red-dashboard", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-red-dashboard@2.29.3", + "name": "node-red-dashboard", + "escapedName": "node-red-dashboard", + "rawSpec": "2.29.3", + "saveSpec": null, + "fetchSpec": "2.29.3" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.29.3.tgz", + "_shasum": "480dceeafb952b04f216171709a5004dca7f5adf", + "_spec": "node-red-dashboard@2.29.3", + "_where": "/data", + "bugs": { + "url": "https://github.com/node-red/node-red-dashboard/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Andrei Tatar" + }, + { + "name": "Dave Conway-Jones" + }, + { + "name": "Joe Pavitt" + }, + { + "name": "Nick O'Leary" + }, + { + "name": "Dan Cunnington" + }, + { + "name": "Laurence Stant" + }, + { + "name": "Camille Boissel" + }, + { + "name": "Hiroyasu Nishiyama" + }, + { + "name": "Steve Rickus" + }, + { + "name": "Kazuhiro Ito" + }, + { + "name": "@fellinga" + }, + { + "name": "@petslane" + }, + { + "name": "@hotNipi" + } + ], + "dependencies": { + "compression": "^1.7.4", + "gridstack": "^0.6.4", + "serve-static": "^1.14.1", + "socket.io": "~2.4.1" + }, + "deprecated": false, + "description": "A set of dashboard nodes for Node-RED", + "devDependencies": { + "angular": "~1.8.2", + "angular-animate": "~1.8.2", + "angular-aria": "~1.8.2", + "angular-chart.js": "^1.1.1", + "angular-material": "~1.2.1", + "angular-material-icons": "^0.7.1", + "angular-messages": "~1.8.2", + "angular-mocks": "~1.8.2", + "angular-route": "~1.8.2", + "angular-sanitize": "~1.8.2", + "angular-touch": "~1.8.2", + "angularjs-color-picker": "^3.4.8", + "chart.js": "~2.3.0", + "d3": "^3.5.17", + "font-awesome": "^4.7.0", + "gulp": "~4.0.2", + "gulp-angular-templatecache": "~3.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-concat": "^2.6.1", + "gulp-concat-css": "^3.1.0", + "gulp-debug": "^4.0.0", + "gulp-eol": "^0.2.0", + "gulp-header": "^2.0.9", + "gulp-html-replace": "^1.6.2", + "gulp-html-src": "^1.0.0", + "gulp-htmlmin": "^5.0.1", + "gulp-if": "^3.0.0", + "gulp-jscs": "^4.1.0", + "gulp-jshint": "^2.1.0", + "gulp-manifest3": "^0.1.2", + "gulp-rename": "^1.4.0", + "gulp-replace": "^1.1.3", + "gulp-sass": "^4.1.0", + "gulp-uglify": "~3.0.2", + "gulp-util": "^3.0.8", + "jquery": "^3.6.0", + "jshint": "~2.12.0", + "justgage": "~1.4.3", + "less": "^3.13.1", + "material-design-icons-iconfont": "~6.1.0", + "moment": "~2.29.1", + "sprintf-js": "^1.1.2", + "streamqueue": "~1.1.2", + "svg-morpheus": "^0.3.0", + "tinycolor2": "1.4.2", + "weather-icons-lite": "^1.6.1" + }, + "engines": { + "node": ">=8" + }, + "homepage": "https://github.com/node-red/node-red-dashboard#readme", + "keywords": [ + "node-red" + ], + "license": "Apache-2.0", + "main": "none", + "name": "node-red-dashboard", + "node-red": { + "version": ">=0.14.0", + "nodes": { + "ui_base": "nodes/ui_base.js", + "ui_button": "nodes/ui_button.js", + "ui_dropdown": "nodes/ui_dropdown.js", + "ui_switch": "nodes/ui_switch.js", + "ui_slider": "nodes/ui_slider.js", + "ui_numeric": "nodes/ui_numeric.js", + "ui_text_input": "nodes/ui_text_input.js", + "ui_date_picker": "nodes/ui_date_picker.js", + "ui_colour_picker": "nodes/ui_colour_picker.js", + "ui_form": "nodes/ui_form.js", + "ui_text": "nodes/ui_text.js", + "ui_gauge": "nodes/ui_gauge.js", + "ui_chart": "nodes/ui_chart.js", + "ui_audio": "nodes/ui_audio.js", + "ui_toast": "nodes/ui_toast.js", + "ui_ui_control": "nodes/ui_ui_control.js", + "ui_template": "nodes/ui_template.js", + "ui_link": "nodes/ui_link.js", + "ui_tab": "nodes/ui_tab.js", + "ui_group": "nodes/ui_group.js", + "ui_spacer": "nodes/ui_spacer.js" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/node-red/node-red-dashboard.git" + }, + "scripts": { + "prepare": "node fixfa.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "2.29.3" +} diff --git a/data_node_red/node_modules/node-red-dashboard/ui.js b/data_node_red/node_modules/node-red-dashboard/ui.js new file mode 100644 index 0000000..6d6bfd1 --- /dev/null +++ b/data_node_red/node_modules/node-red-dashboard/ui.js @@ -0,0 +1,629 @@ + +var inited = false; + +module.exports = function(RED) { + if (!inited) { + inited = true; + init(RED.server, RED.httpNode || RED.httpAdmin, RED.log, RED.settings); + } + return { + add: add, + addLink: addLink, + addBaseConfig: addBaseConfig, + emit: emit, + emitSocket: emitSocket, + toNumber: toNumber.bind(null, false), + toFloat: toNumber.bind(null, true), + updateUi: updateUi, + ev: ev, + getTheme: getTheme, + getSizes: getSizes, + isDark: isDark + }; +}; + +var fs = require('fs'); +var path = require('path'); +var events = require('events'); +var socketio = require('socket.io'); +var serveStatic = require('serve-static'); +var compression = require('compression'); +var dashboardVersion = require('./package.json').version; + +var baseConfiguration = {}; +var io; +var menu = []; +var globals = []; +var settings = {}; +var updateValueEventName = 'update-value'; +var currentValues = {}; +var replayMessages = {}; +var removeStateTimers = {}; +var removeStateTimeout = 1000; +var ev = new events.EventEmitter(); +var params = {}; +ev.setMaxListeners(0); + +// default manifest.json to be returned as required. +var mani = { + "name": "Node-RED Dashboard", + "short_name": "Dashboard", + "description": "A dashboard for Node-RED", + "start_url": "./#/0", + "background_color": "#910000", + "theme_color": "#910000", + "display": "standalone", + "icons": [ + {"src":"icon192x192.png", "sizes":"192x192", "type":"image/png"}, + {"src":"icon120x120.png", "sizes":"120x120", "type":"image/png"}, + {"src":"icon64x64.png", "sizes":"64x64", "type":"image/png"} + ] +} + +function toNumber(keepDecimals, config, input, old, m, s) { + if (input === undefined || input === null) { return; } + if (typeof input !== "number") { + var inputString = input.toString(); + input = keepDecimals ? parseFloat(inputString) : parseInt(inputString); + } + if (s) { input = Math.round(Math.round(input/s)*s*10000)/10000; } + return isNaN(input) ? config.min : input; +} + +function emit(event, data) { + io.emit(event, data); +} + +function emitSocket(event, data) { + if (data.hasOwnProperty("msg") && data.msg.hasOwnProperty("socketid") && (data.msg.socketid !== undefined)) { + io.to(data.msg.socketid).emit(event, data); + } + else if (data.hasOwnProperty("socketid") && (data.socketid !== undefined)) { + io.to(data.socketid).emit(event, data); + } + else { + io.emit(event, data); + } +} + +function noConvert(value) { + return value; +} + +function beforeEmit(msg, value) { + return { value:value }; +} + +function beforeSend(msg) { + //do nothing +} + +/* This is the handler for inbound msg from previous nodes... +options: + node - the node that represents the control on a flow + control - the control to be added + tab - tab config node that this control belongs to + group - group name + [emitOnlyNewValues] - boolean (default true). + If true, it checks if the payload changed before sending it + to the front-end. If the payload is the same no message is sent. + [forwardInputMessages] - boolean (default true). + If true, forwards input messages to the output + [storeFrontEndInputAsState] - boolean (default true). + If true, any message received from front-end is stored as state + [persistantFrontEndValue] - boolean (default true). + If true, last received message is send again when front end reconnect. + + [convert] - callback to convert the value before sending it to the front-end + [beforeEmit] - callback to prepare the message that is emitted to the front-end + + [convertBack] - callback to convert the message from front-end before sending it to the next connected node + [beforeSend] - callback to prepare the message that is sent to the output, + if the returned msg has a property _dontSend, then it won't get sent. +*/ +function add(opt) { + clearTimeout(removeStateTimers[opt.node.id]); + delete removeStateTimers[opt.node.id]; + + if (typeof opt.emitOnlyNewValues === 'undefined') { + opt.emitOnlyNewValues = true; + } + if (typeof opt.forwardInputMessages === 'undefined') { + opt.forwardInputMessages = true; + } + if (typeof opt.storeFrontEndInputAsState === 'undefined') { + opt.storeFrontEndInputAsState = true; + } + if (typeof opt.persistantFrontEndValue === 'undefined') { + opt.persistantFrontEndValue = true; + } + opt.convert = opt.convert || noConvert; + opt.beforeEmit = opt.beforeEmit || beforeEmit; + opt.convertBack = opt.convertBack || noConvert; + opt.beforeSend = opt.beforeSend || beforeSend; + opt.control.id = opt.node.id; + var remove = addControl(opt.tab, opt.group, opt.control); + + opt.node.on("input", function(msg) { + if (typeof msg.enabled === 'boolean') { + var state = replayMessages[opt.node.id]; + if (!state) { replayMessages[opt.node.id] = state = {id: opt.node.id}; } + state.disabled = !msg.enabled; + io.emit(updateValueEventName, state); // dcj mu + } + + // remove res and req as they are often circular + if (msg.hasOwnProperty("res")) { delete msg.res; } + if (msg.hasOwnProperty("req")) { delete msg.req; } + + // Retrieve the dataset for this node + var oldValue = currentValues[opt.node.id]; + + // let any arriving msg.ui_control message mess with control parameters + if (msg.ui_control && (typeof msg.ui_control === "object") && (!Array.isArray(msg.ui_control)) && (!Buffer.isBuffer(msg.ui_control) )) { + var changed = {}; + for (var property in msg.ui_control) { + if (msg.ui_control.hasOwnProperty(property) && opt.control.hasOwnProperty(property)) { + if ((property !== "id")&&(property !== "type")&&(property !== "order")&&(property !== "name")&&(property !== "value")&&(property !== "width")&&(property !== "height")) { + opt.control[property] = msg.ui_control[property]; + changed[property] = msg.ui_control[property]; + } + } + } + if (Object.keys(changed).length !== 0) { + io.emit('ui-control', {control:changed, id:opt.node.id}); + } + if (!msg.hasOwnProperty("payload")) { return; } + } + + // Call the convert function in the node to get the new value + // as well as the full dataset. + var conversion = opt.convert(msg.payload, oldValue, msg, opt.control.step); + + // If the update flag is set, emit the newPoint, and store the full dataset + var fullDataset; + var newPoint; + if ((typeof(conversion) === 'object') && (conversion !== null) && (conversion.update !== undefined)) { + newPoint = conversion.newPoint; + fullDataset = conversion.updatedValues; + } + else if (conversion === undefined) { + fullDataset = oldValue; + newPoint = true; + } + else { + // If no update flag is set, this means the conversion contains + // the full dataset or the new value (e.g. gauges) + fullDataset = conversion; + } + // If we have something new to emit + if (newPoint !== undefined || !opt.emitOnlyNewValues || oldValue != fullDataset) { + currentValues[opt.node.id] = fullDataset; + + // Determine what to emit over the websocket + // (the new point or the full dataset). + + // Always store the full dataset. + var toStore = opt.beforeEmit(msg, fullDataset); + var toEmit; + if ((newPoint !== undefined) && (typeof newPoint !== "boolean")) { toEmit = opt.beforeEmit(msg, newPoint); } + else { toEmit = toStore; } + + var addField = function(m) { + if (opt.control.hasOwnProperty(m) && opt.control[m] && opt.control[m].indexOf("{{") !== -1) { + var a = opt.control[m].split("{{"); + a.shift(); + for (var i = 0; i < a.length; i++) { + var b = a[i].split("}}")[0].trim(); + b.replace(/\"/g,'').replace(/\'/g,''); + if (b.indexOf("|") !== -1) { b = b.split("|")[0]; } + if (b.indexOf(" ") !== -1) { b = b.split(" ")[0]; } + if (b.indexOf("?") !== -1) { b = b.split("?")[0]; } + b.replace(/\(/g,'').replace(/\)/g,''); + if (b.indexOf("msg.") >= 0) { + b = b.split("msg.")[1]; + if (b.indexOf(".") !== -1) { b = b.split(".")[0]; } + if (b.indexOf("[") !== -1) { b = b.split("[")[0]; } + if (!toEmit.hasOwnProperty("msg")) { toEmit.msg = {}; } + if (!toEmit.msg.hasOwnProperty(b) && msg.hasOwnProperty(b) && (msg[b] !== undefined)) { + if (Buffer.isBuffer(msg[b])) { toEmit.msg[b] = msg[b].toString("binary"); } + else { toEmit.msg[b] = JSON.parse(JSON.stringify(msg[b])); } + } + //if (Object.keys(toEmit.msg).length === 0) { delete toEmit.msg; } + } + else { + if (b.indexOf(".") !== -1) { b = b.split(".")[0]; } + if (b.indexOf("[") !== -1) { b = b.split("[")[0]; } + if (!toEmit.hasOwnProperty(b) && msg.hasOwnProperty(b)) { + if (Buffer.isBuffer(msg[b])) { toEmit[b] = msg[b].toString("binary"); } + else { toEmit[b] = JSON.parse(JSON.stringify(msg[b])); } + } + } + } + } + } + + // if label, format, color, units, tooltip or icon fields are set to a msg property, emit that as well + addField("label"); + addField("format"); + addField("color"); + addField("units"); + addField("tooltip"); + addField("icon"); + if (msg.hasOwnProperty("enabled")) { toEmit.disabled = !msg.enabled; } + toEmit.id = toStore.id = opt.node.id; + //toEmit.socketid = msg.socketid; // dcj mu + // Emit and Store the data + //if (settings.verbose) { console.log("UI-EMIT",JSON.stringify(toEmit)); } + emitSocket(updateValueEventName, toEmit); + if (opt.persistantFrontEndValue === true) { + replayMessages[opt.node.id] = toStore; + } + + // Handle the node output + if (opt.forwardInputMessages && opt.node._wireCount && fullDataset !== undefined) { + msg.payload = opt.convertBack(fullDataset); + msg = opt.beforeSend(msg) || msg; + //if (settings.verbose) { console.log("UI-SEND",JSON.stringify(msg)); } + if (!msg._dontSend) { opt.node.send(msg); } + } + } + }); + + // This is the handler for messages coming back from the UI + var handler = function (msg) { + if (msg.id !== opt.node.id) { return; } // ignore if not us + if (settings.readOnly === true) { return; } // don't accept input if we are in read only mode + var converted = opt.convertBack(msg.value); + if (opt.storeFrontEndInputAsState === true) { + currentValues[msg.id] = converted; + if (opt.persistantFrontEndValue === true) { + replayMessages[msg.id] = msg; + } + } + var toSend = {payload:converted}; + toSend = opt.beforeSend(toSend, msg) || toSend; + + if (toSend !== undefined) { + toSend.socketid = toSend.socketid || msg.socketid; + if (msg.hasOwnProperty("meta")) { toSend.meta = msg.meta; } + if (toSend.hasOwnProperty("topic") && (toSend.topic === undefined)) { delete toSend.topic; } + // send to following nodes + if (!msg.hasOwnProperty("_dontSend")) { opt.node.send(toSend); } + } + + if (opt.storeFrontEndInputAsState === true) { + //fwd to all UI clients + io.emit(updateValueEventName, msg); + } + }; + + ev.on(updateValueEventName, handler); + + return function() { + ev.removeListener(updateValueEventName, handler); + remove(); + removeStateTimers[opt.node.id] = setTimeout(function() { + delete currentValues[opt.node.id]; + delete replayMessages[opt.node.id]; + }, removeStateTimeout); + }; +} + +//from: https://stackoverflow.com/a/28592528/3016654 +function join() { + var trimRegex = new RegExp('^\\/|\\/$','g'); + var paths = Array.prototype.slice.call(arguments); + return '/'+paths.map(function(e) { + if (e) { return e.replace(trimRegex,""); } + }).filter(function(e) {return e;}).join('/'); +} + +function init(server, app, log, redSettings) { + var uiSettings = redSettings.ui || {}; + if ((uiSettings.hasOwnProperty("path")) && (typeof uiSettings.path === "string")) { + settings.path = uiSettings.path; + } + else { settings.path = 'ui'; } + if ((uiSettings.hasOwnProperty("readOnly")) && (typeof uiSettings.readOnly === "boolean")) { + settings.readOnly = uiSettings.readOnly; + } + else { settings.readOnly = false; } + settings.defaultGroupHeader = uiSettings.defaultGroup || 'Default'; + settings.verbose = redSettings.verbose || false; + + var fullPath = join(redSettings.httpNodeRoot, settings.path); + var socketIoPath = join(fullPath, 'socket.io'); + + io = socketio(server, {path: socketIoPath}); + + var dashboardMiddleware = function(req, res, next) { next(); } + + if (uiSettings.middleware) { + if (typeof uiSettings.middleware === "function" || Array.isArray(uiSettings.middleware)) { + dashboardMiddleware = uiSettings.middleware; + } + } + + fs.stat(path.join(__dirname, 'dist/index.html'), function(err, stat) { + app.use(compression()); + if (!err) { + app.use( join(settings.path, "manifest.json"), function(req, res) { res.send(mani); }); + app.use( join(settings.path), dashboardMiddleware, serveStatic(path.join(__dirname, "dist")) ); + } + else { + log.info("[Dashboard] Dashboard using development folder"); + app.use(join(settings.path), dashboardMiddleware, serveStatic(path.join(__dirname, "src"))); + var vendor_packages = [ + 'angular', 'angular-sanitize', 'angular-animate', 'angular-aria', 'angular-material', 'angular-touch', + 'angular-material-icons', 'svg-morpheus', 'font-awesome', 'weather-icons-lite', + 'sprintf-js', 'jquery', 'jquery-ui', 'd3', 'raphael', 'justgage', 'angular-chart.js', 'chart.js', + 'moment', 'angularjs-color-picker', 'tinycolor2', 'less' + ]; + vendor_packages.forEach(function (packageName) { + app.use(join(settings.path, 'vendor', packageName), serveStatic(path.join(__dirname, 'node_modules', packageName))); + }); + } + }); + + log.info("Dashboard version " + dashboardVersion + " started at " + fullPath); + + if (typeof uiSettings.ioMiddleware === "function") { + io.use(uiSettings.ioMiddleware); + } else if (Array.isArray(uiSettings.ioMiddleware)) { + uiSettings.ioMiddleware.forEach(function (ioMiddleware) { + io.use(ioMiddleware); + }); + } else { + io.use(function (socket, next) { + if (socket.client.conn.request.url.indexOf("transport=websocket") !== -1) { + // Reject direct websocket requests + socket.client.conn.close(); + return; + } + if (socket.handshake.xdomain === false) { + return next(); + } else { + socket.disconnect(true); + } + }); + } + + io.on('connection', function(socket) { + + ev.emit("newsocket", socket.client.id, socket.request.headers['x-real-ip'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress); + updateUi(socket); + + socket.on(updateValueEventName, ev.emit.bind(ev, updateValueEventName)); + socket.on('ui-replay-state', function() { + var ids = Object.getOwnPropertyNames(replayMessages); + setTimeout(function() { + ids.forEach(function (id) { + socket.emit(updateValueEventName, replayMessages[id]); + }); + }, 50); + socket.emit('ui-replay-done'); + }); + socket.on('ui-change', function(index) { + var name = ""; + if ((index != null) && !isNaN(index) && (menu.length > 0) && (index < menu.length) && menu[index]) { + name = (menu[index].hasOwnProperty("header") && typeof menu[index].header !== 'undefined') ? menu[index].header : menu[index].name; + ev.emit("changetab", index, name, socket.client.id, socket.request.headers['x-real-ip'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress, params); + } + }); + socket.on('ui-collapse', function(d) { + ev.emit("collapse", d.group, d.state, socket.client.id, socket.request.headers['x-real-ip'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress); + }); + socket.on('ui-refresh', function() { + updateUi(); + }); + socket.on('disconnect', function() { + ev.emit("endsocket", socket.client.id, socket.request.headers['x-real-ip'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress); + }); + socket.on('ui-audio', function(audioStatus) { + ev.emit("audiostatus", audioStatus, socket.client.id, socket.request.headers['x-real-ip'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress); + }); + socket.on('ui-params', function(p) { + delete p.socketid; + params = p; + }); + }); +} + +var updateUiPending = false; +function updateUi(to) { + if (!to) { + if (updateUiPending) { return; } + updateUiPending = true; + to = io; + } + process.nextTick(function() { + menu.forEach(function(o) { + o.theme = baseConfiguration.theme; + }); + to.emit('ui-controls', { + site: baseConfiguration.site, + theme: baseConfiguration.theme, + menu: menu, + globals: globals + }); + updateUiPending = false; + }); +} + +function find(array, predicate) { + for (var i=0; i= 0) { + globals.splice(index, 1); + updateUi(); + } + } + } + else { + groupHeader = groupHeader || settings.defaultGroupHeader; + control.order = parseFloat(control.order); + + var foundTab = find(menu, function (t) {return t.id === tab.id }); + if (!foundTab) { + foundTab = { + id: tab.id, + header: tab.config.name, + order: parseFloat(tab.config.order), + icon: tab.config.icon, + //icon: tab.config.hidden ? "fa-ban" : tab.config.icon, + disabled: tab.config.disabled, + hidden: tab.config.hidden, + items: [] + }; + menu.push(foundTab); + menu.sort(itemSorter); + } + + var foundGroup = find(foundTab.items, function (g) {return g.header === groupHeader;}); + if (!foundGroup) { + foundGroup = { + header: groupHeader, + items: [] + }; + foundTab.items.push(foundGroup); + } + foundGroup.items.push(control); + foundGroup.items.sort(itemSorter); + foundGroup.order = groupHeader.config.order; + foundTab.items.sort(itemSorter); + + updateUi(); + + // Return the remove function for this control + return function() { + var index = foundGroup.items.indexOf(control); + if (index >= 0) { + // Remove the item from the group + foundGroup.items.splice(index, 1); + + // If the group is now empty, remove it from the tab + if (foundGroup.items.length === 0) { + index = foundTab.items.indexOf(foundGroup); + if (index >= 0) { + foundTab.items.splice(index, 1); + + // If the tab is now empty, remove it as well + if (foundTab.items.length === 0) { + index = menu.indexOf(foundTab); + if (index >= 0) { + menu.splice(index, 1); + } + } + } + } + updateUi(); + } + } + } +} + +function addLink(name, link, icon, order, target) { + var newLink = { + name: name, + link: link, + icon: icon, + order: order || 1, + target: target + }; + + menu.push(newLink); + menu.sort(itemSorter); + updateUi(); + + return function() { + var index = menu.indexOf(newLink); + if (index < 0) { return; } + menu.splice(index, 1); + updateUi(); + } +} + +function addBaseConfig(config) { + if (config) { baseConfiguration = config; } + mani.name = config.site ? config.site.name : "Node-RED Dashboard"; + mani.short_name = mani.name.replace("Node-RED","").trim(); + mani.background_color = config.theme.themeState["page-titlebar-backgroundColor"].value; + mani.theme_color = config.theme.themeState["page-titlebar-backgroundColor"].value; + updateUi(); +} + +function angularColorToHex(color) { + var angColorValues = { red: "#F44336", pink: "#E91E63", purple: "#9C27B0", deeppurple: "#673AB7", + indigo: "#3F51B5", blue: "#2196F3", lightblue: "#03A9F4", cyan: "#00BCD4", teal: "#009688", + green: "#4CAF50", lightgreen: "#8BC34A", lime: "#CDDC39", yellow: "#FFEB3B", amber: "#FFC107", + orange: "#FF9800", deeporange: "#FF5722", brown: "#795548", grey: "#9E9E9E", bluegrey: "#607D8B"}; + return angColorValues[color.replace("-","").toLowerCase()]; +} + +function getTheme() { + if (baseConfiguration && baseConfiguration.site && baseConfiguration.site.allowTempTheme && baseConfiguration.site.allowTempTheme === "none") { + baseConfiguration.theme.name = "theme-custom"; + baseConfiguration.theme.themeState["widget-backgroundColor"].value = angularColorToHex(baseConfiguration.theme.angularTheme.primary); + baseConfiguration.theme.themeState["widget-textColor"].value = (baseConfiguration.theme.angularTheme.palette === "dark") ? "#fff" : "#000"; + return baseConfiguration.theme.themeState; + } + else if (baseConfiguration && baseConfiguration.hasOwnProperty("theme") && (typeof baseConfiguration.theme !== "undefined") ) { + return baseConfiguration.theme.themeState; + } + else { + return undefined; + } +} + +function getSizes() { + if (baseConfiguration && baseConfiguration.hasOwnProperty("site") && (typeof baseConfiguration.site !== "undefined") && baseConfiguration.site.hasOwnProperty("sizes")) { + return baseConfiguration.site.sizes; + } + else { + return { sx:48, sy:48, gx:6, gy:6, cx:6, cy:6, px:0, py:0 }; + } +} + +function isDark() { + if (baseConfiguration && baseConfiguration.site && baseConfiguration.site.allowTempTheme && baseConfiguration.site.allowTempTheme === "none") { + if (baseConfiguration && baseConfiguration.hasOwnProperty("theme") && baseConfiguration.theme.hasOwnProperty("angularTheme")) { + if (baseConfiguration.theme.angularTheme && baseConfiguration.theme.angularTheme.palette && baseConfiguration.theme.angularTheme.palette === "dark") { return true;} + } + return false; + } + else if (baseConfiguration && baseConfiguration.hasOwnProperty("theme") && baseConfiguration.theme.hasOwnProperty("themeState")) { + var rgb = parseInt(baseConfiguration.theme.themeState["page-backgroundColor"].value.substring(1), 16); + var luma = 0.2126 * ((rgb >> 16) & 0xff) + 0.7152 * ((rgb >> 8) & 0xff) + 0.0722 * ((rgb >> 0) & 0xff); // per ITU-R BT.709 + if (luma > 128) { return false; } + else { return true; } + } + else { return false; } // if in doubt - let's say it's light. +} diff --git a/data_node_red/node_modules/node-red-node-mysql/68-mysql.html b/data_node_red/node_modules/node-red-node-mysql/68-mysql.html new file mode 100644 index 0000000..8a12a9a --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/68-mysql.html @@ -0,0 +1,88 @@ + + + + + + + + diff --git a/data_node_red/node_modules/node-red-node-mysql/68-mysql.js b/data_node_red/node_modules/node-red-node-mysql/68-mysql.js new file mode 100644 index 0000000..539dad6 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/68-mysql.js @@ -0,0 +1,210 @@ + +module.exports = function(RED) { + "use strict"; + var reconnect = RED.settings.mysqlReconnectTime || 20000; + var mysqldb = require('mysql'); + + function MySQLNode(n) { + RED.nodes.createNode(this,n); + this.host = n.host; + this.port = n.port; + this.tz = n.tz || "local"; + this.charset = (n.charset || "UTF8_GENERAL_CI").toUpperCase(); + + this.connected = false; + this.connecting = false; + + this.dbname = n.db; + this.setMaxListeners(0); + var node = this; + + function checkVer() { + node.pool.query("SELECT version();", [], function(err, rows, fields) { + if (err) { + node.error(err); + node.status({fill:"red",shape:"ring",text:"Bad Ping"}); + doConnect(); + } + }); + } + + function doConnect() { + node.connecting = true; + node.emit("state","connecting"); + if (!node.pool) { + node.pool = mysqldb.createPool({ + host : node.host, + port : node.port, + user : node.credentials.user, + password : node.credentials.password, + database : node.dbname, + timezone : node.tz, + insecureAuth: true, + multipleStatements: true, + connectionLimit: 50, + timeout: 30000, + connectTimeout: 30000, + charset: node.charset + }); + } + + node.pool.getConnection(function(err, connection) { + node.connecting = false; + if (err) { + node.emit("state",err.code); + node.error(err); + node.tick = setTimeout(doConnect, reconnect); + } + else { + node.connection = connection; + node.connected = true; + node.emit("state","connected"); + node.connection.on('error', function(err) { + node.connected = false; + node.connection.release(); + node.emit("state",err.code); + if (err.code === 'PROTOCOL_CONNECTION_LOST') { + doConnect(); // silently reconnect... + } + else if (err.code === 'ECONNRESET') { + doConnect(); // silently reconnect... + } + else { + node.error(err); + doConnect(); + } + }); + if (!node.check) { node.check = setInterval(checkVer, 290000); } + } + }); + } + + this.connect = function() { + if (!this.connected && !this.connecting) { + doConnect(); + } + } + + this.on('close', function(done) { + if (this.tick) { clearTimeout(this.tick); } + if (this.check) { clearInterval(this.check); } + node.connected = false; + // node.connection.release(); + node.emit("state"," "); + node.pool.end(function(err) { done(); }); + }); + } + RED.nodes.registerType("MySQLdatabase",MySQLNode, { + credentials: { + user: {type: "text"}, + password: {type: "password"} + } + }); + + + function MysqlDBNodeIn(n) { + RED.nodes.createNode(this,n); + this.mydb = n.mydb; + this.mydbConfig = RED.nodes.getNode(this.mydb); + this.status({}); + + if (this.mydbConfig) { + this.mydbConfig.connect(); + var node = this; + var busy = false; + var status = {}; + node.mydbConfig.on("state", function(info) { + if (info === "connecting") { node.status({fill:"grey",shape:"ring",text:info}); } + else if (info === "connected") { node.status({fill:"green",shape:"dot",text:info}); } + else { + if (info === "ECONNREFUSED") { info = "connection refused"; } + if (info === "PROTOCOL_CONNECTION_LOST") { info = "connection lost"; } + node.status({fill:"red",shape:"ring",text:info}); + } + }); + + node.on("input", function(msg, send, done) { + send = send || function() { node.send.apply(node,arguments) }; + if (node.mydbConfig.connected) { + if (typeof msg.topic === 'string') { + //console.log("query:",msg.topic); + var bind = []; + if (Array.isArray(msg.payload)) { bind = msg.payload; } + else if (typeof msg.payload === 'object' && msg.payload !== null) { + bind = msg.payload; + node.mydbConfig.connection.config.queryFormat = function(query, values) { + if (!values) { + return query; + } + return query.replace(/\:(\w+)/g, function(txt, key) { + if (values.hasOwnProperty(key)) { + return this.escape(values[key]); + } + return txt; + }.bind(this)); + }; + } + node.mydbConfig.connection.query(msg.topic, bind, function(err, rows) { + if (err) { + status = {fill:"red",shape:"ring",text:"Error: "+err.code}; + node.status(status); + node.error(err,msg); + } + else { + if (rows.constructor.name === "OkPacket") { + msg.payload = JSON.parse(JSON.stringify(rows)); + } + else if (rows.constructor.name === "Array") { + if (rows[0] && rows[0].constructor.name === "RowDataPacket") { + msg.payload = rows.map(v => Object.assign({}, v)); + } + else if (rows[0] && rows[0].constructor.name === "Array") { + if (rows[0][0] && rows[0][0].constructor.name === "RowDataPacket") { + msg.payload = rows.map(function(v) { + if (!Array.isArray(v)) { return v; } + v.map(w => Object.assign({}, w)) + }); + } + else { msg.payload = rows; } + } + else { msg.payload = rows; } + } + else { msg.payload = rows; } + send(msg); + status = {fill:"green",shape:"dot",text:"OK"}; + node.status(status); + } + done(); + // if (node.mydbConfig.pool._freeConnections.indexOf(node.mydbConfig.connection) === -1) { + // node.mydbConfig.connection.release(); + // } + }); + } + else { + if (typeof msg.topic !== 'string') { node.error("msg.topic : the query is not defined as a string"); done(); } + } + } + else { + node.error("Database not connected",msg); + status = {fill:"red",shape:"ring",text:"not yet connected"}; + done(); + } + if (!busy) { + busy = true; + node.status(status); + node.tout = setTimeout(function() { busy = false; node.status(status); },500); + } + }); + + node.on('close', function() { + if (node.tout) { clearTimeout(node.tout); } + node.mydbConfig.removeAllListeners(); + node.status({}); + }); + } + else { + this.error("MySQL database not configured"); + } + } + RED.nodes.registerType("mysql",MysqlDBNodeIn); +} diff --git a/data_node_red/node_modules/node-red-node-mysql/LICENSE b/data_node_red/node_modules/node-red-node-mysql/LICENSE new file mode 100644 index 0000000..f5b6011 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/LICENSE @@ -0,0 +1,14 @@ +Copyright 2016 JS Foundation and other contributors, https://js.foundation/ +Copyright 2013-2016 IBM Corp. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/data_node_red/node_modules/node-red-node-mysql/README.md b/data_node_red/node_modules/node-red-node-mysql/README.md new file mode 100644 index 0000000..cd2b50b --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/README.md @@ -0,0 +1,59 @@ +node-red-node-mysql +======================== +A Node-RED node to read and write to a MySQL database. + +Install +------- + +Either use the `Node-RED Menu - Manage Palette - Install`, or run the following command in your Node-RED user directory - typically `~/.node-red` + + npm i node-red-node-mysql + + +Usage +----- + +Allows basic access to a MySQL database. + +This node uses the **query** operation against the configured database. This does allow both INSERTS and DELETES. + +By its very nature it allows SQL injection... so *be careful out there...* + +The `msg.topic` must hold the *query* for the database, and the result is returned in `msg.payload`. + +Typically the returned payload will be an array of the result rows. + +If nothing is found for the key then *null* is returned. + +The reconnect retry timeout in milliseconds can be changed by adding a line to **settings.js** +```javascript +mysqlReconnectTime: 30000, +``` + +The timezone can be set like GMT, EST5EDT, UTC, etc. + +The charset defaults to the "old" Mysql 3 byte UTF. If you need support for emojis etc then use UTF8MB4. + + +Preparing Queries +----- +```javascript +msg.payload=[24, 'example-user']; +msg.topic="INSERT INTO users (`userid`, `username`) VALUES (?, ?);" +return msg; +``` + +with named parameters: + +```javascript +msg.payload={} +msg.payload.userToChange=42; +msg.payload.newUsername="example-user"; +msg.topic="INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;" +return msg; +``` + +Documentation +----- + +Documentation of the used Node.js package diff --git a/data_node_red/node_modules/node-red-node-mysql/locales/en-US/68-mysql.html b/data_node_red/node_modules/node-red-node-mysql/locales/en-US/68-mysql.html new file mode 100644 index 0000000..2a31875 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/locales/en-US/68-mysql.html @@ -0,0 +1,18 @@ + + + + diff --git a/data_node_red/node_modules/node-red-node-mysql/package.json b/data_node_red/node_modules/node-red-node-mysql/package.json new file mode 100644 index 0000000..314ad88 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-mysql/package.json @@ -0,0 +1,53 @@ +{ + "_from": "node-red-node-mysql@0.1.9", + "_id": "node-red-node-mysql@0.1.9", + "_inBundle": false, + "_integrity": "sha512-+h4av8LpGxxqVIGwv97kUvra8A/KqT6kIpZD0fEI7tjmgYujUABiAMh+QKCJRkqgT/kSB76B1M6g69kcMAEMnA==", + "_location": "/node-red-node-mysql", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-red-node-mysql@0.1.9", + "name": "node-red-node-mysql", + "escapedName": "node-red-node-mysql", + "rawSpec": "0.1.9", + "saveSpec": null, + "fetchSpec": "0.1.9" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/node-red-node-mysql/-/node-red-node-mysql-0.1.9.tgz", + "_shasum": "9e267dd9bc1c3c0cbf14b6e0f21f54b7150da437", + "_spec": "node-red-node-mysql@0.1.9", + "_where": "/data", + "author": { + "name": "Dave Conway-Jones", + "email": "ceejay@vnet.ibm.com", + "url": "http://nodered.org" + }, + "bundleDependencies": false, + "dependencies": { + "mysql": "^2.18.1" + }, + "deprecated": false, + "description": "A Node-RED node to read and write to a MySQL database", + "keywords": [ + "node-red", + "mysql" + ], + "license": "Apache-2.0", + "name": "node-red-node-mysql", + "node-red": { + "nodes": { + "mysql": "68-mysql.js" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/node-red/node-red-nodes/tree/master/storage/mysql" + }, + "version": "0.1.9" +} diff --git a/data_node_red/node_modules/node-red-node-ping/88-ping.html b/data_node_red/node_modules/node-red-node-ping/88-ping.html new file mode 100644 index 0000000..8ec5509 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/88-ping.html @@ -0,0 +1,121 @@ + + + + diff --git a/data_node_red/node_modules/node-red-node-ping/88-ping.js b/data_node_red/node_modules/node-red-node-ping/88-ping.js new file mode 100644 index 0000000..c7119ba --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/88-ping.js @@ -0,0 +1,252 @@ + +module.exports = function(RED) { + "use strict"; + var spawn = require("child_process").spawn; + var plat = require("os").platform(); + + function doPing(node, host, arrayMode) { + const defTimeout = 5000; + var ex, ex6, hostOptions, commandLineOptions; + if (typeof host === "string") { + hostOptions = { + host: host, + timeout: defTimeout + } + } else { + hostOptions = host; + hostOptions.timeout = isNaN(parseInt(hostOptions.timeout)) ? defTimeout : parseInt(hostOptions.timeout); + } + //clamp timeout between 1 and 30 sec + hostOptions.timeout = hostOptions.timeout < 1000 ? 1000 : hostOptions.timeout; + hostOptions.timeout = hostOptions.timeout > 30000 ? 30000 : hostOptions.timeout; + var timeoutS = Math.round(hostOptions.timeout / 1000); //whole numbers only + var msg = { payload:false, topic:hostOptions.host }; + //only include the extra msg object if operating in advance/array mode. + if (arrayMode) { + msg.ping = hostOptions + } + + var cmd = "ping"; + //User Selected Protocol + if (plat == "linux" || plat == "android") { + if (node.protocol === "IPv4") { + commandLineOptions = ["-n", "-4", "-w", timeoutS, "-c", "1"]; //IPv4 + } else if (node.protocol === "IPv6") { + commandLineOptions = ["-n", "-6", "-w", timeoutS, "-c", "1"]; //IPv6 + } else { + commandLineOptions = ["-n", "-w", timeoutS, "-c", "1"]; //Automatic + } + } else if (plat.match(/^win/)) { + if (node.protocol === "IPv4") { + commandLineOptions = ["-n", "1", "-4", "-w", hostOptions.timeout]; //IPv4 + } else if (node.protocol === "IPv6") { + commandLineOptions = ["-n", "1", "-6", "-w", hostOptions.timeout]; //IPv6 + } else { + commandLineOptions = ["-n", "1", "-w", hostOptions.timeout]; //Automatic + } + } else if (plat == "darwin" || plat == "freebsd") { + if (node.protocol === "IPv4") { + commandLineOptions = ["-n", "-t", timeoutS, "-c", "1"]; //IPv4 + } else if (node.protocol === "IPv6") { + cmd = "ping6"; + commandLineOptions = ["-n", "-t", timeoutS, "-c", "1"]; //IPv6 + } else { + commandLineOptions = ["-n", "-t", timeoutS, "-c", "1"]; //Automatic + } + + } else { + node.error("Sorry - your platform - "+plat+" - is not recognised.", msg); + return; //dont pass go - just return! + } + + //spawn with timeout in case of os issue + ex = spawn(cmd, [...commandLineOptions, hostOptions.host]); + + //monitor every spawned process & SIGINT if too long + var spawnTout = setTimeout(() => { + node.log(`ping - Host '${hostOptions.host}' process timeout - sending SIGINT`) + try { + if (ex && ex.pid) { ex.kill("SIGINT"); } + } + catch(e) {console.warn(e); } + }, hostOptions.timeout+1000); //add 1s for grace + + var res = false; + var line = ""; + var fail = false; + //var regex = /from.*time.(.*)ms/; + var regex = /=.*[<|=]([0-9]*).*TTL|ttl..*=([0-9\.]*)/; + + var tryPing6 = false; + //catch error msg from ping + ex.stderr.setEncoding('utf8'); + ex.stderr.on("data", function (data) { + if (!data.includes('Usage')) { // !data: only get the error and not how to use the ping command + if (data.includes('invalid') && data.includes('6')) { //if IPv6 not supported in version of ping try ping6 + tryPing6 = true; + } + else if (data.includes('Network is unreachable')) { + node.status({shape:"ring",fill:"red"}); + node.error(data + " Please check that your service provider or network device has IPv6 enabled", msg); + node.hadErr = true; + } + else { + node.status({shape:"ring",fill:"grey"}); + node.hadErr = true; + } + } + }); + + ex.stdout.on("data", function (data) { + line += data.toString(); + }); + ex.on("exit", function (err) { + clearTimeout(spawnTout); + }); + ex.on("error", function (err) { + fail = true; + if (err.code === "ENOENT") { + node.error(err.code + " ping command not found", msg); + } + else if (err.code === "EACCES") { + node.error(err.code + " can't run ping command", msg); + } + else { + node.error(err.code, msg); + } + }); + ex.on("close", function (code) { + if (tryPing6 === false) { + if (fail) { fail = false; return; } + var m = regex.exec(line)||""; + if (m !== "") { + if (m[1]) { res = Number(m[1]); } + if (m[2]) { res = Number(m[2]); } + } + if (code === 0) { msg.payload = res } + try { node.send(msg); } + catch(e) {console.warn(e)} + + } + else { + //fallback to ping6 for OS's that have not updated/out of date + if (plat == "linux" || plat == "android") { + commandLineOptions = ["-n", "-w", timeoutS, "-c", "1"]; + } else if (plat == "darwin" || plat == "freebsd") { + commandLineOptions = ["-n", "-c", "1"] //NOTE: -X / timeout does not work on mac OSX and most freebsd systems + } else { + node.error("Sorry IPv6 on your platform - "+plat+" - is not supported.", msg); + } + //spawn with timeout in case of os issue + ex6 = spawn("ping6", [...commandLineOptions, hostOptions.host]); + + //monitor every spawned process & SIGINT if too long + var spawnTout = setTimeout(() => { + node.log(`ping6 - Host '${hostOptions.host}' process timeout - sending SIGINT`) + try { + if (ex6 && ex6.pid) { ex6.kill("SIGINT"); } + } + catch(e) {console.warn(e); } + }, hostOptions.timeout+1000); //add 1s for grace + + //catch error msg from ping6 + ex6.stderr.setEncoding('utf8'); + ex6.stderr.on("data", function (data) { + if (!data.includes('Usage')) { // !data: only get the error and not how to use the ping6 command + if (data.includes('Network is unreachable')) { + node.error(data + " Please check that your service provider or network device has IPv6 enabled", msg); + node.status({shape:"ring",fill:"red"}); + } + else { + node.status({shape:"ring",fill:"grey"}); + } + node.hadErr = true; + } + }); + + ex6.stdout.on("data", function (data) { + line += data.toString(); + }); + ex6.on("exit", function (err) { + clearTimeout(spawnTout); + }); + ex6.on("error", function (err) { + fail = true; + if (err.code === "ENOENT") { + node.error(err.code + " ping6 command not found", msg); + } + else if (err.code === "EACCES") { + node.error(err.code + " can't run ping6 command", msg); + } + else { + node.error(err.code, msg); + } + }); + ex6.on("close", function (code) { + if (fail) { fail = false; return; } + var m = regex.exec(line)||""; + if (m !== "") { + if (m[1]) { res = Number(m[1]); } + if (m[2]) { res = Number(m[2]); } + } + if (code === 0) { msg.payload = res } + try { node.send(msg); } + catch(e) {console.warn(e)} + }); + } + }); + } + + function PingNode(n) { + RED.nodes.createNode(this,n); + this.protocol = n.protocol||'Automatic'; + this.mode = n.mode; + this.host = n.host; + this.timer = n.timer * 1000; + this.hadErr = false; + var node = this; + + function generatePingList(str) { + return (str + "").split(",").map((e) => (e + "").trim()).filter((e) => e != ""); + } + function clearPingInterval() { + if (node.tout) { clearInterval(node.tout); } + } + + if (node.mode === "triggered") { + clearPingInterval(); + } else if (node.timer) { + node.tout = setInterval(function() { + if (node.hadErr) { node.hadErr = false; node.status({}); } + let pingables = generatePingList(node.host); + for (let index = 0; index < pingables.length; index++) { + const element = pingables[index]; + if (element) { doPing(node, element, false); } + } + }, node.timer); + } + + this.on("input", function (msg) { + let node = this; + if (node.hadErr) { node.hadErr = false; node.status({}); } + let payload = node.host || msg.payload; + if (typeof payload == "string") { + let pingables = generatePingList(payload) + for (let index = 0; index < pingables.length; index++) { + const element = pingables[index]; + if (element) { doPing(node, element, false); } + } + } else if (Array.isArray(payload) ) { + for (let index = 0; index < payload.length; index++) { + const element = payload[index]; + if (element) { doPing(node, element, true); } + } + } + }); + + this.on("close", function() { + clearPingInterval(); + }); + } + RED.nodes.registerType("ping",PingNode); +} diff --git a/data_node_red/node_modules/node-red-node-ping/LICENSE b/data_node_red/node_modules/node-red-node-ping/LICENSE new file mode 100644 index 0000000..6085bcc --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/LICENSE @@ -0,0 +1,14 @@ +Copyright 2016-2019 JS Foundation and other contributors, https://js.foundation/ +Copyright 2013-2016 IBM Corp. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/data_node_red/node_modules/node-red-node-ping/README.md b/data_node_red/node_modules/node-red-node-ping/README.md new file mode 100644 index 0000000..44cb27d --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/README.md @@ -0,0 +1,43 @@ +node-red-node-ping +================== + +A Node-RED node to ping a +remote server, for use as a keep-alive check. + +Install +------- + +Either use the Editor - Menu - Manage Palette - Import option or run the following command in your Node-RED user directory - typically `~/.node-red` + + npm install node-red-node-ping + + +**Gotchas** + + 1 Ubuntu Snap containers are strict and do not like giving external commands (like ping) external access. To allow ping to work you must manually add the network-observe interface + + sudo snap connect node-red:network-observe + + 2 On some versions on Raspbian (Raspberry Pi) `ping` seems to be a root only command. +The fix is to allow it as follows + + sudo setcap cap_net_raw=ep /bin/ping + sudo setcap cap_net_raw=ep /bin/ping6 + +Usage +----- + +Pings 1 or more devices and returns the trip time in mS as `msg.payload`. + +Returns boolean `false` if no response received, or if the host is unresolveable. + +`msg.error` will contain any error message if necessary. + +`msg.topic` contains the ip address of the target host. + +There are 2 modes - `Timed` and `Triggered`. + +* Timed mode - this is the default mode that pings your devices on a timed basis. Default ping is every 20 seconds but can be configured. +* Triggered mode - this mode permits you to trigger the ping by an input message. If the `Target` is left blank and `msg.payload` is a string or array, you can ping 1 or more devices on demand. + +Refer to the built in help on the side-bar info panel for more details. diff --git a/data_node_red/node_modules/node-red-node-ping/locales/de/88-ping.json b/data_node_red/node_modules/node-red-node-ping/locales/de/88-ping.json new file mode 100644 index 0000000..bf09891 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/locales/de/88-ping.json @@ -0,0 +1,15 @@ +{ + "ping": { + "ping": "ping", + "label": { + "target": "Ziel", + "ping": "Ping (S)", + "mode": "Modus", + "mode_option": { + "timed": "Zeitgesteuert", + "triggered": "Getriggert" + }, + "tip": "Hinweis: Ziel-Eintrag leer lassen, damit 眉ber msg.payload der Hosts dynamisch gesetzt werden kann" + } + } +} diff --git a/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.html b/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.html new file mode 100644 index 0000000..ea86049 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.html @@ -0,0 +1,69 @@ + diff --git a/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.json b/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.json new file mode 100644 index 0000000..74a7653 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/locales/en-US/88-ping.json @@ -0,0 +1,21 @@ +{ + "ping": { + "ping": "ping", + "label": { + "target": "Target", + "ping": "Ping (S)", + "mode": "Mode", + "mode_option": { + "timed": "Timed", + "triggered": "Triggered" + }, + "protocol": "Protocol", + "protocol_option": { + "auto": "Automatic", + "ipv4": "IPv4", + "ipv6": "IPv6" + }, + "tip": "Note: Leave Target field blank to allow msg.payload to set hosts dynamically." + } + } +} diff --git a/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.html b/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.html new file mode 100644 index 0000000..b9c7f57 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.html @@ -0,0 +1,66 @@ + diff --git a/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.json b/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.json new file mode 100644 index 0000000..4510b38 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/locales/ja/88-ping.json @@ -0,0 +1,21 @@ +{ + "ping": { + "ping": "ping", + "label": { + "target": "銈裤兗銈层儍銉", + "ping": "Ping (绉)", + "mode": "銉€兗銉", + "mode_option": { + "timed": "鏅傞枔", + "triggered": "銉堛儶銈兗" + }, + "protocol": "銉椼儹銉堛偝銉", + "protocol_option": { + "auto": "鑷嫊銇", + "ipv4": "IPv4", + "ipv6": "IPv6" + }, + "tip": "娉: msg.payload銇с儧銈广儓鍚嶃倰鍕曠殑銇寚瀹氥仚銈嬪牬鍚堛伅銆併偪銉笺偛銉冦儓銉曘偅銉笺儷銉夈倰绌恒伀銇椼伨銇欍" + } + } +} diff --git a/data_node_red/node_modules/node-red-node-ping/package.json b/data_node_red/node_modules/node-red-node-ping/package.json new file mode 100644 index 0000000..5b2f490 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ping/package.json @@ -0,0 +1,57 @@ +{ + "_from": "node-red-node-ping@0.3.1", + "_id": "node-red-node-ping@0.3.1", + "_inBundle": false, + "_integrity": "sha512-8fdkrEgOJ0Cvkgw9a0BhnIFZ/8GAXQSvdLVVkrTgRSWMWJ/FHDwLyqEjeqfXRbFuzIfhT5fd2c7AXAS2vovpFw==", + "_location": "/node-red-node-ping", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-red-node-ping@0.3.1", + "name": "node-red-node-ping", + "escapedName": "node-red-node-ping", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/node-red-node-ping/-/node-red-node-ping-0.3.1.tgz", + "_shasum": "dfd016c13a8740807ede61932ebc01364632ecbd", + "_spec": "node-red-node-ping@0.3.1", + "_where": "/data", + "author": { + "name": "Dave Conway-Jones", + "email": "ceejay@vnet.ibm.com", + "url": "http://nodered.org" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "@Steve-Mcl" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "A Node-RED node to ping a remote server, for use as a keep-alive check.", + "keywords": [ + "node-red", + "ping", + "keepalive" + ], + "license": "Apache-2.0", + "name": "node-red-node-ping", + "node-red": { + "nodes": { + "ping": "88-ping.js" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/node-red/node-red-nodes/tree/master/io/ping" + }, + "version": "0.3.1" +} diff --git a/data_node_red/node_modules/node-red-node-ui-table/LICENSE b/data_node_red/node_modules/node-red-node-ui-table/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/data_node_red/node_modules/node-red-node-ui-table/README.md b/data_node_red/node_modules/node-red-node-ui-table/README.md new file mode 100644 index 0000000..5b42958 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/README.md @@ -0,0 +1,173 @@ +node-red-node-ui-table +====================== + +A Node-RED UI widget node which displays data as a table. + +## Install + +Either use the Editor - Menu - Manage Palette - Install option, or run the following command in your Node-RED user directory (typically `~/.node-red`) after installing Node-RED-dashboard. + + npm i node-red-node-ui-table + +## Usage + +This table node expects `msg.payload` to contain an array of data, one object per row. +Each data row object should have the same set of keys because the keys in the object are used as the column names. + +Both examples can be imported from the Node-RED Editor - Menu - Import - Examples + +### Simple Table + +With no configuration the node will try to create a table with equally spaced columns of simple text for each row provided, using the keys as column titles. + +![screenshot](https://raw.githubusercontent.com/node-red/node-red-ui-nodes/master/node-red-node-ui-table/screenshot.png) + +### Richer Table + +The columns can be configured manually. If so then only the `msg.payload` properties defined will be displayed. You can then also define the Title, Width, Alignment and Format of the column. + +![screenshot2](https://raw.githubusercontent.com/node-red/node-red-ui-nodes/master/node-red-node-ui-table/screenshot2.png) + + - **Title**: Text for the column title (or blank). + - **Width**: Either a number of pixels or percentage of the overall table width. e.g. 150 or 20%. Leave blank for automatic, equally spaced to fill the available space. + - **Align**: Column alignment, left, centre or right. + - **Format**: Formatting of the input. + - **Plain Text** - Simple text values. + - **HTML** - Rich html to allow text Formatting - *NOTE*: this is raw un-sanitised HTML. + - **Link** - URL link to a web page. + - **Image** - Source (src) URL of an image to display. + - **Progress** - a progress bar from 0 to 100. + - **Traffic** - Red/Amber/Green indicator light set by numbers in the range 0-33-67-100. + - **Color** - HTML color name, or hex value (#rrggbb) to fill the cell. + - **Tick/Cross** - Tick or Cross symbol, boolean true/false, numeric 1/0 or text "1"/"0". + - **Stars** - Number of stars - numeric 0 to 5. + - **Row Number** - Current row number. + + +### Example data + +``` +[ + { + "Name": "Kazuhito Yokoi", + "Age": "35", + "Favourite Color": "red", + "Date Of Birth": "12/09/1983" + }, + { + "Name": "Oli Bob", + "Age": "12", + "Favourite Color": "cyan", + "Date Of Birth": "12/08/2017" + } +] +``` +## advanced features + +ui-table is based on the **tabulator** module. You can find an excellent in depth [documentation here](http://tabulator.info/docs/4.4) with many [examples here](http://tabulator.info/examples/4.4). + +## send commands to ui-table + +Instead of sending an array to ui-table this node to replace the complete table data ui-table also accepts an object as payload to send commands. Beside data manipulation you can [set filters](http://tabulator.info/docs/4.5/filter#func) and do many other things with commands. The object must have the following properties + +- `command` a valid tabulator function such as `addRow`, `replaceData` or `addFilter` +- `arguments` *(optional)* array of arguments for that function +- `returnPromise` *(optional)* a boolean value. `true` if the function should return a promise message. See tabulator documentation which commands will return promises + +example +```json +{"payload":{ + "command":"addData", + "arguments":[ + { + "facility":"daemon", + "facilityCode":3, + "severity":"info", + "severityCode":6, + "tag":"systemd[1]", + "timestamp":"2020-01-02T19:17:39.793Z", + "hostname":"localhost", + "address":"127.0.0.1", + "family":"IPv4", + "port":38514, + "size":80, + "msg":"some demo data", + "id":2351 + }, + true + ], + "returnPromise":true + } +} +``` +By sending only changed or new data to ui-table it is possible to update the table very fast by only sending the new data down to cell level. Or huge amounts of data could be sent like logs. + +**important notices** + +Data which is sent to ui-table through commands is **not** cached by ui-table! The flow has to take care to update the table for new clients connection or dashboard tab changes! +Tabulator does not limit the amount of data it holds. It is quite efficient in showing tables with a couple of thousand rows. If it the data exceeds the capabilities of the clients browser it will crash with an **out of memory** error without notice. + +Example flow "4 sending commands.json" file can be found in the examples folder or installed directly using **menu/import/examples/ui-table**. +This flow shows a basic implementation how the flow can keep a cached copy of all table data and add/delete or update selective rows. +Most nodes have info text available in the info/help tab. + +## control ui-table by sending ```msg.ui_control``` messages + +ui-table can be customized by sending configuration data to `msg.ui_control.tabulator`. + +![customized table](https://raw.githubusercontent.com/node-red/node-red-ui-nodes/master/node-red-node-ui-table//ui-table-custom.png) + +by adding ***headers***, ***footers***, ***line*** or ***column grouping*** it is sometimes not possible to determine the amount of lines. Therefore the height can be defined by sending `msg.ui_control.customHeight=lines`. + +Example flow "3 ui_control table.json" file can be found in the examples folder + +- grouped columns by nesting column definition in ` ui_control.tabulator.columns` +- first column ```frozen``` from horizontal scrolling +- `formatterParams` to define min/max, color, legend or other parameters for `progress` and `planText` formatters +- functions to format legend values +``` javascript +// add a unit +function(cell, formatterParams, onRendered){ + return cell.getValue()+"掳C"; +} +``` +or more sophisticated using html +``` javascript +// convert Number to Icons +function(cell, formatterParams, onRendered){ + var html="Yokoi\",\"Age\":\"30\",\"Color\":\"lime\",\"Prog\":70,\"Star\":\"3\"},{\"Name\":\"DCJ\",\"Age\":\"50\",\"Color\":\"dodgerblue\",\"Prog\":\"45\",\"Star\":2,\"Pass\":false,\"web\":\"\"},{\"Name\":\"Nick\",\"Age\":\"40\",\"Color\":\"darkred\",\"Prog\":95,\"Star\":\"5\",\"Pass\":true,\"web\":\"http://nodered.org\"},{\"Name\":\"Oli\"}]", + "payloadType": "json", + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "x": 210, + "y": 580, + "wires": [ + [ + "7d48e13.90ee22" + ] + ] + }, + { + "id": "cb53cb76.5fd0d8", + "type": "inject", + "z": "bb6af731.9866a8", + "name": "", + "topic": "", + "payload": "[{\"Name\":\"Yokoi\",\"Age\":\"30\",\"Color\":\"lime\",\"Prog\":20,\"Star\":\"1\"},{\"Name\":\"DCJ\",\"Age\":\"50\",\"Color\":\"dodgerblue\",\"Prog\":\"80\",\"Star\":4,\"Pass\":true,\"web\":\"\"},{\"Name\":\"Nick\",\"Age\":\"40\",\"Color\":\"red\",\"Prog\":90,\"Star\":\"5\",\"Pass\":true,\"web\":\"http://nodered.org\"},{\"Name\":\"Oli\"}]", + "payloadType": "json", + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "x": 210, + "y": 620, + "wires": [ + [ + "7d48e13.90ee22" + ] + ] + }, + { + "id": "7d48e13.90ee22", + "type": "ui_table", + "z": "bb6af731.9866a8", + "group": "571a38b1.5e3638", + "name": "People", + "order": 1, + "width": "8", + "height": "3", + "columns": [ + { + "field": "Name", + "title": "Who", + "width": "", + "align": "left", + "formatter": "html", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "Age", + "title": "Age", + "width": "40", + "align": "center", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "Color", + "title": "", + "width": "5%", + "align": "left", + "formatter": "color", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "Star", + "title": "%", + "width": "100", + "align": "left", + "formatter": "star", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "Pass", + "title": "", + "width": "5%", + "align": "center", + "formatter": "tickCross", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "Prog", + "title": "", + "width": "80", + "align": "left", + "formatter": "progress", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "web", + "title": "URL", + "width": "", + "align": "left", + "formatter": "link", + "formatterParams": { + "target": "_blank" + } + } + ], + "x": 420, + "y": 580, + "wires": [] + }, + { + "id": "571a38b1.5e3638", + "type": "ui_group", + "z": "", + "name": "Richer Table", + "tab": "29ec6908.552b36", + "order": 1, + "disp": true, + "width": "8", + "collapse": false + }, + { + "id": "29ec6908.552b36", + "type": "ui_tab", + "z": "", + "name": "Home", + "icon": "track_changes", + "order": 1, + "disabled": false, + "hidden": false + } +] diff --git a/data_node_red/node_modules/node-red-node-ui-table/examples/3 ui_control table.json b/data_node_red/node_modules/node-red-node-ui-table/examples/3 ui_control table.json new file mode 100644 index 0000000..d614b79 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/examples/3 ui_control table.json @@ -0,0 +1,105 @@ +[ + { + "id": "ba92cba0.ee4ad8", + "type": "inject", + "z": "fbd51901.ad38e8", + "name": "", + "topic": "", + "payload": "[{\"name\":\"MEQ0451495\",\"room\":\"Bathroom\",\"SET_TEMPERATURE-value\":22,\"ACTUAL_TEMPERATURE-value\":21.8,\"VALVE_STATE-value\":90,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":true,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ1875547\",\"room\":\"Living Room\",\"SET_TEMPERATURE-value\":12,\"ACTUAL_TEMPERATURE-value\":16.2,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":1},{\"name\":\"MEQ1875538\",\"room\":\"Living Room\",\"SET_TEMPERATURE-value\":18,\"ACTUAL_TEMPERATURE-value\":19.5,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.6,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":2},{\"name\":\"MEQ0447462\",\"room\":\"Kitchen\",\"SET_TEMPERATURE-value\":17,\"ACTUAL_TEMPERATURE-value\":22.2,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":10,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":3},{\"name\":\"MEQ1875551\",\"room\":\"Office\",\"SET_TEMPERATURE-value\":18,\"ACTUAL_TEMPERATURE-value\":20.2,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ0447425\",\"room\":\"Dining Room\",\"SET_TEMPERATURE-value\":19,\"ACTUAL_TEMPERATURE-value\":20.4,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ1875546\",\"room\":\"Dining Room\",\"SET_TEMPERATURE-value\":20,\"ACTUAL_TEMPERATURE-value\":18.8,\"VALVE_STATE-value\":99,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ0447483\",\"room\":\"Bedroom\",\"SET_TEMPERATURE-value\":17,\"ACTUAL_TEMPERATURE-value\":22.4,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ1875541\",\"room\":\"Child\",\"SET_TEMPERATURE-value\":18,\"ACTUAL_TEMPERATURE-value\":20.4,\"VALVE_STATE-value\":0,\"BATTERY_STATE-value\":2.7,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0},{\"name\":\"MEQ1875552\",\"room\":\"Guest Room\",\"SET_TEMPERATURE-value\":20,\"ACTUAL_TEMPERATURE-value\":21.1,\"VALVE_STATE-value\":9,\"BATTERY_STATE-value\":2.8,\"BOOST_STATE-value\":0,\"AUTO_MODE-value\":false,\"CONTROL_MODE-value\":0}]", + "payloadType": "json", + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "x": 169, + "y": 221, + "wires": [ + [ + "8115c722.5d91d8" + ] + ] + }, + { + "id": "8115c722.5d91d8", + "type": "change", + "z": "fbd51901.ad38e8", + "name": "ui_control", + "rules": [ + { + "t": "set", + "p": "ui_control", + "pt": "msg", + "to": "{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"ROom\",\"field\":\"room\",\"width\":100,\"frozen\":true},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Device\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Type\",\"field\":\"deviceType\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"target\",\"field\":\"SET_TEMPERATURE-value\",\"formatter\":\"function(cell, formatterParams, onRendered){return cell.getValue()+'掳C';}\",\"topCalc\":\"avg\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"min\":10,\"max\":25,\"color\":[\"blue\",\"green\",\"red\"],\"legend\":\"function (value) {return '  '+value+'掳C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"current\",\"field\":\"ACTUAL_TEMPERATURE-value\",\"formatter\":\"progress\",\"topCalc\":\"avg\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":99,\"color\":[\"gray\",\"orange\",\"red\"],\"legend\":\"function (value) {return (value>0)? '  '+value+' %' : '-';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"center\"},\"title\":\"Valve\",\"field\":\"VALVE_STATE-value\",\"formatter\":\"progress\",\"topCalc\":\"max\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"min\":1.5,\"max\":4.6,\"color\":[\"red\",\"orange\",\"green\"],\"legend\":\"function (value) {return value+' V';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"center\"},\"title\":\"Batt\",\"field\":\"BATTERY_STATE-value\",\"formatter\":\"progress\",\"topCalc\":\"min\",\"width\":100}]},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Settings\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":30,\"color\":[\"red\",\"orange\",\"green\"],\"legend\":\"function (value) { if (value>0) return \\\"\\\"+value+\\\" min\\\"; else return \\\"aus\\\"; }\",\"legendColor\":\"#101010\",\"legendAlign\":\"center\"},\"title\":\"Boost\",\"field\":\"BOOST_STATE-value\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"allowTruthy\":true,\"tickElement\":\"\",\"crossElement\":\"\"},\"title\":\"Auto\",\"field\":\"AUTO_MODE-value\",\"formatter\":\"tickCross\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Mode\",\"field\":\"CONTROL_MODE-value\",\"formatter\":\"function(cell, formatterParams, onRendered){ var html=\\\" 100", + "tooltip": "using a rowFormatter callback function", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "function(row){ if(row.getData().numberValue>100){ row.getElement().style.backgroundColor = \"#A6A6DF\"; } },", + "payloadType": "str", + "topic": "rowFormatter", + "x": 280, + "y": 629, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "f178c6fe.710ef8", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 5, + "width": 0, + "height": 0, + "passthru": false, + "label": "Fill demo data", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "[{\"textValue\":\"Line #1\",\"numberValue\":123.12},{\"textValue\":\"Line #2\",\"numberValue\":100},{\"textValue\":\"Line #3\",\"numberValue\":50}]", + "payloadType": "json", + "topic": "rowFormatter", + "x": 250, + "y": 357, + "wires": [ + [ + "2e6a6379.742abc" + ] + ] + }, + { + "id": "2403f929.df4006", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 11, + "width": "4", + "height": "1", + "passthru": false, + "label": "inject Tooltips callback", + "tooltip": "cell.getColumn().getField() + \" - \" + cell.getValue();", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "function(cell){return cell.getColumn().getField() + \" - \" + cell.getValue(); },", + "payloadType": "str", + "topic": "tooltips", + "x": 270, + "y": 731, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "f6c68c45.58003", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 12, + "width": "4", + "height": "1", + "passthru": false, + "label": "clear Tooltips callback", + "tooltip": "empty string is not possible! so use a single space", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"payload\":\"\"}", + "payloadType": "json", + "topic": "tooltips", + "x": 270, + "y": 765, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "d2b29dda.60a5a", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 13, + "width": "4", + "height": "1", + "passthru": false, + "label": "reformat Number column", + "tooltip": "inject additional paramters to numberValue column", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "[{\"field\":\"numberValue\",\"formatterParams\":{\"min\":0,\"max\":200,\"legend\":\"function (value) { if (value<100) return \\\"\\\"+value+\\\"\\\"; else return \\\"\\\"+value+\\\"\\\"; }\",\"legendAlign\":\"center\"},\"formatter\":\"progress\",\"topCalc\":\"function(values, data, calcParams){ var total = 0; var calc = 0; var count = 0; data.forEach(value => { total+=Number(value.numberValue); count++; }); if (count>0) calc=(total/count).toFixed(2); return `${calc} (avg)`; }\",\"headerTooltip\":\"avarage\"}]", + "payloadType": "json", + "topic": "columns", + "x": 280, + "y": 833, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "7b6490b3.cd9c7", + "type": "function", + "z": "c4712650.59b5e8", + "name": "callback function(s)", + "func": "// how to use the editor to write callback functions\n// DO NOT wire this into your flow!\n// copy / paste \"function( ... }\" into the correct calback parameter\n// use the \"debugger\" statement to debug your callback inside your browser\n\nvar topCalc = function(values, data, calcParams){\n var total = 0;\n var calc = 0;\n var count = 0;\n data.forEach(value => {\n total+=Number(value.numberValue);\n count++;\n });\n if (count>0) calc=(total/count).toFixed(2);\n return `${calc} (avg)`;\n}\n\nvar legend = function (value) {\n if (value<100) return \"\"+value+\"\";\n else return \"\"+value+\"\"; \n}", + "outputs": 1, + "noerr": 0, + "x": 600, + "y": 765, + "wires": [ + [] + ] + }, + { + "id": "91506d4b.4956a", + "type": "comment", + "z": "c4712650.59b5e8", + "name": "Intentionally not wired into the flow!", + "info": "use the editor to write callback functions\n\nDO NOT wire this into your flow!\n\ncopy / paste `function( ... }` into the correct calback parameter\nuse the `debugger` statement to debug your callback inside your browser\n", + "x": 650, + "y": 731, + "wires": [] + }, + { + "id": "732afcea.f728f4", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 14, + "width": "4", + "height": "1", + "passthru": false, + "label": "reset Number column", + "tooltip": "inject additional paramters to numberValue column", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "[{\"field\":\"numberValue\",\"formatter\":\"plainText\",\"topCalc\":\"\",\"headerTooltip\":\"\"}]", + "payloadType": "json", + "topic": "columns", + "x": 270, + "y": 867, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "89cca7ea.7fc998", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 15, + "width": "4", + "height": "1", + "passthru": false, + "label": "add/show id column", + "tooltip": "add a new column", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "[{\"field\":\"id\",\"title\":\"id\",\"visible\":true,\"formatter\":\"plainText\"}]", + "payloadType": "json", + "topic": "columns", + "x": 270, + "y": 935, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "32a3c4ad.1b85fc", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 16, + "width": "4", + "height": "1", + "passthru": false, + "label": "hide id column", + "tooltip": "hide id column (it is not possible to delete a existing column definition)", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "[{\"field\":\"id\",\"title\":\"id\",\"visible\":false,\"formatter\":\"plainText\"}]", + "payloadType": "json", + "topic": "columns", + "x": 250, + "y": 969, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "25247f4b.cc7ec", + "type": "inject", + "z": "c4712650.59b5e8", + "name": "", + "topic": "", + "payload": "true", + "payloadType": "bool", + "repeat": "", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "x": 84, + "y": 493, + "wires": [ + [ + "75207e8d.c54d4", + "bd3fd382.a2aa9" + ] + ] + }, + { + "id": "18ed8d27.bf00a3", + "type": "ui_button", + "z": "c4712650.59b5e8", + "name": "", + "group": "ff9fdb9a.7da098", + "order": 10, + "width": "4", + "height": "1", + "passthru": false, + "label": "reset Numbers > 100", + "tooltip": "using a rowFormatter callback function", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"payload\":\"\"}", + "payloadType": "json", + "topic": "rowFormatter", + "x": 270, + "y": 663, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "bd3fd382.a2aa9", + "type": "ui_switch", + "z": "c4712650.59b5e8", + "name": "headerVisible", + "label": "headerVisible", + "tooltip": "", + "group": "ff9fdb9a.7da098", + "order": 7, + "width": 0, + "height": 0, + "passthru": true, + "decouple": "false", + "topic": "headerVisible", + "style": "", + "onvalue": "true", + "onvalueType": "bool", + "onicon": "", + "oncolor": "", + "offvalue": "false", + "offvalueType": "bool", + "officon": "", + "offcolor": "", + "x": 250, + "y": 544, + "wires": [ + [ + "16664cef.5b26b3" + ] + ] + }, + { + "id": "ff9fdb9a.7da098", + "type": "ui_group", + "z": "", + "name": "TEST", + "tab": "7dcc246f.ee661c", + "order": 1, + "disp": false, + "width": "8", + "collapse": false + }, + { + "id": "7dcc246f.ee661c", + "type": "ui_tab", + "z": "", + "name": "TEST", + "icon": "dashboard", + "order": 12, + "disabled": false, + "hidden": false + } +] \ No newline at end of file diff --git a/data_node_red/node_modules/node-red-node-ui-table/examples/7 quotationtest.json b/data_node_red/node_modules/node-red-node-ui-table/examples/7 quotationtest.json new file mode 100644 index 0000000..f35a7f4 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/examples/7 quotationtest.json @@ -0,0 +1,482 @@ +[ + { + "id": "b4d448ed.fc828", + "type": "tab", + "label": "Flow 1", + "disabled": false, + "info": "" + }, + { + "id": "bcfb993d.8c84a", + "type": "ui_tab", + "name": "TableTest", + "icon": "dashboard", + "order": 0, + "disabled": false, + "hidden": false + }, + { + "id": "fd38a9dc.02ac5", + "type": "ui_base", + "theme": { + "name": "theme-light", + "lightTheme": { + "default": "#0094CE", + "baseColor": "#0094CE", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "edited": true, + "reset": false + }, + "darkTheme": { + "default": "#097479", + "baseColor": "#097479", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "edited": false + }, + "customTheme": { + "name": "Untitled Theme 1", + "default": "#4B7930", + "baseColor": "#4B7930", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" + }, + "themeState": { + "base-color": { + "default": "#0094CE", + "value": "#0094CE", + "edited": false + }, + "page-titlebar-backgroundColor": { + "value": "#0094CE", + "edited": false + }, + "page-backgroundColor": { + "value": "#fafafa", + "edited": false + }, + "page-sidebar-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "group-textColor": { + "value": "#1bbfff", + "edited": false + }, + "group-borderColor": { + "value": "#ffffff", + "edited": false + }, + "group-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "widget-textColor": { + "value": "#111111", + "edited": false + }, + "widget-backgroundColor": { + "value": "#0094ce", + "edited": false + }, + "widget-borderColor": { + "value": "#ffffff", + "edited": false + }, + "base-font": { + "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" + } + }, + "angularTheme": { + "primary": "indigo", + "accents": "blue", + "warn": "red", + "background": "grey" + } + }, + "site": { + "name": "Node-RED Dashboard", + "hideToolbar": "false", + "allowSwipe": "false", + "lockMenu": "false", + "allowTempTheme": "true", + "dateFormat": "DD.MM.YYYY", + "sizes": { + "sx": 48, + "sy": 48, + "gx": 6, + "gy": 6, + "cx": 6, + "cy": 6, + "px": 0, + "py": 0 + } + } + }, + { + "id": "a005132f.6196e8", + "type": "ui_group", + "name": "Without Quotation", + "tab": "bcfb993d.8c84a", + "order": 1, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "1885673b.2145c1", + "type": "ui_group", + "name": "Quotes in TableName", + "tab": "bcfb993d.8c84a", + "order": 2, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "9971c312.3702d8", + "type": "ui_group", + "name": "Quotes in Column Title", + "tab": "bcfb993d.8c84a", + "order": 3, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "47f6a8.a2c36158", + "type": "ui_group", + "name": "Quotes in Description", + "tab": "bcfb993d.8c84a", + "order": 4, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "f69452b1.447158", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "a005132f.6196e8", + "name": "Without quotation", + "order": 0, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "Col 1", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 570, + "y": 160, + "wires": [], + "info": "\n\nA really simple table without quotation marks" + }, + { + "id": "a8e19fb2.35c11", + "type": "inject", + "z": "b4d448ed.fc828", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 130, + "y": 160, + "wires": [ + [ + "69b33eaf.57d248" + ] + ] + }, + { + "id": "69b33eaf.57d248", + "type": "change", + "z": "b4d448ed.fc828", + "name": "Set Data", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "[\t {\t \"name\": \"Will\",\t \"city\": \"Paris\"\t },\t {\t \"name\": \"Jean-Claude\",\t \"city\": \"London\"\t },\t {\t \"name\": \"O'Hara\",\t \"city\": \"Beirut\"\t },\t {\t \"name\": '\"The Nail\"',\t \"city\": \"Hammersmith\"\t }\t]", + "tot": "jsonata" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 300, + "y": 160, + "wires": [ + [ + "f69452b1.447158", + "cb212221.fc40d8", + "3e460172.857ed6", + "ade38373.01654", + "9216fb01.47f52", + "e9c07312.e0e7c", + "d80cc268.700478" + ] + ] + }, + { + "id": "cb212221.fc40d8", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "1885673b.2145c1", + "name": "Single quote in 'TableName'", + "order": 0, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "Col 1", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 220, + "wires": [], + "info": "\n\nA really simple table with single quotation marks in Table Name" + }, + { + "id": "3e460172.857ed6", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "9971c312.3702d8", + "name": "Single quote in Column Title", + "order": 1, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "'Col 1'", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 280, + "wires": [], + "info": "\n\nA really simple table with single quotation mark in Column Title" + }, + { + "id": "ade38373.01654", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "47f6a8.a2c36158", + "name": "Single quote in Description", + "order": 1, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "Col 1", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 340, + "wires": [], + "info": "\n\nA really simple table with 'single quotation' marks in description." + }, + { + "id": "9216fb01.47f52", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "1885673b.2145c1", + "name": "Double quote in \"TableName\"", + "order": 0, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "Col 1", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 400, + "wires": [], + "info": "\n\nA really simple table with double quotation marks in Table Name" + }, + { + "id": "e9c07312.e0e7c", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "9971c312.3702d8", + "name": "Double quote in Column Title", + "order": 1, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "\"Col 1\"", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 460, + "wires": [], + "info": "\n\nA really simple table with double quotation mark in Column Title" + }, + { + "id": "d80cc268.700478", + "type": "ui_table", + "z": "b4d448ed.fc828", + "group": "47f6a8.a2c36158", + "name": "Double quote in Description", + "order": 1, + "width": "6", + "height": "4", + "columns": [ + { + "field": "name", + "title": "Col 1", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + }, + { + "field": "city", + "title": "Col 2", + "width": "", + "align": "left", + "formatter": "plaintext", + "formatterParams": { + "target": "_blank" + } + } + ], + "outputs": 0, + "cts": false, + "x": 600, + "y": 520, + "wires": [], + "info": "\n\nA really simple table with \"double quotation\" marks in description." + } +] \ No newline at end of file diff --git a/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css new file mode 100644 index 0000000..fdf87fe --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css @@ -0,0 +1,3 @@ +/* Tabulator v4.4.3 (c) Oliver Folkerd */ +.tabulator{position:relative;border:1px solid #999;background-color:#888;font-size:14px;text-align:left;overflow:hidden;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator.tabulator-block-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:1px solid #999;background-color:#e6e6e6;color:#555;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #aaa;background:#e6e6e6;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #999;background:#cdcdcd;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols .tabulator-col:last-child{margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col.ui-sortable-helper{position:absolute;background-color:#e6e6e6!important;border:1px solid #aaa}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#cdcdcd}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #666}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #666;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;background:#f3f3f3!important;border-top:1px solid #aaa;border-bottom:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{position:absolute;top:0;left:0;height:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#ccc;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#fff;white-space:nowrap;overflow:visible;color:#333}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#e2e2e2!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#e6e6e6;text-align:right;color:#555;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator{color:#555;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2)}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;background-color:#fff}.tabulator-row.tabulator-row-even{background-color:#efefef}.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}.tabulator-row.tabulator-row-moving{border:1px solid #000;background:#fff}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #aaa;border-bottom:1px solid #aaa;pointer-events:none;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:4px;border-right:1px solid #aaa;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #aaa;border-bottom:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#666;color:#fff;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#d00}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #aaa;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#333}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #aaa;padding:4px;padding-top:6px;color:#333;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse} +/*# sourceMappingURL=tabulator.min.css.map */ diff --git a/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css.map b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css.map new file mode 100644 index 0000000..44d1b00 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["tabulator.scss"],"names":[],"mappings":"AA0CA,WACC,kBAAkB,AAElB,sBAxCgB,AA0ChB,sBA3CqB,AA6CrB,eA3Ca,AA4Cb,gBAAgB,AAChB,gBAAe,AAMf,uBAAwB,CAqfxB,AApgBD,iFAoBI,cAAc,CACd,AArBJ,kCA0BE,yBAAiB,AAAjB,sBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA3BF,6BA+BE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,6BAlEwB,AAmExB,yBAtE4B,AAuE5B,WAtEmB,AAuEnB,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAkPpB,AAjSF,qDAkDG,YAAY,CACZ,AAnDH,4CAuDG,qBAAoB,AACpB,kBAAiB,AACjB,sBAAqB,AACrB,4BAzFoB,AA0FpB,mBA5F2B,AA6F3B,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CAoLhB,AAlPH,6DAiEI,kBAAkB,AAClB,sBAhGsB,AAiGtB,mBAA8C,AAC9C,mBAAoB,CACpB,AArEJ,mEAyEI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAsCX,AAjHJ,wFA+EK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAarB,AAlGL,gHAyFM,sBAAsB,AACtB,WAAW,AAEX,sBAAqB,AAErB,YAAW,AAEX,eAAgB,CAChB,AAjGN,oFAsGK,qBAAqB,AACrB,kBAAkB,AAClB,QAAO,AACP,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,4BAvImB,CAwInB,AA/GL,0FAwHK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,0BA1JkB,AA2JlB,eAAgB,CAKhB,AAjIL,oHA+HM,iBAAiB,CACjB,AAhIN,0FAuIK,YAAa,CACb,AAxIL,+DA6II,kBAAkB,AAClB,mCAAmD,AACnD,qBA9KmB,CA+KnB,AAhJJ,qEAoJI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAiBlB,AAzKJ,8EA4JK,qBAAsB,CACtB,AA7JL,yEAgKK,cAAe,CACf,AAjKL,sFAqKM,QAAS,AACT,QAAS,CACT,AAvKN,oFA8KK,kBAAkB,CAClB,AA/KL,qEAkLK,eAAc,AACd,wBAAoD,CACpD,AApLL,uHAwLM,gBAAgB,AAChB,4BAlNkB,CAmNlB,AA1LN,sHA+LM,gBAAgB,AAChB,4BA1NgB,CA2NhB,AAjMN,uHAsMM,0BAhOgB,AAiOhB,kBAAmB,CACnB,AAxMN,+GAgNM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AAtNN,oHA2NM,wBAAyB,CACzB,AA5NN,2GAiOM,gBAAe,AACf,gBAAgB,CAChB,AAnON,uIAuOO,gBAAe,AACf,mBAAmB,CACnB,AAzOP,uGA8OM,qBAAqB,CACrB,AA/ON,+CAqPG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CASX,AAnQH,qEA6PI,2BAjRgB,CAkRhB,AA9PJ,sEAiQI,0BArRgB,CAsRhB,AAlQJ,qDAuQG,sBAAqB,AACrB,eAAc,AAEd,6BAAyD,AAUzD,0BAxSiB,AAySjB,6BApToB,AAsTpB,eAAgB,CAChB,AAxRH,oEA6QI,4BAAyD,CAKzD,AAlRJ,iGAgRK,YAAa,CACb,AAjRL,2DA2RG,cAAc,CAKd,AAhSH,iEA8RI,YAAa,CACb,AA/RJ,kCAqSE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CA2DjC,AApWF,wCA4SG,YAAa,CACb,AA7SH,yDAiTG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AASlB,UAAU,CAYV,AAxUH,wFAsTI,kBAAkB,AAClB,MAAK,AACL,OAAM,AACN,WAAW,CACX,AA1TJ,8DA+TI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,WAAU,AACV,gBAAiB,AACjB,cAAe,CACf,AAvUJ,mDA4UG,kBAAiB,AACjB,qBAAoB,AACpB,sBApWqB,AAqWrB,mBAAmB,AACnB,iBAAgB,AAChB,UApWe,CAsXf,AAnWH,kFAsVK,gBAAiB,AACjB,4BAAwD,CASxD,AAhWL,sGA0VM,4BA9Wc,CA+Wd,AA3VN,yGA8VM,yBAlXc,CAmXd,AA/VN,6BA0WE,iBAAgB,AAChB,0BAjXwB,AAkXxB,yBArX4B,AAsX5B,iBAAiB,AACjB,WAtXmB,AAuXnB,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAgFpB,AAtcF,qDAyXG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,6BAAyD,AAUzD,6BA7ZiB,AA8ZjB,0BA9ZiB,AAgajB,eAAgB,CAMhB,AAlZH,oEAkYI,4BAAyD,CAKzD,AAvYJ,iGAqYK,YAAa,CACb,AAtYL,gEA+YI,mBAAkB,AAClB,kBAAkB,CAClB,AAjZJ,kDAqZG,WA7ZkB,AA8ZlB,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CACjB,AAzZH,kDA6ZG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBAzaoB,AA0apB,iBAAiB,CACjB,AApaH,8CAuaG,YAAY,CACZ,AAxaH,6CA4aG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBAxboB,AAybpB,kBAAiB,AAEjB,6BAA+B,CAiB/B,AArcH,oDAubI,UA5bmB,CA6bnB,AAxbJ,sDA2bI,UAAU,CACV,AA5bJ,kEAgcK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AAncL,wCA0cE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AAxdF,6CAidG,OAAM,AACN,UAAU,CACV,AAndH,8CAsdG,gBAAgB,CAChB,AAvdH,6BA6dE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AAngBF,mDA4eG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AAlgBH,qEAyfI,sBAAqB,AACrB,UAAU,CACV,AA3fJ,mEA+fI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAClB,sBAAsB,AACtB,gBAA0C,AAC1C,qBAjiBuB,CAk5BvB,AArXD,kCAQE,wBApiB4B,CAqiB5B,AATF,0CAYE,sBAriBsB,AAsiBtB,cAAe,CACf,AAdF,kCAiBE,wBAxiB6B,CAyiB7B,AAlBF,wCAqBE,yBA3iBkC,AA4iBlC,cAAe,CACf,AAvBF,oCA0BE,sBAAqB,AACrB,eAAe,CACf,AA5BF,gCA+BE,kBAAkB,AAElB,0BA5jBkB,AA6jBlB,6BA7jBkB,AA+jBlB,oBAAoB,AACpB,UAAU,CACV,AAtCF,4CA0CE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AAxDF,iDAiDG,MAAK,AACL,WAAW,CACX,AAnDH,kDAsDG,gBAAgB,CAChB,AAvDH,iCA2DE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CASX,AAzEF,uDAmEG,2BA9lBiB,CA+lBjB,AApEH,wDAuEG,0BAlmBiB,CAmmBjB,AAxEH,8CA4EE,sBAAqB,AAErB,YAAW,AAEX,0BA3mBkB,AA4mBlB,4BA5mBkB,CA+nBlB,AApGF,oDAoFG,YAAY,CACZ,AArFH,oDAwFG,cAnoBW,CA8oBX,AAnGH,0DA4FK,iBAAkB,CAKlB,AAjGL,wEA+FM,kBAAkB,CAClB,AAhGN,+BAwGE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,YAAW,AACX,4BAvoBkB,AAwoBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,sBAAsB,CA0LtB,AA1SF,iDAoHG,yBAxoBkB,AAyoBlB,SAAU,CAMV,AA3HH,+GAwHI,WAAU,AACV,sBAAsB,CACtB,AA1HJ,yDA8HG,qBAjpBgB,CAwpBhB,AArIH,+HAgII,WAAU,AACV,uBAAsB,AAEtB,UAtpBe,CAupBf,AApIJ,6EA0II,YAAa,CACb,AA3IJ,oDAgJG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AArKH,8EA2JI,SAAS,CAST,AApKJ,wGA+JK,WAAU,AACV,WAAU,AACV,eAAc,AACd,eAAe,CACf,AAnKL,2DAwKG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BA9sBiB,AA+sBjB,4BA/sBiB,CAgtBjB,AArLH,4DAyLG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBA7tBe,AA8tBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AA1PH,kEA0MI,eAAc,AACd,yBAA4B,CAC5B,AA5MJ,kGA+MI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAlOJ,wGAwNK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA1vBa,CA2vBb,AAjOL,gGAqOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eArwBc,CAkxBd,AAxPJ,sGA8OK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAhxBa,CAixBb,AAvPL,qEA6PG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,WAzyBqB,AA0yBrB,gBAAgB,AAChB,eAAe,CAmBf,AAjSH,2EAiRI,UAAU,CACV,AAlRJ,sHAsRK,eAAe,CACf,AAvRL,sOA+RI,YAAY,CACZ,AAhSJ,wDAoSG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AAzSH,+BA8SE,sBAAqB,AACrB,6BAA4B,AAC5B,4BA30BkB,AA40BlB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,gBAAe,AACf,gBAAgB,AAEhB,cAAe,CA4Df,AAnXF,qCA0TG,eAAc,AACd,+BAA+B,CAC/B,AA5TH,wEAiUI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BAr2BkB,AAs2BlB,eAAgB,CAChB,AAtUJ,uDA2UG,iBAAiB,CACjB,AA5UH,uDA+UG,iBAAiB,CACjB,AAhVH,uDAmVG,iBAAiB,CACjB,AApVH,uDAuVG,iBAAiB,CACjB,AAxVH,uDA2VG,kBAAkB,CAClB,AA5VH,uDA+VG,oBAAqB,CACrB,AAhWH,gDAoWG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BA54BmB,AA64BnB,qBAAqB,CACrB,AA7WH,oCAgXG,iBAAgB,AAChB,UAAU,CACV,AAKH,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,gBA35BuB,AA45BvB,sBA15BmB,AA45BnB,eA56Ba,AA86Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA6Bd,AA5CD,6DAkBE,YAAW,AAEX,UAr6BgB,CAk7BhB,AAjCF,oEAuBG,WA36BqB,AA46BrB,kBAn6BkB,CAo6BlB,AAzBH,mEA4BG,eAAc,AAEd,WAl7BqB,AAm7BrB,kBA16BkB,CA26BlB,AAhCH,8DAoCE,6BAt7BkB,AAw7BlB,YAAW,AACX,gBAAe,AAEf,WA17BgB,AA27BhB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CACzB","file":"tabulator.min.css","sourcesContent":["/* Tabulator v4.4.3 (c) Oliver Folkerd */\n\n\r\n//Main Theme Variables\r\n$backgroundColor: #888 !default; //background color of tabulator\r\n$borderColor:#999 !default; //border to tabulator\r\n$textSize:14px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#e6e6e6 !default; //border to tabulator\r\n$headerTextColor:#555 !default; //header text colour\r\n$headerBorderColor:#aaa !default; //header border color\r\n$headerSeperatorColor:#999 !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: #666 !default;\r\n$sortArrowInactive: #bbb !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#fff !default; //table row background color\r\n$rowAltBackgroundColor:#EFEFEF !default; //table row background color\r\n$rowBorderColor:#aaa !default; //table border color\r\n$rowTextColor:#333 !default; //table text color\r\n$rowHoverBackground:#bbb !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #9ABCEA !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #769BCC !default;//row background color when selected and hovered\r\n\r\n$editBoxColor:#1D68CD !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#e6e6e6 !default; //border to tabulator\r\n$footerTextColor:#555 !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#999 !default; //footer bottom seperator color\r\n$footerActiveColor:#d00 !default; //footer bottom active text color\r\n\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\r\n\tborder: 1px solid $borderColor;\r\n\r\n\tbackground-color: $backgroundColor;\r\n\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\toverflow:hidden;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:1px solid $headerSeperatorColor;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:1px solid $headerBorderColor;\r\n\t\t\tbackground:$headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:4px;\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid #999;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #fff;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:9px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:1px solid $headerBorderColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\t.tabulator-col:last-child{\r\n\t\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//placeholder element for sortable columns\r\n\t\t\t&.ui-sortable-helper{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tbackground-color: $headerBackgroundColor !important;\r\n\t\t\t\tborder:1px solid $headerBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t\twidth : 0;\r\n\t\t\t\t\t\theight: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $headerBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop:0;\r\n\t\t\t\tleft:0;\r\n\t\t\t\theight:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:#ccc;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t//row element\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:darken($rowAltBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t\t&.tabulator-calcs-top{\r\n\t\t\t\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-calcs-bottom{\r\n\t\t\t\t\t\tborder-top:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tborder-top:1px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align: right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-5px -10px 5px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-bottom:1px solid $rowBorderColor;\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-paginator{\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:rgba(255,255,255,.2);\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\tbackground-color: $rowBackgroundColor;\r\n\r\n\r\n\t&.tabulator-row-even{\r\n\t\tbackground-color: $rowAltBackgroundColor;\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tbackground-color:$rowHoverBackground;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\tbackground-color:$rowSelectedBackground;\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-row-moving{\r\n\t\tborder:1px solid #000;\r\n\t\tbackground:#fff;\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:4px;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:#666;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#666;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#ccc;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#d00;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator_midnight.min.css b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator_midnight.min.css new file mode 100644 index 0000000..bd25652 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/lib/css/tabulator_midnight.min.css @@ -0,0 +1,2 @@ +/* Tabulator v4.4.1 (c) Oliver Folkerd */ +.tabulator a{color:white;}.tabulator{position:relative;border:1px solid #333;background-color:#222;overflow:hidden;font-size:14px;text-align:left;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator.tabulator-block-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:1px solid #999;background-color:#333;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #aaa;background-color:#333;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #999;background:#1a1a1a;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#444;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols .tabulator-col:last-child{margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col.ui-sortable-helper{position:absolute;background-color:#1a1a1a!important;border:1px solid #aaa}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,.tabulator .tabulator-header .tabulator-col .tabulator-header-filter select{border:1px solid #999;background:#444;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#1a1a1a}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #666}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #666;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #888}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #888}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:400%;background:#1a1a1a!important;border-top:1px solid #888;border-bottom:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#1a1a1a!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:400%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{position:absolute;top:0;left:0;height:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#eee;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#666;white-space:nowrap;overflow:visible;color:#fff}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#373737!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #888}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #888}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#333;text-align:right;color:#333;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#262626!important;border-bottom:1px solid #888;border-top:1px solid #888;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#262626!important;color:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator label{color:#fff}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2);color:#333;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page.active{color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;background-color:#666}.tabulator-row:nth-child(2n){background-color:#444}.tabulator-row.tabulator-selectable:hover{background-color:#999;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#000}.tabulator-row.tabulator-selected:hover{background-color:#888;cursor:pointer}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #888;border-bottom:1px solid #888;pointer-events:none!important;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #888}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #888}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #888;border-bottom:1px solid #888}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:4px;border-right:1px solid #888;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #999;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #888;border-bottom:2px solid #888}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #fff;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#fff}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#fff;color:#666;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #888;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;color:#333;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#666}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #888;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#666}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#999;background:#444}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#999;background:#666}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #888;padding:4px;padding-top:6px;color:#fff;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse} diff --git a/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.js b/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.js new file mode 100644 index 0000000..9087ca6 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.js @@ -0,0 +1,22798 @@ +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +/* Tabulator v4.4.1 (c) Oliver Folkerd */ + +;(function (global, factory) { + if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined') { + module.exports = factory(); + } else if (typeof define === 'function' && define.amd) { + define(factory); + } else { + global.Tabulator = factory(); + } +})(this, function () { + + 'use strict'; + + // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex + + + if (!Array.prototype.findIndex) { + + Object.defineProperty(Array.prototype, 'findIndex', { + + value: function value(predicate) { + + // 1. Let O be ? ToObject(this value). + + + if (this == null) { + + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let len be ? ToLength(? Get(O, "length")). + + + var len = o.length >>> 0; + + // 3. If IsCallable(predicate) is false, throw a TypeError exception. + + + if (typeof predicate !== 'function') { + + throw new TypeError('predicate must be a function'); + } + + // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. + + + var thisArg = arguments[1]; + + // 5. Let k be 0. + + + var k = 0; + + // 6. Repeat, while k < len + + + while (k < len) { + + // a. Let Pk be ! ToString(k). + + + // b. Let kValue be ? Get(O, Pk). + + + // c. Let testResult be ToBoolean(? Call(predicate, T, 芦 kValue, k, O 禄)). + + + // d. If testResult is true, return k. + + + var kValue = o[k]; + + if (predicate.call(thisArg, kValue, k, o)) { + + return k; + } + + // e. Increase k by 1. + + + k++; + } + + // 7. Return -1. + + + return -1; + } + + }); + } + + // https://tc39.github.io/ecma262/#sec-array.prototype.find + + + if (!Array.prototype.find) { + + Object.defineProperty(Array.prototype, 'find', { + + value: function value(predicate) { + + // 1. Let O be ? ToObject(this value). + + + if (this == null) { + + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let len be ? ToLength(? Get(O, "length")). + + + var len = o.length >>> 0; + + // 3. If IsCallable(predicate) is false, throw a TypeError exception. + + + if (typeof predicate !== 'function') { + + throw new TypeError('predicate must be a function'); + } + + // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. + + + var thisArg = arguments[1]; + + // 5. Let k be 0. + + + var k = 0; + + // 6. Repeat, while k < len + + + while (k < len) { + + // a. Let Pk be ! ToString(k). + + + // b. Let kValue be ? Get(O, Pk). + + + // c. Let testResult be ToBoolean(? Call(predicate, T, 芦 kValue, k, O 禄)). + + + // d. If testResult is true, return kValue. + + + var kValue = o[k]; + + if (predicate.call(thisArg, kValue, k, o)) { + + return kValue; + } + + // e. Increase k by 1. + + + k++; + } + + // 7. Return undefined. + + + return undefined; + } + + }); + } + + var ColumnManager = function ColumnManager(table) { + + this.table = table; //hold parent table + + + this.blockHozScrollEvent = false; + + this.headersElement = this.createHeadersElement(); + + this.element = this.createHeaderElement(); //containing element + + + this.rowManager = null; //hold row manager object + + + this.columns = []; // column definition object + + + this.columnsByIndex = []; //columns by index + + + this.columnsByField = {}; //columns by field + + + this.scrollLeft = 0; + + this.element.insertBefore(this.headersElement, this.element.firstChild); + }; + + ////////////// Setup Functions ///////////////// + + + ColumnManager.prototype.createHeadersElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-headers"); + + return el; + }; + + ColumnManager.prototype.createHeaderElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-header"); + + if (!this.table.options.headerVisible) { + + el.classList.add("tabulator-header-hidden"); + } + + return el; + }; + + ColumnManager.prototype.initialize = function () { + + var self = this; + + //scroll body along with header + + + // self.element.addEventListener("scroll", function(e){ + + + // if(!self.blockHozScrollEvent){ + + + // self.table.rowManager.scrollHorizontal(self.element.scrollLeft); + + + // } + + + // }); + + }; + + //link to row manager + + + ColumnManager.prototype.setRowManager = function (manager) { + + this.rowManager = manager; + }; + + //return containing element + + + ColumnManager.prototype.getElement = function () { + + return this.element; + }; + + //return header containing element + + + ColumnManager.prototype.getHeadersElement = function () { + + return this.headersElement; + }; + + // ColumnManager.prototype.tempScrollBlock = function(){ + + + // clearTimeout(this.blockHozScrollEvent); + + + // this.blockHozScrollEvent = setTimeout(() => {this.blockHozScrollEvent = false;}, 50); + + + // } + + + //scroll horizontally to match table body + + + ColumnManager.prototype.scrollHorizontal = function (left) { + + var hozAdjust = 0, + scrollWidth = this.element.scrollWidth - this.table.element.clientWidth; + + // this.tempScrollBlock(); + + + this.element.scrollLeft = left; + + //adjust for vertical scrollbar moving table when present + + + if (left > scrollWidth) { + + hozAdjust = left - scrollWidth; + + this.element.style.marginLeft = -hozAdjust + "px"; + } else { + + this.element.style.marginLeft = 0; + } + + //keep frozen columns fixed in position + + + //this._calcFrozenColumnsPos(hozAdjust + 3); + + + this.scrollLeft = left; + + if (this.table.modExists("frozenColumns")) { + + this.table.modules.frozenColumns.scrollHorizontal(); + } + }; + + ///////////// Column Setup Functions ///////////// + + + ColumnManager.prototype.generateColumnsFromRowData = function (data) { + + var cols = [], + row, + sorter; + + if (data && data.length) { + + row = data[0]; + + for (var key in row) { + + var col = { + + field: key, + + title: key + + }; + + var value = row[key]; + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + + case "undefined": + + sorter = "string"; + + break; + + case "boolean": + + sorter = "boolean"; + + break; + + case "object": + + if (Array.isArray(value)) { + + sorter = "array"; + } else { + + sorter = "string"; + } + + break; + + default: + + if (!isNaN(value) && value !== "") { + + sorter = "number"; + } else { + + if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) { + + sorter = "alphanum"; + } else { + + sorter = "string"; + } + } + + break; + + } + + col.sorter = sorter; + + cols.push(col); + } + + this.table.options.columns = cols; + + this.setColumns(this.table.options.columns); + } + }; + + ColumnManager.prototype.setColumns = function (cols, row) { + + var self = this; + + while (self.headersElement.firstChild) { + self.headersElement.removeChild(self.headersElement.firstChild); + }self.columns = []; + + self.columnsByIndex = []; + + self.columnsByField = {}; + + //reset frozen columns + + + if (self.table.modExists("frozenColumns")) { + + self.table.modules.frozenColumns.reset(); + } + + cols.forEach(function (def, i) { + + self._addColumn(def); + }); + + self._reIndexColumns(); + + if (self.table.options.responsiveLayout && self.table.modExists("responsiveLayout", true)) { + + self.table.modules.responsiveLayout.initialize(); + } + + self.redraw(true); + }; + + ColumnManager.prototype._addColumn = function (definition, before, nextToColumn) { + + var column = new Column(definition, this), + colEl = column.getElement(), + index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn; + + if (nextToColumn && index > -1) { + + var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn()); + + var nextEl = nextToColumn.getElement(); + + if (before) { + + this.columns.splice(parentIndex, 0, column); + + nextEl.parentNode.insertBefore(colEl, nextEl); + } else { + + this.columns.splice(parentIndex + 1, 0, column); + + nextEl.parentNode.insertBefore(colEl, nextEl.nextSibling); + } + } else { + + if (before) { + + this.columns.unshift(column); + + this.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild); + } else { + + this.columns.push(column); + + this.headersElement.appendChild(column.getElement()); + } + } + + return column; + }; + + ColumnManager.prototype.registerColumnField = function (col) { + + if (col.definition.field) { + + this.columnsByField[col.definition.field] = col; + } + }; + + ColumnManager.prototype.registerColumnPosition = function (col) { + + this.columnsByIndex.push(col); + }; + + ColumnManager.prototype._reIndexColumns = function () { + + this.columnsByIndex = []; + + this.columns.forEach(function (column) { + + column.reRegisterPosition(); + }); + }; + + //ensure column headers take up the correct amount of space in column groups + + + ColumnManager.prototype._verticalAlignHeaders = function () { + + var self = this, + minHeight = 0; + + self.columns.forEach(function (column) { + + var height; + + column.clearVerticalAlign(); + + height = column.getHeight(); + + if (height > minHeight) { + + minHeight = height; + } + }); + + self.columns.forEach(function (column) { + + column.verticalAlign(self.table.options.columnVertAlign, minHeight); + }); + + self.rowManager.adjustTableSize(); + }; + + //////////////// Column Details ///////////////// + + + ColumnManager.prototype.findColumn = function (subject) { + + var self = this; + + if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") { + + if (subject instanceof Column) { + + //subject is column element + + + return subject; + } else if (subject instanceof ColumnComponent) { + + //subject is public column component + + + return subject._getSelf() || false; + } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) { + + //subject is a HTML element of the column header + + + var match = self.columns.find(function (column) { + + return column.element === subject; + }); + + return match || false; + } + } else { + + //subject should be treated as the field name of the column + + + return this.columnsByField[subject] || false; + } + + //catch all for any other type of input + + + return false; + }; + + ColumnManager.prototype.getColumnByField = function (field) { + + return this.columnsByField[field]; + }; + + ColumnManager.prototype.getColumnByIndex = function (index) { + + return this.columnsByIndex[index]; + }; + + ColumnManager.prototype.getFirstVisibileColumn = function (index) { + + var index = this.columnsByIndex.findIndex(function (col) { + + return col.visible; + }); + + return index > -1 ? this.columnsByIndex[index] : false; + }; + + ColumnManager.prototype.getColumns = function () { + + return this.columns; + }; + + ColumnManager.prototype.findColumnIndex = function (column) { + + return this.columnsByIndex.findIndex(function (col) { + + return column === col; + }); + }; + + //return all columns that are not groups + + + ColumnManager.prototype.getRealColumns = function () { + + return this.columnsByIndex; + }; + + //travers across columns and call action + + + ColumnManager.prototype.traverse = function (callback) { + + var self = this; + + self.columnsByIndex.forEach(function (column, i) { + + callback(column, i); + }); + }; + + //get defintions of actual columns + + + ColumnManager.prototype.getDefinitions = function (active) { + + var self = this, + output = []; + + self.columnsByIndex.forEach(function (column) { + + if (!active || active && column.visible) { + + output.push(column.getDefinition()); + } + }); + + return output; + }; + + //get full nested definition tree + + + ColumnManager.prototype.getDefinitionTree = function () { + + var self = this, + output = []; + + self.columns.forEach(function (column) { + + output.push(column.getDefinition(true)); + }); + + return output; + }; + + ColumnManager.prototype.getComponents = function (structured) { + + var self = this, + output = [], + columns = structured ? self.columns : self.columnsByIndex; + + columns.forEach(function (column) { + + output.push(column.getComponent()); + }); + + return output; + }; + + ColumnManager.prototype.getWidth = function () { + + var width = 0; + + this.columnsByIndex.forEach(function (column) { + + if (column.visible) { + + width += column.getWidth(); + } + }); + + return width; + }; + + ColumnManager.prototype.moveColumn = function (from, to, after) { + + this.moveColumnActual(from, to, after); + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.initialize(); + } + + if (this.table.modExists("columnCalcs")) { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + + to.element.parentNode.insertBefore(from.element, to.element); + + if (after) { + + to.element.parentNode.insertBefore(to.element, from.element); + } + + this._verticalAlignHeaders(); + + this.table.rowManager.reinitialize(); + }; + + ColumnManager.prototype.moveColumnActual = function (from, to, after) { + + this._moveColumnInArray(this.columns, from, to, after); + + this._moveColumnInArray(this.columnsByIndex, from, to, after, true); + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.initialize(); + } + + if (this.table.options.columnMoved) { + + this.table.options.columnMoved.call(this.table, from.getComponent(), this.table.columnManager.getComponents()); + } + + if (this.table.options.persistentLayout && this.table.modExists("persistence", true)) { + + this.table.modules.persistence.save("columns"); + } + }; + + ColumnManager.prototype._moveColumnInArray = function (columns, from, to, after, updateRows) { + + var fromIndex = columns.indexOf(from), + toIndex; + + if (fromIndex > -1) { + + columns.splice(fromIndex, 1); + + toIndex = columns.indexOf(to); + + if (toIndex > -1) { + + if (after) { + + toIndex = toIndex + 1; + } + } else { + + toIndex = fromIndex; + } + + columns.splice(toIndex, 0, from); + + if (updateRows) { + + this.table.rowManager.rows.forEach(function (row) { + + if (row.cells.length) { + + var cell = row.cells.splice(fromIndex, 1)[0]; + + row.cells.splice(toIndex, 0, cell); + } + }); + } + } + }; + + ColumnManager.prototype.scrollToColumn = function (column, position, ifVisible) { + var _this = this; + + var left = 0, + offset = 0, + adjust = 0, + colEl = column.getElement(); + + return new Promise(function (resolve, reject) { + + if (typeof position === "undefined") { + + position = _this.table.options.scrollToColumnPosition; + } + + if (typeof ifVisible === "undefined") { + + ifVisible = _this.table.options.scrollToColumnIfVisible; + } + + if (column.visible) { + + //align to correct position + + + switch (position) { + + case "middle": + + case "center": + + adjust = -_this.element.clientWidth / 2; + + break; + + case "right": + + adjust = colEl.clientWidth - _this.headersElement.clientWidth; + + break; + + } + + //check column visibility + + + if (!ifVisible) { + + offset = colEl.offsetLeft; + + if (offset > 0 && offset + colEl.offsetWidth < _this.element.clientWidth) { + + return false; + } + } + + //calculate scroll position + + + left = colEl.offsetLeft + _this.element.scrollLeft + adjust; + + left = Math.max(Math.min(left, _this.table.rowManager.element.scrollWidth - _this.table.rowManager.element.clientWidth), 0); + + _this.table.rowManager.scrollHorizontal(left); + + _this.scrollHorizontal(left); + + resolve(); + } else { + + console.warn("Scroll Error - Column not visible"); + + reject("Scroll Error - Column not visible"); + } + }); + }; + + //////////////// Cell Management ///////////////// + + + ColumnManager.prototype.generateCells = function (row) { + + var self = this; + + var cells = []; + + self.columnsByIndex.forEach(function (column) { + + cells.push(column.generateCell(row)); + }); + + return cells; + }; + + //////////////// Column Management ///////////////// + + + ColumnManager.prototype.getFlexBaseWidth = function () { + + var self = this, + totalWidth = self.table.element.clientWidth, + //table element width + + + fixedWidth = 0; + + //adjust for vertical scrollbar if present + + + if (self.rowManager.element.scrollHeight > self.rowManager.element.clientHeight) { + + totalWidth -= self.rowManager.element.offsetWidth - self.rowManager.element.clientWidth; + } + + this.columnsByIndex.forEach(function (column) { + + var width, minWidth, colWidth; + + if (column.visible) { + + width = column.definition.width || 0; + + minWidth = typeof column.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(column.minWidth); + + if (typeof width == "string") { + + if (width.indexOf("%") > -1) { + + colWidth = totalWidth / 100 * parseInt(width); + } else { + + colWidth = parseInt(width); + } + } else { + + colWidth = width; + } + + fixedWidth += colWidth > minWidth ? colWidth : minWidth; + } + }); + + return fixedWidth; + }; + + ColumnManager.prototype.addColumn = function (definition, before, nextToColumn) { + + var column = this._addColumn(definition, before, nextToColumn); + + this._reIndexColumns(); + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.initialize(); + } + + if (this.table.modExists("columnCalcs")) { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + + this.redraw(); + + if (this.table.modules.layout.getMode() != "fitColumns") { + + column.reinitializeWidth(); + } + + this._verticalAlignHeaders(); + + this.table.rowManager.reinitialize(); + }; + + //remove column from system + + + ColumnManager.prototype.deregisterColumn = function (column) { + + var field = column.getField(), + index; + + //remove from field list + + + if (field) { + + delete this.columnsByField[field]; + } + + //remove from index list + + + index = this.columnsByIndex.indexOf(column); + + if (index > -1) { + + this.columnsByIndex.splice(index, 1); + } + + //remove from column list + + + index = this.columns.indexOf(column); + + if (index > -1) { + + this.columns.splice(index, 1); + } + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.initialize(); + } + + this.redraw(); + }; + + //redraw columns + + + ColumnManager.prototype.redraw = function (force) { + + if (force) { + + if (Tabulator.prototype.helpers.elVisible(this.element)) { + + this._verticalAlignHeaders(); + } + + this.table.rowManager.resetScroll(); + + this.table.rowManager.reinitialize(); + } + + if (this.table.modules.layout.getMode() == "fitColumns") { + + this.table.modules.layout.layout(); + } else { + + if (force) { + + this.table.modules.layout.layout(); + } else { + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.update(); + } + } + } + + if (this.table.modExists("frozenColumns")) { + + this.table.modules.frozenColumns.layout(); + } + + if (this.table.modExists("columnCalcs")) { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + + if (force) { + + if (this.table.options.persistentLayout && this.table.modExists("persistence", true)) { + + this.table.modules.persistence.save("columns"); + } + + if (this.table.modExists("columnCalcs")) { + + this.table.modules.columnCalcs.redraw(); + } + } + + this.table.footerManager.redraw(); + }; + + //public column object + + var ColumnComponent = function ColumnComponent(column) { + + this._column = column; + + this.type = "ColumnComponent"; + }; + + ColumnComponent.prototype.getElement = function () { + + return this._column.getElement(); + }; + + ColumnComponent.prototype.getDefinition = function () { + + return this._column.getDefinition(); + }; + + ColumnComponent.prototype.getField = function () { + + return this._column.getField(); + }; + + ColumnComponent.prototype.getCells = function () { + + var cells = []; + + this._column.cells.forEach(function (cell) { + + cells.push(cell.getComponent()); + }); + + return cells; + }; + + ColumnComponent.prototype.getVisibility = function () { + + return this._column.visible; + }; + + ColumnComponent.prototype.show = function () { + + if (this._column.isGroup) { + + this._column.columns.forEach(function (column) { + + column.show(); + }); + } else { + + this._column.show(); + } + }; + + ColumnComponent.prototype.hide = function () { + + if (this._column.isGroup) { + + this._column.columns.forEach(function (column) { + + column.hide(); + }); + } else { + + this._column.hide(); + } + }; + + ColumnComponent.prototype.toggle = function () { + + if (this._column.visible) { + + this.hide(); + } else { + + this.show(); + } + }; + + ColumnComponent.prototype.delete = function () { + + this._column.delete(); + }; + + ColumnComponent.prototype.getSubColumns = function () { + + var output = []; + + if (this._column.columns.length) { + + this._column.columns.forEach(function (column) { + + output.push(column.getComponent()); + }); + } + + return output; + }; + + ColumnComponent.prototype.getParentColumn = function () { + + return this._column.parent instanceof Column ? this._column.parent.getComponent() : false; + }; + + ColumnComponent.prototype._getSelf = function () { + + return this._column; + }; + + ColumnComponent.prototype.scrollTo = function () { + + return this._column.table.columnManager.scrollToColumn(this._column); + }; + + ColumnComponent.prototype.getTable = function () { + + return this._column.table; + }; + + ColumnComponent.prototype.headerFilterFocus = function () { + + if (this._column.table.modExists("filter", true)) { + + this._column.table.modules.filter.setHeaderFilterFocus(this._column); + } + }; + + ColumnComponent.prototype.reloadHeaderFilter = function () { + + if (this._column.table.modExists("filter", true)) { + + this._column.table.modules.filter.reloadHeaderFilter(this._column); + } + }; + + ColumnComponent.prototype.setHeaderFilterValue = function (value) { + + if (this._column.table.modExists("filter", true)) { + + this._column.table.modules.filter.setHeaderFilterValue(this._column, value); + } + }; + + ColumnComponent.prototype.move = function (to, after) { + + var toColumn = this._column.table.columnManager.findColumn(to); + + if (toColumn) { + + this._column.table.columnManager.moveColumn(this._column, toColumn, after); + } else { + + console.warn("Move Error - No matching column found:", toColumn); + } + }; + + ColumnComponent.prototype.getNextColumn = function () { + + var nextCol = this._column.nextColumn(); + + return nextCol ? nextCol.getComponent() : false; + }; + + ColumnComponent.prototype.getPrevColumn = function () { + + var prevCol = this._column.prevColumn(); + + return prevCol ? prevCol.getComponent() : false; + }; + + var Column = function Column(def, parent) { + + var self = this; + + this.table = parent.table; + + this.definition = def; //column definition + + this.parent = parent; //hold parent object + + this.type = "column"; //type of element + + this.columns = []; //child columns + + this.cells = []; //cells bound to this column + + this.element = this.createElement(); //column header element + + this.contentElement = false; + + this.groupElement = this.createGroupElement(); //column group holder element + + this.isGroup = false; + + this.tooltip = false; //hold column tooltip + + this.hozAlign = ""; //horizontal text alignment + + + //multi dimensional filed handling + + this.field = ""; + + this.fieldStructure = ""; + + this.getFieldValue = ""; + + this.setFieldValue = ""; + + this.setField(this.definition.field); + + if (this.table.options.invalidOptionWarnings) { + + this.checkDefinition(); + } + + this.modules = {}; //hold module variables; + + + this.cellEvents = { + + cellClick: false, + + cellDblClick: false, + + cellContext: false, + + cellTap: false, + + cellDblTap: false, + + cellTapHold: false, + + cellMouseEnter: false, + + cellMouseLeave: false, + + cellMouseOver: false, + + cellMouseOut: false, + + cellMouseMove: false + + }; + + this.width = null; //column width + + this.widthStyled = ""; //column width prestyled to improve render efficiency + + this.minWidth = null; //column minimum width + + this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency + + this.widthFixed = false; //user has specified a width for this column + + + this.visible = true; //default visible state + + + this._mapDepricatedFunctionality(); + + //initialize column + + if (def.columns) { + + this.isGroup = true; + + def.columns.forEach(function (def, i) { + + var newCol = new Column(def, self); + + self.attachColumn(newCol); + }); + + self.checkColumnVisibility(); + } else { + + parent.registerColumnField(this); + } + + if (def.rowHandle && this.table.options.movableRows !== false && this.table.modExists("moveRow")) { + + this.table.modules.moveRow.setHandle(true); + } + + this._buildHeader(); + }; + + Column.prototype.createElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-col"); + + el.setAttribute("role", "columnheader"); + + el.setAttribute("aria-sort", "none"); + + return el; + }; + + Column.prototype.createGroupElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-col-group-cols"); + + return el; + }; + + Column.prototype.checkDefinition = function () { + var _this2 = this; + + Object.keys(this.definition).forEach(function (key) { + + if (_this2.defaultOptionList.indexOf(key) === -1) { + + console.warn("Invalid column definition option in '" + (_this2.field || _this2.definition.title) + "' column:", key); + } + }); + }; + + Column.prototype.setField = function (field) { + + this.field = field; + + this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : []; + + this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData; + + this.setFieldValue = this.fieldStructure.length > 1 ? this._setNesteData : this._setFlatData; + }; + + //register column position with column manager + + Column.prototype.registerColumnPosition = function (column) { + + this.parent.registerColumnPosition(column); + }; + + //register column position with column manager + + Column.prototype.registerColumnField = function (column) { + + this.parent.registerColumnField(column); + }; + + //trigger position registration + + Column.prototype.reRegisterPosition = function () { + + if (this.isGroup) { + + this.columns.forEach(function (column) { + + column.reRegisterPosition(); + }); + } else { + + this.registerColumnPosition(this); + } + }; + + Column.prototype._mapDepricatedFunctionality = function () { + + if (typeof this.definition.hideInHtml !== "undefined") { + + this.definition.htmlOutput = !this.definition.hideInHtml; + + console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput"); + } + }; + + Column.prototype.setTooltip = function () { + + var self = this, + def = self.definition; + + //set header tooltips + + var tooltip = def.headerTooltip || def.tooltip === false ? def.headerTooltip : self.table.options.tooltipsHeader; + + if (tooltip) { + + if (tooltip === true) { + + if (def.field) { + + self.table.modules.localize.bind("columns|" + def.field, function (value) { + + self.element.setAttribute("title", value || def.title); + }); + } else { + + self.element.setAttribute("title", def.title); + } + } else { + + if (typeof tooltip == "function") { + + tooltip = tooltip(self.getComponent()); + + if (tooltip === false) { + + tooltip = ""; + } + } + + self.element.setAttribute("title", tooltip); + } + } else { + + self.element.setAttribute("title", ""); + } + }; + + //build header element + + Column.prototype._buildHeader = function () { + + var self = this, + def = self.definition; + + while (self.element.firstChild) { + self.element.removeChild(self.element.firstChild); + }if (def.headerVertical) { + + self.element.classList.add("tabulator-col-vertical"); + + if (def.headerVertical === "flip") { + + self.element.classList.add("tabulator-col-vertical-flip"); + } + } + + self.contentElement = self._bindEvents(); + + self.contentElement = self._buildColumnHeaderContent(); + + self.element.appendChild(self.contentElement); + + if (self.isGroup) { + + self._buildGroupHeader(); + } else { + + self._buildColumnHeader(); + } + + self.setTooltip(); + + //set resizable handles + + if (self.table.options.resizableColumns && self.table.modExists("resizeColumns")) { + + self.table.modules.resizeColumns.initializeColumn("header", self, self.element); + } + + //set resizable handles + + if (def.headerFilter && self.table.modExists("filter") && self.table.modExists("edit")) { + + if (typeof def.headerFilterPlaceholder !== "undefined" && def.field) { + + self.table.modules.localize.setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder); + } + + self.table.modules.filter.initializeColumn(self); + } + + //set resizable handles + + if (self.table.modExists("frozenColumns")) { + + self.table.modules.frozenColumns.initializeColumn(self); + } + + //set movable column + + if (self.table.options.movableColumns && !self.isGroup && self.table.modExists("moveColumn")) { + + self.table.modules.moveColumn.initializeColumn(self); + } + + //set calcs column + + if ((def.topCalc || def.bottomCalc) && self.table.modExists("columnCalcs")) { + + self.table.modules.columnCalcs.initializeColumn(self); + } + + //update header tooltip on mouse enter + + self.element.addEventListener("mouseenter", function (e) { + + self.setTooltip(); + }); + }; + + Column.prototype._bindEvents = function () { + + var self = this, + def = self.definition, + dblTap, + tapHold, + tap; + + //setup header click event bindings + + if (typeof def.headerClick == "function") { + + self.element.addEventListener("click", function (e) { + def.headerClick(e, self.getComponent()); + }); + } + + if (typeof def.headerDblClick == "function") { + + self.element.addEventListener("dblclick", function (e) { + def.headerDblClick(e, self.getComponent()); + }); + } + + if (typeof def.headerContext == "function") { + + self.element.addEventListener("contextmenu", function (e) { + def.headerContext(e, self.getComponent()); + }); + } + + //setup header tap event bindings + + if (typeof def.headerTap == "function") { + + tap = false; + + self.element.addEventListener("touchstart", function (e) { + + tap = true; + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + + if (tap) { + + def.headerTap(e, self.getComponent()); + } + + tap = false; + }); + } + + if (typeof def.headerDblTap == "function") { + + dblTap = null; + + self.element.addEventListener("touchend", function (e) { + + if (dblTap) { + + clearTimeout(dblTap); + + dblTap = null; + + def.headerDblTap(e, self.getComponent()); + } else { + + dblTap = setTimeout(function () { + + clearTimeout(dblTap); + + dblTap = null; + }, 300); + } + }); + } + + if (typeof def.headerTapHold == "function") { + + tapHold = null; + + self.element.addEventListener("touchstart", function (e) { + + clearTimeout(tapHold); + + tapHold = setTimeout(function () { + + clearTimeout(tapHold); + + tapHold = null; + + tap = false; + + def.headerTapHold(e, self.getComponent()); + }, 1000); + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + + clearTimeout(tapHold); + + tapHold = null; + }); + } + + //store column cell click event bindings + + if (typeof def.cellClick == "function") { + + self.cellEvents.cellClick = def.cellClick; + } + + if (typeof def.cellDblClick == "function") { + + self.cellEvents.cellDblClick = def.cellDblClick; + } + + if (typeof def.cellContext == "function") { + + self.cellEvents.cellContext = def.cellContext; + } + + //store column mouse event bindings + + if (typeof def.cellMouseEnter == "function") { + + self.cellEvents.cellMouseEnter = def.cellMouseEnter; + } + + if (typeof def.cellMouseLeave == "function") { + + self.cellEvents.cellMouseLeave = def.cellMouseLeave; + } + + if (typeof def.cellMouseOver == "function") { + + self.cellEvents.cellMouseOver = def.cellMouseOver; + } + + if (typeof def.cellMouseOut == "function") { + + self.cellEvents.cellMouseOut = def.cellMouseOut; + } + + if (typeof def.cellMouseMove == "function") { + + self.cellEvents.cellMouseMove = def.cellMouseMove; + } + + //setup column cell tap event bindings + + if (typeof def.cellTap == "function") { + + self.cellEvents.cellTap = def.cellTap; + } + + if (typeof def.cellDblTap == "function") { + + self.cellEvents.cellDblTap = def.cellDblTap; + } + + if (typeof def.cellTapHold == "function") { + + self.cellEvents.cellTapHold = def.cellTapHold; + } + + //setup column cell edit callbacks + + if (typeof def.cellEdited == "function") { + + self.cellEvents.cellEdited = def.cellEdited; + } + + if (typeof def.cellEditing == "function") { + + self.cellEvents.cellEditing = def.cellEditing; + } + + if (typeof def.cellEditCancelled == "function") { + + self.cellEvents.cellEditCancelled = def.cellEditCancelled; + } + }; + + //build header element for header + + Column.prototype._buildColumnHeader = function () { + + var self = this, + def = self.definition, + table = self.table, + sortable; + + //set column sorter + + if (table.modExists("sort")) { + + table.modules.sort.initializeColumn(self, self.contentElement); + } + + //set column formatter + + if (table.modExists("format")) { + + table.modules.format.initializeColumn(self); + } + + //set column editor + + if (typeof def.editor != "undefined" && table.modExists("edit")) { + + table.modules.edit.initializeColumn(self); + } + + //set colum validator + + if (typeof def.validator != "undefined" && table.modExists("validate")) { + + table.modules.validate.initializeColumn(self); + } + + //set column mutator + + if (table.modExists("mutator")) { + + table.modules.mutator.initializeColumn(self); + } + + //set column accessor + + if (table.modExists("accessor")) { + + table.modules.accessor.initializeColumn(self); + } + + //set respoviveLayout + + if (_typeof(table.options.responsiveLayout) && table.modExists("responsiveLayout")) { + + table.modules.responsiveLayout.initializeColumn(self); + } + + //set column visibility + + if (typeof def.visible != "undefined") { + + if (def.visible) { + + self.show(true); + } else { + + self.hide(true); + } + } + + //asign additional css classes to column header + + if (def.cssClass) { + + var classeNames = def.cssClass.split(" "); + + classeNames.forEach(function (className) { + + self.element.classList.add(className); + }); + } + + if (def.field) { + + this.element.setAttribute("tabulator-field", def.field); + } + + //set min width if present + + self.setMinWidth(typeof def.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(def.minWidth)); + + self.reinitializeWidth(); + + //set tooltip if present + + self.tooltip = self.definition.tooltip || self.definition.tooltip === false ? self.definition.tooltip : self.table.options.tooltips; + + //set orizontal text alignment + + self.hozAlign = typeof self.definition.align == "undefined" ? "" : self.definition.align; + }; + + Column.prototype._buildColumnHeaderContent = function () { + + var self = this, + def = self.definition, + table = self.table; + + var contentElement = document.createElement("div"); + + contentElement.classList.add("tabulator-col-content"); + + contentElement.appendChild(self._buildColumnHeaderTitle()); + + return contentElement; + }; + + //build title element of column + + Column.prototype._buildColumnHeaderTitle = function () { + + var self = this, + def = self.definition, + table = self.table, + title; + + var titleHolderElement = document.createElement("div"); + + titleHolderElement.classList.add("tabulator-col-title"); + + if (def.editableTitle) { + + var titleElement = document.createElement("input"); + + titleElement.classList.add("tabulator-title-editor"); + + titleElement.addEventListener("click", function (e) { + + e.stopPropagation(); + + titleElement.focus(); + }); + + titleElement.addEventListener("change", function () { + + def.title = titleElement.value; + + table.options.columnTitleChanged.call(self.table, self.getComponent()); + }); + + titleHolderElement.appendChild(titleElement); + + if (def.field) { + + table.modules.localize.bind("columns|" + def.field, function (text) { + + titleElement.value = text || def.title || " "; + }); + } else { + + titleElement.value = def.title || " "; + } + } else { + + if (def.field) { + + table.modules.localize.bind("columns|" + def.field, function (text) { + + self._formatColumnHeaderTitle(titleHolderElement, text || def.title || " "); + }); + } else { + + self._formatColumnHeaderTitle(titleHolderElement, def.title || " "); + } + } + + return titleHolderElement; + }; + + Column.prototype._formatColumnHeaderTitle = function (el, title) { + + var formatter, contents, params, mockCell; + + if (this.definition.titleFormatter && this.table.modExists("format")) { + + formatter = this.table.modules.format.getFormatter(this.definition.titleFormatter); + + mockCell = { + + getValue: function getValue() { + + return title; + }, + + getElement: function getElement() { + + return el; + } + + }; + + params = this.definition.titleFormatterParams || {}; + + params = typeof params === "function" ? params() : params; + + contents = formatter.call(this.table.modules.format, mockCell, params); + + switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) { + + case "object": + + if (contents instanceof Node) { + + el.appendChild(contents); + } else { + + el.innerHTML = ""; + + console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents); + } + + break; + + case "undefined": + + case "null": + + el.innerHTML = ""; + + break; + + default: + + el.innerHTML = contents; + + } + } else { + + el.innerHTML = title; + } + }; + + //build header element for column group + + Column.prototype._buildGroupHeader = function () { + + this.element.classList.add("tabulator-col-group"); + + this.element.setAttribute("role", "columngroup"); + + this.element.setAttribute("aria-title", this.definition.title); + + this.element.appendChild(this.groupElement); + }; + + //flat field lookup + + Column.prototype._getFlatData = function (data) { + + return data[this.field]; + }; + + //nested field lookup + + Column.prototype._getNestedData = function (data) { + + var dataObj = data, + structure = this.fieldStructure, + length = structure.length, + output; + + for (var i = 0; i < length; i++) { + + dataObj = dataObj[structure[i]]; + + output = dataObj; + + if (!dataObj) { + + break; + } + } + + return output; + }; + + //flat field set + + Column.prototype._setFlatData = function (data, value) { + + if (this.field) { + + data[this.field] = value; + } + }; + + //nested field set + + Column.prototype._setNesteData = function (data, value) { + + var dataObj = data, + structure = this.fieldStructure, + length = structure.length; + + for (var i = 0; i < length; i++) { + + if (i == length - 1) { + + dataObj[structure[i]] = value; + } else { + + if (!dataObj[structure[i]]) { + + dataObj[structure[i]] = {}; + } + + dataObj = dataObj[structure[i]]; + } + } + }; + + //attach column to this group + + Column.prototype.attachColumn = function (column) { + + var self = this; + + if (self.groupElement) { + + self.columns.push(column); + + self.groupElement.appendChild(column.getElement()); + } else { + + console.warn("Column Warning - Column being attached to another column instead of column group"); + } + }; + + //vertically align header in column + + Column.prototype.verticalAlign = function (alignment, height) { + + //calculate height of column header and group holder element + + var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : height || this.parent.getHeadersElement().clientHeight; + + // var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight; + + + this.element.style.height = parentHeight + "px"; + + if (this.isGroup) { + + this.groupElement.style.minHeight = parentHeight - this.contentElement.offsetHeight + "px"; + } + + //vertically align cell contents + + if (!this.isGroup && alignment !== "top") { + + if (alignment === "bottom") { + + this.element.style.paddingTop = this.element.clientHeight - this.contentElement.offsetHeight + "px"; + } else { + + this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) / 2 + "px"; + } + } + + this.columns.forEach(function (column) { + + column.verticalAlign(alignment); + }); + }; + + //clear vertical alignmenet + + Column.prototype.clearVerticalAlign = function () { + + this.element.style.paddingTop = ""; + + this.element.style.height = ""; + + this.element.style.minHeight = ""; + + this.groupElement.style.minHeight = ""; + + this.columns.forEach(function (column) { + + column.clearVerticalAlign(); + }); + }; + + //// Retreive Column Information //// + + + //return column header element + + Column.prototype.getElement = function () { + + return this.element; + }; + + //return colunm group element + + Column.prototype.getGroupElement = function () { + + return this.groupElement; + }; + + //return field name + + Column.prototype.getField = function () { + + return this.field; + }; + + //return the first column in a group + + Column.prototype.getFirstColumn = function () { + + if (!this.isGroup) { + + return this; + } else { + + if (this.columns.length) { + + return this.columns[0].getFirstColumn(); + } else { + + return false; + } + } + }; + + //return the last column in a group + + Column.prototype.getLastColumn = function () { + + if (!this.isGroup) { + + return this; + } else { + + if (this.columns.length) { + + return this.columns[this.columns.length - 1].getLastColumn(); + } else { + + return false; + } + } + }; + + //return all columns in a group + + Column.prototype.getColumns = function () { + + return this.columns; + }; + + //return all columns in a group + + Column.prototype.getCells = function () { + + return this.cells; + }; + + //retreive the top column in a group of columns + + Column.prototype.getTopColumn = function () { + + if (this.parent.isGroup) { + + return this.parent.getTopColumn(); + } else { + + return this; + } + }; + + //return column definition object + + Column.prototype.getDefinition = function (updateBranches) { + + var colDefs = []; + + if (this.isGroup && updateBranches) { + + this.columns.forEach(function (column) { + + colDefs.push(column.getDefinition(true)); + }); + + this.definition.columns = colDefs; + } + + return this.definition; + }; + + //////////////////// Actions //////////////////// + + + Column.prototype.checkColumnVisibility = function () { + + var visible = false; + + this.columns.forEach(function (column) { + + if (column.visible) { + + visible = true; + } + }); + + if (visible) { + + this.show(); + + this.parent.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false); + } else { + + this.hide(); + } + }; + + //show column + + Column.prototype.show = function (silent, responsiveToggle) { + + if (!this.visible) { + + this.visible = true; + + this.element.style.display = ""; + + if (this.parent.isGroup) { + + this.parent.checkColumnVisibility(); + } + + this.cells.forEach(function (cell) { + + cell.show(); + }); + + if (!this.isGroup && this.width === null) { + + this.reinitializeWidth(); + } + + this.table.columnManager._verticalAlignHeaders(); + + if (this.table.options.persistentLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.persistence.save("columns"); + } + + if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible); + } + + if (!silent) { + + this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), true); + } + + if (this.parent.isGroup) { + + this.parent.matchChildWidths(); + } + } + }; + + //hide column + + Column.prototype.hide = function (silent, responsiveToggle) { + + if (this.visible) { + + this.visible = false; + + this.element.style.display = "none"; + + this.table.columnManager._verticalAlignHeaders(); + + if (this.parent.isGroup) { + + this.parent.checkColumnVisibility(); + } + + this.cells.forEach(function (cell) { + + cell.hide(); + }); + + if (this.table.options.persistentLayout && this.table.modExists("persistence", true)) { + + this.table.modules.persistence.save("columns"); + } + + if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible); + } + + if (!silent) { + + this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false); + } + + if (this.parent.isGroup) { + + this.parent.matchChildWidths(); + } + } + }; + + Column.prototype.matchChildWidths = function () { + + var childWidth = 0; + + if (this.contentElement && this.columns.length) { + + this.columns.forEach(function (column) { + + if (column.visible) { + + childWidth += column.getWidth(); + } + }); + + this.contentElement.style.maxWidth = childWidth - 1 + "px"; + } + }; + + Column.prototype.setWidth = function (width) { + + this.widthFixed = true; + + this.setWidthActual(width); + }; + + Column.prototype.setWidthActual = function (width) { + + if (isNaN(width)) { + + width = Math.floor(this.table.element.clientWidth / 100 * parseInt(width)); + } + + width = Math.max(this.minWidth, width); + + this.width = width; + + this.widthStyled = width ? width + "px" : ""; + + this.element.style.width = this.widthStyled; + + if (!this.isGroup) { + + this.cells.forEach(function (cell) { + + cell.setWidth(); + }); + } + + if (this.parent.isGroup) { + + this.parent.matchChildWidths(); + } + + //set resizable handles + + if (this.table.modExists("frozenColumns")) { + + this.table.modules.frozenColumns.layout(); + } + }; + + Column.prototype.checkCellHeights = function () { + + var rows = []; + + this.cells.forEach(function (cell) { + + if (cell.row.heightInitialized) { + + if (cell.row.getElement().offsetParent !== null) { + + rows.push(cell.row); + + cell.row.clearCellHeight(); + } else { + + cell.row.heightInitialized = false; + } + } + }); + + rows.forEach(function (row) { + + row.calcHeight(); + }); + + rows.forEach(function (row) { + + row.setCellHeight(); + }); + }; + + Column.prototype.getWidth = function () { + + // return this.element.offsetWidth; + + return this.width; + }; + + Column.prototype.getHeight = function () { + + return this.element.offsetHeight; + }; + + Column.prototype.setMinWidth = function (minWidth) { + + this.minWidth = minWidth; + + this.minWidthStyled = minWidth ? minWidth + "px" : ""; + + this.element.style.minWidth = this.minWidthStyled; + + this.cells.forEach(function (cell) { + + cell.setMinWidth(); + }); + }; + + Column.prototype.delete = function () { + + if (this.isGroup) { + + this.columns.forEach(function (column) { + + column.delete(); + }); + } + + var cellCount = this.cells.length; + + for (var i = 0; i < cellCount; i++) { + + this.cells[0].delete(); + } + + this.element.parentNode.removeChild(this.element); + + this.table.columnManager.deregisterColumn(this); + }; + + //////////////// Cell Management ///////////////// + + + //generate cell for this column + + Column.prototype.generateCell = function (row) { + + var self = this; + + var cell = new Cell(self, row); + + this.cells.push(cell); + + return cell; + }; + + Column.prototype.nextColumn = function () { + + var index = this.table.columnManager.findColumnIndex(this); + + return index > -1 ? this._nextVisibleColumn(index + 1) : false; + }; + + Column.prototype._nextVisibleColumn = function (index) { + + var column = this.table.columnManager.getColumnByIndex(index); + + return !column || column.visible ? column : this._nextVisibleColumn(index + 1); + }; + + Column.prototype.prevColumn = function () { + + var index = this.table.columnManager.findColumnIndex(this); + + return index > -1 ? this._prevVisibleColumn(index - 1) : false; + }; + + Column.prototype._prevVisibleColumn = function (index) { + + var column = this.table.columnManager.getColumnByIndex(index); + + return !column || column.visible ? column : this._prevVisibleColumn(index - 1); + }; + + Column.prototype.reinitializeWidth = function (force) { + + this.widthFixed = false; + + //set width if present + + if (typeof this.definition.width !== "undefined" && !force) { + + this.setWidth(this.definition.width); + } + + //hide header filters to prevent them altering column width + + if (this.table.modExists("filter")) { + + this.table.modules.filter.hideHeaderFilterElements(); + } + + this.fitToData(); + + //show header filters again after layout is complete + + if (this.table.modExists("filter")) { + + this.table.modules.filter.showHeaderFilterElements(); + } + }; + + //set column width to maximum cell width + + Column.prototype.fitToData = function () { + + var self = this; + + if (!this.widthFixed) { + + this.element.style.width = ""; + + self.cells.forEach(function (cell) { + + cell.clearWidth(); + }); + } + + var maxWidth = this.element.offsetWidth; + + if (!self.width || !this.widthFixed) { + + self.cells.forEach(function (cell) { + + var width = cell.getWidth(); + + if (width > maxWidth) { + + maxWidth = width; + } + }); + + if (maxWidth) { + + self.setWidthActual(maxWidth + 1); + } + } + }; + + Column.prototype.deleteCell = function (cell) { + + var index = this.cells.indexOf(cell); + + if (index > -1) { + + this.cells.splice(index, 1); + } + }; + + Column.prototype.defaultOptionList = ["title", "field", "columns", "visible", "align", "width", "minWidth", "widthGrow", "widthShrink", "resizable", "frozen", "responsive", "tooltip", "cssClass", "rowHandle", "hideInHtml", "print", "htmlOutput", "sorter", "sorterParams", "formatter", "formatterParams", "variableHeight", "editable", "editor", "editorParams", "validator", "mutator", "mutatorParams", "mutatorData", "mutatorDataParams", "mutatorEdit", "mutatorEditParams", "mutatorClipboard", "mutatorClipboardParams", "accessor", "accessorParams", "accessorData", "accessorDataParams", "accessorDownload", "accessorDownloadParams", "accessorClipboard", "accessorClipboardParams", "clipboard", "download", "downloadTitle", "topCalc", "topCalcParams", "topCalcFormatter", "topCalcFormatterParams", "bottomCalc", "bottomCalcParams", "bottomCalcFormatter", "bottomCalcFormatterParams", "cellClick", "cellDblClick", "cellContext", "cellTap", "cellDblTap", "cellTapHold", "cellMouseEnter", "cellMouseLeave", "cellMouseOver", "cellMouseOut", "cellMouseMove", "cellEditing", "cellEdited", "cellEditCancelled", "headerSort", "headerSortStartingDir", "headerSortTristate", "headerClick", "headerDblClick", "headerContext", "headerTap", "headerDblTap", "headerTapHold", "headerTooltip", "headerVertical", "editableTitle", "titleFormatter", "titleFormatterParams", "headerFilter", "headerFilterPlaceholder", "headerFilterParams", "headerFilterEmptyCheck", "headerFilterFunc", "headerFilterFuncParams", "headerFilterLiveFilter", "print"]; + + //////////////// Event Bindings ///////////////// + + + //////////////// Object Generation ///////////////// + + Column.prototype.getComponent = function () { + + return new ColumnComponent(this); + }; + + var RowManager = function RowManager(table) { + + this.table = table; + + this.element = this.createHolderElement(); //containing element + + this.tableElement = this.createTableElement(); //table element + + this.columnManager = null; //hold column manager object + + this.height = 0; //hold height of table element + + + this.firstRender = false; //handle first render + + this.renderMode = "classic"; //current rendering mode + + + this.rows = []; //hold row data objects + + this.activeRows = []; //rows currently available to on display in the table + + this.activeRowsCount = 0; //count of active rows + + + this.displayRows = []; //rows currently on display in the table + + this.displayRowsCount = 0; //count of display rows + + + this.scrollTop = 0; + + this.scrollLeft = 0; + + this.vDomRowHeight = 20; //approximation of row heights for padding + + + this.vDomTop = 0; //hold position for first rendered row in the virtual DOM + + this.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM + + + this.vDomScrollPosTop = 0; //last scroll position of the vDom top; + + this.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom; + + + this.vDomTopPad = 0; //hold value of padding for top of virtual DOM + + this.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM + + + this.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go + + + this.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling + + + this.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows) + + this.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin + + + this.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed + + this.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed + }; + + //////////////// Setup Functions ///////////////// + + + RowManager.prototype.createHolderElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-tableHolder"); + + el.setAttribute("tabindex", 0); + + return el; + }; + + RowManager.prototype.createTableElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-table"); + + return el; + }; + + //return containing element + + RowManager.prototype.getElement = function () { + + return this.element; + }; + + //return table element + + RowManager.prototype.getTableElement = function () { + + return this.tableElement; + }; + + //return position of row in table + + RowManager.prototype.getRowPosition = function (row, active) { + + if (active) { + + return this.activeRows.indexOf(row); + } else { + + return this.rows.indexOf(row); + } + }; + + //link to column manager + + RowManager.prototype.setColumnManager = function (manager) { + + this.columnManager = manager; + }; + + RowManager.prototype.initialize = function () { + + var self = this; + + self.setRenderMode(); + + //initialize manager + + self.element.appendChild(self.tableElement); + + self.firstRender = true; + + //scroll header along with table body + + self.element.addEventListener("scroll", function () { + + var left = self.element.scrollLeft; + + //handle horizontal scrolling + + if (self.scrollLeft != left) { + + self.columnManager.scrollHorizontal(left); + + if (self.table.options.groupBy) { + + self.table.modules.groupRows.scrollHeaders(left); + } + + if (self.table.modExists("columnCalcs")) { + + self.table.modules.columnCalcs.scrollHorizontal(left); + } + } + + self.scrollLeft = left; + }); + + //handle virtual dom scrolling + + if (this.renderMode === "virtual") { + + self.element.addEventListener("scroll", function () { + + var top = self.element.scrollTop; + + var dir = self.scrollTop > top; + + //handle verical scrolling + + if (self.scrollTop != top) { + + self.scrollTop = top; + + self.scrollVertical(dir); + + if (self.table.options.ajaxProgressiveLoad == "scroll") { + + self.table.modules.ajax.nextPage(self.element.scrollHeight - self.element.clientHeight - top); + } + } else { + + self.scrollTop = top; + } + }); + } + }; + + ////////////////// Row Manipulation ////////////////// + + + RowManager.prototype.findRow = function (subject) { + + var self = this; + + if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") { + + if (subject instanceof Row) { + + //subject is row element + + return subject; + } else if (subject instanceof RowComponent) { + + //subject is public row component + + return subject._getSelf() || false; + } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) { + + //subject is a HTML element of the row + + var match = self.rows.find(function (row) { + + return row.element === subject; + }); + + return match || false; + } + } else if (typeof subject == "undefined" || subject === null) { + + return false; + } else { + + //subject should be treated as the index of the row + + var _match = self.rows.find(function (row) { + + return row.data[self.table.options.index] == subject; + }); + + return _match || false; + } + + //catch all for any other type of input + + + return false; + }; + + RowManager.prototype.getRowFromDataObject = function (data) { + + var match = this.rows.find(function (row) { + + return row.data === data; + }); + + return match || false; + }; + + RowManager.prototype.getRowFromPosition = function (position, active) { + + if (active) { + + return this.activeRows[position]; + } else { + + return this.rows[position]; + } + }; + + RowManager.prototype.scrollToRow = function (row, position, ifVisible) { + var _this3 = this; + + var rowIndex = this.getDisplayRows().indexOf(row), + rowEl = row.getElement(), + rowTop, + offset = 0; + + return new Promise(function (resolve, reject) { + + if (rowIndex > -1) { + + if (typeof position === "undefined") { + + position = _this3.table.options.scrollToRowPosition; + } + + if (typeof ifVisible === "undefined") { + + ifVisible = _this3.table.options.scrollToRowIfVisible; + } + + if (position === "nearest") { + + switch (_this3.renderMode) { + + case "classic": + + rowTop = Tabulator.prototype.helpers.elOffset(rowEl).top; + + position = Math.abs(_this3.element.scrollTop - rowTop) > Math.abs(_this3.element.scrollTop + _this3.element.clientHeight - rowTop) ? "bottom" : "top"; + + break; + + case "virtual": + + position = Math.abs(_this3.vDomTop - rowIndex) > Math.abs(_this3.vDomBottom - rowIndex) ? "bottom" : "top"; + + break; + + } + } + + //check row visibility + + if (!ifVisible) { + + if (Tabulator.prototype.helpers.elVisible(rowEl)) { + + offset = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this3.element).top; + + if (offset > 0 && offset < _this3.element.clientHeight - rowEl.offsetHeight) { + + return false; + } + } + } + + //scroll to row + + switch (_this3.renderMode) { + + case "classic": + + _this3.element.scrollTop = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this3.element).top + _this3.element.scrollTop; + + break; + + case "virtual": + + _this3._virtualRenderFill(rowIndex, true); + + break; + + } + + //align to correct position + + switch (position) { + + case "middle": + + case "center": + + _this3.element.scrollTop = _this3.element.scrollTop - _this3.element.clientHeight / 2; + + break; + + case "bottom": + + _this3.element.scrollTop = _this3.element.scrollTop - _this3.element.clientHeight + rowEl.offsetHeight; + + break; + + } + + resolve(); + } else { + + console.warn("Scroll Error - Row not visible"); + + reject("Scroll Error - Row not visible"); + } + }); + }; + + ////////////////// Data Handling ////////////////// + + + RowManager.prototype.setData = function (data, renderInPosition) { + var _this4 = this; + + var self = this; + + return new Promise(function (resolve, reject) { + + if (renderInPosition && _this4.getDisplayRows().length) { + + if (self.table.options.pagination) { + + self._setDataActual(data, true); + } else { + + _this4.reRenderInPosition(function () { + + self._setDataActual(data); + }); + } + } else { + + if (_this4.table.options.autoColumns) { + + _this4.table.columnManager.generateColumnsFromRowData(data); + } + + _this4.resetScroll(); + + _this4._setDataActual(data); + } + + resolve(); + }); + }; + + RowManager.prototype._setDataActual = function (data, renderInPosition) { + + var self = this; + + self.table.options.dataLoading.call(this.table, data); + + this._wipeElements(); + + if (this.table.options.history && this.table.modExists("history")) { + + this.table.modules.history.clear(); + } + + if (Array.isArray(data)) { + + if (this.table.modExists("selectRow")) { + + this.table.modules.selectRow.clearSelectionData(); + } + + if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) { + + this.table.modules.reactiveData.watchData(data); + } + + data.forEach(function (def, i) { + + if (def && (typeof def === 'undefined' ? 'undefined' : _typeof(def)) === "object") { + + var row = new Row(def, self); + + self.rows.push(row); + } else { + + console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def); + } + }); + + self.table.options.dataLoaded.call(this.table, data); + + self.refreshActiveData(false, false, renderInPosition); + } else { + + console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ", typeof data === 'undefined' ? 'undefined' : _typeof(data), "\nData: ", data); + } + }; + + RowManager.prototype._wipeElements = function () { + + this.rows.forEach(function (row) { + + row.wipe(); + }); + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + this.table.modules.groupRows.wipe(); + } + + this.rows = []; + }; + + RowManager.prototype.deleteRow = function (row, blockRedraw) { + + var allIndex = this.rows.indexOf(row), + activeIndex = this.activeRows.indexOf(row); + + if (activeIndex > -1) { + + this.activeRows.splice(activeIndex, 1); + } + + if (allIndex > -1) { + + this.rows.splice(allIndex, 1); + } + + this.setActiveRows(this.activeRows); + + this.displayRowIterator(function (rows) { + + var displayIndex = rows.indexOf(row); + + if (displayIndex > -1) { + + rows.splice(displayIndex, 1); + } + }); + + if (!blockRedraw) { + + this.reRenderInPosition(); + } + + this.table.options.rowDeleted.call(this.table, row.getComponent()); + + this.table.options.dataEdited.call(this.table, this.getData()); + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + this.table.modules.groupRows.updateGroupRows(true); + } else if (this.table.options.pagination && this.table.modExists("page")) { + + this.refreshActiveData(false, false, true); + } else { + + if (this.table.options.pagination && this.table.modExists("page")) { + + this.refreshActiveData("page"); + } + } + }; + + RowManager.prototype.addRow = function (data, pos, index, blockRedraw) { + + var row = this.addRowActual(data, pos, index, blockRedraw); + + if (this.table.options.history && this.table.modExists("history")) { + + this.table.modules.history.action("rowAdd", row, { data: data, pos: pos, index: index }); + } + + return row; + }; + + //add multiple rows + + RowManager.prototype.addRows = function (data, pos, index) { + var _this5 = this; + + var self = this, + length = 0, + rows = []; + + return new Promise(function (resolve, reject) { + + pos = _this5.findAddRowPos(pos); + + if (!Array.isArray(data)) { + + data = [data]; + } + + length = data.length - 1; + + if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) { + + data.reverse(); + } + + data.forEach(function (item, i) { + + var row = self.addRow(item, pos, index, true); + + rows.push(row); + }); + + if (_this5.table.options.groupBy && _this5.table.modExists("groupRows")) { + + _this5.table.modules.groupRows.updateGroupRows(true); + } else if (_this5.table.options.pagination && _this5.table.modExists("page")) { + + _this5.refreshActiveData(false, false, true); + } else { + + _this5.reRenderInPosition(); + } + + //recalc column calculations if present + + if (_this5.table.modExists("columnCalcs")) { + + _this5.table.modules.columnCalcs.recalc(_this5.table.rowManager.activeRows); + } + + resolve(rows); + }); + }; + + RowManager.prototype.findAddRowPos = function (pos) { + + if (typeof pos === "undefined") { + + pos = this.table.options.addRowPos; + } + + if (pos === "pos") { + + pos = true; + } + + if (pos === "bottom") { + + pos = false; + } + + return pos; + }; + + RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) { + + var row = data instanceof Row ? data : new Row(data || {}, this), + top = this.findAddRowPos(pos), + dispRows; + + if (!index && this.table.options.pagination && this.table.options.paginationAddRow == "page") { + + dispRows = this.getDisplayRows(); + + if (top) { + + if (dispRows.length) { + + index = dispRows[0]; + } else { + + if (this.activeRows.length) { + + index = this.activeRows[this.activeRows.length - 1]; + + top = false; + } + } + } else { + + if (dispRows.length) { + + index = dispRows[dispRows.length - 1]; + + top = dispRows.length < this.table.modules.page.getPageSize() ? false : true; + } + } + } + + if (index) { + + index = this.findRow(index); + } + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + this.table.modules.groupRows.assignRowToGroup(row); + + var groupRows = row.getGroup().rows; + + if (groupRows.length > 1) { + + if (!index || index && groupRows.indexOf(index) == -1) { + + if (top) { + + if (groupRows[0] !== row) { + + index = groupRows[0]; + + this._moveRowInArray(row.getGroup().rows, row, index, top); + } + } else { + + if (groupRows[groupRows.length - 1] !== row) { + + index = groupRows[groupRows.length - 1]; + + this._moveRowInArray(row.getGroup().rows, row, index, top); + } + } + } else { + + this._moveRowInArray(row.getGroup().rows, row, index, top); + } + } + } + + if (index) { + + var allIndex = this.rows.indexOf(index), + activeIndex = this.activeRows.indexOf(index); + + this.displayRowIterator(function (rows) { + + var displayIndex = rows.indexOf(index); + + if (displayIndex > -1) { + + rows.splice(top ? displayIndex : displayIndex + 1, 0, row); + } + }); + + if (activeIndex > -1) { + + this.activeRows.splice(top ? activeIndex : activeIndex + 1, 0, row); + } + + if (allIndex > -1) { + + this.rows.splice(top ? allIndex : allIndex + 1, 0, row); + } + } else { + + if (top) { + + this.displayRowIterator(function (rows) { + + rows.unshift(row); + }); + + this.activeRows.unshift(row); + + this.rows.unshift(row); + } else { + + this.displayRowIterator(function (rows) { + + rows.push(row); + }); + + this.activeRows.push(row); + + this.rows.push(row); + } + } + + this.setActiveRows(this.activeRows); + + this.table.options.rowAdded.call(this.table, row.getComponent()); + + this.table.options.dataEdited.call(this.table, this.getData()); + + if (!blockRedraw) { + + this.reRenderInPosition(); + } + + return row; + }; + + RowManager.prototype.moveRow = function (from, to, after) { + + if (this.table.options.history && this.table.modExists("history")) { + + this.table.modules.history.action("rowMove", from, { pos: this.getRowPosition(from), to: to, after: after }); + } + + this.moveRowActual(from, to, after); + + this.table.options.rowMoved.call(this.table, from.getComponent()); + }; + + RowManager.prototype.moveRowActual = function (from, to, after) { + + var self = this; + + this._moveRowInArray(this.rows, from, to, after); + + this._moveRowInArray(this.activeRows, from, to, after); + + this.displayRowIterator(function (rows) { + + self._moveRowInArray(rows, from, to, after); + }); + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + var toGroup = to.getGroup(); + + var fromGroup = from.getGroup(); + + if (toGroup === fromGroup) { + + this._moveRowInArray(toGroup.rows, from, to, after); + } else { + + if (fromGroup) { + + fromGroup.removeRow(from); + } + + toGroup.insertRow(from, to, after); + } + } + }; + + RowManager.prototype._moveRowInArray = function (rows, from, to, after) { + + var fromIndex, toIndex, start, end; + + if (from !== to) { + + fromIndex = rows.indexOf(from); + + if (fromIndex > -1) { + + rows.splice(fromIndex, 1); + + toIndex = rows.indexOf(to); + + if (toIndex > -1) { + + if (after) { + + rows.splice(toIndex + 1, 0, from); + } else { + + rows.splice(toIndex, 0, from); + } + } else { + + rows.splice(fromIndex, 0, from); + } + } + + //restyle rows + + if (rows === this.getDisplayRows()) { + + start = fromIndex < toIndex ? fromIndex : toIndex; + + end = toIndex > fromIndex ? toIndex : fromIndex + 1; + + for (var i = start; i <= end; i++) { + + if (rows[i]) { + + this.styleRow(rows[i], i); + } + } + } + } + }; + + RowManager.prototype.clearData = function () { + + this.setData([]); + }; + + RowManager.prototype.getRowIndex = function (row) { + + return this.findRowIndex(row, this.rows); + }; + + RowManager.prototype.getDisplayRowIndex = function (row) { + + var index = this.getDisplayRows().indexOf(row); + + return index > -1 ? index : false; + }; + + RowManager.prototype.nextDisplayRow = function (row, rowOnly) { + + var index = this.getDisplayRowIndex(row), + nextRow = false; + + if (index !== false && index < this.displayRowsCount - 1) { + + nextRow = this.getDisplayRows()[index + 1]; + } + + if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) { + + return this.nextDisplayRow(nextRow, rowOnly); + } + + return nextRow; + }; + + RowManager.prototype.prevDisplayRow = function (row, rowOnly) { + + var index = this.getDisplayRowIndex(row), + prevRow = false; + + if (index) { + + prevRow = this.getDisplayRows()[index - 1]; + } + + if (prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) { + + return this.prevDisplayRow(prevRow, rowOnly); + } + + return prevRow; + }; + + RowManager.prototype.findRowIndex = function (row, list) { + + var rowIndex; + + row = this.findRow(row); + + if (row) { + + rowIndex = list.indexOf(row); + + if (rowIndex > -1) { + + return rowIndex; + } + } + + return false; + }; + + RowManager.prototype.getData = function (active, transform) { + + var self = this, + output = []; + + var rows = active ? self.activeRows : self.rows; + + rows.forEach(function (row) { + + output.push(row.getData(transform || "data")); + }); + + return output; + }; + + RowManager.prototype.getComponents = function (active) { + + var self = this, + output = []; + + var rows = active ? self.activeRows : self.rows; + + rows.forEach(function (row) { + + output.push(row.getComponent()); + }); + + return output; + }; + + RowManager.prototype.getDataCount = function (active) { + + return active ? this.activeRows.length : this.rows.length; + }; + + RowManager.prototype._genRemoteRequest = function () { + + var self = this, + table = self.table, + options = table.options, + params = {}; + + if (table.modExists("page")) { + + //set sort data if defined + + if (options.ajaxSorting) { + + var sorters = self.table.modules.sort.getSort(); + + sorters.forEach(function (item) { + + delete item.column; + }); + + params[self.table.modules.page.paginationDataSentNames.sorters] = sorters; + } + + //set filter data if defined + + if (options.ajaxFiltering) { + + var filters = self.table.modules.filter.getFilters(true, true); + + params[self.table.modules.page.paginationDataSentNames.filters] = filters; + } + + self.table.modules.ajax.setParams(params, true); + } + + table.modules.ajax.sendRequest().then(function (data) { + + self.setData(data); + }).catch(function (e) {}); + }; + + //choose the path to refresh data after a filter update + + RowManager.prototype.filterRefresh = function () { + + var table = this.table, + options = table.options, + left = this.scrollLeft; + + if (options.ajaxFiltering) { + + if (options.pagination == "remote" && table.modExists("page")) { + + table.modules.page.reset(true); + + table.modules.page.setPage(1).then(function () {}).catch(function () {}); + } else if (options.ajaxProgressiveLoad) { + + table.modules.ajax.loadData().then(function () {}).catch(function () {}); + } else { + + //assume data is url, make ajax call to url to get data + + this._genRemoteRequest(); + } + } else { + + this.refreshActiveData("filter"); + } + + this.scrollHorizontal(left); + }; + + //choose the path to refresh data after a sorter update + + RowManager.prototype.sorterRefresh = function (loadOrignalData) { + + var table = this.table, + options = this.table.options, + left = this.scrollLeft; + + if (options.ajaxSorting) { + + if ((options.pagination == "remote" || options.progressiveLoad) && table.modExists("page")) { + + table.modules.page.reset(true); + + table.modules.page.setPage(1).then(function () {}).catch(function () {}); + } else if (options.ajaxProgressiveLoad) { + + table.modules.ajax.loadData().then(function () {}).catch(function () {}); + } else { + + //assume data is url, make ajax call to url to get data + + this._genRemoteRequest(); + } + } else { + + this.refreshActiveData(loadOrignalData ? "filter" : "sort"); + } + + this.scrollHorizontal(left); + }; + + RowManager.prototype.scrollHorizontal = function (left) { + + this.scrollLeft = left; + + this.element.scrollLeft = left; + + if (this.table.options.groupBy) { + + this.table.modules.groupRows.scrollHeaders(left); + } + + if (this.table.modExists("columnCalcs")) { + + this.table.modules.columnCalcs.scrollHorizontal(left); + } + }; + + //set active data set + + RowManager.prototype.refreshActiveData = function (stage, skipStage, renderInPosition) { + + var self = this, + table = this.table, + displayIndex; + + if (self.table.modExists("edit")) { + + self.table.modules.edit.cancelEdit(); + } + + if (!stage) { + + stage = "all"; + } + + if (table.options.selectable && !table.options.selectablePersistence && table.modExists("selectRow")) { + + table.modules.selectRow.deselectRows(); + } + + //cascade through data refresh stages + + switch (stage) { + + case "all": + + case "filter": + + if (!skipStage) { + + if (table.modExists("filter")) { + + self.setActiveRows(table.modules.filter.filter(self.rows)); + } else { + + self.setActiveRows(self.rows.slice(0)); + } + } else { + + skipStage = false; + } + + case "sort": + + if (!skipStage) { + + if (table.modExists("sort")) { + + table.modules.sort.sort(this.activeRows); + } + } else { + + skipStage = false; + } + + //generic stage to allow for pipeline trigger after the data manipulation stage + + case "display": + + this.resetDisplayRows(); + + case "freeze": + + if (!skipStage) { + + if (this.table.modExists("frozenRows")) { + + if (table.modules.frozenRows.isFrozen()) { + + if (!table.modules.frozenRows.getDisplayIndex()) { + + table.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()); + } + + displayIndex = table.modules.frozenRows.getDisplayIndex(); + + displayIndex = self.setDisplayRows(table.modules.frozenRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex); + + if (displayIndex !== true) { + + table.modules.frozenRows.setDisplayIndex(displayIndex); + } + } + } + } else { + + skipStage = false; + } + + case "group": + + if (!skipStage) { + + if (table.options.groupBy && table.modExists("groupRows")) { + + if (!table.modules.groupRows.getDisplayIndex()) { + + table.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()); + } + + displayIndex = table.modules.groupRows.getDisplayIndex(); + + displayIndex = self.setDisplayRows(table.modules.groupRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex); + + if (displayIndex !== true) { + + table.modules.groupRows.setDisplayIndex(displayIndex); + } + } + } else { + + skipStage = false; + } + + case "tree": + + if (!skipStage) { + + if (table.options.dataTree && table.modExists("dataTree")) { + + if (!table.modules.dataTree.getDisplayIndex()) { + + table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()); + } + + displayIndex = table.modules.dataTree.getDisplayIndex(); + + displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex); + + if (displayIndex !== true) { + + table.modules.dataTree.setDisplayIndex(displayIndex); + } + } + } else { + + skipStage = false; + } + + if (table.options.pagination && table.modExists("page") && !renderInPosition) { + + if (table.modules.page.getMode() == "local") { + + table.modules.page.reset(); + } + } + + case "page": + + if (!skipStage) { + + if (table.options.pagination && table.modExists("page")) { + + if (!table.modules.page.getDisplayIndex()) { + + table.modules.page.setDisplayIndex(this.getNextDisplayIndex()); + } + + displayIndex = table.modules.page.getDisplayIndex(); + + if (table.modules.page.getMode() == "local") { + + table.modules.page.setMaxRows(this.getDisplayRows(displayIndex - 1).length); + } + + displayIndex = self.setDisplayRows(table.modules.page.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex); + + if (displayIndex !== true) { + + table.modules.page.setDisplayIndex(displayIndex); + } + } + } else { + + skipStage = false; + } + + } + + if (Tabulator.prototype.helpers.elVisible(self.element)) { + + if (renderInPosition) { + + self.reRenderInPosition(); + } else { + + self.renderTable(); + + if (table.options.layoutColumnsOnNewData) { + + self.table.columnManager.redraw(true); + } + } + } + + if (table.modExists("columnCalcs")) { + + table.modules.columnCalcs.recalc(this.activeRows); + } + }; + + RowManager.prototype.setActiveRows = function (activeRows) { + + this.activeRows = activeRows; + + this.activeRowsCount = this.activeRows.length; + }; + + //reset display rows array + + RowManager.prototype.resetDisplayRows = function () { + + this.displayRows = []; + + this.displayRows.push(this.activeRows.slice(0)); + + this.displayRowsCount = this.displayRows[0].length; + + if (this.table.modExists("frozenRows")) { + + this.table.modules.frozenRows.setDisplayIndex(0); + } + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + this.table.modules.groupRows.setDisplayIndex(0); + } + + if (this.table.options.pagination && this.table.modExists("page")) { + + this.table.modules.page.setDisplayIndex(0); + } + }; + + RowManager.prototype.getNextDisplayIndex = function () { + + return this.displayRows.length; + }; + + //set display row pipeline data + + RowManager.prototype.setDisplayRows = function (displayRows, index) { + + var output = true; + + if (index && typeof this.displayRows[index] != "undefined") { + + this.displayRows[index] = displayRows; + + output = true; + } else { + + this.displayRows.push(displayRows); + + output = index = this.displayRows.length - 1; + } + + if (index == this.displayRows.length - 1) { + + this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length; + } + + return output; + }; + + RowManager.prototype.getDisplayRows = function (index) { + + if (typeof index == "undefined") { + + return this.displayRows.length ? this.displayRows[this.displayRows.length - 1] : []; + } else { + + return this.displayRows[index] || []; + } + }; + + RowManager.prototype.getVisibleRows = function (viewable) { + + var topEdge = this.element.scrollTop, + bottomEdge = this.element.clientHeight + topEdge, + topFound = false, + topRow = 0, + bottomRow = 0, + rows = this.getDisplayRows(); + + if (viewable) { + + this.getDisplayRows(); + + for (var i = this.vDomTop; i <= this.vDomBottom; i++) { + + if (rows[i]) { + + if (!topFound) { + + if (topEdge - rows[i].getElement().offsetTop >= 0) { + + topRow = i; + } else { + + topFound = true; + } + } else { + + if (bottomEdge - rows[i].getElement().offsetTop >= 0) { + + bottomRow = i; + } else { + + break; + } + } + } + } + } else { + + topRow = this.vDomTop; + + bottomRow = this.vDomBottom; + } + + return rows.slice(topRow, bottomRow + 1); + }; + + //repeat action accross display rows + + RowManager.prototype.displayRowIterator = function (callback) { + + this.displayRows.forEach(callback); + + this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length; + }; + + //return only actual rows (not group headers etc) + + RowManager.prototype.getRows = function () { + + return this.rows; + }; + + ///////////////// Table Rendering ///////////////// + + + //trigger rerender of table in current position + + RowManager.prototype.reRenderInPosition = function (callback) { + + if (this.getRenderMode() == "virtual") { + + var scrollTop = this.element.scrollTop; + + var topRow = false; + + var topOffset = false; + + var left = this.scrollLeft; + + var rows = this.getDisplayRows(); + + for (var i = this.vDomTop; i <= this.vDomBottom; i++) { + + if (rows[i]) { + + var diff = scrollTop - rows[i].getElement().offsetTop; + + if (topOffset === false || Math.abs(diff) < topOffset) { + + topOffset = diff; + + topRow = i; + } else { + + break; + } + } + } + + if (callback) { + + callback(); + } + + this._virtualRenderFill(topRow === false ? this.displayRowsCount - 1 : topRow, true, topOffset || 0); + + this.scrollHorizontal(left); + } else { + + this.renderTable(); + + if (callback) { + + callback(); + } + } + }; + + RowManager.prototype.setRenderMode = function () { + + if ((this.table.element.clientHeight || this.table.options.height) && this.table.options.virtualDom) { + + this.renderMode = "virtual"; + } else { + + this.renderMode = "classic"; + } + }; + + RowManager.prototype.getRenderMode = function () { + + return this.renderMode; + }; + + RowManager.prototype.renderTable = function () { + + var self = this; + + self.table.options.renderStarted.call(this.table); + + self.element.scrollTop = 0; + + switch (self.renderMode) { + + case "classic": + + self._simpleRender(); + + break; + + case "virtual": + + self._virtualRenderFill(); + + break; + + } + + if (self.firstRender) { + + if (self.displayRowsCount) { + + self.firstRender = false; + + self.table.modules.layout.layout(); + } else { + + self.renderEmptyScroll(); + } + } + + if (self.table.modExists("frozenColumns")) { + + self.table.modules.frozenColumns.layout(); + } + + if (!self.displayRowsCount) { + + if (self.table.options.placeholder) { + + if (this.renderMode) { + + self.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode); + } + + self.getElement().appendChild(self.table.options.placeholder); + } + } + + self.table.options.renderComplete.call(this.table); + }; + + //simple render on heightless table + + RowManager.prototype._simpleRender = function () { + + this._clearVirtualDom(); + + if (this.displayRowsCount) { + + this.checkClassicModeGroupHeaderWidth(); + } else { + + this.renderEmptyScroll(); + } + }; + + RowManager.prototype.checkClassicModeGroupHeaderWidth = function () { + + var self = this, + element = this.tableElement, + onlyGroupHeaders = true; + + self.getDisplayRows().forEach(function (row, index) { + + self.styleRow(row, index); + + element.appendChild(row.getElement()); + + row.initialize(true); + + if (row.type !== "group") { + + onlyGroupHeaders = false; + } + }); + + if (onlyGroupHeaders) { + + element.style.minWidth = self.table.columnManager.getWidth() + "px"; + } else { + + element.style.minWidth = ""; + } + }; + + //show scrollbars on empty table div + + RowManager.prototype.renderEmptyScroll = function () { + + this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px"; + + this.tableElement.style.minHeight = "1px"; + + this.tableElement.style.visibility = "hidden"; + }; + + RowManager.prototype._clearVirtualDom = function () { + + var element = this.tableElement; + + if (this.table.options.placeholder && this.table.options.placeholder.parentNode) { + + this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder); + } + + // element.children.detach(); + + while (element.firstChild) { + element.removeChild(element.firstChild); + }element.style.paddingTop = ""; + + element.style.paddingBottom = ""; + + element.style.minWidth = ""; + + element.style.minHeight = ""; + + element.style.visibility = ""; + + this.scrollTop = 0; + + this.scrollLeft = 0; + + this.vDomTop = 0; + + this.vDomBottom = 0; + + this.vDomTopPad = 0; + + this.vDomBottomPad = 0; + }; + + RowManager.prototype.styleRow = function (row, index) { + + var rowEl = row.getElement(); + + if (index % 2) { + + rowEl.classList.add("tabulator-row-even"); + + rowEl.classList.remove("tabulator-row-odd"); + } else { + + rowEl.classList.add("tabulator-row-odd"); + + rowEl.classList.remove("tabulator-row-even"); + } + }; + + //full virtual render + + RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) { + + var self = this, + element = self.tableElement, + holder = self.element, + topPad = 0, + rowsHeight = 0, + topPadHeight = 0, + i = 0, + onlyGroupHeaders = true, + rows = self.getDisplayRows(); + + position = position || 0; + + offset = offset || 0; + + if (!position) { + + self._clearVirtualDom(); + } else { + + while (element.firstChild) { + element.removeChild(element.firstChild); + } //check if position is too close to bottom of table + + var heightOccupied = (self.displayRowsCount - position + 1) * self.vDomRowHeight; + + if (heightOccupied < self.height) { + + position -= Math.ceil((self.height - heightOccupied) / self.vDomRowHeight); + + if (position < 0) { + + position = 0; + } + } + + //calculate initial pad + + topPad = Math.min(Math.max(Math.floor(self.vDomWindowBuffer / self.vDomRowHeight), self.vDomWindowMinMarginRows), position); + + position -= topPad; + } + + if (self.displayRowsCount && Tabulator.prototype.helpers.elVisible(self.element)) { + + self.vDomTop = position; + + self.vDomBottom = position - 1; + + while ((rowsHeight <= self.height + self.vDomWindowBuffer || i < self.vDomWindowMinTotalRows) && self.vDomBottom < self.displayRowsCount - 1) { + + var index = self.vDomBottom + 1, + row = rows[index], + rowHeight = 0; + + self.styleRow(row, index); + + element.appendChild(row.getElement()); + + if (!row.initialized) { + + row.initialize(true); + } else { + + if (!row.heightInitialized) { + + row.normalizeHeight(true); + } + } + + rowHeight = row.getHeight(); + + if (i < topPad) { + + topPadHeight += rowHeight; + } else { + + rowsHeight += rowHeight; + } + + if (rowHeight > this.vDomWindowBuffer) { + + this.vDomWindowBuffer = rowHeight * 2; + } + + if (row.type !== "group") { + + onlyGroupHeaders = false; + } + + self.vDomBottom++; + + i++; + } + + if (!position) { + + this.vDomTopPad = 0; + + //adjust rowheight to match average of rendered elements + + self.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i); + + self.vDomBottomPad = self.vDomRowHeight * (self.displayRowsCount - self.vDomBottom - 1); + + self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height; + } else { + + self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset; + + self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0); + } + + element.style.paddingTop = self.vDomTopPad + "px"; + + element.style.paddingBottom = self.vDomBottomPad + "px"; + + if (forceMove) { + + this.scrollTop = self.vDomTopPad + topPadHeight + offset - (this.element.scrollWidth > this.element.clientWidth ? this.element.offsetHeight - this.element.clientHeight : 0); + } + + this.scrollTop = Math.min(this.scrollTop, this.element.scrollHeight - this.height); + + //adjust for horizontal scrollbar if present (and not at top of table) + + if (this.element.scrollWidth > this.element.offsetWidth && forceMove) { + + this.scrollTop += this.element.offsetHeight - this.element.clientHeight; + } + + this.vDomScrollPosTop = this.scrollTop; + + this.vDomScrollPosBottom = this.scrollTop; + + holder.scrollTop = this.scrollTop; + + element.style.minWidth = onlyGroupHeaders ? self.table.columnManager.getWidth() + "px" : ""; + + if (self.table.options.groupBy) { + + if (self.table.modules.layout.getMode() != "fitDataFill" && self.displayRowsCount == self.table.modules.groupRows.countGroups()) { + + self.tableElement.style.minWidth = self.table.columnManager.getWidth(); + } + } + } else { + + this.renderEmptyScroll(); + } + }; + + //handle vertical scrolling + + RowManager.prototype.scrollVertical = function (dir) { + + var topDiff = this.scrollTop - this.vDomScrollPosTop; + + var bottomDiff = this.scrollTop - this.vDomScrollPosBottom; + + var margin = this.vDomWindowBuffer * 2; + + if (-topDiff > margin || bottomDiff > margin) { + + //if big scroll redraw table; + + var left = this.scrollLeft; + + this._virtualRenderFill(Math.floor(this.element.scrollTop / this.element.scrollHeight * this.displayRowsCount)); + + this.scrollHorizontal(left); + } else { + + if (dir) { + + //scrolling up + + if (topDiff < 0) { + + this._addTopRow(-topDiff); + } + + if (bottomDiff < 0) { + + //hide bottom row if needed + + if (this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer) { + + this._removeBottomRow(-bottomDiff); + } + } + } else { + + //scrolling down + + if (topDiff >= 0) { + + //hide top row if needed + + if (this.scrollTop > this.vDomWindowBuffer) { + + this._removeTopRow(topDiff); + } + } + + if (bottomDiff >= 0) { + + this._addBottomRow(bottomDiff); + } + } + } + }; + + RowManager.prototype._addTopRow = function (topDiff) { + var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + + var table = this.tableElement, + rows = this.getDisplayRows(); + + if (this.vDomTop) { + + var index = this.vDomTop - 1, + topRow = rows[index], + topRowHeight = topRow.getHeight() || this.vDomRowHeight; + + //hide top row if needed + + if (topDiff >= topRowHeight) { + + this.styleRow(topRow, index); + + table.insertBefore(topRow.getElement(), table.firstChild); + + if (!topRow.initialized || !topRow.heightInitialized) { + + this.vDomTopNewRows.push(topRow); + + if (!topRow.heightInitialized) { + + topRow.clearCellHeight(); + } + } + + topRow.initialize(); + + this.vDomTopPad -= topRowHeight; + + if (this.vDomTopPad < 0) { + + this.vDomTopPad = index * this.vDomRowHeight; + } + + if (!index) { + + this.vDomTopPad = 0; + } + + table.style.paddingTop = this.vDomTopPad + "px"; + + this.vDomScrollPosTop -= topRowHeight; + + this.vDomTop--; + } + + topDiff = -(this.scrollTop - this.vDomScrollPosTop); + + if (topRow.getHeight() > this.vDomWindowBuffer) { + + this.vDomWindowBuffer = topRow.getHeight() * 2; + } + + if (i < this.vDomMaxRenderChain && this.vDomTop && topDiff >= (rows[this.vDomTop - 1].getHeight() || this.vDomRowHeight)) { + + this._addTopRow(topDiff, i + 1); + } else { + + this._quickNormalizeRowHeight(this.vDomTopNewRows); + } + } + }; + + RowManager.prototype._removeTopRow = function (topDiff) { + + var table = this.tableElement, + topRow = this.getDisplayRows()[this.vDomTop], + topRowHeight = topRow.getHeight() || this.vDomRowHeight; + + if (topDiff >= topRowHeight) { + + var rowEl = topRow.getElement(); + + rowEl.parentNode.removeChild(rowEl); + + this.vDomTopPad += topRowHeight; + + table.style.paddingTop = this.vDomTopPad + "px"; + + this.vDomScrollPosTop += this.vDomTop ? topRowHeight : topRowHeight + this.vDomWindowBuffer; + + this.vDomTop++; + + topDiff = this.scrollTop - this.vDomScrollPosTop; + + this._removeTopRow(topDiff); + } + }; + + RowManager.prototype._addBottomRow = function (bottomDiff) { + var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + + var table = this.tableElement, + rows = this.getDisplayRows(); + + if (this.vDomBottom < this.displayRowsCount - 1) { + + var index = this.vDomBottom + 1, + bottomRow = rows[index], + bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight; + + //hide bottom row if needed + + if (bottomDiff >= bottomRowHeight) { + + this.styleRow(bottomRow, index); + + table.appendChild(bottomRow.getElement()); + + if (!bottomRow.initialized || !bottomRow.heightInitialized) { + + this.vDomBottomNewRows.push(bottomRow); + + if (!bottomRow.heightInitialized) { + + bottomRow.clearCellHeight(); + } + } + + bottomRow.initialize(); + + this.vDomBottomPad -= bottomRowHeight; + + if (this.vDomBottomPad < 0 || index == this.displayRowsCount - 1) { + + this.vDomBottomPad = 0; + } + + table.style.paddingBottom = this.vDomBottomPad + "px"; + + this.vDomScrollPosBottom += bottomRowHeight; + + this.vDomBottom++; + } + + bottomDiff = this.scrollTop - this.vDomScrollPosBottom; + + if (bottomRow.getHeight() > this.vDomWindowBuffer) { + + this.vDomWindowBuffer = bottomRow.getHeight() * 2; + } + + if (i < this.vDomMaxRenderChain && this.vDomBottom < this.displayRowsCount - 1 && bottomDiff >= (rows[this.vDomBottom + 1].getHeight() || this.vDomRowHeight)) { + + this._addBottomRow(bottomDiff, i + 1); + } else { + + this._quickNormalizeRowHeight(this.vDomBottomNewRows); + } + } + }; + + RowManager.prototype._removeBottomRow = function (bottomDiff) { + + var table = this.tableElement, + bottomRow = this.getDisplayRows()[this.vDomBottom], + bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight; + + if (bottomDiff >= bottomRowHeight) { + + var rowEl = bottomRow.getElement(); + + if (rowEl.parentNode) { + + rowEl.parentNode.removeChild(rowEl); + } + + this.vDomBottomPad += bottomRowHeight; + + if (this.vDomBottomPad < 0) { + + this.vDomBottomPad = 0; + } + + table.style.paddingBottom = this.vDomBottomPad + "px"; + + this.vDomScrollPosBottom -= bottomRowHeight; + + this.vDomBottom--; + + bottomDiff = -(this.scrollTop - this.vDomScrollPosBottom); + + this._removeBottomRow(bottomDiff); + } + }; + + RowManager.prototype._quickNormalizeRowHeight = function (rows) { + + rows.forEach(function (row) { + + row.calcHeight(); + }); + + rows.forEach(function (row) { + + row.setCellHeight(); + }); + + rows.length = 0; + }; + + //normalize height of active rows + + RowManager.prototype.normalizeHeight = function () { + + this.activeRows.forEach(function (row) { + + row.normalizeHeight(); + }); + }; + + //adjust the height of the table holder to fit in the Tabulator element + + RowManager.prototype.adjustTableSize = function () { + + if (this.renderMode === "virtual") { + + this.height = this.element.clientHeight; + + this.vDomWindowBuffer = this.table.options.virtualDomBuffer || this.height; + + var otherHeight = this.columnManager.getElement().offsetHeight + (this.table.footerManager && !this.table.footerManager.external ? this.table.footerManager.getElement().offsetHeight : 0); + + this.element.style.minHeight = "calc(100% - " + otherHeight + "px)"; + + this.element.style.height = "calc(100% - " + otherHeight + "px)"; + + this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)"; + } + }; + + //renitialize all rows + + RowManager.prototype.reinitialize = function () { + + this.rows.forEach(function (row) { + + row.reinitialize(); + }); + }; + + //redraw table + + RowManager.prototype.redraw = function (force) { + + var pos = 0, + left = this.scrollLeft; + + this.adjustTableSize(); + + this.table.tableWidth = this.table.element.clientWidth; + + if (!force) { + + if (this.renderMode == "classic") { + + if (this.table.options.groupBy) { + + this.refreshActiveData("group", false, false); + } else { + + this._simpleRender(); + } + } else { + + this.reRenderInPosition(); + + this.scrollHorizontal(left); + } + + if (!this.displayRowsCount) { + + if (this.table.options.placeholder) { + + this.getElement().appendChild(this.table.options.placeholder); + } + } + } else { + + this.renderTable(); + } + }; + + RowManager.prototype.resetScroll = function () { + + this.element.scrollLeft = 0; + + this.element.scrollTop = 0; + + if (this.table.browser === "ie") { + + var event = document.createEvent("Event"); + + event.initEvent("scroll", false, true); + + this.element.dispatchEvent(event); + } else { + + this.element.dispatchEvent(new Event('scroll')); + } + }; + + //public row object + + var RowComponent = function RowComponent(row) { + + this._row = row; + }; + + RowComponent.prototype.getData = function (transform) { + + return this._row.getData(transform); + }; + + RowComponent.prototype.getElement = function () { + + return this._row.getElement(); + }; + + RowComponent.prototype.getCells = function () { + + var cells = []; + + this._row.getCells().forEach(function (cell) { + + cells.push(cell.getComponent()); + }); + + return cells; + }; + + RowComponent.prototype.getCell = function (column) { + + var cell = this._row.getCell(column); + + return cell ? cell.getComponent() : false; + }; + + RowComponent.prototype.getIndex = function () { + + return this._row.getData("data")[this._row.table.options.index]; + }; + + RowComponent.prototype.getPosition = function (active) { + + return this._row.table.rowManager.getRowPosition(this._row, active); + }; + + RowComponent.prototype.delete = function () { + + return this._row.delete(); + }; + + RowComponent.prototype.scrollTo = function () { + + return this._row.table.rowManager.scrollToRow(this._row); + }; + + RowComponent.prototype.pageTo = function () { + + if (this._row.table.modExists("page", true)) { + + return this._row.table.modules.page.setPageToRow(this._row); + } + }; + + RowComponent.prototype.move = function (to, after) { + + this._row.moveToRow(to, after); + }; + + RowComponent.prototype.update = function (data) { + + return this._row.updateData(data); + }; + + RowComponent.prototype.normalizeHeight = function () { + + this._row.normalizeHeight(true); + }; + + RowComponent.prototype.select = function () { + + this._row.table.modules.selectRow.selectRows(this._row); + }; + + RowComponent.prototype.deselect = function () { + + this._row.table.modules.selectRow.deselectRows(this._row); + }; + + RowComponent.prototype.toggleSelect = function () { + + this._row.table.modules.selectRow.toggleRow(this._row); + }; + + RowComponent.prototype.isSelected = function () { + + return this._row.table.modules.selectRow.isRowSelected(this._row); + }; + + RowComponent.prototype._getSelf = function () { + + return this._row; + }; + + RowComponent.prototype.freeze = function () { + + if (this._row.table.modExists("frozenRows", true)) { + + this._row.table.modules.frozenRows.freezeRow(this._row); + } + }; + + RowComponent.prototype.unfreeze = function () { + + if (this._row.table.modExists("frozenRows", true)) { + + this._row.table.modules.frozenRows.unfreezeRow(this._row); + } + }; + + RowComponent.prototype.treeCollapse = function () { + + if (this._row.table.modExists("dataTree", true)) { + + this._row.table.modules.dataTree.collapseRow(this._row); + } + }; + + RowComponent.prototype.treeExpand = function () { + + if (this._row.table.modExists("dataTree", true)) { + + this._row.table.modules.dataTree.expandRow(this._row); + } + }; + + RowComponent.prototype.treeToggle = function () { + + if (this._row.table.modExists("dataTree", true)) { + + this._row.table.modules.dataTree.toggleRow(this._row); + } + }; + + RowComponent.prototype.getTreeParent = function () { + + if (this._row.table.modExists("dataTree", true)) { + + return this._row.table.modules.dataTree.getTreeParent(this._row); + } + + return false; + }; + + RowComponent.prototype.getTreeChildren = function () { + + if (this._row.table.modExists("dataTree", true)) { + + return this._row.table.modules.dataTree.getTreeChildren(this._row); + } + + return false; + }; + + RowComponent.prototype.reformat = function () { + + return this._row.reinitialize(); + }; + + RowComponent.prototype.getGroup = function () { + + return this._row.getGroup().getComponent(); + }; + + RowComponent.prototype.getTable = function () { + + return this._row.table; + }; + + RowComponent.prototype.getNextRow = function () { + + var row = this._row.nextRow(); + + return row ? row.getComponent() : row; + }; + + RowComponent.prototype.getPrevRow = function () { + + var row = this._row.prevRow(); + + return row ? row.getComponent() : row; + }; + + var Row = function Row(data, parent) { + + this.table = parent.table; + + this.parent = parent; + + this.data = {}; + + this.type = "row"; //type of element + + this.element = this.createElement(); + + this.modules = {}; //hold module variables; + + this.cells = []; + + this.height = 0; //hold element height + + this.heightStyled = ""; //hold element height prestyled to improve render efficiency + + this.manualHeight = false; //user has manually set row height + + this.outerHeight = 0; //holde lements outer height + + this.initialized = false; //element has been rendered + + this.heightInitialized = false; //element has resized cells to fit + + + this.setData(data); + + this.generateElement(); + }; + + Row.prototype.createElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-row"); + + el.setAttribute("role", "row"); + + return el; + }; + + Row.prototype.getElement = function () { + + return this.element; + }; + + Row.prototype.detachElement = function () { + + if (this.element && this.element.parentNode) { + + this.element.parentNode.removeChild(this.element); + } + }; + + Row.prototype.generateElement = function () { + + var self = this, + dblTap, + tapHold, + tap; + + //set row selection characteristics + + if (self.table.options.selectable !== false && self.table.modExists("selectRow")) { + + self.table.modules.selectRow.initializeRow(this); + } + + //setup movable rows + + if (self.table.options.movableRows !== false && self.table.modExists("moveRow")) { + + self.table.modules.moveRow.initializeRow(this); + } + + //setup data tree + + if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) { + + self.table.modules.dataTree.initializeRow(this); + } + + //handle row click events + + if (self.table.options.rowClick) { + + self.element.addEventListener("click", function (e) { + + self.table.options.rowClick(e, self.getComponent()); + }); + } + + if (self.table.options.rowDblClick) { + + self.element.addEventListener("dblclick", function (e) { + + self.table.options.rowDblClick(e, self.getComponent()); + }); + } + + if (self.table.options.rowContext) { + + self.element.addEventListener("contextmenu", function (e) { + + self.table.options.rowContext(e, self.getComponent()); + }); + } + + //handle mouse events + + if (self.table.options.rowMouseEnter) { + + self.element.addEventListener("mouseenter", function (e) { + + self.table.options.rowMouseEnter(e, self.getComponent()); + }); + } + + if (self.table.options.rowMouseLeave) { + + self.element.addEventListener("mouseleave", function (e) { + + self.table.options.rowMouseLeave(e, self.getComponent()); + }); + } + + if (self.table.options.rowMouseOver) { + + self.element.addEventListener("mouseover", function (e) { + + self.table.options.rowMouseOver(e, self.getComponent()); + }); + } + + if (self.table.options.rowMouseOut) { + + self.element.addEventListener("mouseout", function (e) { + + self.table.options.rowMouseOut(e, self.getComponent()); + }); + } + + if (self.table.options.rowMouseMove) { + + self.element.addEventListener("mousemove", function (e) { + + self.table.options.rowMouseMove(e, self.getComponent()); + }); + } + + if (self.table.options.rowTap) { + + tap = false; + + self.element.addEventListener("touchstart", function (e) { + + tap = true; + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + + if (tap) { + + self.table.options.rowTap(e, self.getComponent()); + } + + tap = false; + }); + } + + if (self.table.options.rowDblTap) { + + dblTap = null; + + self.element.addEventListener("touchend", function (e) { + + if (dblTap) { + + clearTimeout(dblTap); + + dblTap = null; + + self.table.options.rowDblTap(e, self.getComponent()); + } else { + + dblTap = setTimeout(function () { + + clearTimeout(dblTap); + + dblTap = null; + }, 300); + } + }); + } + + if (self.table.options.rowTapHold) { + + tapHold = null; + + self.element.addEventListener("touchstart", function (e) { + + clearTimeout(tapHold); + + tapHold = setTimeout(function () { + + clearTimeout(tapHold); + + tapHold = null; + + tap = false; + + self.table.options.rowTapHold(e, self.getComponent()); + }, 1000); + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + + clearTimeout(tapHold); + + tapHold = null; + }); + } + }; + + Row.prototype.generateCells = function () { + + this.cells = this.table.columnManager.generateCells(this); + }; + + //functions to setup on first render + + Row.prototype.initialize = function (force) { + + var self = this; + + if (!self.initialized || force) { + + self.deleteCells(); + + while (self.element.firstChild) { + self.element.removeChild(self.element.firstChild); + } //handle frozen cells + + if (this.table.modExists("frozenColumns")) { + + this.table.modules.frozenColumns.layoutRow(this); + } + + this.generateCells(); + + self.cells.forEach(function (cell) { + + self.element.appendChild(cell.getElement()); + + cell.cellRendered(); + }); + + if (force) { + + self.normalizeHeight(); + } + + //setup movable rows + + if (self.table.options.dataTree && self.table.modExists("dataTree")) { + + self.table.modules.dataTree.layoutRow(this); + } + + //setup movable rows + + if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) { + + self.table.modules.responsiveLayout.layoutRow(this); + } + + if (self.table.options.rowFormatter) { + + self.table.options.rowFormatter(self.getComponent()); + } + + //set resizable handles + + if (self.table.options.resizableRows && self.table.modExists("resizeRows")) { + + self.table.modules.resizeRows.initializeRow(self); + } + + self.initialized = true; + } + }; + + Row.prototype.reinitializeHeight = function () { + + this.heightInitialized = false; + + if (this.element.offsetParent !== null) { + + this.normalizeHeight(true); + } + }; + + Row.prototype.reinitialize = function () { + + this.initialized = false; + + this.heightInitialized = false; + + if (!this.manualHeight) { + + this.height = 0; + + this.heightStyled = ""; + } + + if (this.element.offsetParent !== null) { + + this.initialize(true); + } + }; + + //get heights when doing bulk row style calcs in virtual DOM + + Row.prototype.calcHeight = function (force) { + + var maxHeight = 0, + minHeight = this.table.options.resizableRows ? this.element.clientHeight : 0; + + this.cells.forEach(function (cell) { + + var height = cell.getHeight(); + + if (height > maxHeight) { + + maxHeight = height; + } + }); + + if (force) { + + this.height = Math.max(maxHeight, minHeight); + } else { + + this.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight); + } + + this.heightStyled = this.height ? this.height + "px" : ""; + + this.outerHeight = this.element.offsetHeight; + }; + + //set of cells + + Row.prototype.setCellHeight = function () { + + this.cells.forEach(function (cell) { + + cell.setHeight(); + }); + + this.heightInitialized = true; + }; + + Row.prototype.clearCellHeight = function () { + + this.cells.forEach(function (cell) { + + cell.clearHeight(); + }); + }; + + //normalize the height of elements in the row + + Row.prototype.normalizeHeight = function (force) { + + if (force) { + + this.clearCellHeight(); + } + + this.calcHeight(force); + + this.setCellHeight(); + }; + + // Row.prototype.setHeight = function(height){ + + // this.height = height; + + + // this.setCellHeight(); + + // }; + + + //set height of rows + + Row.prototype.setHeight = function (height, force) { + + if (this.height != height || force) { + + this.manualHeight = true; + + this.height = height; + + this.heightStyled = height ? height + "px" : ""; + + this.setCellHeight(); + + // this.outerHeight = this.element.outerHeight(); + + this.outerHeight = this.element.offsetHeight; + } + }; + + //return rows outer height + + Row.prototype.getHeight = function () { + + return this.outerHeight; + }; + + //return rows outer Width + + Row.prototype.getWidth = function () { + + return this.element.offsetWidth; + }; + + //////////////// Cell Management ///////////////// + + + Row.prototype.deleteCell = function (cell) { + + var index = this.cells.indexOf(cell); + + if (index > -1) { + + this.cells.splice(index, 1); + } + }; + + //////////////// Data Management ///////////////// + + + Row.prototype.setData = function (data) { + + if (this.table.modExists("mutator")) { + + data = this.table.modules.mutator.transformRow(data, "data"); + } + + this.data = data; + + if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) { + + this.table.modules.reactiveData.watchRow(this); + } + }; + + //update the rows data + + Row.prototype.updateData = function (data) { + var _this6 = this; + + var self = this, + visible = Tabulator.prototype.helpers.elVisible(this.element); + + return new Promise(function (resolve, reject) { + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (_this6.table.options.reactiveData && _this6.table.modExists("reactiveData", true)) { + + _this6.table.modules.reactiveData.block(); + } + + //mutate incomming data if needed + + if (self.table.modExists("mutator")) { + + data = self.table.modules.mutator.transformRow(data, "data", true); + } + + //set data + + for (var attrname in data) { + + self.data[attrname] = data[attrname]; + } + + if (_this6.table.options.reactiveData && _this6.table.modExists("reactiveData", true)) { + + _this6.table.modules.reactiveData.unblock(); + } + + //update affected cells only + + for (var attrname in data) { + + var cell = _this6.getCell(attrname); + + if (cell) { + + if (cell.getValue() != data[attrname]) { + + cell.setValueProcessData(data[attrname]); + + if (visible) { + + cell.cellRendered(); + } + } + } + } + + //Partial reinitialization if visible + + if (visible) { + + self.normalizeHeight(); + + if (self.table.options.rowFormatter) { + + self.table.options.rowFormatter(self.getComponent()); + } + } else { + + _this6.initialized = false; + + _this6.height = 0; + + _this6.heightStyled = ""; + } + + if (self.table.options.dataTree !== false && self.table.modExists("dataTree") && typeof data[_this6.table.modules.dataTree.getChildField()] !== "undefined") { + + _this6.table.modules.dataTree.initializeRow(_this6); + + _this6.table.rowManager.refreshActiveData("tree", false, true); + } + + //self.reinitialize(); + + + self.table.options.rowUpdated.call(_this6.table, self.getComponent()); + + resolve(); + }); + }; + + Row.prototype.getData = function (transform) { + + var self = this; + + if (transform) { + + if (self.table.modExists("accessor")) { + + return self.table.modules.accessor.transformRow(self.data, transform); + } + } else { + + return this.data; + } + }; + + Row.prototype.getCell = function (column) { + + var match = false; + + column = this.table.columnManager.findColumn(column); + + match = this.cells.find(function (cell) { + + return cell.column === column; + }); + + return match; + }; + + Row.prototype.getCellIndex = function (findCell) { + + return this.cells.findIndex(function (cell) { + + return cell === findCell; + }); + }; + + Row.prototype.findNextEditableCell = function (index) { + + var nextCell = false; + + if (index < this.cells.length - 1) { + + for (var i = index + 1; i < this.cells.length; i++) { + + var cell = this.cells[i]; + + if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) { + + var allowEdit = true; + + if (typeof cell.column.modules.edit.check == "function") { + + allowEdit = cell.column.modules.edit.check(cell.getComponent()); + } + + if (allowEdit) { + + nextCell = cell; + + break; + } + } + } + } + + return nextCell; + }; + + Row.prototype.findPrevEditableCell = function (index) { + + var prevCell = false; + + if (index > 0) { + + for (var i = index - 1; i >= 0; i--) { + + var cell = this.cells[i], + allowEdit = true; + + if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) { + + if (typeof cell.column.modules.edit.check == "function") { + + allowEdit = cell.column.modules.edit.check(cell.getComponent()); + } + + if (allowEdit) { + + prevCell = cell; + + break; + } + } + } + } + + return prevCell; + }; + + Row.prototype.getCells = function () { + + return this.cells; + }; + + Row.prototype.nextRow = function () { + + var row = this.table.rowManager.nextDisplayRow(this, true); + + return row || false; + }; + + Row.prototype.prevRow = function () { + + var row = this.table.rowManager.prevDisplayRow(this, true); + + return row || false; + }; + + Row.prototype.moveToRow = function (to, before) { + + var toRow = this.table.rowManager.findRow(to); + + if (toRow) { + + this.table.rowManager.moveRowActual(this, toRow, !before); + + this.table.rowManager.refreshActiveData("display", false, true); + } else { + + console.warn("Move Error - No matching row found:", to); + } + }; + + ///////////////////// Actions ///////////////////// + + + Row.prototype.delete = function () { + var _this7 = this; + + return new Promise(function (resolve, reject) { + + var index = _this7.table.rowManager.getRowIndex(_this7); + + _this7.deleteActual(); + + if (_this7.table.options.history && _this7.table.modExists("history")) { + + if (index) { + + index = _this7.table.rowManager.rows[index - 1]; + } + + _this7.table.modules.history.action("rowDelete", _this7, { data: _this7.getData(), pos: !index, index: index }); + } + + resolve(); + }); + }; + + Row.prototype.deleteActual = function (blockRedraw) { + + var index = this.table.rowManager.getRowIndex(this); + + //deselect row if it is selected + + if (this.table.modExists("selectRow")) { + + this.table.modules.selectRow._deselectRow(this, true); + } + + // if(this.table.options.dataTree && this.table.modExists("dataTree")){ + + // this.table.modules.dataTree.collapseRow(this, true); + + // } + + + //remove any reactive data watchers from row object + + if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {} + + // this.table.modules.reactiveData.unwatchRow(this); + + //remove from group + + if (this.modules.group) { + + this.modules.group.removeRow(this); + } + + this.table.rowManager.deleteRow(this, blockRedraw); + + this.deleteCells(); + + this.initialized = false; + + this.heightInitialized = false; + + //recalc column calculations if present + + if (this.table.modExists("columnCalcs")) { + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + this.table.modules.columnCalcs.recalcRowGroup(this); + } else { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + } + }; + + Row.prototype.deleteCells = function () { + + var cellCount = this.cells.length; + + for (var i = 0; i < cellCount; i++) { + + this.cells[0].delete(); + } + }; + + Row.prototype.wipe = function () { + + this.deleteCells(); + + while (this.element.firstChild) { + this.element.removeChild(this.element.firstChild); + }this.element = false; + + this.modules = {}; + + if (this.element.parentNode) { + + this.element.parentNode.removeChild(this.element); + } + }; + + Row.prototype.getGroup = function () { + + return this.modules.group || false; + }; + + //////////////// Object Generation ///////////////// + + Row.prototype.getComponent = function () { + + return new RowComponent(this); + }; + + //public row object + + var CellComponent = function CellComponent(cell) { + + this._cell = cell; + }; + + CellComponent.prototype.getValue = function () { + + return this._cell.getValue(); + }; + + CellComponent.prototype.getOldValue = function () { + + return this._cell.getOldValue(); + }; + + CellComponent.prototype.getElement = function () { + + return this._cell.getElement(); + }; + + CellComponent.prototype.getRow = function () { + + return this._cell.row.getComponent(); + }; + + CellComponent.prototype.getData = function () { + + return this._cell.row.getData(); + }; + + CellComponent.prototype.getField = function () { + + return this._cell.column.getField(); + }; + + CellComponent.prototype.getColumn = function () { + + return this._cell.column.getComponent(); + }; + + CellComponent.prototype.setValue = function (value, mutate) { + + if (typeof mutate == "undefined") { + + mutate = true; + } + + this._cell.setValue(value, mutate); + }; + + CellComponent.prototype.restoreOldValue = function () { + + this._cell.setValueActual(this._cell.getOldValue()); + }; + + CellComponent.prototype.edit = function (force) { + + return this._cell.edit(force); + }; + + CellComponent.prototype.cancelEdit = function () { + + this._cell.cancelEdit(); + }; + + CellComponent.prototype.nav = function () { + + return this._cell.nav(); + }; + + CellComponent.prototype.checkHeight = function () { + + this._cell.checkHeight(); + }; + + CellComponent.prototype.getTable = function () { + + return this._cell.table; + }; + + CellComponent.prototype._getSelf = function () { + + return this._cell; + }; + + var Cell = function Cell(column, row) { + + this.table = column.table; + + this.column = column; + + this.row = row; + + this.element = null; + + this.value = null; + + this.oldValue = null; + + this.height = null; + + this.width = null; + + this.minWidth = null; + + this.build(); + }; + + //////////////// Setup Functions ///////////////// + + + //generate element + + Cell.prototype.build = function () { + + this.generateElement(); + + this.setWidth(); + + this._configureCell(); + + this.setValueActual(this.column.getFieldValue(this.row.data)); + }; + + Cell.prototype.generateElement = function () { + + this.element = document.createElement('div'); + + this.element.className = "tabulator-cell"; + + this.element.setAttribute("role", "gridcell"); + + this.element = this.element; + }; + + Cell.prototype._configureCell = function () { + + var self = this, + cellEvents = self.column.cellEvents, + element = self.element, + field = this.column.getField(); + + //set text alignment + + element.style.textAlign = self.column.hozAlign; + + if (field) { + + element.setAttribute("tabulator-field", field); + } + + //add class to cell if needed + + if (self.column.definition.cssClass) { + + var classNames = self.column.definition.cssClass.split(" "); + + classNames.forEach(function (className) { + + element.classList.add(className); + }); + } + + //update tooltip on mouse enter + + if (this.table.options.tooltipGenerationMode === "hover") { + + element.addEventListener("mouseenter", function (e) { + + self._generateTooltip(); + }); + } + + self._bindClickEvents(cellEvents); + + self._bindTouchEvents(cellEvents); + + self._bindMouseEvents(cellEvents); + + if (self.column.modules.edit) { + + self.table.modules.edit.bindEditor(self); + } + + if (self.column.definition.rowHandle && self.table.options.movableRows !== false && self.table.modExists("moveRow")) { + + self.table.modules.moveRow.initializeCell(self); + } + + //hide cell if not visible + + if (!self.column.visible) { + + self.hide(); + } + }; + + Cell.prototype._bindClickEvents = function (cellEvents) { + + var self = this, + element = self.element; + + //set event bindings + + if (cellEvents.cellClick || self.table.options.cellClick) { + + element.addEventListener("click", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellClick) { + + cellEvents.cellClick.call(self.table, e, component); + } + + if (self.table.options.cellClick) { + + self.table.options.cellClick.call(self.table, e, component); + } + }); + } + + if (cellEvents.cellDblClick || this.table.options.cellDblClick) { + + element.addEventListener("dblclick", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellDblClick) { + + cellEvents.cellDblClick.call(self.table, e, component); + } + + if (self.table.options.cellDblClick) { + + self.table.options.cellDblClick.call(self.table, e, component); + } + }); + } else { + + element.addEventListener("dblclick", function (e) { + + e.preventDefault(); + + if (document.selection) { + // IE + + var range = document.body.createTextRange(); + + range.moveToElementText(self.element); + + range.select(); + } else if (window.getSelection) { + + var range = document.createRange(); + + range.selectNode(self.element); + + window.getSelection().removeAllRanges(); + + window.getSelection().addRange(range); + } + }); + } + + if (cellEvents.cellContext || this.table.options.cellContext) { + + element.addEventListener("contextmenu", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellContext) { + + cellEvents.cellContext.call(self.table, e, component); + } + + if (self.table.options.cellContext) { + + self.table.options.cellContext.call(self.table, e, component); + } + }); + } + }; + + Cell.prototype._bindMouseEvents = function (cellEvents) { + + var self = this, + element = self.element; + + if (cellEvents.cellMouseEnter || self.table.options.cellMouseEnter) { + + element.addEventListener("mouseenter", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellMouseEnter) { + + cellEvents.cellMouseEnter.call(self.table, e, component); + } + + if (self.table.options.cellMouseEnter) { + + self.table.options.cellMouseEnter.call(self.table, e, component); + } + }); + } + + if (cellEvents.cellMouseLeave || self.table.options.cellMouseLeave) { + + element.addEventListener("mouseleave", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellMouseLeave) { + + cellEvents.cellMouseLeave.call(self.table, e, component); + } + + if (self.table.options.cellMouseLeave) { + + self.table.options.cellMouseLeave.call(self.table, e, component); + } + }); + } + + if (cellEvents.cellMouseOver || self.table.options.cellMouseOver) { + + element.addEventListener("mouseover", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellMouseOver) { + + cellEvents.cellMouseOver.call(self.table, e, component); + } + + if (self.table.options.cellMouseOver) { + + self.table.options.cellMouseOver.call(self.table, e, component); + } + }); + } + + if (cellEvents.cellMouseOut || self.table.options.cellMouseOut) { + + element.addEventListener("mouseout", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellMouseOut) { + + cellEvents.cellMouseOut.call(self.table, e, component); + } + + if (self.table.options.cellMouseOut) { + + self.table.options.cellMouseOut.call(self.table, e, component); + } + }); + } + + if (cellEvents.cellMouseMove || self.table.options.cellMouseMove) { + + element.addEventListener("mousemove", function (e) { + + var component = self.getComponent(); + + if (cellEvents.cellMouseMove) { + + cellEvents.cellMouseMove.call(self.table, e, component); + } + + if (self.table.options.cellMouseMove) { + + self.table.options.cellMouseMove.call(self.table, e, component); + } + }); + } + }; + + Cell.prototype._bindTouchEvents = function (cellEvents) { + + var self = this, + element = self.element, + dblTap, + tapHold, + tap; + + if (cellEvents.cellTap || this.table.options.cellTap) { + + tap = false; + + element.addEventListener("touchstart", function (e) { + + tap = true; + }, { passive: true }); + + element.addEventListener("touchend", function (e) { + + if (tap) { + + var component = self.getComponent(); + + if (cellEvents.cellTap) { + + cellEvents.cellTap.call(self.table, e, component); + } + + if (self.table.options.cellTap) { + + self.table.options.cellTap.call(self.table, e, component); + } + } + + tap = false; + }); + } + + if (cellEvents.cellDblTap || this.table.options.cellDblTap) { + + dblTap = null; + + element.addEventListener("touchend", function (e) { + + if (dblTap) { + + clearTimeout(dblTap); + + dblTap = null; + + var component = self.getComponent(); + + if (cellEvents.cellDblTap) { + + cellEvents.cellDblTap.call(self.table, e, component); + } + + if (self.table.options.cellDblTap) { + + self.table.options.cellDblTap.call(self.table, e, component); + } + } else { + + dblTap = setTimeout(function () { + + clearTimeout(dblTap); + + dblTap = null; + }, 300); + } + }); + } + + if (cellEvents.cellTapHold || this.table.options.cellTapHold) { + + tapHold = null; + + element.addEventListener("touchstart", function (e) { + + clearTimeout(tapHold); + + tapHold = setTimeout(function () { + + clearTimeout(tapHold); + + tapHold = null; + + tap = false; + + var component = self.getComponent(); + + if (cellEvents.cellTapHold) { + + cellEvents.cellTapHold.call(self.table, e, component); + } + + if (self.table.options.cellTapHold) { + + self.table.options.cellTapHold.call(self.table, e, component); + } + }, 1000); + }, { passive: true }); + + element.addEventListener("touchend", function (e) { + + clearTimeout(tapHold); + + tapHold = null; + }); + } + }; + + //generate cell contents + + Cell.prototype._generateContents = function () { + + var val; + + if (this.table.modExists("format")) { + + val = this.table.modules.format.formatValue(this); + } else { + + val = this.element.innerHTML = this.value; + } + + switch (typeof val === 'undefined' ? 'undefined' : _typeof(val)) { + + case "object": + + if (val instanceof Node) { + + //clear previous cell contents + + while (this.element.firstChild) { + this.element.removeChild(this.element.firstChild); + }this.element.appendChild(val); + } else { + + this.element.innerHTML = ""; + + if (val != null) { + + console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val); + } + } + + break; + + case "undefined": + + case "null": + + this.element.innerHTML = ""; + + break; + + default: + + this.element.innerHTML = val; + + } + }; + + Cell.prototype.cellRendered = function () { + + if (this.table.modExists("format") && this.table.modules.format.cellRendered) { + + this.table.modules.format.cellRendered(this); + } + }; + + //generate tooltip text + + Cell.prototype._generateTooltip = function () { + + var tooltip = this.column.tooltip; + + if (tooltip) { + + if (tooltip === true) { + + tooltip = this.value; + } else if (typeof tooltip == "function") { + + tooltip = tooltip(this.getComponent()); + + if (tooltip === false) { + + tooltip = ""; + } + } + + if (typeof tooltip === "undefined") { + + tooltip = ""; + } + + this.element.setAttribute("title", tooltip); + } else { + + this.element.setAttribute("title", ""); + } + }; + + //////////////////// Getters //////////////////// + + Cell.prototype.getElement = function () { + + return this.element; + }; + + Cell.prototype.getValue = function () { + + return this.value; + }; + + Cell.prototype.getOldValue = function () { + + return this.oldValue; + }; + + //////////////////// Actions //////////////////// + + + Cell.prototype.setValue = function (value, mutate) { + + var changed = this.setValueProcessData(value, mutate), + component; + + if (changed) { + + if (this.table.options.history && this.table.modExists("history")) { + + this.table.modules.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value }); + } + + component = this.getComponent(); + + if (this.column.cellEvents.cellEdited) { + + this.column.cellEvents.cellEdited.call(this.table, component); + } + + this.table.options.cellEdited.call(this.table, component); + + this.table.options.dataEdited.call(this.table, this.table.rowManager.getData()); + } + }; + + Cell.prototype.setValueProcessData = function (value, mutate) { + + var changed = false; + + if (this.value != value) { + + changed = true; + + if (mutate) { + + if (this.column.modules.mutate) { + + value = this.table.modules.mutator.transformCell(this, value); + } + } + } + + this.setValueActual(value); + + if (changed && this.table.modExists("columnCalcs")) { + + if (this.column.definition.topCalc || this.column.definition.bottomCalc) { + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + + if (this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both") { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + + if (this.table.options.columnCalcs != "table") { + + this.table.modules.columnCalcs.recalcRowGroup(this.row); + } + } else { + + this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows); + } + } + } + + return changed; + }; + + Cell.prototype.setValueActual = function (value) { + + this.oldValue = this.value; + + this.value = value; + + if (this.table.options.reactiveData && this.table.modExists("reactiveData")) { + + this.table.modules.reactiveData.block(); + } + + this.column.setFieldValue(this.row.data, value); + + if (this.table.options.reactiveData && this.table.modExists("reactiveData")) { + + this.table.modules.reactiveData.unblock(); + } + + this._generateContents(); + + this._generateTooltip(); + + //set resizable handles + + if (this.table.options.resizableColumns && this.table.modExists("resizeColumns")) { + + this.table.modules.resizeColumns.initializeColumn("cell", this.column, this.element); + } + + //handle frozen cells + + if (this.table.modExists("frozenColumns")) { + + this.table.modules.frozenColumns.layoutElement(this.element, this.column); + } + }; + + Cell.prototype.setWidth = function () { + + this.width = this.column.width; + + this.element.style.width = this.column.widthStyled; + }; + + Cell.prototype.clearWidth = function () { + + this.width = ""; + + this.element.style.width = ""; + }; + + Cell.prototype.getWidth = function () { + + return this.width || this.element.offsetWidth; + }; + + Cell.prototype.setMinWidth = function () { + + this.minWidth = this.column.minWidth; + + this.element.style.minWidth = this.column.minWidthStyled; + }; + + Cell.prototype.checkHeight = function () { + + // var height = this.element.css("height"); + + this.row.reinitializeHeight(); + }; + + Cell.prototype.clearHeight = function () { + + this.element.style.height = ""; + + this.height = null; + }; + + Cell.prototype.setHeight = function () { + + this.height = this.row.height; + + this.element.style.height = this.row.heightStyled; + }; + + Cell.prototype.getHeight = function () { + + return this.height || this.element.offsetHeight; + }; + + Cell.prototype.show = function () { + + this.element.style.display = ""; + }; + + Cell.prototype.hide = function () { + + this.element.style.display = "none"; + }; + + Cell.prototype.edit = function (force) { + + if (this.table.modExists("edit", true)) { + + return this.table.modules.edit.editCell(this, force); + } + }; + + Cell.prototype.cancelEdit = function () { + + if (this.table.modExists("edit", true)) { + + var editing = this.table.modules.edit.getCurrentCell(); + + if (editing && editing._getSelf() === this) { + + this.table.modules.edit.cancelEdit(); + } else { + + console.warn("Cancel Editor Error - This cell is not currently being edited "); + } + } + }; + + Cell.prototype.delete = function () { + + this.element.parentNode.removeChild(this.element); + + this.element = false; + + this.column.deleteCell(this); + + this.row.deleteCell(this); + + this.calcs = {}; + }; + + //////////////// Navigation ///////////////// + + + Cell.prototype.nav = function () { + + var self = this, + nextCell = false, + index = this.row.getCellIndex(this); + + return { + + next: function next() { + + var nextCell = this.right(), + nextRow; + + if (!nextCell) { + + nextRow = self.table.rowManager.nextDisplayRow(self.row, true); + + if (nextRow) { + + nextCell = nextRow.findNextEditableCell(-1); + + if (nextCell) { + + nextCell.edit(); + + return true; + } + } + } else { + + return true; + } + + return false; + }, + + prev: function prev() { + + var nextCell = this.left(), + prevRow; + + if (!nextCell) { + + prevRow = self.table.rowManager.prevDisplayRow(self.row, true); + + if (prevRow) { + + nextCell = prevRow.findPrevEditableCell(prevRow.cells.length); + + if (nextCell) { + + nextCell.edit(); + + return true; + } + } + } else { + + return true; + } + + return false; + }, + + left: function left() { + + nextCell = self.row.findPrevEditableCell(index); + + if (nextCell) { + + nextCell.edit(); + + return true; + } else { + + return false; + } + }, + + right: function right() { + + nextCell = self.row.findNextEditableCell(index); + + if (nextCell) { + + nextCell.edit(); + + return true; + } else { + + return false; + } + }, + + up: function up() { + + var nextRow = self.table.rowManager.prevDisplayRow(self.row, true); + + if (nextRow) { + + nextRow.cells[index].edit(); + } + }, + + down: function down() { + + var nextRow = self.table.rowManager.nextDisplayRow(self.row, true); + + if (nextRow) { + + nextRow.cells[index].edit(); + } + } + + }; + }; + + Cell.prototype.getIndex = function () { + + this.row.getCellIndex(this); + }; + + //////////////// Object Generation ///////////////// + + Cell.prototype.getComponent = function () { + + return new CellComponent(this); + }; + + var FooterManager = function FooterManager(table) { + + this.table = table; + + this.active = false; + + this.element = this.createElement(); //containing element + + this.external = false; + + this.links = []; + + this._initialize(); + }; + + FooterManager.prototype.createElement = function () { + + var el = document.createElement("div"); + + el.classList.add("tabulator-footer"); + + return el; + }; + + FooterManager.prototype._initialize = function (element) { + + if (this.table.options.footerElement) { + + switch (_typeof(this.table.options.footerElement)) { + + case "string": + + if (this.table.options.footerElement[0] === "<") { + + this.element.innerHTML = this.table.options.footerElement; + } else { + + this.external = true; + + this.element = document.querySelector(this.table.options.footerElement); + } + + break; + + default: + + this.element = this.table.options.footerElement; + + break; + + } + } + }; + + FooterManager.prototype.getElement = function () { + + return this.element; + }; + + FooterManager.prototype.append = function (element, parent) { + + this.activate(parent); + + this.element.appendChild(element); + + this.table.rowManager.adjustTableSize(); + }; + + FooterManager.prototype.prepend = function (element, parent) { + + this.activate(parent); + + this.element.insertBefore(element, this.element.firstChild); + + this.table.rowManager.adjustTableSize(); + }; + + FooterManager.prototype.remove = function (element) { + + element.parentNode.removeChild(element); + + this.deactivate(); + }; + + FooterManager.prototype.deactivate = function (force) { + + if (!this.element.firstChild || force) { + + if (!this.external) { + + this.element.parentNode.removeChild(this.element); + } + + this.active = false; + } + + // this.table.rowManager.adjustTableSize(); + }; + + FooterManager.prototype.activate = function (parent) { + + if (!this.active) { + + this.active = true; + + if (!this.external) { + + this.table.element.appendChild(this.getElement()); + + this.table.element.style.display = ''; + } + } + + if (parent) { + + this.links.push(parent); + } + }; + + FooterManager.prototype.redraw = function () { + + this.links.forEach(function (link) { + + link.footerRedraw(); + }); + }; + + var Tabulator = function Tabulator(element, options) { + + this.options = {}; + + this.columnManager = null; // hold Column Manager + + this.rowManager = null; //hold Row Manager + + this.footerManager = null; //holder Footer Manager + + this.browser = ""; //hold current browser type + + this.browserSlow = false; //handle reduced functionality for slower browsers + + + this.modules = {}; //hold all modules bound to this table + + + this.initializeElement(element); + + this.initializeOptions(options || {}); + + this._create(); + + Tabulator.prototype.comms.register(this); //register table for inderdevice communication + }; + + //default setup options + + Tabulator.prototype.defaultOptions = { + + height: false, //height of tabulator + + + layout: "fitData", ///layout type "fitColumns" | "fitData" + + layoutColumnsOnNewData: false, //update column widths on setData + + + columnMinWidth: 40, //minimum global width for a column + + columnVertAlign: "top", //vertical alignment of column headers + + + resizableColumns: true, //resizable columns + + resizableRows: false, //resizable rows + + autoResize: true, //auto resize table + + + columns: [], //store for colum header info + + + data: [], //default starting data + + + autoColumns: false, //build columns from data row structure + + + reactiveData: false, //enable data reactivity + + + nestedFieldSeparator: ".", //seperatpr for nested data + + + tooltips: false, //Tool tip value + + tooltipsHeader: false, //Tool tip for headers + + tooltipGenerationMode: "load", //when to generate tooltips + + + initialSort: false, //initial sorting criteria + + initialFilter: false, //initial filtering criteria + + initialHeaderFilter: false, //initial header filtering criteria + + + columnHeaderSortMulti: true, //multiple or single column sorting + + + sortOrderReverse: false, //reverse internal sort ordering + + + headerSort: true, //set default global header sort + + headerSortTristate: false, //set default tristate header sorting + + + footerElement: false, //hold footer element + + + index: "id", //filed for row index + + + keybindings: [], //array for keybindings + + + tabEndNewRow: false, //create new row when tab to end of table + + + invalidOptionWarnings: true, //allow toggling of invalid option warnings + + + clipboard: false, //enable clipboard + + clipboardCopyStyled: true, //formatted table data + + clipboardCopySelector: "active", //method of chosing which data is coppied to the clipboard + + clipboardCopyFormatter: "table", //convert data to a clipboard string + + clipboardPasteParser: "table", //convert pasted clipboard data to rows + + clipboardPasteAction: "insert", //how to insert pasted data into the table + + clipboardCopyConfig: false, //clipboard config + + + clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard + + clipboardPasted: function clipboardPasted() {}, //data has been pasted into the table + + clipboardPasteError: function clipboardPasteError() {}, //data has not successfully been pasted into the table + + + downloadDataFormatter: false, //function to manipulate table data before it is downloaded + + downloadReady: function downloadReady(data, blob) { + return blob; + }, //function to manipulate download data + + downloadComplete: false, //function to manipulate download data + + downloadConfig: false, //download config + + + dataTree: false, //enable data tree + + dataTreeElementColumn: false, + + dataTreeBranchElement: true, //show data tree branch element + + dataTreeChildIndent: 9, //data tree child indent in px + + dataTreeChildField: "_children", //data tre column field to look for child rows + + dataTreeCollapseElement: false, //data tree row collapse element + + dataTreeExpandElement: false, //data tree row expand element + + dataTreeStartExpanded: false, + + dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded + + dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed + + + printAsHtml: false, //enable print as html + + printFormatter: false, //printing page formatter + + printHeader: false, //page header contents + + printFooter: false, //page footer contents + + printCopyStyle: true, //enable print as html styling + + printVisibleRows: true, //restrict print to visible rows only + + printConfig: {}, //print config options + + + addRowPos: "bottom", //position to insert blank rows, top|bottom + + + selectable: "highlight", //highlight rows on hover + + selectableRangeMode: "drag", //highlight rows on hover + + selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached + + selectablePersistence: true, // maintain selection when table view is updated + + selectableCheck: function selectableCheck(data, row) { + return true; + }, //check wheather row is selectable + + + headerFilterPlaceholder: false, //placeholder text to display in header filters + + + headerVisible: true, //hide header + + + history: false, //enable edit history + + + locale: false, //current system language + + langs: {}, + + virtualDom: true, //enable DOM virtualization + + virtualDomBuffer: 0, // set virtual DOM buffer size + + + persistentLayout: false, //store column layout in memory + + persistentSort: false, //store sorting in memory + + persistentFilter: false, //store filters in memory + + persistenceID: "", //key for persistent storage + + persistenceMode: true, //mode for storing persistence information + + + responsiveLayout: false, //responsive layout flags + + responsiveLayoutCollapseStartOpen: true, //start showing collapsed data + + responsiveLayoutCollapseUseFormatters: true, //responsive layout collapse formatter + + responsiveLayoutCollapseFormatter: false, //responsive layout collapse formatter + + + pagination: false, //set pagination type + + paginationSize: false, //set number of rows to a page + + paginationButtonCount: 5, // set count of page button + + paginationSizeSelector: false, //add pagination size selector element + + paginationElement: false, //element to hold pagination numbers + + paginationDataSent: {}, //pagination data sent to the server + + paginationDataReceived: {}, //pagination data received from the server + + paginationAddRow: "page", //add rows on table or page + + + ajaxURL: false, //url for ajax loading + + ajaxURLGenerator: false, + + ajaxParams: {}, //params for ajax loading + + ajaxConfig: "get", //ajax request type + + ajaxContentType: "form", //ajax request type + + ajaxRequestFunc: false, //promise function + + ajaxLoader: true, //show loader + + ajaxLoaderLoading: false, //loader element + + ajaxLoaderError: false, //loader element + + ajaxFiltering: false, + + ajaxSorting: false, + + ajaxProgressiveLoad: false, //progressive loading + + ajaxProgressiveLoadDelay: 0, //delay between requests + + ajaxProgressiveLoadScrollMargin: 0, //margin before scroll begins + + + groupBy: false, //enable table grouping and set field to group by + + groupStartOpen: true, //starting state of group + + groupValues: false, + + groupHeader: false, //header generation function + + + htmlOutputConfig: false, //html outypu config + + + movableColumns: false, //enable movable columns + + + movableRows: false, //enable movable rows + + movableRowsConnectedTables: false, //tables for movable rows to be connected to + + movableRowsSender: false, + + movableRowsReceiver: "insert", + + movableRowsSendingStart: function movableRowsSendingStart() {}, + + movableRowsSent: function movableRowsSent() {}, + + movableRowsSentFailed: function movableRowsSentFailed() {}, + + movableRowsSendingStop: function movableRowsSendingStop() {}, + + movableRowsReceivingStart: function movableRowsReceivingStart() {}, + + movableRowsReceived: function movableRowsReceived() {}, + + movableRowsReceivedFailed: function movableRowsReceivedFailed() {}, + + movableRowsReceivingStop: function movableRowsReceivingStop() {}, + + scrollToRowPosition: "top", + + scrollToRowIfVisible: true, + + scrollToColumnPosition: "left", + + scrollToColumnIfVisible: true, + + rowFormatter: false, + + placeholder: false, + + //table building callbacks + + tableBuilding: function tableBuilding() {}, + + tableBuilt: function tableBuilt() {}, + + //render callbacks + + renderStarted: function renderStarted() {}, + + renderComplete: function renderComplete() {}, + + //row callbacks + + rowClick: false, + + rowDblClick: false, + + rowContext: false, + + rowTap: false, + + rowDblTap: false, + + rowTapHold: false, + + rowMouseEnter: false, + + rowMouseLeave: false, + + rowMouseOver: false, + + rowMouseOut: false, + + rowMouseMove: false, + + rowAdded: function rowAdded() {}, + + rowDeleted: function rowDeleted() {}, + + rowMoved: function rowMoved() {}, + + rowUpdated: function rowUpdated() {}, + + rowSelectionChanged: function rowSelectionChanged() {}, + + rowSelected: function rowSelected() {}, + + rowDeselected: function rowDeselected() {}, + + rowResized: function rowResized() {}, + + //cell callbacks + + //row callbacks + + cellClick: false, + + cellDblClick: false, + + cellContext: false, + + cellTap: false, + + cellDblTap: false, + + cellTapHold: false, + + cellMouseEnter: false, + + cellMouseLeave: false, + + cellMouseOver: false, + + cellMouseOut: false, + + cellMouseMove: false, + + cellEditing: function cellEditing() {}, + + cellEdited: function cellEdited() {}, + + cellEditCancelled: function cellEditCancelled() {}, + + //column callbacks + + columnMoved: false, + + columnResized: function columnResized() {}, + + columnTitleChanged: function columnTitleChanged() {}, + + columnVisibilityChanged: function columnVisibilityChanged() {}, + + //HTML iport callbacks + + htmlImporting: function htmlImporting() {}, + + htmlImported: function htmlImported() {}, + + //data callbacks + + dataLoading: function dataLoading() {}, + + dataLoaded: function dataLoaded() {}, + + dataEdited: function dataEdited() {}, + + //ajax callbacks + + ajaxRequesting: function ajaxRequesting() {}, + + ajaxResponse: false, + + ajaxError: function ajaxError() {}, + + //filtering callbacks + + dataFiltering: false, + + dataFiltered: false, + + //sorting callbacks + + dataSorting: function dataSorting() {}, + + dataSorted: function dataSorted() {}, + + //grouping callbacks + + groupToggleElement: "arrow", + + groupClosedShowCalcs: false, + + dataGrouping: function dataGrouping() {}, + + dataGrouped: false, + + groupVisibilityChanged: function groupVisibilityChanged() {}, + + groupClick: false, + + groupDblClick: false, + + groupContext: false, + + groupTap: false, + + groupDblTap: false, + + groupTapHold: false, + + columnCalcs: true, + + //pagination callbacks + + pageLoaded: function pageLoaded() {}, + + //localization callbacks + + localized: function localized() {}, + + //validation has failed + + validationFailed: function validationFailed() {}, + + //history callbacks + + historyUndo: function historyUndo() {}, + + historyRedo: function historyRedo() {} + + }; + + Tabulator.prototype.initializeOptions = function (options) { + + //warn user if option is not available + + if (options.invalidOptionWarnings !== false) { + + for (var key in options) { + + if (typeof this.defaultOptions[key] === "undefined") { + + console.warn("Invalid table constructor option:", key); + } + } + } + + //assign options to table + + for (var key in this.defaultOptions) { + + if (key in options) { + + this.options[key] = options[key]; + } else { + + if (Array.isArray(this.defaultOptions[key])) { + + this.options[key] = []; + } else if (_typeof(this.defaultOptions[key]) === "object") { + + this.options[key] = {}; + } else { + + this.options[key] = this.defaultOptions[key]; + } + } + } + }; + + Tabulator.prototype.initializeElement = function (element) { + + if (typeof HTMLElement !== "undefined" && element instanceof HTMLElement) { + + this.element = element; + + return true; + } else if (typeof element === "string") { + + this.element = document.querySelector(element); + + if (this.element) { + + return true; + } else { + + console.error("Tabulator Creation Error - no element found matching selector: ", element); + + return false; + } + } else { + + console.error("Tabulator Creation Error - Invalid element provided:", element); + + return false; + } + }; + + //convert depricated functionality to new functions + + Tabulator.prototype._mapDepricatedFunctionality = function () {}; + + Tabulator.prototype._clearSelection = function () { + + this.element.classList.add("tabulator-block-select"); + + if (window.getSelection) { + + if (window.getSelection().empty) { + // Chrome + + window.getSelection().empty(); + } else if (window.getSelection().removeAllRanges) { + // Firefox + + window.getSelection().removeAllRanges(); + } + } else if (document.selection) { + // IE? + + document.selection.empty(); + } + + this.element.classList.remove("tabulator-block-select"); + }; + + //concreate table + + Tabulator.prototype._create = function () { + + this._clearObjectPointers(); + + this._mapDepricatedFunctionality(); + + this.bindModules(); + + if (this.element.tagName === "TABLE") { + + if (this.modExists("htmlTableImport", true)) { + + this.modules.htmlTableImport.parseTable(); + } + } + + this.columnManager = new ColumnManager(this); + + this.rowManager = new RowManager(this); + + this.footerManager = new FooterManager(this); + + this.columnManager.setRowManager(this.rowManager); + + this.rowManager.setColumnManager(this.columnManager); + + this._buildElement(); + + this._loadInitialData(); + }; + + //clear pointers to objects in default config object + + Tabulator.prototype._clearObjectPointers = function () { + + this.options.columns = this.options.columns.slice(0); + + if (!this.options.reactiveData) { + this.options.data = this.options.data.slice(0); + } + }; + + //build tabulator element + + Tabulator.prototype._buildElement = function () { + var _this8 = this; + + var element = this.element, + mod = this.modules, + options = this.options; + + options.tableBuilding.call(this); + + element.classList.add("tabulator"); + + element.setAttribute("role", "grid"); + + //empty element + + while (element.firstChild) { + element.removeChild(element.firstChild); + } //set table height + + if (options.height) { + + options.height = isNaN(options.height) ? options.height : options.height + "px"; + + element.style.height = options.height; + } + + this.columnManager.initialize(); + + this.rowManager.initialize(); + + this._detectBrowser(); + + if (this.modExists("layout", true)) { + + mod.layout.initialize(options.layout); + } + + //set localization + + if (options.headerFilterPlaceholder !== false) { + + mod.localize.setHeaderFilterPlaceholder(options.headerFilterPlaceholder); + } + + for (var locale in options.langs) { + + mod.localize.installLang(locale, options.langs[locale]); + } + + mod.localize.setLocale(options.locale); + + //configure placeholder element + + if (typeof options.placeholder == "string") { + + var el = document.createElement("div"); + + el.classList.add("tabulator-placeholder"); + + var span = document.createElement("span"); + + span.innerHTML = options.placeholder; + + el.appendChild(span); + + options.placeholder = el; + } + + //build table elements + + element.appendChild(this.columnManager.getElement()); + + element.appendChild(this.rowManager.getElement()); + + if (options.footerElement) { + + this.footerManager.activate(); + } + + if ((options.persistentLayout || options.persistentSort || options.persistentFilter) && this.modExists("persistence", true)) { + + mod.persistence.initialize(options.persistenceMode, options.persistenceID); + } + + if (options.persistentLayout && this.modExists("persistence", true)) { + + options.columns = mod.persistence.load("columns", options.columns); + } + + if (options.movableRows && this.modExists("moveRow")) { + + mod.moveRow.initialize(); + } + + if (options.autoColumns && this.options.data) { + + this.columnManager.generateColumnsFromRowData(this.options.data); + } + + if (this.modExists("columnCalcs")) { + + mod.columnCalcs.initialize(); + } + + this.columnManager.setColumns(options.columns); + + if (options.dataTree && this.modExists("dataTree", true)) { + + mod.dataTree.initialize(); + } + + if (this.modExists("frozenRows")) { + + this.modules.frozenRows.initialize(); + } + + if ((options.persistentSort || options.initialSort) && this.modExists("sort", true)) { + + var sorters = []; + + if (options.persistentSort && this.modExists("persistence", true)) { + + sorters = mod.persistence.load("sort"); + + if (sorters === false && options.initialSort) { + + sorters = options.initialSort; + } + } else if (options.initialSort) { + + sorters = options.initialSort; + } + + mod.sort.setSort(sorters); + } + + if ((options.persistentFilter || options.initialFilter) && this.modExists("filter", true)) { + + var filters = []; + + if (options.persistentFilter && this.modExists("persistence", true)) { + + filters = mod.persistence.load("filter"); + + if (filters === false && options.initialFilter) { + + filters = options.initialFilter; + } + } else if (options.initialFilter) { + + filters = options.initialFilter; + } + + mod.filter.setFilter(filters); + } + + if (options.initialHeaderFilter && this.modExists("filter", true)) { + + options.initialHeaderFilter.forEach(function (item) { + + var column = _this8.columnManager.findColumn(item.field); + + if (column) { + + mod.filter.setHeaderFilterValue(column, item.value); + } else { + + console.warn("Column Filter Error - No matching column found:", item.field); + + return false; + } + }); + } + + if (this.modExists("ajax")) { + + mod.ajax.initialize(); + } + + if (options.pagination && this.modExists("page", true)) { + + mod.page.initialize(); + } + + if (options.groupBy && this.modExists("groupRows", true)) { + + mod.groupRows.initialize(); + } + + if (this.modExists("keybindings")) { + + mod.keybindings.initialize(); + } + + if (this.modExists("selectRow")) { + + mod.selectRow.clearSelectionData(true); + } + + if (options.autoResize && this.modExists("resizeTable")) { + + mod.resizeTable.initialize(); + } + + if (this.modExists("clipboard")) { + + mod.clipboard.initialize(); + } + + if (options.printAsHtml && this.modExists("print")) { + + mod.print.initialize(); + } + + options.tableBuilt.call(this); + }; + + Tabulator.prototype._loadInitialData = function () { + + var self = this; + + if (self.options.pagination && self.modExists("page")) { + + self.modules.page.reset(true); + + if (self.options.pagination == "local") { + + if (self.options.data.length) { + + self.rowManager.setData(self.options.data); + } else { + + if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) { + + self.modules.ajax.loadData().then(function () {}).catch(function () {}); + } else { + + self.rowManager.setData(self.options.data); + } + } + } else { + + if (self.options.ajaxURL) { + + self.modules.page.setPage(1).then(function () {}).catch(function () {}); + } else { + + self.rowManager.setData([]); + } + } + } else { + + if (self.options.data.length) { + + self.rowManager.setData(self.options.data); + } else { + + if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) { + + self.modules.ajax.loadData().then(function () {}).catch(function () {}); + } else { + + self.rowManager.setData(self.options.data); + } + } + } + }; + + //deconstructor + + Tabulator.prototype.destroy = function () { + + var element = this.element; + + Tabulator.prototype.comms.deregister(this); //deregister table from inderdevice communication + + + if (this.options.reactiveData && this.modExists("reactiveData", true)) { + + this.modules.reactiveData.unwatchData(); + } + + //clear row data + + this.rowManager.rows.forEach(function (row) { + + row.wipe(); + }); + + this.rowManager.rows = []; + + this.rowManager.activeRows = []; + + this.rowManager.displayRows = []; + + //clear event bindings + + if (this.options.autoResize && this.modExists("resizeTable")) { + + this.modules.resizeTable.clearBindings(); + } + + if (this.modExists("keybindings")) { + + this.modules.keybindings.clearBindings(); + } + + //clear DOM + + while (element.firstChild) { + element.removeChild(element.firstChild); + }element.classList.remove("tabulator"); + }; + + Tabulator.prototype._detectBrowser = function () { + + var ua = navigator.userAgent; + + if (ua.indexOf("Trident") > -1) { + + this.browser = "ie"; + + this.browserSlow = true; + } else if (ua.indexOf("Edge") > -1) { + + this.browser = "edge"; + + this.browserSlow = true; + } else if (ua.indexOf("Firefox") > -1) { + + this.browser = "firefox"; + + this.browserSlow = false; + } else { + + this.browser = "other"; + + this.browserSlow = false; + } + }; + + ////////////////// Data Handling ////////////////// + + + //loca data from local file + + Tabulator.prototype.setDataFromLocalFile = function (extensions) { + var _this9 = this; + + return new Promise(function (resolve, reject) { + + var input = document.createElement("input"); + + input.type = "file"; + + input.accept = extensions || ".json,application/json"; + + input.addEventListener("change", function (e) { + + var file = input.files[0], + reader = new FileReader(), + data; + + reader.readAsText(file); + + reader.onload = function (e) { + + try { + + data = JSON.parse(reader.result); + } catch (e) { + + console.warn("File Load Error - File contents is invalid JSON", e); + + reject(e); + + return; + } + + _this9._setData(data).then(function (data) { + + resolve(data); + }).catch(function (err) { + + resolve(err); + }); + }; + + reader.onerror = function (e) { + + console.warn("File Load Error - Unable to read file"); + + reject(); + }; + }); + + input.click(); + }); + }; + + //load data + + Tabulator.prototype.setData = function (data, params, config) { + + if (this.modExists("ajax")) { + + this.modules.ajax.blockActiveRequest(); + } + + return this._setData(data, params, config); + }; + + Tabulator.prototype._setData = function (data, params, config, inPosition) { + + var self = this; + + if (typeof data === "string") { + + if (data.indexOf("{") == 0 || data.indexOf("[") == 0) { + + //data is a json encoded string + + return self.rowManager.setData(JSON.parse(data), inPosition); + } else { + + if (self.modExists("ajax", true)) { + + if (params) { + + self.modules.ajax.setParams(params); + } + + if (config) { + + self.modules.ajax.setConfig(config); + } + + self.modules.ajax.setUrl(data); + + if (self.options.pagination == "remote" && self.modExists("page", true)) { + + self.modules.page.reset(true); + + return self.modules.page.setPage(1); + } else { + + //assume data is url, make ajax call to url to get data + + return self.modules.ajax.loadData(inPosition); + } + } + } + } else { + + if (data) { + + //asume data is already an object + + return self.rowManager.setData(data, inPosition); + } else { + + //no data provided, check if ajaxURL is present; + + if (self.modExists("ajax") && (self.modules.ajax.getUrl || self.options.ajaxURLGenerator)) { + + if (self.options.pagination == "remote" && self.modExists("page", true)) { + + self.modules.page.reset(true); + + return self.modules.page.setPage(1); + } else { + + return self.modules.ajax.loadData(inPosition); + } + } else { + + //empty data + + return self.rowManager.setData([], inPosition); + } + } + } + }; + + //clear data + + Tabulator.prototype.clearData = function () { + + if (this.modExists("ajax")) { + + this.modules.ajax.blockActiveRequest(); + } + + this.rowManager.clearData(); + }; + + //get table data array + + Tabulator.prototype.getData = function (active) { + + return this.rowManager.getData(active); + }; + + //get table data array count + + Tabulator.prototype.getDataCount = function (active) { + + return this.rowManager.getDataCount(active); + }; + + //search for specific row components + + Tabulator.prototype.searchRows = function (field, type, value) { + + if (this.modExists("filter", true)) { + + return this.modules.filter.search("rows", field, type, value); + } + }; + + //search for specific data + + Tabulator.prototype.searchData = function (field, type, value) { + + if (this.modExists("filter", true)) { + + return this.modules.filter.search("data", field, type, value); + } + }; + + //get table html + + Tabulator.prototype.getHtml = function (visible, style, config) { + + if (this.modExists("htmlTableExport", true)) { + + return this.modules.htmlTableExport.getHtml(visible, style, config); + } + }; + + //get print html + + Tabulator.prototype.print = function (visible, style, config) { + + if (this.modExists("print", true)) { + + return this.modules.print.printFullscreen(visible, style, config); + } + }; + + //retrieve Ajax URL + + Tabulator.prototype.getAjaxUrl = function () { + + if (this.modExists("ajax", true)) { + + return this.modules.ajax.getUrl(); + } + }; + + //replace data, keeping table in position with same sort + + Tabulator.prototype.replaceData = function (data, params, config) { + + if (this.modExists("ajax")) { + + this.modules.ajax.blockActiveRequest(); + } + + return this._setData(data, params, config, true); + }; + + //update table data + + Tabulator.prototype.updateData = function (data) { + var _this10 = this; + + var self = this; + + var responses = 0; + + return new Promise(function (resolve, reject) { + + if (_this10.modExists("ajax")) { + + _this10.modules.ajax.blockActiveRequest(); + } + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (data) { + + data.forEach(function (item) { + + var row = self.rowManager.findRow(item[self.options.index]); + + if (row) { + + responses++; + + row.updateData(item).then(function () { + + responses--; + + if (!responses) { + + resolve(); + } + }); + } + }); + } else { + + console.warn("Update Error - No data provided"); + + reject("Update Error - No data provided"); + } + }); + }; + + Tabulator.prototype.addData = function (data, pos, index) { + var _this11 = this; + + return new Promise(function (resolve, reject) { + + if (_this11.modExists("ajax")) { + + _this11.modules.ajax.blockActiveRequest(); + } + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (data) { + + _this11.rowManager.addRows(data, pos, index).then(function (rows) { + + var output = []; + + rows.forEach(function (row) { + + output.push(row.getComponent()); + }); + + resolve(output); + }); + } else { + + console.warn("Update Error - No data provided"); + + reject("Update Error - No data provided"); + } + }); + }; + + //update table data + + Tabulator.prototype.updateOrAddData = function (data) { + var _this12 = this; + + var self = this, + rows = [], + responses = 0; + + return new Promise(function (resolve, reject) { + + if (_this12.modExists("ajax")) { + + _this12.modules.ajax.blockActiveRequest(); + } + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (data) { + + data.forEach(function (item) { + + var row = self.rowManager.findRow(item[self.options.index]); + + responses++; + + if (row) { + + row.updateData(item).then(function () { + + responses--; + + rows.push(row.getComponent()); + + if (!responses) { + + resolve(rows); + } + }); + } else { + + self.rowManager.addRows(item).then(function (newRows) { + + responses--; + + rows.push(newRows[0].getComponent()); + + if (!responses) { + + resolve(rows); + } + }); + } + }); + } else { + + console.warn("Update Error - No data provided"); + + reject("Update Error - No data provided"); + } + }); + }; + + //get row object + + Tabulator.prototype.getRow = function (index) { + + var row = this.rowManager.findRow(index); + + if (row) { + + return row.getComponent(); + } else { + + console.warn("Find Error - No matching row found:", index); + + return false; + } + }; + + //get row object + + Tabulator.prototype.getRowFromPosition = function (position, active) { + + var row = this.rowManager.getRowFromPosition(position, active); + + if (row) { + + return row.getComponent(); + } else { + + console.warn("Find Error - No matching row found:", position); + + return false; + } + }; + + //delete row from table + + Tabulator.prototype.deleteRow = function (index) { + var _this13 = this; + + return new Promise(function (resolve, reject) { + + var row = _this13.rowManager.findRow(index); + + if (row) { + + row.delete().then(function () { + + resolve(); + }).catch(function (err) { + + reject(err); + }); + } else { + + console.warn("Delete Error - No matching row found:", index); + + reject("Delete Error - No matching row found"); + } + }); + }; + + //add row to table + + Tabulator.prototype.addRow = function (data, pos, index) { + var _this14 = this; + + return new Promise(function (resolve, reject) { + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + _this14.rowManager.addRows(data, pos, index).then(function (rows) { + + //recalc column calculations if present + + if (_this14.modExists("columnCalcs")) { + + _this14.modules.columnCalcs.recalc(_this14.rowManager.activeRows); + } + + resolve(rows[0].getComponent()); + }); + }); + }; + + //update a row if it exitsts otherwise create it + + Tabulator.prototype.updateOrAddRow = function (index, data) { + var _this15 = this; + + return new Promise(function (resolve, reject) { + + var row = _this15.rowManager.findRow(index); + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (row) { + + row.updateData(data).then(function () { + + //recalc column calculations if present + + if (_this15.modExists("columnCalcs")) { + + _this15.modules.columnCalcs.recalc(_this15.rowManager.activeRows); + } + + resolve(row.getComponent()); + }).catch(function (err) { + + reject(err); + }); + } else { + + row = _this15.rowManager.addRows(data).then(function (rows) { + + //recalc column calculations if present + + if (_this15.modExists("columnCalcs")) { + + _this15.modules.columnCalcs.recalc(_this15.rowManager.activeRows); + } + + resolve(rows[0].getComponent()); + }).catch(function (err) { + + reject(err); + }); + } + }); + }; + + //update row data + + Tabulator.prototype.updateRow = function (index, data) { + var _this16 = this; + + return new Promise(function (resolve, reject) { + + var row = _this16.rowManager.findRow(index); + + if (typeof data === "string") { + + data = JSON.parse(data); + } + + if (row) { + + row.updateData(data).then(function () { + + resolve(row.getComponent()); + }).catch(function (err) { + + reject(err); + }); + } else { + + console.warn("Update Error - No matching row found:", index); + + reject("Update Error - No matching row found"); + } + }); + }; + + //scroll to row in DOM + + Tabulator.prototype.scrollToRow = function (index, position, ifVisible) { + var _this17 = this; + + return new Promise(function (resolve, reject) { + + var row = _this17.rowManager.findRow(index); + + if (row) { + + _this17.rowManager.scrollToRow(row, position, ifVisible).then(function () { + + resolve(); + }).catch(function (err) { + + reject(err); + }); + } else { + + console.warn("Scroll Error - No matching row found:", index); + + reject("Scroll Error - No matching row found"); + } + }); + }; + + Tabulator.prototype.moveRow = function (from, to, after) { + + var fromRow = this.rowManager.findRow(from); + + if (fromRow) { + + fromRow.moveToRow(to, after); + } else { + + console.warn("Move Error - No matching row found:", from); + } + }; + + Tabulator.prototype.getRows = function (active) { + + return this.rowManager.getComponents(active); + }; + + //get position of row in table + + Tabulator.prototype.getRowPosition = function (index, active) { + + var row = this.rowManager.findRow(index); + + if (row) { + + return this.rowManager.getRowPosition(row, active); + } else { + + console.warn("Position Error - No matching row found:", index); + + return false; + } + }; + + //copy table data to clipboard + + Tabulator.prototype.copyToClipboard = function (selector, selectorParams, formatter, formatterParams) { + + if (this.modExists("clipboard", true)) { + + this.modules.clipboard.copy(selector, selectorParams, formatter, formatterParams); + } + }; + + /////////////// Column Functions /////////////// + + + Tabulator.prototype.setColumns = function (definition) { + + this.columnManager.setColumns(definition); + }; + + Tabulator.prototype.getColumns = function (structured) { + + return this.columnManager.getComponents(structured); + }; + + Tabulator.prototype.getColumn = function (field) { + + var col = this.columnManager.findColumn(field); + + if (col) { + + return col.getComponent(); + } else { + + console.warn("Find Error - No matching column found:", field); + + return false; + } + }; + + Tabulator.prototype.getColumnDefinitions = function () { + + return this.columnManager.getDefinitionTree(); + }; + + Tabulator.prototype.getColumnLayout = function () { + + if (this.modExists("persistence", true)) { + + return this.modules.persistence.parseColumns(this.columnManager.getColumns()); + } + }; + + Tabulator.prototype.setColumnLayout = function (layout) { + + if (this.modExists("persistence", true)) { + + this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns, layout)); + + return true; + } + + return false; + }; + + Tabulator.prototype.showColumn = function (field) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + column.show(); + + if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) { + + this.modules.responsiveLayout.update(); + } + } else { + + console.warn("Column Show Error - No matching column found:", field); + + return false; + } + }; + + Tabulator.prototype.hideColumn = function (field) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + column.hide(); + + if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) { + + this.modules.responsiveLayout.update(); + } + } else { + + console.warn("Column Hide Error - No matching column found:", field); + + return false; + } + }; + + Tabulator.prototype.toggleColumn = function (field) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + if (column.visible) { + + column.hide(); + } else { + + column.show(); + } + } else { + + console.warn("Column Visibility Toggle Error - No matching column found:", field); + + return false; + } + }; + + Tabulator.prototype.addColumn = function (definition, before, field) { + + var column = this.columnManager.findColumn(field); + + this.columnManager.addColumn(definition, before, column); + }; + + Tabulator.prototype.deleteColumn = function (field) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + column.delete(); + } else { + + console.warn("Column Delete Error - No matching column found:", field); + + return false; + } + }; + + Tabulator.prototype.moveColumn = function (from, to, after) { + + var fromColumn = this.columnManager.findColumn(from); + + var toColumn = this.columnManager.findColumn(to); + + if (fromColumn) { + + if (toColumn) { + + this.columnManager.moveColumn(fromColumn, toColumn, after); + } else { + + console.warn("Move Error - No matching column found:", toColumn); + } + } else { + + console.warn("Move Error - No matching column found:", from); + } + }; + + //scroll to column in DOM + + Tabulator.prototype.scrollToColumn = function (field, position, ifVisible) { + var _this18 = this; + + return new Promise(function (resolve, reject) { + + var column = _this18.columnManager.findColumn(field); + + if (column) { + + _this18.columnManager.scrollToColumn(column, position, ifVisible).then(function () { + + resolve(); + }).catch(function (err) { + + reject(err); + }); + } else { + + console.warn("Scroll Error - No matching column found:", field); + + reject("Scroll Error - No matching column found"); + } + }); + }; + + //////////// Localization Functions //////////// + + Tabulator.prototype.setLocale = function (locale) { + + this.modules.localize.setLocale(locale); + }; + + Tabulator.prototype.getLocale = function () { + + return this.modules.localize.getLocale(); + }; + + Tabulator.prototype.getLang = function (locale) { + + return this.modules.localize.getLang(locale); + }; + + //////////// General Public Functions //////////// + + + //redraw list without updating data + + Tabulator.prototype.redraw = function (force) { + + this.columnManager.redraw(force); + + this.rowManager.redraw(force); + }; + + Tabulator.prototype.setHeight = function (height) { + + this.options.height = isNaN(height) ? height : height + "px"; + + this.element.style.height = this.options.height; + + this.rowManager.redraw(); + }; + + ///////////////////// Sorting //////////////////// + + + //trigger sort + + Tabulator.prototype.setSort = function (sortList, dir) { + + if (this.modExists("sort", true)) { + + this.modules.sort.setSort(sortList, dir); + + this.rowManager.sorterRefresh(); + } + }; + + Tabulator.prototype.getSorters = function () { + + if (this.modExists("sort", true)) { + + return this.modules.sort.getSort(); + } + }; + + Tabulator.prototype.clearSort = function () { + + if (this.modExists("sort", true)) { + + this.modules.sort.clear(); + + this.rowManager.sorterRefresh(); + } + }; + + ///////////////////// Filtering //////////////////// + + + //set standard filters + + Tabulator.prototype.setFilter = function (field, type, value) { + + if (this.modExists("filter", true)) { + + this.modules.filter.setFilter(field, type, value); + + this.rowManager.filterRefresh(); + } + }; + + //add filter to array + + Tabulator.prototype.addFilter = function (field, type, value) { + + if (this.modExists("filter", true)) { + + this.modules.filter.addFilter(field, type, value); + + this.rowManager.filterRefresh(); + } + }; + + //get all filters + + Tabulator.prototype.getFilters = function (all) { + + if (this.modExists("filter", true)) { + + return this.modules.filter.getFilters(all); + } + }; + + Tabulator.prototype.setHeaderFilterFocus = function (field) { + + if (this.modExists("filter", true)) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + this.modules.filter.setHeaderFilterFocus(column); + } else { + + console.warn("Column Filter Focus Error - No matching column found:", field); + + return false; + } + } + }; + + Tabulator.prototype.setHeaderFilterValue = function (field, value) { + + if (this.modExists("filter", true)) { + + var column = this.columnManager.findColumn(field); + + if (column) { + + this.modules.filter.setHeaderFilterValue(column, value); + } else { + + console.warn("Column Filter Error - No matching column found:", field); + + return false; + } + } + }; + + Tabulator.prototype.getHeaderFilters = function () { + + if (this.modExists("filter", true)) { + + return this.modules.filter.getHeaderFilters(); + } + }; + + //remove filter from array + + Tabulator.prototype.removeFilter = function (field, type, value) { + + if (this.modExists("filter", true)) { + + this.modules.filter.removeFilter(field, type, value); + + this.rowManager.filterRefresh(); + } + }; + + //clear filters + + Tabulator.prototype.clearFilter = function (all) { + + if (this.modExists("filter", true)) { + + this.modules.filter.clearFilter(all); + + this.rowManager.filterRefresh(); + } + }; + + //clear header filters + + Tabulator.prototype.clearHeaderFilter = function () { + + if (this.modExists("filter", true)) { + + this.modules.filter.clearHeaderFilter(); + + this.rowManager.filterRefresh(); + } + }; + + ///////////////////// Filtering //////////////////// + + Tabulator.prototype.selectRow = function (rows) { + + if (this.modExists("selectRow", true)) { + + this.modules.selectRow.selectRows(rows); + } + }; + + Tabulator.prototype.deselectRow = function (rows) { + + if (this.modExists("selectRow", true)) { + + this.modules.selectRow.deselectRows(rows); + } + }; + + Tabulator.prototype.toggleSelectRow = function (row) { + + if (this.modExists("selectRow", true)) { + + this.modules.selectRow.toggleRow(row); + } + }; + + Tabulator.prototype.getSelectedRows = function () { + + if (this.modExists("selectRow", true)) { + + return this.modules.selectRow.getSelectedRows(); + } + }; + + Tabulator.prototype.getSelectedData = function () { + + if (this.modExists("selectRow", true)) { + + return this.modules.selectRow.getSelectedData(); + } + }; + + //////////// Pagination Functions //////////// + + + Tabulator.prototype.setMaxPage = function (max) { + + if (this.options.pagination && this.modExists("page")) { + + this.modules.page.setMaxPage(max); + } else { + + return false; + } + }; + + Tabulator.prototype.setPage = function (page) { + + if (this.options.pagination && this.modExists("page")) { + + return this.modules.page.setPage(page); + } else { + + return new Promise(function (resolve, reject) { + reject(); + }); + } + }; + + Tabulator.prototype.setPageToRow = function (row) { + var _this19 = this; + + return new Promise(function (resolve, reject) { + + if (_this19.options.pagination && _this19.modExists("page")) { + + row = _this19.rowManager.findRow(row); + + if (row) { + + _this19.modules.page.setPageToRow(row).then(function () { + + resolve(); + }).catch(function () { + + reject(); + }); + } else { + + reject(); + } + } else { + + reject(); + } + }); + }; + + Tabulator.prototype.setPageSize = function (size) { + + if (this.options.pagination && this.modExists("page")) { + + this.modules.page.setPageSize(size); + + this.modules.page.setPage(1).then(function () {}).catch(function () {}); + } else { + + return false; + } + }; + + Tabulator.prototype.getPageSize = function () { + + if (this.options.pagination && this.modExists("page", true)) { + + return this.modules.page.getPageSize(); + } + }; + + Tabulator.prototype.previousPage = function () { + + if (this.options.pagination && this.modExists("page")) { + + this.modules.page.previousPage(); + } else { + + return false; + } + }; + + Tabulator.prototype.nextPage = function () { + + if (this.options.pagination && this.modExists("page")) { + + this.modules.page.nextPage(); + } else { + + return false; + } + }; + + Tabulator.prototype.getPage = function () { + + if (this.options.pagination && this.modExists("page")) { + + return this.modules.page.getPage(); + } else { + + return false; + } + }; + + Tabulator.prototype.getPageMax = function () { + + if (this.options.pagination && this.modExists("page")) { + + return this.modules.page.getPageMax(); + } else { + + return false; + } + }; + + ///////////////// Grouping Functions /////////////// + + + Tabulator.prototype.setGroupBy = function (groups) { + + if (this.modExists("groupRows", true)) { + + this.options.groupBy = groups; + + this.modules.groupRows.initialize(); + + this.rowManager.refreshActiveData("display"); + } else { + + return false; + } + }; + + Tabulator.prototype.setGroupStartOpen = function (values) { + + if (this.modExists("groupRows", true)) { + + this.options.groupStartOpen = values; + + this.modules.groupRows.initialize(); + + if (this.options.groupBy) { + + this.rowManager.refreshActiveData("group"); + } else { + + console.warn("Grouping Update - cant refresh view, no groups have been set"); + } + } else { + + return false; + } + }; + + Tabulator.prototype.setGroupHeader = function (values) { + + if (this.modExists("groupRows", true)) { + + this.options.groupHeader = values; + + this.modules.groupRows.initialize(); + + if (this.options.groupBy) { + + this.rowManager.refreshActiveData("group"); + } else { + + console.warn("Grouping Update - cant refresh view, no groups have been set"); + } + } else { + + return false; + } + }; + + Tabulator.prototype.getGroups = function (values) { + + if (this.modExists("groupRows", true)) { + + return this.modules.groupRows.getGroups(true); + } else { + + return false; + } + }; + + // get grouped table data in the same format as getData() + + Tabulator.prototype.getGroupedData = function () { + + if (this.modExists("groupRows", true)) { + + return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData(); + } + }; + + ///////////////// Column Calculation Functions /////////////// + + Tabulator.prototype.getCalcResults = function () { + + if (this.modExists("columnCalcs", true)) { + + return this.modules.columnCalcs.getResults(); + } else { + + return false; + } + }; + + /////////////// Navigation Management ////////////// + + + Tabulator.prototype.navigatePrev = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + return cell.nav().prev(); + } + } + + return false; + }; + + Tabulator.prototype.navigateNext = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + return cell.nav().next(); + } + } + + return false; + }; + + Tabulator.prototype.navigateLeft = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + e.preventDefault(); + + return cell.nav().left(); + } + } + + return false; + }; + + Tabulator.prototype.navigateRight = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + e.preventDefault(); + + return cell.nav().right(); + } + } + + return false; + }; + + Tabulator.prototype.navigateUp = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + e.preventDefault(); + + return cell.nav().up(); + } + } + + return false; + }; + + Tabulator.prototype.navigateDown = function () { + + var cell = false; + + if (this.modExists("edit", true)) { + + cell = this.modules.edit.currentCell; + + if (cell) { + + e.preventDefault(); + + return cell.nav().down(); + } + } + + return false; + }; + + /////////////// History Management ////////////// + + Tabulator.prototype.undo = function () { + + if (this.options.history && this.modExists("history", true)) { + + return this.modules.history.undo(); + } else { + + return false; + } + }; + + Tabulator.prototype.redo = function () { + + if (this.options.history && this.modExists("history", true)) { + + return this.modules.history.redo(); + } else { + + return false; + } + }; + + Tabulator.prototype.getHistoryUndoSize = function () { + + if (this.options.history && this.modExists("history", true)) { + + return this.modules.history.getHistoryUndoSize(); + } else { + + return false; + } + }; + + Tabulator.prototype.getHistoryRedoSize = function () { + + if (this.options.history && this.modExists("history", true)) { + + return this.modules.history.getHistoryRedoSize(); + } else { + + return false; + } + }; + + /////////////// Download Management ////////////// + + + Tabulator.prototype.download = function (type, filename, options) { + + if (this.modExists("download", true)) { + + this.modules.download.download(type, filename, options); + } + }; + + Tabulator.prototype.downloadToTab = function (type, filename, options) { + + if (this.modExists("download", true)) { + + this.modules.download.download(type, filename, options, true); + } + }; + + /////////// Inter Table Communications /////////// + + + Tabulator.prototype.tableComms = function (table, module, action, data) { + + this.modules.comms.receive(table, module, action, data); + }; + + ////////////// Extension Management ////////////// + + + //object to hold module + + Tabulator.prototype.moduleBindings = {}; + + //extend module + + Tabulator.prototype.extendModule = function (name, property, values) { + + if (Tabulator.prototype.moduleBindings[name]) { + + var source = Tabulator.prototype.moduleBindings[name].prototype[property]; + + if (source) { + + if ((typeof values === 'undefined' ? 'undefined' : _typeof(values)) == "object") { + + for (var key in values) { + + source[key] = values[key]; + } + } else { + + console.warn("Module Error - Invalid value type, it must be an object"); + } + } else { + + console.warn("Module Error - property does not exist:", property); + } + } else { + + console.warn("Module Error - module does not exist:", name); + } + }; + + //add module to tabulator + + Tabulator.prototype.registerModule = function (name, module) { + + var self = this; + + Tabulator.prototype.moduleBindings[name] = module; + }; + + //ensure that module are bound to instantiated function + + Tabulator.prototype.bindModules = function () { + + this.modules = {}; + + for (var name in Tabulator.prototype.moduleBindings) { + + this.modules[name] = new Tabulator.prototype.moduleBindings[name](this); + } + }; + + //Check for module + + Tabulator.prototype.modExists = function (plugin, required) { + + if (this.modules[plugin]) { + + return true; + } else { + + if (required) { + + console.error("Tabulator Module Not Installed: " + plugin); + } + + return false; + } + }; + + Tabulator.prototype.helpers = { + + elVisible: function elVisible(el) { + + return !(el.offsetWidth <= 0 && el.offsetHeight <= 0); + }, + + elOffset: function elOffset(el) { + + var box = el.getBoundingClientRect(); + + return { + + top: box.top + window.pageYOffset - document.documentElement.clientTop, + + left: box.left + window.pageXOffset - document.documentElement.clientLeft + + }; + }, + + deepClone: function deepClone(obj) { + + var clone = Array.isArray(obj) ? [] : {}; + + for (var i in obj) { + + if (obj[i] != null && _typeof(obj[i]) === "object") { + + if (obj[i] instanceof Date) { + + clone[i] = new Date(obj[i]); + } else { + + clone[i] = this.deepClone(obj[i]); + } + } else { + + clone[i] = obj[i]; + } + } + + return clone; + } + + }; + + Tabulator.prototype.comms = { + + tables: [], + + register: function register(table) { + + Tabulator.prototype.comms.tables.push(table); + }, + + deregister: function deregister(table) { + + var index = Tabulator.prototype.comms.tables.indexOf(table); + + if (index > -1) { + + Tabulator.prototype.comms.tables.splice(index, 1); + } + }, + + lookupTable: function lookupTable(query) { + + var results = [], + matches, + match; + + if (typeof query === "string") { + + matches = document.querySelectorAll(query); + + if (matches.length) { + + for (var i = 0; i < matches.length; i++) { + + match = Tabulator.prototype.comms.matchElement(matches[i]); + + if (match) { + + results.push(match); + } + } + } + } else if (typeof HTMLElement !== "undefined" && query instanceof HTMLElement || query instanceof Tabulator) { + + match = Tabulator.prototype.comms.matchElement(query); + + if (match) { + + results.push(match); + } + } else if (Array.isArray(query)) { + + query.forEach(function (item) { + + results = results.concat(Tabulator.prototype.comms.lookupTable(item)); + }); + } else { + + console.warn("Table Connection Error - Invalid Selector", query); + } + + return results; + }, + + matchElement: function matchElement(element) { + + return Tabulator.prototype.comms.tables.find(function (table) { + + return element instanceof Tabulator ? table === element : table.element === element; + }); + } + + }; + + var Layout = function Layout(table) { + + this.table = table; + + this.mode = null; + }; + + //initialize layout system + + + Layout.prototype.initialize = function (layout) { + + if (this.modes[layout]) { + + this.mode = layout; + } else { + + console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : " + layout); + + this.mode = 'fitData'; + } + + this.table.element.setAttribute("tabulator-layout", this.mode); + }; + + Layout.prototype.getMode = function () { + + return this.mode; + }; + + //trigger table layout + + + Layout.prototype.layout = function () { + + this.modes[this.mode].call(this, this.table.columnManager.columnsByIndex); + }; + + //layout render functions + + + Layout.prototype.modes = { + + //resize columns to fit data the contain + + + "fitData": function fitData(columns) { + + columns.forEach(function (column) { + + column.reinitializeWidth(); + }); + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.update(); + } + }, + + //resize columns to fit data the contain + + + "fitDataFill": function fitDataFill(columns) { + + columns.forEach(function (column) { + + column.reinitializeWidth(); + }); + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.update(); + } + }, + + //resize columns to fit + + + "fitColumns": function fitColumns(columns) { + + var self = this; + + var totalWidth = self.table.element.clientWidth; //table element width + + + var fixedWidth = 0; //total width of columns with a defined width + + + var flexWidth = 0; //total width available to flexible columns + + + var flexGrowUnits = 0; //total number of widthGrow blocks accross all columns + + + var flexColWidth = 0; //desired width of flexible columns + + + var flexColumns = []; //array of flexible width columns + + + var fixedShrinkColumns = []; //array of fixed width columns that can shrink + + + var flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns + + + var overflowWidth = 0; //horizontal overflow width + + + var gapFill = 0; //number of pixels to be added to final column to close and half pixel gaps + + + function calcWidth(width) { + + var colWidth; + + if (typeof width == "string") { + + if (width.indexOf("%") > -1) { + + colWidth = totalWidth / 100 * parseInt(width); + } else { + + colWidth = parseInt(width); + } + } else { + + colWidth = width; + } + + return colWidth; + } + + //ensure columns resize to take up the correct amount of space + + + function scaleColumns(columns, freeSpace, colWidth, shrinkCols) { + + var oversizeCols = [], + oversizeSpace = 0, + remainingSpace = 0, + nextColWidth = 0, + gap = 0, + changeUnits = 0, + undersizeCols = []; + + function calcGrow(col) { + + return colWidth * (col.column.definition.widthGrow || 1); + } + + function calcShrink(col) { + + return calcWidth(col.width) - colWidth * (col.column.definition.widthShrink || 0); + } + + columns.forEach(function (col, i) { + + var width = shrinkCols ? calcShrink(col) : calcGrow(col); + + if (col.column.minWidth >= width) { + + oversizeCols.push(col); + } else { + + undersizeCols.push(col); + + changeUnits += shrinkCols ? col.column.definition.widthShrink || 1 : col.column.definition.widthGrow || 1; + } + }); + + if (oversizeCols.length) { + + oversizeCols.forEach(function (col) { + + oversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth; + + col.width = col.column.minWidth; + }); + + remainingSpace = freeSpace - oversizeSpace; + + nextColWidth = changeUnits ? Math.floor(remainingSpace / changeUnits) : remainingSpace; + + gap = remainingSpace - nextColWidth * changeUnits; + + gap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols); + } else { + + gap = changeUnits ? freeSpace - Math.floor(freeSpace / changeUnits) * changeUnits : freeSpace; + + undersizeCols.forEach(function (column) { + + column.width = shrinkCols ? calcShrink(column) : calcGrow(column); + }); + } + + return gap; + } + + if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) { + + this.table.modules.responsiveLayout.update(); + } + + //adjust for vertical scrollbar if present + + + if (this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight) { + + totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth; + } + + columns.forEach(function (column) { + + var width, minWidth, colWidth; + + if (column.visible) { + + width = column.definition.width; + + minWidth = parseInt(column.minWidth); + + if (width) { + + colWidth = calcWidth(width); + + fixedWidth += colWidth > minWidth ? colWidth : minWidth; + + if (column.definition.widthShrink) { + + fixedShrinkColumns.push({ + + column: column, + + width: colWidth > minWidth ? colWidth : minWidth + + }); + + flexShrinkUnits += column.definition.widthShrink; + } + } else { + + flexColumns.push({ + + column: column, + + width: 0 + + }); + + flexGrowUnits += column.definition.widthGrow || 1; + } + } + }); + + //calculate available space + + + flexWidth = totalWidth - fixedWidth; + + //calculate correct column size + + + flexColWidth = Math.floor(flexWidth / flexGrowUnits); + + //generate column widths + + + var gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false); + + //increase width of last column to account for rounding errors + + + if (flexColumns.length && gapFill > 0) { + + flexColumns[flexColumns.length - 1].width += +gapFill; + } + + //caculate space for columns to be shrunk into + + + flexColumns.forEach(function (col) { + + flexWidth -= col.width; + }); + + overflowWidth = Math.abs(gapFill) + flexWidth; + + //shrink oversize columns if there is no available space + + + if (overflowWidth > 0 && flexShrinkUnits) { + + gapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true); + } + + //decrease width of last column to account for rounding errors + + + if (fixedShrinkColumns.length) { + + fixedShrinkColumns[fixedShrinkColumns.length - 1].width -= gapFill; + } + + flexColumns.forEach(function (col) { + + col.column.setWidth(col.width); + }); + + fixedShrinkColumns.forEach(function (col) { + + col.column.setWidth(col.width); + }); + } + + }; + + Tabulator.prototype.registerModule("layout", Layout); + + var Localize = function Localize(table) { + + this.table = table; //hold Tabulator object + + this.locale = "default"; //current locale + + this.lang = false; //current language + + this.bindings = {}; //update events to call when locale is changed + }; + + //set header placehoder + + Localize.prototype.setHeaderFilterPlaceholder = function (placeholder) { + + this.langs.default.headerFilters.default = placeholder; + }; + + //set header filter placeholder by column + + Localize.prototype.setHeaderFilterColumnPlaceholder = function (column, placeholder) { + + this.langs.default.headerFilters.columns[column] = placeholder; + + if (this.lang && !this.lang.headerFilters.columns[column]) { + + this.lang.headerFilters.columns[column] = placeholder; + } + }; + + //setup a lang description object + + Localize.prototype.installLang = function (locale, lang) { + + if (this.langs[locale]) { + + this._setLangProp(this.langs[locale], lang); + } else { + + this.langs[locale] = lang; + } + }; + + Localize.prototype._setLangProp = function (lang, values) { + + for (var key in values) { + + if (lang[key] && _typeof(lang[key]) == "object") { + + this._setLangProp(lang[key], values[key]); + } else { + + lang[key] = values[key]; + } + } + }; + + //set current locale + + Localize.prototype.setLocale = function (desiredLocale) { + + var self = this; + + desiredLocale = desiredLocale || "default"; + + //fill in any matching languge values + + function traverseLang(trans, path) { + + for (var prop in trans) { + + if (_typeof(trans[prop]) == "object") { + + if (!path[prop]) { + + path[prop] = {}; + } + + traverseLang(trans[prop], path[prop]); + } else { + + path[prop] = trans[prop]; + } + } + } + + //determing correct locale to load + + if (desiredLocale === true && navigator.language) { + + //get local from system + + desiredLocale = navigator.language.toLowerCase(); + } + + if (desiredLocale) { + + //if locale is not set, check for matching top level locale else use default + + if (!self.langs[desiredLocale]) { + + var prefix = desiredLocale.split("-")[0]; + + if (self.langs[prefix]) { + + console.warn("Localization Error - Exact matching locale not found, using closest match: ", desiredLocale, prefix); + + desiredLocale = prefix; + } else { + + console.warn("Localization Error - Matching locale not found, using default: ", desiredLocale); + + desiredLocale = "default"; + } + } + } + + self.locale = desiredLocale; + + //load default lang template + + self.lang = Tabulator.prototype.helpers.deepClone(self.langs.default || {}); + + if (desiredLocale != "default") { + + traverseLang(self.langs[desiredLocale], self.lang); + } + + self.table.options.localized.call(self.table, self.locale, self.lang); + + self._executeBindings(); + }; + + //get current locale + + Localize.prototype.getLocale = function (locale) { + + return self.locale; + }; + + //get lang object for given local or current if none provided + + Localize.prototype.getLang = function (locale) { + + return locale ? this.langs[locale] : this.lang; + }; + + //get text for current locale + + Localize.prototype.getText = function (path, value) { + + var path = value ? path + "|" + value : path, + pathArray = path.split("|"), + text = this._getLangElement(pathArray, this.locale); + + // if(text === false){ + + // console.warn("Localization Error - Matching localized text not found for given path: ", path); + + // } + + + return text || ""; + }; + + //traverse langs object and find localized copy + + Localize.prototype._getLangElement = function (path, locale) { + + var self = this; + + var root = self.lang; + + path.forEach(function (level) { + + var rootPath; + + if (root) { + + rootPath = root[level]; + + if (typeof rootPath != "undefined") { + + root = rootPath; + } else { + + root = false; + } + } + }); + + return root; + }; + + //set update binding + + Localize.prototype.bind = function (path, callback) { + + if (!this.bindings[path]) { + + this.bindings[path] = []; + } + + this.bindings[path].push(callback); + + callback(this.getText(path), this.lang); + }; + + //itterate through bindings and trigger updates + + Localize.prototype._executeBindings = function () { + + var self = this; + + var _loop = function _loop(path) { + + self.bindings[path].forEach(function (binding) { + + binding(self.getText(path), self.lang); + }); + }; + + for (var path in self.bindings) { + _loop(path); + } + }; + + //Localized text listings + + Localize.prototype.langs = { + + "default": { //hold default locale text + + "groups": { + + "item": "item", + + "items": "items" + + }, + + "columns": {}, + + "ajax": { + + "loading": "Loading", + + "error": "Error" + + }, + + "pagination": { + + "page_size": "Page Size", + + "first": "First", + + "first_title": "First Page", + + "last": "Last", + + "last_title": "Last Page", + + "prev": "Prev", + + "prev_title": "Prev Page", + + "next": "Next", + + "next_title": "Next Page" + + }, + + "headerFilters": { + + "default": "filter column...", + + "columns": {} + + } + + } + + }; + + Tabulator.prototype.registerModule("localize", Localize); + + var Comms = function Comms(table) { + + this.table = table; + }; + + Comms.prototype.getConnections = function (selectors) { + + var self = this, + connections = [], + connection; + + connection = Tabulator.prototype.comms.lookupTable(selectors); + + connection.forEach(function (con) { + + if (self.table !== con) { + + connections.push(con); + } + }); + + return connections; + }; + + Comms.prototype.send = function (selectors, module, action, data) { + + var self = this, + connections = this.getConnections(selectors); + + connections.forEach(function (connection) { + + connection.tableComms(self.table.element, module, action, data); + }); + + if (!connections.length && selectors) { + + console.warn("Table Connection Error - No tables matching selector found", selectors); + } + }; + + Comms.prototype.receive = function (table, module, action, data) { + + if (this.table.modExists(module)) { + + return this.table.modules[module].commsReceived(table, action, data); + } else { + + console.warn("Inter-table Comms Error - no such module:", module); + } + }; + + Tabulator.prototype.registerModule("comms", Comms); + + var Accessor = function Accessor(table) { + this.table = table; //hold Tabulator object + this.allowedTypes = ["", "data", "download", "clipboard"]; //list of accessor types + }; + + //initialize column accessor + Accessor.prototype.initializeColumn = function (column) { + var self = this, + match = false, + config = {}; + + this.allowedTypes.forEach(function (type) { + var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)), + accessor; + + if (column.definition[key]) { + accessor = self.lookupAccessor(column.definition[key]); + + if (accessor) { + match = true; + + config[key] = { + accessor: accessor, + params: column.definition[key + "Params"] || {} + }; + } + } + }); + + if (match) { + column.modules.accessor = config; + } + }, Accessor.prototype.lookupAccessor = function (value) { + var accessor = false; + + //set column accessor + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "string": + if (this.accessors[value]) { + accessor = this.accessors[value]; + } else { + console.warn("Accessor Error - No such accessor found, ignoring: ", value); + } + break; + + case "function": + accessor = value; + break; + } + + return accessor; + }; + + //apply accessor to row + Accessor.prototype.transformRow = function (dataIn, type) { + var self = this, + key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)); + + //clone data object with deep copy to isolate internal data from returned result + var data = Tabulator.prototype.helpers.deepClone(dataIn || {}); + + self.table.columnManager.traverse(function (column) { + var value, accessor, params, component; + + if (column.modules.accessor) { + + accessor = column.modules.accessor[key] || column.modules.accessor.accessor || false; + + if (accessor) { + value = column.getFieldValue(data); + + if (value != "undefined") { + component = column.getComponent(); + params = typeof accessor.params === "function" ? accessor.params(value, data, type, component) : accessor.params; + column.setFieldValue(data, accessor.accessor(value, data, type, params, component)); + } + } + } + }); + + return data; + }, + + //default accessors + Accessor.prototype.accessors = {}; + + Tabulator.prototype.registerModule("accessor", Accessor); + var Ajax = function Ajax(table) { + + this.table = table; //hold Tabulator object + this.config = false; //hold config object for ajax request + this.url = ""; //request URL + this.urlGenerator = false; + this.params = false; //request parameters + + this.loaderElement = this.createLoaderElement(); //loader message div + this.msgElement = this.createMsgElement(); //message element + this.loadingElement = false; + this.errorElement = false; + this.loaderPromise = false; + + this.progressiveLoad = false; + this.loading = false; + + this.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request + }; + + //initialize setup options + Ajax.prototype.initialize = function () { + var template; + + this.loaderElement.appendChild(this.msgElement); + + if (this.table.options.ajaxLoaderLoading) { + if (typeof this.table.options.ajaxLoaderLoading == "string") { + template = document.createElement('template'); + template.innerHTML = this.table.options.ajaxLoaderLoading.trim(); + this.loadingElement = template.content.firstChild; + } else { + this.loadingElement = this.table.options.ajaxLoaderLoading; + } + } + + this.loaderPromise = this.table.options.ajaxRequestFunc || this.defaultLoaderPromise; + + this.urlGenerator = this.table.options.ajaxURLGenerator || this.defaultURLGenerator; + + if (this.table.options.ajaxLoaderError) { + if (typeof this.table.options.ajaxLoaderError == "string") { + template = document.createElement('template'); + template.innerHTML = this.table.options.ajaxLoaderError.trim(); + this.errorElement = template.content.firstChild; + } else { + this.errorElement = this.table.options.ajaxLoaderError; + } + } + + if (this.table.options.ajaxParams) { + this.setParams(this.table.options.ajaxParams); + } + + if (this.table.options.ajaxConfig) { + this.setConfig(this.table.options.ajaxConfig); + } + + if (this.table.options.ajaxURL) { + this.setUrl(this.table.options.ajaxURL); + } + + if (this.table.options.ajaxProgressiveLoad) { + if (this.table.options.pagination) { + this.progressiveLoad = false; + console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time"); + } else { + if (this.table.modExists("page")) { + this.progressiveLoad = this.table.options.ajaxProgressiveLoad; + this.table.modules.page.initializeProgressive(this.progressiveLoad); + } else { + console.error("Pagination plugin is required for progressive ajax loading"); + } + } + } + }; + + Ajax.prototype.createLoaderElement = function () { + var el = document.createElement("div"); + el.classList.add("tabulator-loader"); + return el; + }; + + Ajax.prototype.createMsgElement = function () { + var el = document.createElement("div"); + + el.classList.add("tabulator-loader-msg"); + el.setAttribute("role", "alert"); + + return el; + }; + + //set ajax params + Ajax.prototype.setParams = function (params, update) { + if (update) { + this.params = this.params || {}; + + for (var key in params) { + this.params[key] = params[key]; + } + } else { + this.params = params; + } + }; + + Ajax.prototype.getParams = function () { + return this.params || {}; + }; + + //load config object + Ajax.prototype.setConfig = function (config) { + this._loadDefaultConfig(); + + if (typeof config == "string") { + this.config.method = config; + } else { + for (var key in config) { + this.config[key] = config[key]; + } + } + }; + + //create config object from default + Ajax.prototype._loadDefaultConfig = function (force) { + var self = this; + if (!self.config || force) { + + self.config = {}; + + //load base config from defaults + for (var key in self.defaultConfig) { + self.config[key] = self.defaultConfig[key]; + } + } + }; + + //set request url + Ajax.prototype.setUrl = function (url) { + this.url = url; + }; + + //get request url + Ajax.prototype.getUrl = function () { + return this.url; + }; + + //lstandard loading function + Ajax.prototype.loadData = function (inPosition) { + var self = this; + + if (this.progressiveLoad) { + return this._loadDataProgressive(); + } else { + return this._loadDataStandard(inPosition); + } + }; + + Ajax.prototype.nextPage = function (diff) { + var margin; + + if (!this.loading) { + + margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.getElement().clientHeight * 2; + + if (diff < margin) { + this.table.modules.page.nextPage().then(function () {}).catch(function () {}); + } + } + }; + + Ajax.prototype.blockActiveRequest = function () { + this.requestOrder++; + }; + + Ajax.prototype._loadDataProgressive = function () { + this.table.rowManager.setData([]); + return this.table.modules.page.setPage(1); + }; + + Ajax.prototype._loadDataStandard = function (inPosition) { + var _this20 = this; + + return new Promise(function (resolve, reject) { + _this20.sendRequest(inPosition).then(function (data) { + _this20.table.rowManager.setData(data, inPosition).then(function () { + resolve(); + }).catch(function (e) { + reject(e); + }); + }).catch(function (e) { + reject(e); + }); + }); + }; + + Ajax.prototype.generateParamsList = function (data, prefix) { + var self = this, + output = []; + + prefix = prefix || ""; + + if (Array.isArray(data)) { + data.forEach(function (item, i) { + output = output.concat(self.generateParamsList(item, prefix ? prefix + "[" + i + "]" : i)); + }); + } else if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === "object") { + for (var key in data) { + output = output.concat(self.generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key)); + } + } else { + output.push({ key: prefix, value: data }); + } + + return output; + }; + + Ajax.prototype.serializeParams = function (params) { + var output = this.generateParamsList(params), + encoded = []; + + output.forEach(function (item) { + encoded.push(encodeURIComponent(item.key) + "=" + encodeURIComponent(item.value)); + }); + + return encoded.join("&"); + }; + + //send ajax request + Ajax.prototype.sendRequest = function (silent) { + var _this21 = this; + + var self = this, + url = self.url, + requestNo, + esc, + query; + + self.requestOrder++; + requestNo = self.requestOrder; + + self._loadDefaultConfig(); + + return new Promise(function (resolve, reject) { + if (self.table.options.ajaxRequesting.call(_this21.table, self.url, self.params) !== false) { + + self.loading = true; + + if (!silent) { + self.showLoader(); + } + + _this21.loaderPromise(url, self.config, self.params).then(function (data) { + if (requestNo === self.requestOrder) { + if (self.table.options.ajaxResponse) { + data = self.table.options.ajaxResponse.call(self.table, self.url, self.params, data); + } + resolve(data); + } else { + console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made"); + } + + self.hideLoader(); + + self.loading = false; + }).catch(function (error) { + console.error("Ajax Load Error: ", error); + self.table.options.ajaxError.call(self.table, error); + + self.showError(); + + setTimeout(function () { + self.hideLoader(); + }, 3000); + + self.loading = false; + + reject(); + }); + } else { + reject(); + } + }); + }; + + Ajax.prototype.showLoader = function () { + var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader; + + if (shouldLoad) { + + this.hideLoader(); + + while (this.msgElement.firstChild) { + this.msgElement.removeChild(this.msgElement.firstChild); + }this.msgElement.classList.remove("tabulator-error"); + this.msgElement.classList.add("tabulator-loading"); + + if (this.loadingElement) { + this.msgElement.appendChild(this.loadingElement); + } else { + this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|loading"); + } + + this.table.element.appendChild(this.loaderElement); + } + }; + + Ajax.prototype.showError = function () { + this.hideLoader(); + + while (this.msgElement.firstChild) { + this.msgElement.removeChild(this.msgElement.firstChild); + }this.msgElement.classList.remove("tabulator-loading"); + this.msgElement.classList.add("tabulator-error"); + + if (this.errorElement) { + this.msgElement.appendChild(this.errorElement); + } else { + this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|error"); + } + + this.table.element.appendChild(this.loaderElement); + }; + + Ajax.prototype.hideLoader = function () { + if (this.loaderElement.parentNode) { + this.loaderElement.parentNode.removeChild(this.loaderElement); + } + }; + + //default ajax config object + Ajax.prototype.defaultConfig = { + method: "GET" + }; + + Ajax.prototype.defaultURLGenerator = function (url, config, params) { + + if (url) { + if (params && Object.keys(params).length) { + if (!config.method || config.method.toLowerCase() == "get") { + config.method = "get"; + url += "?" + this.serializeParams(params); + } + } + } + + return url; + }; + + Ajax.prototype.defaultLoaderPromise = function (url, config, params) { + var self = this, + contentType; + + return new Promise(function (resolve, reject) { + + //set url + url = self.urlGenerator(url, config, params); + + //set body content if not GET request + if (config.method.toUpperCase() != "GET") { + contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType]; + if (contentType) { + + for (var key in contentType.headers) { + if (!config.headers) { + config.headers = {}; + } + + if (typeof config.headers[key] === "undefined") { + config.headers[key] = contentType.headers[key]; + } + } + + config.body = contentType.body.call(self, url, config, params); + } else { + console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType); + } + } + + if (url) { + + //configure headers + if (typeof config.headers === "undefined") { + config.headers = {}; + } + + if (typeof config.headers.Accept === "undefined") { + config.headers.Accept = "application/json"; + } + + if (typeof config.headers["X-Requested-With"] === "undefined") { + config.headers["X-Requested-With"] = "XMLHttpRequest"; + } + + if (typeof config.mode === "undefined") { + config.mode = "cors"; + } + + if (config.mode == "cors") { + + if (typeof config.headers["Access-Control-Allow-Origin"] === "undefined") { + config.headers["Access-Control-Allow-Origin"] = window.location.origin; + } + + if (typeof config.credentials === "undefined") { + config.credentials = 'same-origin'; + } + } else { + if (typeof config.credentials === "undefined") { + config.credentials = 'include'; + } + } + + //send request + fetch(url, config).then(function (response) { + if (response.ok) { + response.json().then(function (data) { + resolve(data); + }).catch(function (error) { + reject(error); + console.warn("Ajax Load Error - Invalid JSON returned", error); + }); + } else { + console.error("Ajax Load Error - Connection Error: " + response.status, response.statusText); + reject(response); + } + }).catch(function (error) { + console.error("Ajax Load Error - Connection Error: ", error); + reject(error); + }); + } else { + console.warn("Ajax Load Error - No URL Set"); + resolve([]); + } + }); + }; + + Ajax.prototype.contentTypeFormatters = { + "json": { + headers: { + 'Content-Type': 'application/json' + }, + body: function body(url, config, params) { + return JSON.stringify(params); + } + }, + "form": { + headers: {}, + body: function body(url, config, params) { + var output = this.generateParamsList(params), + form = new FormData(); + + output.forEach(function (item) { + form.append(item.key, item.value); + }); + + return form; + } + } + }; + + Tabulator.prototype.registerModule("ajax", Ajax); + + var ColumnCalcs = function ColumnCalcs(table) { + this.table = table; //hold Tabulator object + this.topCalcs = []; + this.botCalcs = []; + this.genColumn = false; + this.topElement = this.createElement(); + this.botElement = this.createElement(); + this.topRow = false; + this.botRow = false; + this.topInitialized = false; + this.botInitialized = false; + + this.initialize(); + }; + + ColumnCalcs.prototype.createElement = function () { + var el = document.createElement("div"); + el.classList.add("tabulator-calcs-holder"); + return el; + }; + + ColumnCalcs.prototype.initialize = function () { + this.genColumn = new Column({ field: "value" }, this); + }; + + //dummy functions to handle being mock column manager + ColumnCalcs.prototype.registerColumnField = function () {}; + + //initialize column calcs + ColumnCalcs.prototype.initializeColumn = function (column) { + var def = column.definition; + + var config = { + topCalcParams: def.topCalcParams || {}, + botCalcParams: def.bottomCalcParams || {} + }; + + if (def.topCalc) { + + switch (_typeof(def.topCalc)) { + case "string": + if (this.calculations[def.topCalc]) { + config.topCalc = this.calculations[def.topCalc]; + } else { + console.warn("Column Calc Error - No such calculation found, ignoring: ", def.topCalc); + } + break; + + case "function": + config.topCalc = def.topCalc; + break; + + } + + if (config.topCalc) { + column.modules.columnCalcs = config; + this.topCalcs.push(column); + + if (this.table.options.columnCalcs != "group") { + this.initializeTopRow(); + } + } + } + + if (def.bottomCalc) { + switch (_typeof(def.bottomCalc)) { + case "string": + if (this.calculations[def.bottomCalc]) { + config.botCalc = this.calculations[def.bottomCalc]; + } else { + console.warn("Column Calc Error - No such calculation found, ignoring: ", def.bottomCalc); + } + break; + + case "function": + config.botCalc = def.bottomCalc; + break; + + } + + if (config.botCalc) { + column.modules.columnCalcs = config; + this.botCalcs.push(column); + + if (this.table.options.columnCalcs != "group") { + this.initializeBottomRow(); + } + } + } + }; + + ColumnCalcs.prototype.removeCalcs = function () { + var changed = false; + + if (this.topInitialized) { + this.topInitialized = false; + this.topElement.parentNode.removeChild(this.topElement); + changed = true; + } + + if (this.botInitialized) { + this.botInitialized = false; + this.table.footerManager.remove(this.botElement); + changed = true; + } + + if (changed) { + this.table.rowManager.adjustTableSize(); + } + }; + + ColumnCalcs.prototype.initializeTopRow = function () { + if (!this.topInitialized) { + // this.table.columnManager.headersElement.after(this.topElement); + this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling); + this.topInitialized = true; + } + }; + + ColumnCalcs.prototype.initializeBottomRow = function () { + if (!this.botInitialized) { + this.table.footerManager.prepend(this.botElement); + this.botInitialized = true; + } + }; + + ColumnCalcs.prototype.scrollHorizontal = function (left) { + var hozAdjust = 0, + scrollWidth = this.table.columnManager.getElement().scrollWidth - this.table.element.clientWidth; + + if (this.botInitialized) { + this.botRow.getElement().style.marginLeft = -left + "px"; + } + }; + + ColumnCalcs.prototype.recalc = function (rows) { + var data, row; + + if (this.topInitialized || this.botInitialized) { + data = this.rowsToData(rows); + + if (this.topInitialized) { + if (this.topRow) { + this.topRow.deleteCells(); + } + + row = this.generateRow("top", this.rowsToData(rows)); + this.topRow = row; + while (this.topElement.firstChild) { + this.topElement.removeChild(this.topElement.firstChild); + }this.topElement.appendChild(row.getElement()); + row.initialize(true); + } + + if (this.botInitialized) { + if (this.botRow) { + this.botRow.deleteCells(); + } + + row = this.generateRow("bottom", this.rowsToData(rows)); + this.botRow = row; + while (this.botElement.firstChild) { + this.botElement.removeChild(this.botElement.firstChild); + }this.botElement.appendChild(row.getElement()); + row.initialize(true); + } + + this.table.rowManager.adjustTableSize(); + + //set resizable handles + if (this.table.modExists("frozenColumns")) { + this.table.modules.frozenColumns.layout(); + } + } + }; + + ColumnCalcs.prototype.recalcRowGroup = function (row) { + this.recalcGroup(this.table.modules.groupRows.getRowGroup(row)); + }; + + ColumnCalcs.prototype.recalcGroup = function (group) { + var data, rowData; + + if (group) { + if (group.calcs) { + if (group.calcs.bottom) { + data = this.rowsToData(group.rows); + rowData = this.generateRowData("bottom", data); + + group.calcs.bottom.updateData(rowData); + group.calcs.bottom.reinitialize(); + } + + if (group.calcs.top) { + data = this.rowsToData(group.rows); + rowData = this.generateRowData("top", data); + + group.calcs.top.updateData(rowData); + group.calcs.top.reinitialize(); + } + } + } + }; + + //generate top stats row + ColumnCalcs.prototype.generateTopRow = function (rows) { + return this.generateRow("top", this.rowsToData(rows)); + }; + //generate bottom stats row + ColumnCalcs.prototype.generateBottomRow = function (rows) { + return this.generateRow("bottom", this.rowsToData(rows)); + }; + + ColumnCalcs.prototype.rowsToData = function (rows) { + var data = []; + + rows.forEach(function (row) { + data.push(row.getData()); + }); + + return data; + }; + + //generate stats row + ColumnCalcs.prototype.generateRow = function (pos, data) { + var self = this, + rowData = this.generateRowData(pos, data), + row; + + if (self.table.modExists("mutator")) { + self.table.modules.mutator.disable(); + } + + row = new Row(rowData, this); + + if (self.table.modExists("mutator")) { + self.table.modules.mutator.enable(); + } + + row.getElement().classList.add("tabulator-calcs", "tabulator-calcs-" + pos); + row.type = "calc"; + + row.generateCells = function () { + + var cells = []; + + self.table.columnManager.columnsByIndex.forEach(function (column) { + + //set field name of mock column + self.genColumn.setField(column.getField()); + self.genColumn.hozAlign = column.hozAlign; + + if (column.definition[pos + "CalcFormatter"] && self.table.modExists("format")) { + + self.genColumn.modules.format = { + formatter: self.table.modules.format.getFormatter(column.definition[pos + "CalcFormatter"]), + params: column.definition[pos + "CalcFormatterParams"] + }; + } else { + self.genColumn.modules.format = { + formatter: self.table.modules.format.getFormatter("plaintext"), + params: {} + }; + } + + //ensure css class defintion is replicated to calculation cell + self.genColumn.definition.cssClass = column.definition.cssClass; + + //generate cell and assign to correct column + var cell = new Cell(self.genColumn, row); + cell.column = column; + cell.setWidth(); + + column.cells.push(cell); + cells.push(cell); + + if (!column.visible) { + cell.hide(); + } + }); + + this.cells = cells; + }; + + return row; + }; + + //generate stats row + ColumnCalcs.prototype.generateRowData = function (pos, data) { + var rowData = {}, + calcs = pos == "top" ? this.topCalcs : this.botCalcs, + type = pos == "top" ? "topCalc" : "botCalc", + params, + paramKey; + + calcs.forEach(function (column) { + var values = []; + + if (column.modules.columnCalcs && column.modules.columnCalcs[type]) { + data.forEach(function (item) { + values.push(column.getFieldValue(item)); + }); + + paramKey = type + "Params"; + params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey]; + + column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params)); + } + }); + + return rowData; + }; + + ColumnCalcs.prototype.hasTopCalcs = function () { + return !!this.topCalcs.length; + }; + + ColumnCalcs.prototype.hasBottomCalcs = function () { + return !!this.botCalcs.length; + }; + + //handle table redraw + ColumnCalcs.prototype.redraw = function () { + if (this.topRow) { + this.topRow.normalizeHeight(true); + } + if (this.botRow) { + this.botRow.normalizeHeight(true); + } + }; + + //return the calculated + ColumnCalcs.prototype.getResults = function () { + var self = this, + results = {}, + groups; + + if (this.table.options.groupBy && this.table.modExists("groupRows")) { + groups = this.table.modules.groupRows.getGroups(true); + + groups.forEach(function (group) { + results[group.getKey()] = self.getGroupResults(group); + }); + } else { + results = { + top: this.topRow ? this.topRow.getData() : {}, + bottom: this.botRow ? this.botRow.getData() : {} + }; + } + + return results; + }; + + //get results from a group + ColumnCalcs.prototype.getGroupResults = function (group) { + var self = this, + groupObj = group._getSelf(), + subGroups = group.getSubGroups(), + subGroupResults = {}, + results = {}; + + subGroups.forEach(function (subgroup) { + subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup); + }); + + results = { + top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {}, + bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {}, + groups: subGroupResults + }; + + return results; + }; + + //default calculations + ColumnCalcs.prototype.calculations = { + "avg": function avg(values, data, calcParams) { + var output = 0, + precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : 2; + + if (values.length) { + output = values.reduce(function (sum, value) { + value = Number(value); + return sum + value; + }); + + output = output / values.length; + + output = precision !== false ? output.toFixed(precision) : output; + } + + return parseFloat(output).toString(); + }, + "max": function max(values, data, calcParams) { + var output = null, + precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false; + + values.forEach(function (value) { + + value = Number(value); + + if (value > output || output === null) { + output = value; + } + }); + + return output !== null ? precision !== false ? output.toFixed(precision) : output : ""; + }, + "min": function min(values, data, calcParams) { + var output = null, + precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false; + + values.forEach(function (value) { + + value = Number(value); + + if (value < output || output === null) { + output = value; + } + }); + + return output !== null ? precision !== false ? output.toFixed(precision) : output : ""; + }, + "sum": function sum(values, data, calcParams) { + var output = 0, + precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false; + + if (values.length) { + values.forEach(function (value) { + value = Number(value); + + output += !isNaN(value) ? Number(value) : 0; + }); + } + + return precision !== false ? output.toFixed(precision) : output; + }, + "concat": function concat(values, data, calcParams) { + var output = 0; + + if (values.length) { + output = values.reduce(function (sum, value) { + return String(sum) + String(value); + }); + } + + return output; + }, + "count": function count(values, data, calcParams) { + var output = 0; + + if (values.length) { + values.forEach(function (value) { + if (value) { + output++; + } + }); + } + + return output; + } + }; + + Tabulator.prototype.registerModule("columnCalcs", ColumnCalcs); + + var Clipboard = function Clipboard(table) { + this.table = table; + this.mode = true; + this.copySelector = false; + this.copySelectorParams = {}; + this.copyFormatter = false; + this.copyFormatterParams = {}; + this.pasteParser = function () {}; + this.pasteAction = function () {}; + this.htmlElement = false; + this.config = {}; + + this.blocked = true; //block copy actions not originating from this command + }; + + Clipboard.prototype.initialize = function () { + var self = this; + + this.mode = this.table.options.clipboard; + + if (this.mode === true || this.mode === "copy") { + this.table.element.addEventListener("copy", function (e) { + var data; + + self.processConfig(); + + if (!self.blocked) { + e.preventDefault(); + + data = self.generateContent(); + + if (window.clipboardData && window.clipboardData.setData) { + window.clipboardData.setData('Text', data); + } else if (e.clipboardData && e.clipboardData.setData) { + e.clipboardData.setData('text/plain', data); + if (self.htmlElement) { + e.clipboardData.setData('text/html', self.htmlElement.outerHTML); + } + } else if (e.originalEvent && e.originalEvent.clipboardData.setData) { + e.originalEvent.clipboardData.setData('text/plain', data); + if (self.htmlElement) { + e.originalEvent.clipboardData.setData('text/html', self.htmlElement.outerHTML); + } + } + + self.table.options.clipboardCopied.call(this.table, data); + + self.reset(); + } + }); + } + + if (this.mode === true || this.mode === "paste") { + this.table.element.addEventListener("paste", function (e) { + self.paste(e); + }); + } + + this.setPasteParser(this.table.options.clipboardPasteParser); + this.setPasteAction(this.table.options.clipboardPasteAction); + }; + + Clipboard.prototype.processConfig = function () { + var config = { + columnHeaders: "groups", + rowGroups: true, + columnCalcs: true + }; + + if (typeof this.table.options.clipboardCopyHeader !== "undefined") { + config.columnHeaders = this.table.options.clipboardCopyHeader; + console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option"); + } + + if (this.table.options.clipboardCopyConfig) { + for (var key in this.table.options.clipboardCopyConfig) { + config[key] = this.table.options.clipboardCopyConfig[key]; + } + } + + if (config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows")) { + this.config.rowGroups = true; + } + + if (config.columnHeaders) { + if ((config.columnHeaders === "groups" || config === true) && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) { + this.config.columnHeaders = "groups"; + } else { + this.config.columnHeaders = "columns"; + } + } else { + this.config.columnHeaders = false; + } + + if (config.columnCalcs && this.table.modExists("columnCalcs")) { + this.config.columnCalcs = true; + } + }; + + Clipboard.prototype.reset = function () { + this.blocked = false; + this.originalSelectionText = ""; + }; + + Clipboard.prototype.setPasteAction = function (action) { + + switch (typeof action === 'undefined' ? 'undefined' : _typeof(action)) { + case "string": + this.pasteAction = this.pasteActions[action]; + + if (!this.pasteAction) { + console.warn("Clipboard Error - No such paste action found:", action); + } + break; + + case "function": + this.pasteAction = action; + break; + } + }; + + Clipboard.prototype.setPasteParser = function (parser) { + switch (typeof parser === 'undefined' ? 'undefined' : _typeof(parser)) { + case "string": + this.pasteParser = this.pasteParsers[parser]; + + if (!this.pasteParser) { + console.warn("Clipboard Error - No such paste parser found:", parser); + } + break; + + case "function": + this.pasteParser = parser; + break; + } + }; + + Clipboard.prototype.paste = function (e) { + var data, rowData, rows; + + if (this.checkPaseOrigin(e)) { + + data = this.getPasteData(e); + + rowData = this.pasteParser.call(this, data); + + if (rowData) { + e.preventDefault(); + + if (this.table.modExists("mutator")) { + rowData = this.mutateData(rowData); + } + + rows = this.pasteAction.call(this, rowData); + this.table.options.clipboardPasted.call(this.table, data, rowData, rows); + } else { + this.table.options.clipboardPasteError.call(this.table, data); + } + } + }; + + Clipboard.prototype.mutateData = function (data) { + var self = this, + output = []; + + if (Array.isArray(data)) { + data.forEach(function (row) { + output.push(self.table.modules.mutator.transformRow(row, "clipboard")); + }); + } else { + output = data; + } + + return output; + }; + + Clipboard.prototype.checkPaseOrigin = function (e) { + var valid = true; + + if (e.target.tagName != "DIV" || this.table.modules.edit.currentCell) { + valid = false; + } + + return valid; + }; + + Clipboard.prototype.getPasteData = function (e) { + var data; + + if (window.clipboardData && window.clipboardData.getData) { + data = window.clipboardData.getData('Text'); + } else if (e.clipboardData && e.clipboardData.getData) { + data = e.clipboardData.getData('text/plain'); + } else if (e.originalEvent && e.originalEvent.clipboardData.getData) { + data = e.originalEvent.clipboardData.getData('text/plain'); + } + + return data; + }; + + Clipboard.prototype.copy = function (selector, selectorParams, formatter, formatterParams, internal) { + var range, sel, textRange; + this.blocked = false; + + if (this.mode === true || this.mode === "copy") { + + if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") { + range = document.createRange(); + range.selectNodeContents(this.table.element); + sel = window.getSelection(); + + if (sel.toString() && internal) { + selector = "userSelection"; + formatter = "raw"; + selectorParams = sel.toString(); + } + + sel.removeAllRanges(); + sel.addRange(range); + } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") { + textRange = document.body.createTextRange(); + textRange.moveToElementText(this.table.element); + textRange.select(); + } + + this.setSelector(selector); + this.copySelectorParams = typeof selectorParams != "undefined" && selectorParams != null ? selectorParams : this.config.columnHeaders; + this.setFormatter(formatter); + this.copyFormatterParams = typeof formatterParams != "undefined" && formatterParams != null ? formatterParams : {}; + + document.execCommand('copy'); + + if (sel) { + sel.removeAllRanges(); + } + } + }; + + Clipboard.prototype.setSelector = function (selector) { + selector = selector || this.table.options.clipboardCopySelector; + + switch (typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) { + case "string": + if (this.copySelectors[selector]) { + this.copySelector = this.copySelectors[selector]; + } else { + console.warn("Clipboard Error - No such selector found:", selector); + } + break; + + case "function": + this.copySelector = selector; + break; + } + }; + + Clipboard.prototype.setFormatter = function (formatter) { + + formatter = formatter || this.table.options.clipboardCopyFormatter; + + switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) { + case "string": + if (this.copyFormatters[formatter]) { + this.copyFormatter = this.copyFormatters[formatter]; + } else { + console.warn("Clipboard Error - No such formatter found:", formatter); + } + break; + + case "function": + this.copyFormatter = formatter; + break; + } + }; + + Clipboard.prototype.generateContent = function () { + var data; + + this.htmlElement = false; + data = this.copySelector.call(this, this.config, this.copySelectorParams); + + return this.copyFormatter.call(this, data, this.config, this.copyFormatterParams); + }; + + Clipboard.prototype.generateSimpleHeaders = function (columns) { + var headers = []; + + columns.forEach(function (column) { + headers.push(column.definition.title); + }); + + return headers; + }; + + Clipboard.prototype.generateColumnGroupHeaders = function (columns) { + var _this22 = this; + + var output = []; + + this.table.columnManager.columns.forEach(function (column) { + var colData = _this22.processColumnGroup(column); + + if (colData) { + output.push(colData); + } + }); + + return output; + }; + + Clipboard.prototype.processColumnGroup = function (column) { + var _this23 = this; + + var subGroups = column.columns; + + var groupData = { + type: "group", + title: column.definition.title, + column: column + }; + + if (subGroups.length) { + groupData.subGroups = []; + groupData.width = 0; + + subGroups.forEach(function (subGroup) { + var subGroupData = _this23.processColumnGroup(subGroup); + + if (subGroupData) { + groupData.width += subGroupData.width; + groupData.subGroups.push(subGroupData); + } + }); + + if (!groupData.width) { + return false; + } + } else { + if (column.field && (column.definition.clipboard || column.visible && column.definition.clipboard !== false)) { + groupData.width = 1; + } else { + return false; + } + } + + return groupData; + }; + + Clipboard.prototype.groupHeadersToRows = function (columns) { + + var headers = []; + + function parseColumnGroup(column, level) { + + if (typeof headers[level] === "undefined") { + headers[level] = []; + } + + headers[level].push(column.title); + + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + } else { + padColumnheaders(); + } + } + + function padColumnheaders() { + var max = 0; + + headers.forEach(function (title) { + var len = title.length; + if (len > max) { + max = len; + } + }); + + headers.forEach(function (title) { + var len = title.length; + if (len < max) { + for (var i = len; i < max; i++) { + title.push(""); + } + } + }); + } + + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + + return headers; + }; + + Clipboard.prototype.rowsToData = function (rows, columns, config, params) { + var data = []; + + rows.forEach(function (row) { + var rowArray = [], + rowData = row instanceof RowComponent ? row.getData("clipboard") : row; + + columns.forEach(function (column) { + var value = column.getFieldValue(rowData); + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "object": + value = JSON.stringify(value); + break; + + case "undefined": + case "null": + value = ""; + break; + + default: + value = value; + } + + rowArray.push(value); + }); + + data.push(rowArray); + }); + + return data; + }; + + Clipboard.prototype.buildComplexRows = function (config) { + var _this24 = this; + + var output = [], + groups = this.table.modules.groupRows.getGroups(); + + groups.forEach(function (group) { + output.push(_this24.processGroupData(group)); + }); + + return output; + }; + + Clipboard.prototype.processGroupData = function (group) { + var _this25 = this; + + var subGroups = group.getSubGroups(); + + var groupData = { + type: "group", + key: group.key + }; + + if (subGroups.length) { + groupData.subGroups = []; + + subGroups.forEach(function (subGroup) { + groupData.subGroups.push(_this25.processGroupData(subGroup)); + }); + } else { + groupData.rows = group.getRows(true); + } + + return groupData; + }; + + Clipboard.prototype.getCalcRow = function (calcs, columns, selector, pos) { + var calcData = calcs[selector]; + + if (calcData) { + if (pos) { + calcData = calcData[pos]; + } + + if (Object.keys(calcData).length) { + return this.rowsToData([calcData], columns); + } + } + + return []; + }; + + Clipboard.prototype.buildOutput = function (rows, config, params) { + var _this26 = this; + + var output = [], + calcs, + columns = []; + + if (config.columnHeaders) { + + if (config.columnHeaders == "groups") { + columns = this.generateColumnGroupHeaders(this.table.columnManager.columns); + + output = output.concat(this.groupHeadersToRows(columns)); + } else { + this.table.columnManager.columnsByIndex.forEach(function (column) { + if (column.definition.clipboard || column.visible && column.definition.clipboard !== false) { + columns.push(column); + } + }); + + output.push(this.generateSimpleHeaders(columns)); + } + } + + if (this.config.columnCalcs) { + calcs = this.table.getCalcResults(); + } + + //generate styled content + if (this.table.options.clipboardCopyStyled) { + this.generateHTML(rows, columns, calcs, config, params); + } + + //generate unstyled content + if (config.rowGroups) { + rows.forEach(function (row) { + output = output.concat(_this26.parseRowGroupData(row, columns, config, params, calcs || {})); + }); + } else { + if (config.columnCalcs) { + output = output.concat(this.getCalcRow(calcs, columns, "top")); + } + + output = output.concat(this.rowsToData(rows, columns, config, params)); + + if (config.columnCalcs) { + output = output.concat(this.getCalcRow(calcs, columns, "bottom")); + } + } + + return output; + }; + + Clipboard.prototype.parseRowGroupData = function (group, columns, config, params, calcObj) { + var _this27 = this; + + var groupData = []; + + groupData.push([group.key]); + + if (group.subGroups) { + group.subGroups.forEach(function (subGroup) { + groupData = groupData.concat(_this27.parseRowGroupData(subGroup, config, params, calcObj[group.key] ? calcObj[group.key].groups || {} : {})); + }); + } else { + if (config.columnCalcs) { + groupData = groupData.concat(this.getCalcRow(calcObj, columns, group.key, "top")); + } + + groupData = groupData.concat(this.rowsToData(group.rows, columns, config, params)); + + if (config.columnCalcs) { + groupData = groupData.concat(this.getCalcRow(calcObj, columns, group.key, "bottom")); + } + } + + return groupData; + }; + + Clipboard.prototype.generateHTML = function (rows, columns, calcs, config, params) { + var self = this, + data = [], + headers = [], + body, + oddRow, + evenRow, + calcRow, + firstRow, + firstCell, + firstGroup, + lastCell, + styleCells; + + //create table element + this.htmlElement = document.createElement("table"); + self.mapElementStyles(this.table.element, this.htmlElement, ["border-top", "border-left", "border-right", "border-bottom"]); + + function generateSimpleHeaders() { + var headerEl = document.createElement("tr"); + + columns.forEach(function (column) { + var columnEl = document.createElement("th"); + columnEl.innerHTML = column.definition.title; + + self.mapElementStyles(column.getElement(), columnEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + + headerEl.appendChild(columnEl); + }); + + self.mapElementStyles(self.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + + self.htmlElement.appendChild(document.createElement("thead").appendChild(headerEl)); + } + + function generateHeaders(headers) { + + var headerHolderEl = document.createElement("thead"); + + headers.forEach(function (columns) { + var headerEl = document.createElement("tr"); + + columns.forEach(function (column) { + var columnEl = document.createElement("th"); + + if (column.width > 1) { + columnEl.colSpan = column.width; + } + + if (column.height > 1) { + columnEl.rowSpan = column.height; + } + + columnEl.innerHTML = column.title; + + self.mapElementStyles(column.element, columnEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + + headerEl.appendChild(columnEl); + }); + + self.mapElementStyles(self.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + + headerHolderEl.appendChild(headerEl); + }); + + self.htmlElement.appendChild(headerHolderEl); + } + + function parseColumnGroup(column, level) { + + if (typeof headers[level] === "undefined") { + headers[level] = []; + } + + headers[level].push({ + title: column.title, + width: column.width, + height: 1, + children: !!column.subGroups, + element: column.column.getElement() + }); + + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + } + } + + function padVerticalColumnheaders() { + headers.forEach(function (row, index) { + row.forEach(function (header) { + if (!header.children) { + header.height = headers.length - index; + } + }); + }); + } + + function addCalcRow(calcs, selector, pos) { + var calcData = calcs[selector]; + + if (calcData) { + if (pos) { + calcData = calcData[pos]; + } + + if (Object.keys(calcData).length) { + // calcRowIndexs.push(body.length); + processRows([calcData]); + } + } + } + + //create headers if needed + if (config.columnHeaders) { + if (config.columnHeaders == "groups") { + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + + padVerticalColumnheaders(); + generateHeaders(headers); + } else { + generateSimpleHeaders(); + } + } + + // columns = this.table.columnManager.columnsByIndex; + + //create table body + body = document.createElement("tbody"); + + //lookup row styles + if (window.getComputedStyle) { + oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"); + evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"); + calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs"); + firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"); + firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0]; + + if (firstRow) { + styleCells = firstRow.getElementsByClassName("tabulator-cell"); + firstCell = styleCells[0]; + lastCell = styleCells[styleCells.length - 1]; + } + } + + function processRows(rowArray) { + //add rows to table + rowArray.forEach(function (row, i) { + var rowEl = document.createElement("tr"), + styleRow = firstRow, + isCalc = false, + rowData; + + if (row instanceof RowComponent) { + rowData = row.getData("clipboard"); + } else { + rowData = row; + isCalc = true; + } + + columns.forEach(function (column, j) { + var cellEl = document.createElement("td"), + value = column.getFieldValue(rowData); + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "object": + value = JSON.stringify(value); + break; + + case "undefined": + case "null": + value = ""; + break; + + default: + value = value; + } + + cellEl.innerHTML = value; + + if (column.definition.align) { + cellEl.style.textAlign = column.definition.align; + } + + if (j < columns.length - 1) { + if (firstCell) { + self.mapElementStyles(firstCell, cellEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]); + } + } else { + if (firstCell) { + self.mapElementStyles(firstCell, cellEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]); + } + } + + rowEl.appendChild(cellEl); + }); + + if (isCalc) { + styleRow = calcRow; + } else { + if (!(i % 2) && oddRow) { + styleRow = oddRow; + } + + if (i % 2 && evenRow) { + styleRow = evenRow; + } + } + + if (styleRow) { + self.mapElementStyles(styleRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]); + } + + body.appendChild(rowEl); + }); + } + + function processGroup(group, calcObj) { + var groupEl = document.createElement("tr"), + groupCellEl = document.createElement("td"); + + groupCellEl.colSpan = columns.length; + + groupCellEl.innerHTML = group.key; + + groupEl.appendChild(groupCellEl); + body.appendChild(groupEl); + + self.mapElementStyles(firstGroup, groupEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]); + + if (group.subGroups) { + group.subGroups.forEach(function (subGroup) { + processGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {}); + }); + } else { + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "top"); + } + + processRows(group.rows); + + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "bottom"); + } + } + } + + if (config.rowGroups) { + rows.forEach(function (group) { + processGroup(group, calcs || {}); + }); + } else { + if (config.columnCalcs) { + addCalcRow(calcs, "top"); + } + + processRows(rows); + + if (config.columnCalcs) { + addCalcRow(calcs, "bottom"); + } + } + + this.htmlElement.appendChild(body); + }; + + Clipboard.prototype.mapElementStyles = function (from, to, props) { + + var lookup = { + "background-color": "backgroundColor", + "color": "fontColor", + "font-weight": "fontWeight", + "font-family": "fontFamily", + "font-size": "fontSize", + "border-top": "borderTop", + "border-left": "borderLeft", + "border-right": "borderRight", + "border-bottom": "borderBottom" + }; + + if (window.getComputedStyle) { + var fromStyle = window.getComputedStyle(from); + + props.forEach(function (prop) { + to.style[lookup[prop]] = fromStyle.getPropertyValue(prop); + }); + } + + // return window.getComputedStyle ? window.getComputedStyle(element, null).getPropertyValue(property) : element.style[property.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); })]; + }; + + Clipboard.prototype.copySelectors = { + userSelection: function userSelection(config, params) { + return params; + }, + selected: function selected(config, params) { + var rows = []; + + if (this.table.modExists("selectRow", true)) { + rows = this.table.modules.selectRow.getSelectedRows(); + } + + if (config.rowGroups) { + console.warn("Clipboard Warning - select coptSelector does not support row groups"); + } + + return this.buildOutput(rows, config, params); + }, + table: function table(config, params) { + if (config.rowGroups) { + console.warn("Clipboard Warning - table coptSelector does not support row groups"); + } + + return this.buildOutput(this.table.rowManager.getComponents(), config, params); + }, + active: function active(config, params) { + var rows; + + if (config.rowGroups) { + rows = this.buildComplexRows(config); + } else { + rows = this.table.rowManager.getComponents(true); + } + + return this.buildOutput(rows, config, params); + } + }; + + Clipboard.prototype.copyFormatters = { + raw: function raw(data, params) { + return data; + }, + table: function table(data, params) { + var output = []; + + data.forEach(function (row) { + row.forEach(function (value) { + if (typeof value == "undefined") { + value = ""; + } + + value = typeof value == "undefined" || value === null ? "" : value.toString(); + + if (value.match(/\r|\n/)) { + value = value.split('"').join('""'); + value = '"' + value + '"'; + } + }); + + output.push(row.join("\t")); + }); + + return output.join("\n"); + } + }; + + Clipboard.prototype.pasteParsers = { + table: function table(clipboard) { + var data = [], + success = false, + headerFindSuccess = true, + columns = this.table.columnManager.columns, + columnMap = [], + rows = []; + + //get data from clipboard into array of columns and rows. + clipboard = clipboard.split("\n"); + + clipboard.forEach(function (row) { + data.push(row.split("\t")); + }); + + if (data.length && !(data.length === 1 && data[0].length < 2)) { + success = true; + + //check if headers are present by title + data[0].forEach(function (value) { + var column = columns.find(function (column) { + return value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim(); + }); + + if (column) { + columnMap.push(column); + } else { + headerFindSuccess = false; + } + }); + + //check if column headers are present by field + if (!headerFindSuccess) { + headerFindSuccess = true; + columnMap = []; + + data[0].forEach(function (value) { + var column = columns.find(function (column) { + return value && column.field && value.trim() && column.field.trim() === value.trim(); + }); + + if (column) { + columnMap.push(column); + } else { + headerFindSuccess = false; + } + }); + + if (!headerFindSuccess) { + columnMap = this.table.columnManager.columnsByIndex; + } + } + + //remove header row if found + if (headerFindSuccess) { + data.shift(); + } + + data.forEach(function (item) { + var row = {}; + + item.forEach(function (value, i) { + if (columnMap[i]) { + row[columnMap[i].field] = value; + } + }); + + rows.push(row); + }); + + return rows; + } else { + return false; + } + } + }; + + Clipboard.prototype.pasteActions = { + replace: function replace(rows) { + return this.table.setData(rows); + }, + update: function update(rows) { + return this.table.updateOrAddData(rows); + }, + insert: function insert(rows) { + return this.table.addData(rows); + } + }; + + Tabulator.prototype.registerModule("clipboard", Clipboard); + + var DataTree = function DataTree(table) { + this.table = table; + this.indent = 10; + this.field = ""; + this.collapseEl = null; + this.expandEl = null; + this.branchEl = null; + this.elementField = false; + + this.startOpen = function () {}; + + this.displayIndex = 0; + }; + + DataTree.prototype.initialize = function () { + var dummyEl = null, + firstCol = this.table.columnManager.getFirstVisibileColumn(), + options = this.table.options; + + this.field = options.dataTreeChildField; + this.indent = options.dataTreeChildIndent; + this.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false); + + if (options.dataTreeBranchElement) { + + if (options.dataTreeBranchElement === true) { + this.branchEl = document.createElement("div"); + this.branchEl.classList.add("tabulator-data-tree-branch"); + } else { + if (typeof options.dataTreeBranchElement === "string") { + dummyEl = document.createElement("div"); + dummyEl.innerHTML = options.dataTreeBranchElement; + this.branchEl = dummyEl.firstChild; + } else { + this.branchEl = options.dataTreeBranchElement; + } + } + } + + if (options.dataTreeCollapseElement) { + if (typeof options.dataTreeCollapseElement === "string") { + dummyEl = document.createElement("div"); + dummyEl.innerHTML = options.dataTreeCollapseElement; + this.collapseEl = dummyEl.firstChild; + } else { + this.collapseEl = options.dataTreeCollapseElement; + } + } else { + this.collapseEl = document.createElement("div"); + this.collapseEl.classList.add("tabulator-data-tree-control"); + this.collapseEl.innerHTML = "
"; + } + + if (options.dataTreeExpandElement) { + if (typeof options.dataTreeExpandElement === "string") { + dummyEl = document.createElement("div"); + dummyEl.innerHTML = options.dataTreeExpandElement; + this.expandEl = dummyEl.firstChild; + } else { + this.expandEl = options.dataTreeExpandElement; + } + } else { + this.expandEl = document.createElement("div"); + this.expandEl.classList.add("tabulator-data-tree-control"); + this.expandEl.innerHTML = "
"; + } + + switch (_typeof(options.dataTreeStartExpanded)) { + case "boolean": + this.startOpen = function (row, index) { + return options.dataTreeStartExpanded; + }; + break; + + case "function": + this.startOpen = options.dataTreeStartExpanded; + break; + + default: + this.startOpen = function (row, index) { + return options.dataTreeStartExpanded[index]; + }; + break; + } + }; + + DataTree.prototype.initializeRow = function (row) { + var childArray = row.getData()[this.field]; + var isArray = Array.isArray(childArray); + + var children = isArray || !isArray && (typeof childArray === 'undefined' ? 'undefined' : _typeof(childArray)) === "object" && childArray !== null; + + row.modules.dataTree = { + index: 0, + open: children ? this.startOpen(row.getComponent(), 0) : false, + controlEl: false, + branchEl: false, + parent: false, + children: children + }; + }; + + DataTree.prototype.layoutRow = function (row) { + var cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0], + el = cell.getElement(), + config = row.modules.dataTree; + + if (config.branchEl) { + config.branchEl.parentNode.removeChild(config.branchEl); + } + + this.generateControlElement(row, el); + + if (config.index) { + if (this.branchEl) { + config.branchEl = this.branchEl.cloneNode(true); + el.insertBefore(config.branchEl, el.firstChild); + config.branchEl.style.marginLeft = (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + config.index * this.indent + "px"; + } else { + el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px"; + } + } + }; + + DataTree.prototype.generateControlElement = function (row, el) { + var _this28 = this; + + var config = row.modules.dataTree, + el = el || row.getCells()[0].getElement(), + oldControl = config.controlEl; + + if (config.children !== false) { + + if (config.open) { + config.controlEl = this.collapseEl.cloneNode(true); + config.controlEl.addEventListener("click", function (e) { + e.stopPropagation(); + _this28.collapseRow(row); + }); + } else { + config.controlEl = this.expandEl.cloneNode(true); + config.controlEl.addEventListener("click", function (e) { + e.stopPropagation(); + _this28.expandRow(row); + }); + } + + config.controlEl.addEventListener("mousedown", function (e) { + e.stopPropagation(); + }); + + if (oldControl && oldControl.parentNode === el) { + oldControl.parentNode.replaceChild(config.controlEl, oldControl); + } else { + el.insertBefore(config.controlEl, el.firstChild); + } + } + }; + + DataTree.prototype.setDisplayIndex = function (index) { + this.displayIndex = index; + }; + + DataTree.prototype.getDisplayIndex = function () { + return this.displayIndex; + }; + + DataTree.prototype.getRows = function (rows) { + var _this29 = this; + + var output = []; + + rows.forEach(function (row, i) { + var config, children; + + output.push(row); + + if (row instanceof Row) { + + config = row.modules.dataTree.children; + + if (!config.index && config.children !== false) { + children = _this29.getChildren(row); + + children.forEach(function (child) { + output.push(child); + }); + } + } + }); + + return output; + }; + + DataTree.prototype.getChildren = function (row) { + var _this30 = this; + + var config = row.modules.dataTree, + children = [], + output = []; + + if (config.children !== false && config.open) { + if (!Array.isArray(config.children)) { + config.children = this.generateChildren(row); + } + + if (this.table.modExists("filter")) { + children = this.table.modules.filter.filter(config.children); + } else { + children = config.children; + } + + if (this.table.modExists("sort")) { + this.table.modules.sort.sort(children); + } + + children.forEach(function (child) { + output.push(child); + + var subChildren = _this30.getChildren(child); + + subChildren.forEach(function (sub) { + output.push(sub); + }); + }); + } + + return output; + }; + + DataTree.prototype.generateChildren = function (row) { + var _this31 = this; + + var children = []; + + var childArray = row.getData()[this.field]; + + if (!Array.isArray(childArray)) { + childArray = [childArray]; + } + + childArray.forEach(function (childData) { + var childRow = new Row(childData || {}, _this31.table.rowManager); + childRow.modules.dataTree.index = row.modules.dataTree.index + 1; + childRow.modules.dataTree.parent = row; + if (childRow.modules.dataTree.children) { + childRow.modules.dataTree.open = _this31.startOpen(childRow.getComponent(), childRow.modules.dataTree.index); + } + children.push(childRow); + }); + + return children; + }; + + DataTree.prototype.expandRow = function (row, silent) { + var config = row.modules.dataTree; + + if (config.children !== false) { + config.open = true; + + row.reinitialize(); + + this.table.rowManager.refreshActiveData("tree", false, true); + + this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index); + } + }; + + DataTree.prototype.collapseRow = function (row) { + var config = row.modules.dataTree; + + if (config.children !== false) { + config.open = false; + + row.reinitialize(); + + this.table.rowManager.refreshActiveData("tree", false, true); + + this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index); + } + }; + + DataTree.prototype.toggleRow = function (row) { + var config = row.modules.dataTree; + + if (config.children !== false) { + if (config.open) { + this.collapseRow(row); + } else { + this.expandRow(row); + } + } + }; + + DataTree.prototype.getTreeParent = function (row) { + return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false; + }; + + DataTree.prototype.getTreeChildren = function (row) { + var config = row.modules.dataTree, + output = []; + + if (config.children) { + + if (!Array.isArray(config.children)) { + config.children = this.generateChildren(row); + } + + config.children.forEach(function (childRow) { + if (childRow instanceof Row) { + output.push(childRow.getComponent()); + } + }); + } + + return output; + }; + + DataTree.prototype.checkForRestyle = function (cell) { + if (!cell.row.cells.indexOf(cell)) { + if (cell.row.modules.dataTree.children !== false) { + cell.row.reinitialize(); + } + } + }; + + DataTree.prototype.getChildField = function () { + return this.field; + }; + + Tabulator.prototype.registerModule("dataTree", DataTree); + var Download = function Download(table) { + this.table = table; //hold Tabulator object + this.fields = {}; //hold filed multi dimension arrays + this.columnsByIndex = []; //hold columns in their order in the table + this.columnsByField = {}; //hold columns with lookup by field name + this.config = {}; + }; + + //trigger file download + Download.prototype.download = function (type, filename, options, interceptCallback) { + var self = this, + downloadFunc = false; + this.processConfig(); + + function buildLink(data, mime) { + if (interceptCallback) { + if (interceptCallback === true) { + self.triggerDownload(data, mime, type, filename, true); + } else { + interceptCallback(data); + } + } else { + self.triggerDownload(data, mime, type, filename); + } + } + + if (typeof type == "function") { + downloadFunc = type; + } else { + if (self.downloaders[type]) { + downloadFunc = self.downloaders[type]; + } else { + console.warn("Download Error - No such download type found: ", type); + } + } + + this.processColumns(); + + if (downloadFunc) { + downloadFunc.call(this, self.processDefinitions(), self.processData(), options || {}, buildLink, this.config); + } + }; + + Download.prototype.processConfig = function () { + var config = { //download config + columnGroups: true, + rowGroups: true, + columnCalcs: true + }; + + if (this.table.options.downloadConfig) { + for (var key in this.table.options.downloadConfig) { + config[key] = this.table.options.downloadConfig[key]; + } + } + + if (config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows")) { + this.config.rowGroups = true; + } + + if (config.columnGroups && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) { + this.config.columnGroups = true; + } + + if (config.columnCalcs && this.table.modExists("columnCalcs")) { + this.config.columnCalcs = true; + } + }; + + Download.prototype.processColumns = function () { + var self = this; + + self.columnsByIndex = []; + self.columnsByField = {}; + + self.table.columnManager.columnsByIndex.forEach(function (column) { + + if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) { + self.columnsByIndex.push(column); + self.columnsByField[column.field] = column; + } + }); + }; + + Download.prototype.processDefinitions = function () { + var self = this, + processedDefinitions = []; + + if (this.config.columnGroups) { + self.table.columnManager.columns.forEach(function (column) { + var colData = self.processColumnGroup(column); + + if (colData) { + processedDefinitions.push(colData); + } + }); + } else { + self.columnsByIndex.forEach(function (column) { + if (column.download !== false) { + //isolate definiton from defintion object + processedDefinitions.push(self.processDefinition(column)); + } + }); + } + + return processedDefinitions; + }; + + Download.prototype.processColumnGroup = function (column) { + var _this32 = this; + + var subGroups = column.columns, + maxDepth = 0; + var processedColumn = this.processDefinition(column); + var groupData = { + type: "group", + title: processedColumn.title, + depth: 1 + }; + + if (subGroups.length) { + groupData.subGroups = []; + groupData.width = 0; + + subGroups.forEach(function (subGroup) { + var subGroupData = _this32.processColumnGroup(subGroup); + + if (subGroupData.depth > maxDepth) { + maxDepth = subGroupData.depth; + } + + if (subGroupData) { + groupData.width += subGroupData.width; + groupData.subGroups.push(subGroupData); + } + }); + + groupData.depth += maxDepth; + + if (!groupData.width) { + return false; + } + } else { + if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) { + groupData.width = 1; + groupData.definition = processedColumn; + } else { + return false; + } + } + + return groupData; + }; + + Download.prototype.processDefinition = function (column) { + var def = {}; + + for (var key in column.definition) { + def[key] = column.definition[key]; + } + + if (typeof column.definition.downloadTitle != "undefined") { + def.title = column.definition.downloadTitle; + } + + return def; + }; + + Download.prototype.processData = function () { + var _this33 = this; + + var self = this, + data = [], + groups = [], + calcs = {}; + + if (this.config.rowGroups) { + groups = this.table.modules.groupRows.getGroups(); + + groups.forEach(function (group) { + data.push(_this33.processGroupData(group)); + }); + } else { + data = self.table.rowManager.getData(true, "download"); + } + + if (this.config.columnCalcs) { + calcs = this.table.getCalcResults(); + + data = { + calcs: calcs, + data: data + }; + } + + //bulk data processing + if (typeof self.table.options.downloadDataFormatter == "function") { + data = self.table.options.downloadDataFormatter(data); + } + + return data; + }; + + Download.prototype.processGroupData = function (group) { + var _this34 = this; + + var subGroups = group.getSubGroups(); + + var groupData = { + type: "group", + key: group.key + }; + + if (subGroups.length) { + groupData.subGroups = []; + + subGroups.forEach(function (subGroup) { + groupData.subGroups.push(_this34.processGroupData(subGroup)); + }); + } else { + groupData.rows = group.getData(true, "download"); + } + + return groupData; + }; + + Download.prototype.triggerDownload = function (data, mime, type, filename, newTab) { + var element = document.createElement('a'), + blob = new Blob([data], { type: mime }), + filename = filename || "Tabulator." + (typeof type === "function" ? "txt" : type); + + blob = this.table.options.downloadReady.call(this.table, data, blob); + + if (blob) { + + if (newTab) { + window.open(window.URL.createObjectURL(blob)); + } else { + if (navigator.msSaveOrOpenBlob) { + navigator.msSaveOrOpenBlob(blob, filename); + } else { + element.setAttribute('href', window.URL.createObjectURL(blob)); + + //set file title + element.setAttribute('download', filename); + + //trigger download + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + + //remove temporary link element + document.body.removeChild(element); + } + } + + if (this.table.options.downloadComplete) { + this.table.options.downloadComplete(); + } + } + }; + + //nested field lookup + Download.prototype.getFieldValue = function (field, data) { + var column = this.columnsByField[field]; + + if (column) { + return column.getFieldValue(data); + } + + return false; + }; + + Download.prototype.commsReceived = function (table, action, data) { + switch (action) { + case "intercept": + this.download(data.type, "", data.options, data.intercept); + break; + } + }; + + //downloaders + Download.prototype.downloaders = { + csv: function csv(columns, data, options, setFileContents, config) { + var self = this, + titles = [], + fields = [], + delimiter = options && options.delimiter ? options.delimiter : ",", + fileContents, + output; + + //build column headers + function parseSimpleTitles() { + columns.forEach(function (column) { + titles.push('"' + String(column.title).split('"').join('""') + '"'); + fields.push(column.field); + }); + } + + function parseColumnGroup(column, level) { + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + } else { + titles.push('"' + String(column.title).split('"').join('""') + '"'); + fields.push(column.definition.field); + } + } + + if (config.columnGroups) { + console.warn("Download Warning - CSV downloader cannot process column groups"); + + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + } else { + parseSimpleTitles(); + } + + //generate header row + fileContents = [titles.join(delimiter)]; + + function parseRows(data) { + //generate each row of the table + data.forEach(function (row) { + var rowData = []; + + fields.forEach(function (field) { + var value = self.getFieldValue(field, row); + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "object": + value = JSON.stringify(value); + break; + + case "undefined": + case "null": + value = ""; + break; + + default: + value = value; + } + + //escape quotation marks + rowData.push('"' + String(value).split('"').join('""') + '"'); + }); + + fileContents.push(rowData.join(delimiter)); + }); + } + + function parseGroup(group) { + if (group.subGroups) { + group.subGroups.forEach(function (subGroup) { + parseGroup(subGroup); + }); + } else { + parseRows(group.rows); + } + } + + if (config.columnCalcs) { + console.warn("Download Warning - CSV downloader cannot process column calculations"); + data = data.data; + } + + if (config.rowGroups) { + console.warn("Download Warning - CSV downloader cannot process row groups"); + + data.forEach(function (group) { + parseGroup(group); + }); + } else { + parseRows(data); + } + + output = fileContents.join("\n"); + + if (options.bom) { + output = '\uFEFF' + output; + } + + setFileContents(output, "text/csv"); + }, + + json: function json(columns, data, options, setFileContents, config) { + var fileContents; + + if (config.columnCalcs) { + console.warn("Download Warning - CSV downloader cannot process column calculations"); + data = data.data; + } + + fileContents = JSON.stringify(data, null, '\t'); + + setFileContents(fileContents, "application/json"); + }, + + pdf: function pdf(columns, data, options, setFileContents, config) { + var self = this, + fields = [], + header = [], + body = [], + calcs = {}, + headerDepth = 1, + table = "", + autoTableParams = {}, + rowGroupStyles = options.rowGroupStyles || { + fontStyle: "bold", + fontSize: 12, + cellPadding: 6, + fillColor: 220 + }, + rowCalcStyles = options.rowCalcStyles || { + fontStyle: "bold", + fontSize: 10, + cellPadding: 4, + fillColor: 232 + }, + jsPDFParams = options.jsPDF || {}, + title = options && options.title ? options.title : ""; + + if (config.columnCalcs) { + calcs = data.calcs; + data = data.data; + } + + if (!jsPDFParams.orientation) { + jsPDFParams.orientation = options.orientation || "landscape"; + } + + if (!jsPDFParams.unit) { + jsPDFParams.unit = "pt"; + } + + //build column headers + function parseSimpleTitles() { + columns.forEach(function (column) { + if (column.field) { + header.push(column.title || ""); + fields.push(column.field); + } + }); + + header = [header]; + } + + function parseColumnGroup(column, level) { + var colSpan = column.width, + rowSpan = 1, + col = { + content: column.title || "" + }; + + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + rowSpan = 1; + } else { + fields.push(column.definition.field); + rowSpan = headerDepth - level; + } + + col.rowSpan = rowSpan; + // col.colSpan = colSpan; + + header[level].push(col); + + colSpan--; + + if (rowSpan > 1) { + for (var i = level + 1; i < headerDepth; i++) { + header[i].push(""); + } + } + + for (var i = 0; i < colSpan; i++) { + header[level].push(""); + } + } + + if (config.columnGroups) { + columns.forEach(function (column) { + if (column.depth > headerDepth) { + headerDepth = column.depth; + } + }); + + for (var i = 0; i < headerDepth; i++) { + header.push([]); + } + + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + } else { + parseSimpleTitles(); + } + + function parseValue(value) { + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "object": + value = JSON.stringify(value); + break; + + case "undefined": + case "null": + value = ""; + break; + + default: + value = value; + } + + return value; + } + + function parseRows(data) { + //build table rows + data.forEach(function (row) { + body.push(parseRow(row)); + }); + } + + function parseRow(row, styles) { + var rowData = []; + + fields.forEach(function (field) { + var value = self.getFieldValue(field, row); + value = parseValue(value); + + if (styles) { + rowData.push({ + content: value, + styles: styles + }); + } else { + rowData.push(value); + } + }); + + return rowData; + } + + function parseGroup(group, calcObj) { + var groupData = []; + + groupData.push({ content: parseValue(group.key), colSpan: fields.length, styles: rowGroupStyles }); + + body.push(groupData); + + if (group.subGroups) { + group.subGroups.forEach(function (subGroup) { + parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {}); + }); + } else { + + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "top"); + } + + parseRows(group.rows); + + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "bottom"); + } + } + } + + function addCalcRow(calcs, selector, pos) { + var calcData = calcs[selector]; + + if (calcData) { + if (pos) { + calcData = calcData[pos]; + } + + if (Object.keys(calcData).length) { + body.push(parseRow(calcData, rowCalcStyles)); + } + } + } + + if (config.rowGroups) { + data.forEach(function (group) { + parseGroup(group, calcs); + }); + } else { + if (config.columnCalcs) { + addCalcRow(calcs, "top"); + } + + parseRows(data); + + if (config.columnCalcs) { + addCalcRow(calcs, "bottom"); + } + } + + var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables + + if (options && options.autoTable) { + if (typeof options.autoTable === "function") { + autoTableParams = options.autoTable(doc) || {}; + } else { + autoTableParams = options.autoTable; + } + } + + if (title) { + autoTableParams.addPageContent = function (data) { + doc.text(title, 40, 30); + }; + } + + autoTableParams.head = header; + autoTableParams.body = body; + + doc.autoTable(autoTableParams); + + if (options && options.documentProcessing) { + options.documentProcessing(doc); + } + + setFileContents(doc.output("arraybuffer"), "application/pdf"); + }, + + xlsx: function xlsx(columns, data, options, setFileContents, config) { + var self = this, + sheetName = options.sheetName || "Sheet1", + workbook = { SheetNames: [], Sheets: {} }, + calcs = {}, + groupRowIndexs = [], + groupColumnIndexs = [], + calcRowIndexs = [], + output; + + if (config.columnCalcs) { + calcs = data.calcs; + data = data.data; + } + + function generateSheet() { + var titles = [], + fields = [], + rows = [], + worksheet; + + //convert rows to worksheet + function rowsToSheet() { + var sheet = {}; + var range = { s: { c: 0, r: 0 }, e: { c: fields.length, r: rows.length } }; + + XLSX.utils.sheet_add_aoa(sheet, rows); + + sheet['!ref'] = XLSX.utils.encode_range(range); + + var merges = generateMerges(); + + if (merges.length) { + sheet["!merges"] = merges; + } + + return sheet; + } + + function parseSimpleTitles() { + //get field lists + columns.forEach(function (column) { + titles.push(column.title); + fields.push(column.field); + }); + + rows.push(titles); + } + + function parseColumnGroup(column, level) { + + if (typeof titles[level] === "undefined") { + titles[level] = []; + } + + if (typeof groupColumnIndexs[level] === "undefined") { + groupColumnIndexs[level] = []; + } + + if (column.width > 1) { + + groupColumnIndexs[level].push({ + type: "hoz", + start: titles[level].length, + end: titles[level].length + column.width - 1 + }); + } + + titles[level].push(column.title); + + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + } else { + fields.push(column.definition.field); + padColumnTitles(fields.length - 1, level); + + groupColumnIndexs[level].push({ + type: "vert", + start: fields.length - 1 + }); + } + } + + function padColumnTitles() { + var max = 0; + + titles.forEach(function (title) { + var len = title.length; + if (len > max) { + max = len; + } + }); + + titles.forEach(function (title) { + var len = title.length; + if (len < max) { + for (var i = len; i < max; i++) { + title.push(""); + } + } + }); + } + + if (config.columnGroups) { + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + + titles.forEach(function (title) { + rows.push(title); + }); + } else { + parseSimpleTitles(); + } + + function generateMerges() { + var output = []; + + groupRowIndexs.forEach(function (index) { + output.push({ s: { r: index, c: 0 }, e: { r: index, c: fields.length - 1 } }); + }); + + groupColumnIndexs.forEach(function (merges, level) { + merges.forEach(function (merge) { + if (merge.type === "hoz") { + output.push({ s: { r: level, c: merge.start }, e: { r: level, c: merge.end } }); + } else { + if (level != titles.length - 1) { + output.push({ s: { r: level, c: merge.start }, e: { r: titles.length - 1, c: merge.start } }); + } + } + }); + }); + + return output; + } + + //generate each row of the table + function parseRows(data) { + data.forEach(function (row) { + rows.push(parseRow(row)); + }); + } + + function parseRow(row) { + var rowData = []; + + fields.forEach(function (field) { + var value = self.getFieldValue(field, row); + rowData.push(!(value instanceof Date) && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object" ? JSON.stringify(value) : value); + }); + + return rowData; + } + + function addCalcRow(calcs, selector, pos) { + var calcData = calcs[selector]; + + if (calcData) { + if (pos) { + calcData = calcData[pos]; + } + + if (Object.keys(calcData).length) { + calcRowIndexs.push(rows.length); + rows.push(parseRow(calcData)); + } + } + } + + function parseGroup(group, calcObj) { + var groupData = []; + + groupData.push(group.key); + + groupRowIndexs.push(rows.length); + + rows.push(groupData); + + if (group.subGroups) { + group.subGroups.forEach(function (subGroup) { + parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {}); + }); + } else { + + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "top"); + } + + parseRows(group.rows); + + if (config.columnCalcs) { + addCalcRow(calcObj, group.key, "bottom"); + } + } + } + + if (config.rowGroups) { + data.forEach(function (group) { + parseGroup(group, calcs); + }); + } else { + if (config.columnCalcs) { + addCalcRow(calcs, "top"); + } + + parseRows(data); + + if (config.columnCalcs) { + addCalcRow(calcs, "bottom"); + } + } + + worksheet = rowsToSheet(); + + return worksheet; + } + + if (options.sheetOnly) { + setFileContents(generateSheet()); + return; + } + + if (options.sheets) { + for (var sheet in options.sheets) { + + if (options.sheets[sheet] === true) { + workbook.SheetNames.push(sheet); + workbook.Sheets[sheet] = generateSheet(); + } else { + + workbook.SheetNames.push(sheet); + + this.table.modules.comms.send(options.sheets[sheet], "download", "intercept", { + type: "xlsx", + options: { sheetOnly: true }, + intercept: function intercept(data) { + workbook.Sheets[sheet] = data; + } + }); + } + } + } else { + workbook.SheetNames.push(sheetName); + workbook.Sheets[sheetName] = generateSheet(); + } + + //convert workbook to binary array + function s2ab(s) { + var buf = new ArrayBuffer(s.length); + var view = new Uint8Array(buf); + for (var i = 0; i != s.length; ++i) { + view[i] = s.charCodeAt(i) & 0xFF; + }return buf; + } + + output = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' }); + + setFileContents(s2ab(output), "application/octet-stream"); + } + + }; + + Tabulator.prototype.registerModule("download", Download); + + var Edit = function Edit(table) { + this.table = table; //hold Tabulator object + this.currentCell = false; //hold currently editing cell + this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening + this.recursionBlock = false; //prevent focus recursion + this.invalidEdit = false; + }; + + //initialize column editor + Edit.prototype.initializeColumn = function (column) { + var self = this, + config = { + editor: false, + blocked: false, + check: column.definition.editable, + params: column.definition.editorParams || {} + }; + + //set column editor + switch (_typeof(column.definition.editor)) { + case "string": + + if (column.definition.editor === "tick") { + column.definition.editor = "tickCross"; + console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor"); + } + + if (self.editors[column.definition.editor]) { + config.editor = self.editors[column.definition.editor]; + } else { + console.warn("Editor Error - No such editor found: ", column.definition.editor); + } + break; + + case "function": + config.editor = column.definition.editor; + break; + + case "boolean": + + if (column.definition.editor === true) { + + if (typeof column.definition.formatter !== "function") { + + if (column.definition.formatter === "tick") { + column.definition.formatter = "tickCross"; + console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor"); + } + + if (self.editors[column.definition.formatter]) { + config.editor = self.editors[column.definition.formatter]; + } else { + config.editor = self.editors["input"]; + } + } else { + console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ", column.definition.formatter); + } + } + break; + } + + if (config.editor) { + column.modules.edit = config; + } + }; + + Edit.prototype.getCurrentCell = function () { + return this.currentCell ? this.currentCell.getComponent() : false; + }; + + Edit.prototype.clearEditor = function () { + var cell = this.currentCell, + cellEl; + + this.invalidEdit = false; + + if (cell) { + this.currentCell = false; + + cellEl = cell.getElement(); + cellEl.classList.remove("tabulator-validation-fail"); + cellEl.classList.remove("tabulator-editing"); + while (cellEl.firstChild) { + cellEl.removeChild(cellEl.firstChild); + }cell.row.getElement().classList.remove("tabulator-row-editing"); + } + }; + + Edit.prototype.cancelEdit = function () { + + if (this.currentCell) { + var cell = this.currentCell; + var component = this.currentCell.getComponent(); + + this.clearEditor(); + cell.setValueActual(cell.getValue()); + + if (cell.column.cellEvents.cellEditCancelled) { + cell.column.cellEvents.cellEditCancelled.call(this.table, component); + } + + this.table.options.cellEditCancelled.call(this.table, component); + } + }; + + //return a formatted value for a cell + Edit.prototype.bindEditor = function (cell) { + var self = this, + element = cell.getElement(); + + element.setAttribute("tabindex", 0); + + element.addEventListener("click", function (e) { + if (!element.classList.contains("tabulator-editing")) { + element.focus(); + } + }); + + element.addEventListener("mousedown", function (e) { + self.mouseClick = true; + }); + + element.addEventListener("focus", function (e) { + if (!self.recursionBlock) { + self.edit(cell, e, false); + } + }); + }; + + Edit.prototype.focusCellNoEvent = function (cell) { + this.recursionBlock = true; + if (this.table.browser !== "ie") { + cell.getElement().focus(); + } + this.recursionBlock = false; + }; + + Edit.prototype.editCell = function (cell, forceEdit) { + this.focusCellNoEvent(cell); + this.edit(cell, false, forceEdit); + }; + + Edit.prototype.edit = function (cell, e, forceEdit) { + var self = this, + allowEdit = true, + rendered = function rendered() {}, + element = cell.getElement(), + cellEditor, + component, + params; + + //prevent editing if another cell is refusing to leave focus (eg. validation fail) + if (this.currentCell) { + if (!this.invalidEdit) { + this.cancelEdit(); + } + return; + } + + //handle successfull value change + function success(value) { + + if (self.currentCell === cell) { + var valid = true; + + if (cell.column.modules.validate && self.table.modExists("validate")) { + valid = self.table.modules.validate.validate(cell.column.modules.validate, cell.getComponent(), value); + } + + if (valid === true) { + self.clearEditor(); + cell.setValue(value, true); + + if (self.table.options.dataTree && self.table.modExists("dataTree")) { + self.table.modules.dataTree.checkForRestyle(cell); + } + } else { + self.invalidEdit = true; + element.classList.add("tabulator-validation-fail"); + self.focusCellNoEvent(cell); + rendered(); + self.table.options.validationFailed.call(self.table, cell.getComponent(), value, valid); + } + } else { + // console.warn("Edit Success Error - cannot call success on a cell that is no longer being edited"); + } + } + + //handle aborted edit + function cancel() { + if (self.currentCell === cell) { + self.cancelEdit(); + + if (self.table.options.dataTree && self.table.modExists("dataTree")) { + self.table.modules.dataTree.checkForRestyle(cell); + } + } else { + // console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited"); + } + } + + function onRendered(callback) { + rendered = callback; + } + + if (!cell.column.modules.edit.blocked) { + if (e) { + e.stopPropagation(); + } + + switch (_typeof(cell.column.modules.edit.check)) { + case "function": + allowEdit = cell.column.modules.edit.check(cell.getComponent()); + break; + + case "boolean": + allowEdit = cell.column.modules.edit.check; + break; + } + + if (allowEdit || forceEdit) { + + self.cancelEdit(); + + self.currentCell = cell; + + component = cell.getComponent(); + + if (this.mouseClick) { + this.mouseClick = false; + + if (cell.column.cellEvents.cellClick) { + cell.column.cellEvents.cellClick.call(this.table, e, component); + } + } + + if (cell.column.cellEvents.cellEditing) { + cell.column.cellEvents.cellEditing.call(this.table, component); + } + + self.table.options.cellEditing.call(this.table, component); + + params = typeof cell.column.modules.edit.params === "function" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params; + + cellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params); + + //if editor returned, add to DOM, if false, abort edit + if (cellEditor !== false) { + + if (cellEditor instanceof Node) { + element.classList.add("tabulator-editing"); + cell.row.getElement().classList.add("tabulator-row-editing"); + while (element.firstChild) { + element.removeChild(element.firstChild); + }element.appendChild(cellEditor); + + //trigger onRendered Callback + rendered(); + + //prevent editing from triggering rowClick event + var children = element.children; + + for (var i = 0; i < children.length; i++) { + children[i].addEventListener("click", function (e) { + e.stopPropagation(); + }); + } + } else { + console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor); + element.blur(); + return false; + } + } else { + element.blur(); + return false; + } + + return true; + } else { + this.mouseClick = false; + element.blur(); + return false; + } + } else { + this.mouseClick = false; + element.blur(); + return false; + } + }; + + //default data editors + Edit.prototype.editors = { + + //input element + input: function input(cell, onRendered, success, cancel, editorParams) { + + //create and style input + var cellValue = cell.getValue(), + input = document.createElement("input"); + + input.setAttribute("type", editorParams.search ? "search" : "text"); + + input.style.padding = "4px"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = typeof cellValue !== "undefined" ? cellValue : ""; + + onRendered(function () { + input.focus(); + input.style.height = "100%"; + }); + + function onChange(e) { + if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value != cellValue) { + success(input.value); + } else { + cancel(); + } + } + + //submit new value on blur or change + input.addEventListener("change", onChange); + input.addEventListener("blur", onChange); + + //submit new value on enter + input.addEventListener("keydown", function (e) { + switch (e.keyCode) { + case 13: + success(input.value); + break; + + case 27: + cancel(); + break; + } + }); + + return input; + }, + + //resizable text area element + textarea: function textarea(cell, onRendered, success, cancel, editorParams) { + var self = this, + cellValue = cell.getValue(), + value = String(cellValue !== null && typeof cellValue !== "undefined" ? cellValue : ""), + count = (value.match(/(?:\r\n|\r|\n)/g) || []).length + 1, + input = document.createElement("textarea"), + scrollHeight = 0; + + //create and style input + input.style.display = "block"; + input.style.padding = "2px"; + input.style.height = "100%"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + input.style.whiteSpace = "pre-wrap"; + input.style.resize = "none"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = value; + + onRendered(function () { + input.focus(); + input.style.height = "100%"; + }); + + function onChange(e) { + + if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value != cellValue) { + success(input.value); + setTimeout(function () { + cell.getRow().normalizeHeight(); + }, 300); + } else { + cancel(); + } + } + + //submit new value on blur or change + input.addEventListener("change", onChange); + input.addEventListener("blur", onChange); + + input.addEventListener("keyup", function () { + + input.style.height = ""; + + var heightNow = input.scrollHeight; + + input.style.height = heightNow + "px"; + + if (heightNow != scrollHeight) { + scrollHeight = heightNow; + cell.getRow().normalizeHeight(); + } + }); + + input.addEventListener("keydown", function (e) { + if (e.keyCode == 27) { + cancel(); + } + }); + + return input; + }, + + //input element with type of number + number: function number(cell, onRendered, success, cancel, editorParams) { + + var cellValue = cell.getValue(), + input = document.createElement("input"); + + input.setAttribute("type", "number"); + + if (typeof editorParams.max != "undefined") { + input.setAttribute("max", editorParams.max); + } + + if (typeof editorParams.min != "undefined") { + input.setAttribute("min", editorParams.min); + } + + if (typeof editorParams.step != "undefined") { + input.setAttribute("step", editorParams.step); + } + + //create and style input + input.style.padding = "4px"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = cellValue; + + var blurFunc = function blurFunc(e) { + onChange(); + }; + + onRendered(function () { + //submit new value on blur + input.removeEventListener("blur", blurFunc); + + input.focus(); + input.style.height = "100%"; + + //submit new value on blur + input.addEventListener("blur", blurFunc); + }); + + function onChange() { + var value = input.value; + + if (!isNaN(value) && value !== "") { + value = Number(value); + } + + if (value != cellValue) { + success(value); + } else { + cancel(); + } + } + + //submit new value on enter + input.addEventListener("keydown", function (e) { + switch (e.keyCode) { + case 13: + // case 9: + onChange(); + break; + + case 27: + cancel(); + break; + } + }); + + return input; + }, + + //input element with type of number + range: function range(cell, onRendered, success, cancel, editorParams) { + + var cellValue = cell.getValue(), + input = document.createElement("input"); + + input.setAttribute("type", "range"); + + if (typeof editorParams.max != "undefined") { + input.setAttribute("max", editorParams.max); + } + + if (typeof editorParams.min != "undefined") { + input.setAttribute("min", editorParams.min); + } + + if (typeof editorParams.step != "undefined") { + input.setAttribute("step", editorParams.step); + } + + //create and style input + input.style.padding = "4px"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = cellValue; + + onRendered(function () { + input.focus(); + input.style.height = "100%"; + }); + + function onChange() { + var value = input.value; + + if (!isNaN(value) && value !== "") { + value = Number(value); + } + + if (value != cellValue) { + success(value); + } else { + cancel(); + } + } + + //submit new value on blur + input.addEventListener("blur", function (e) { + onChange(); + }); + + //submit new value on enter + input.addEventListener("keydown", function (e) { + switch (e.keyCode) { + case 13: + case 9: + onChange(); + break; + + case 27: + cancel(); + break; + } + }); + + return input; + }, + + //select + select: function select(cell, onRendered, success, cancel, editorParams) { + var self = this, + cellEl = cell.getElement(), + initialValue = cell.getValue(), + initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "", + input = document.createElement("input"), + listEl = document.createElement("div"), + dataItems = [], + displayItems = [], + currentItem = {}, + blurable = true; + + this.table.rowManager.element.addEventListener("scroll", cancelItem); + + if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === 'undefined' ? 'undefined' : _typeof(editorParams)) === "object" && !editorParams.values) { + console.warn("DEPRECATION WANRING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object"); + editorParams = { values: editorParams }; + } + + function getUniqueColumnValues(field) { + var output = {}, + data = self.table.getData(), + column; + + if (field) { + column = self.table.columnManager.getColumnByField(field); + } else { + column = cell.getColumn()._getSelf(); + } + + if (column) { + data.forEach(function (row) { + var val = column.getFieldValue(row); + + if (val !== null && typeof val !== "undefined" && val !== "") { + output[val] = true; + } + }); + + if (editorParams.sortValuesList) { + if (editorParams.sortValuesList == "asc") { + output = Object.keys(output).sort(); + } else { + output = Object.keys(output).sort().reverse(); + } + } else { + output = Object.keys(output); + } + } else { + console.warn("unable to find matching column to create select lookup list:", field); + } + + return output; + } + + function parseItems(inputValues, curentValue) { + var dataList = []; + var displayList = []; + + function processComplexListItem(item) { + var item = { + label: editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label) : item.label, + value: item.value, + element: false + }; + + if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) { + setCurrentItem(item); + } + + dataList.push(item); + displayList.push(item); + + return item; + } + + if (typeof inputValues == "function") { + inputValues = inputValues(cell); + } + + if (Array.isArray(inputValues)) { + inputValues.forEach(function (value) { + var item; + + if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") { + + if (value.options) { + item = { + label: value.label, + group: true, + element: false + }; + + displayList.push(item); + + value.options.forEach(function (item) { + processComplexListItem(item); + }); + } else { + processComplexListItem(value); + } + } else { + + item = { + label: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value, + value: value, + element: false + }; + + if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) { + setCurrentItem(item); + } + + dataList.push(item); + displayList.push(item); + } + }); + } else { + for (var key in inputValues) { + var item = { + label: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key], + value: key, + element: false + }; + + if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) { + setCurrentItem(item); + } + + dataList.push(item); + displayList.push(item); + } + } + + dataItems = dataList; + displayItems = displayList; + + fillList(); + } + + function fillList() { + while (listEl.firstChild) { + listEl.removeChild(listEl.firstChild); + }displayItems.forEach(function (item) { + var el = item.element; + + if (!el) { + + if (item.group) { + el = document.createElement("div"); + el.classList.add("tabulator-edit-select-list-group"); + el.tabIndex = 0; + el.innerHTML = item.label === "" ? " " : item.label; + } else { + el = document.createElement("div"); + el.classList.add("tabulator-edit-select-list-item"); + el.tabIndex = 0; + el.innerHTML = item.label === "" ? " " : item.label; + + el.addEventListener("click", function () { + setCurrentItem(item); + chooseItem(); + }); + + if (item === currentItem) { + el.classList.add("active"); + } + } + + el.addEventListener("mousedown", function () { + blurable = false; + + setTimeout(function () { + blurable = true; + }, 10); + }); + + item.element = el; + } + + listEl.appendChild(el); + }); + } + + function setCurrentItem(item) { + + if (currentItem && currentItem.element) { + currentItem.element.classList.remove("active"); + } + + currentItem = item; + input.value = item.label === " " ? "" : item.label; + + if (item.element) { + item.element.classList.add("active"); + } + } + + function chooseItem() { + hideList(); + + if (initialValue !== currentItem.value) { + initialValue = currentItem.value; + success(currentItem.value); + } else { + cancel(); + } + } + + function cancelItem() { + hideList(); + cancel(); + } + + function showList() { + if (!listEl.parentNode) { + + if (editorParams.values === true) { + parseItems(getUniqueColumnValues(), initialDisplayValue); + } else if (typeof editorParams.values === "string") { + parseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue); + } else { + parseItems(editorParams.values || [], initialDisplayValue); + } + + var offset = Tabulator.prototype.helpers.elOffset(cellEl); + + listEl.style.minWidth = cellEl.offsetWidth + "px"; + + listEl.style.top = offset.top + cellEl.offsetHeight + "px"; + listEl.style.left = offset.left + "px"; + document.body.appendChild(listEl); + } + } + + function hideList() { + if (listEl.parentNode) { + listEl.parentNode.removeChild(listEl); + } + + removeScrollListener(); + } + + function removeScrollListener() { + self.table.rowManager.element.removeEventListener("scroll", cancelItem); + } + + //style input + input.setAttribute("type", "text"); + + input.style.padding = "4px"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + input.style.cursor = "default"; + input.readOnly = this.currentCell != false; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = typeof initialValue !== "undefined" || initialValue === null ? initialValue : ""; + + if (editorParams.values === true) { + parseItems(getUniqueColumnValues(), initialValue); + } else if (typeof editorParams.values === "string") { + parseItems(getUniqueColumnValues(editorParams.values), initialValue); + } else { + parseItems(editorParams.values || [], initialValue); + } + + //allow key based navigation + input.addEventListener("keydown", function (e) { + var index; + + switch (e.keyCode) { + case 38: + //up arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + + index = dataItems.indexOf(currentItem); + + if (index > 0) { + setCurrentItem(dataItems[index - 1]); + } + break; + + case 40: + //down arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + + index = dataItems.indexOf(currentItem); + + if (index < dataItems.length - 1) { + if (index == -1) { + setCurrentItem(dataItems[0]); + } else { + setCurrentItem(dataItems[index + 1]); + } + } + break; + + case 37: //left arrow + case 39: + //right arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + break; + + case 13: + //enter + chooseItem(); + break; + + case 27: + //escape + cancelItem(); + break; + } + }); + + input.addEventListener("blur", function (e) { + if (blurable) { + cancelItem(); + } + }); + + input.addEventListener("focus", function (e) { + showList(); + }); + + //style list element + listEl = document.createElement("div"); + listEl.classList.add("tabulator-edit-select-list"); + + onRendered(function () { + input.style.height = "100%"; + input.focus(); + }); + + return input; + }, + + //autocomplete + autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) { + var self = this, + cellEl = cell.getElement(), + initialValue = cell.getValue(), + initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "", + input = document.createElement("input"), + listEl = document.createElement("div"), + allItems = [], + displayItems = [], + values = [], + currentItem = {}, + blurable = true; + + this.table.rowManager.element.addEventListener("scroll", cancelItem); + + function getUniqueColumnValues(field) { + var output = {}, + data = self.table.getData(), + column; + + if (field) { + column = self.table.columnManager.getColumnByField(field); + } else { + column = cell.getColumn()._getSelf(); + } + + if (column) { + data.forEach(function (row) { + var val = column.getFieldValue(row); + + if (val !== null && typeof val !== "undefined" && val !== "") { + output[val] = true; + } + }); + + if (editorParams.sortValuesList) { + if (editorParams.sortValuesList == "asc") { + output = Object.keys(output).sort(); + } else { + output = Object.keys(output).sort().reverse(); + } + } else { + output = Object.keys(output); + } + } else { + console.warn("unable to find matching column to create autocomplete lookup list:", field); + } + + return output; + } + + function parseItems(inputValues, curentValue) { + var itemList = []; + + if (Array.isArray(inputValues)) { + inputValues.forEach(function (value) { + var item = { + title: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value, + value: value, + element: false + }; + + if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) { + setCurrentItem(item); + } + + itemList.push(item); + }); + } else { + for (var key in inputValues) { + var item = { + title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key], + value: key, + element: false + }; + + if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) { + setCurrentItem(item); + } + + itemList.push(item); + } + } + + if (editorParams.searchFunc) { + itemList.forEach(function (item) { + item.search = { + title: item.title, + value: item.value + }; + }); + } + + allItems = itemList; + } + + function filterList(term, intialLoad) { + var matches = [], + searchObjs = [], + searchResults = []; + + if (editorParams.searchFunc) { + + allItems.forEach(function (item) { + searchObjs.push(item.search); + }); + + searchResults = editorParams.searchFunc(term, searchObjs); + + searchResults.forEach(function (result) { + var match = allItems.find(function (item) { + return item.search === result; + }); + + if (match) { + matches.push(match); + } + }); + } else { + if (term === "") { + + if (editorParams.showListOnEmpty) { + allItems.forEach(function (item) { + matches.push(item); + }); + } + } else { + allItems.forEach(function (item) { + + if (item.value !== null || typeof item.value !== "undefined") { + if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1) { + matches.push(item); + } + } + }); + } + } + + displayItems = matches; + + fillList(intialLoad); + } + + function fillList(intialLoad) { + var current = false; + + while (listEl.firstChild) { + listEl.removeChild(listEl.firstChild); + }displayItems.forEach(function (item) { + var el = item.element; + + if (!el) { + el = document.createElement("div"); + el.classList.add("tabulator-edit-select-list-item"); + el.tabIndex = 0; + el.innerHTML = item.title; + + el.addEventListener("click", function () { + setCurrentItem(item); + chooseItem(); + }); + + el.addEventListener("mousedown", function () { + blurable = false; + + setTimeout(function () { + blurable = true; + }, 10); + }); + + item.element = el; + + if (intialLoad && item.value == initialValue) { + input.value = item.title; + item.element.classList.add("active"); + current = true; + } + + if (item === currentItem) { + item.element.classList.add("active"); + current = true; + } + } + + listEl.appendChild(el); + }); + + if (!current) { + setCurrentItem(false); + } + } + + function setCurrentItem(item, showInputValue) { + if (currentItem && currentItem.element) { + currentItem.element.classList.remove("active"); + } + + currentItem = item; + + if (item && item.element) { + item.element.classList.add("active"); + } + } + + function chooseItem() { + hideList(); + + if (currentItem) { + if (initialValue !== currentItem.value) { + initialValue = currentItem.value; + input.value = currentItem.title; + success(currentItem.value); + } else { + cancel(); + } + } else { + if (editorParams.freetext) { + initialValue = input.value; + success(input.value); + } else { + if (editorParams.allowEmpty && input.value === "") { + initialValue = input.value; + success(input.value); + } else { + cancel(); + } + } + } + } + + function cancelItem() { + hideList(); + cancel(); + } + + function showList() { + if (!listEl.parentNode) { + while (listEl.firstChild) { + listEl.removeChild(listEl.firstChild); + }if (editorParams.values === true) { + values = getUniqueColumnValues(); + } else if (typeof editorParams.values === "string") { + values = getUniqueColumnValues(editorParams.values); + } else { + values = editorParams.values || []; + } + + parseItems(values, initialValue); + + var offset = Tabulator.prototype.helpers.elOffset(cellEl); + + listEl.style.minWidth = cellEl.offsetWidth + "px"; + + listEl.style.top = offset.top + cellEl.offsetHeight + "px"; + listEl.style.left = offset.left + "px"; + document.body.appendChild(listEl); + } + } + + function hideList() { + if (listEl.parentNode) { + listEl.parentNode.removeChild(listEl); + } + + removeScrollListener(); + } + + function removeScrollListener() { + self.table.rowManager.element.removeEventListener("scroll", cancelItem); + } + + //style input + input.setAttribute("type", "search"); + + input.style.padding = "4px"; + input.style.width = "100%"; + input.style.boxSizing = "border-box"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + //allow key based navigation + input.addEventListener("keydown", function (e) { + var index; + + switch (e.keyCode) { + case 38: + //up arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + + index = displayItems.indexOf(currentItem); + + if (index > 0) { + setCurrentItem(displayItems[index - 1]); + } else { + setCurrentItem(false); + } + break; + + case 40: + //down arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + + index = displayItems.indexOf(currentItem); + + if (index < displayItems.length - 1) { + if (index == -1) { + setCurrentItem(displayItems[0]); + } else { + setCurrentItem(displayItems[index + 1]); + } + } + break; + + case 37: //left arrow + case 39: + //right arrow + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + break; + + case 13: + //enter + chooseItem(); + break; + + case 27: + //escape + cancelItem(); + break; + + case 36: //home + case 35: + //end + //prevent table navigation while using input element + e.stopImmediatePropagation(); + break; + } + }); + + input.addEventListener("keyup", function (e) { + + switch (e.keyCode) { + case 38: //up arrow + case 37: //left arrow + case 39: //up arrow + case 40: //right arrow + case 13: //enter + case 27: + //escape + break; + + default: + filterList(input.value); + } + }); + + input.addEventListener("search", function (e) { + filterList(input.value); + }); + + input.addEventListener("blur", function (e) { + if (blurable) { + chooseItem(); + } + }); + + input.addEventListener("focus", function (e) { + var value = initialDisplayValue; + showList(); + input.value = value; + filterList(value, true); + }); + + //style list element + listEl = document.createElement("div"); + listEl.classList.add("tabulator-edit-select-list"); + + onRendered(function () { + input.style.height = "100%"; + input.focus(); + }); + + return input; + }, + + //start rating + star: function star(cell, onRendered, success, cancel, editorParams) { + var self = this, + element = cell.getElement(), + value = cell.getValue() || 0, + maxStars = element.getElementsByTagName("svg").length || 5, + size = element.getElementsByTagName("svg")[0] ? element.getElementsByTagName("svg")[0].getAttribute("width") : 14, + stars = [], + starsHolder = document.createElement("div"), + star = document.createElementNS('http://www.w3.org/2000/svg', "svg"); + + //change star type + function starChange(val) { + stars.forEach(function (star, i) { + if (i < val) { + if (self.table.browser == "ie") { + star.setAttribute("class", "tabulator-star-active"); + } else { + star.classList.replace("tabulator-star-inactive", "tabulator-star-active"); + } + + star.innerHTML = ''; + } else { + if (self.table.browser == "ie") { + star.setAttribute("class", "tabulator-star-inactive"); + } else { + star.classList.replace("tabulator-star-active", "tabulator-star-inactive"); + } + + star.innerHTML = ''; + } + }); + } + + //build stars + function buildStar(i) { + + var starHolder = document.createElement("span"); + var nextStar = star.cloneNode(true); + + stars.push(nextStar); + + starHolder.addEventListener("mouseenter", function (e) { + e.stopPropagation(); + e.stopImmediatePropagation(); + starChange(i); + }); + + starHolder.addEventListener("mousemove", function (e) { + e.stopPropagation(); + e.stopImmediatePropagation(); + }); + + starHolder.addEventListener("click", function (e) { + e.stopPropagation(); + e.stopImmediatePropagation(); + success(i); + }); + + starHolder.appendChild(nextStar); + starsHolder.appendChild(starHolder); + } + + //handle keyboard navigation value change + function changeValue(val) { + value = val; + starChange(val); + } + + //style cell + element.style.whiteSpace = "nowrap"; + element.style.overflow = "hidden"; + element.style.textOverflow = "ellipsis"; + + //style holding element + starsHolder.style.verticalAlign = "middle"; + starsHolder.style.display = "inline-block"; + starsHolder.style.padding = "4px"; + + //style star + star.setAttribute("width", size); + star.setAttribute("height", size); + star.setAttribute("viewBox", "0 0 512 512"); + star.setAttribute("xml:space", "preserve"); + star.style.padding = "0 1px"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + starsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + starsHolder.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + //create correct number of stars + for (var i = 1; i <= maxStars; i++) { + buildStar(i); + } + + //ensure value does not exceed number of stars + if (isNaN(value)) { value = 0; } + value = Math.min(parseInt(value), maxStars); + + // set initial styling of stars + starChange(value); + + starsHolder.addEventListener("mousemove", function (e) { + starChange(0); + }); + + starsHolder.addEventListener("click", function (e) { + success(0); + }); + + element.addEventListener("blur", function (e) { + cancel(); + }); + + //allow key based navigation + element.addEventListener("keydown", function (e) { + switch (e.keyCode) { + case 39: + //right arrow + changeValue(value + 1); + break; + + case 37: + //left arrow + changeValue(value - 1); + break; + + case 13: + //enter + success(value); + break; + + case 27: + //escape + cancel(); + break; + } + }); + + return starsHolder; + }, + + //draggable progress bar + progress: function progress(cell, onRendered, success, cancel, editorParams) { + var element = cell.getElement(), + max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max, + min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min, + percent = (max - min) / 100, + value = cell.getValue() || 0, + handle = document.createElement("div"), + bar = document.createElement("div"), + mouseDrag, + mouseDragWidth; + + //set new value + function updateValue() { + var calcVal = percent * Math.round(bar.offsetWidth / (element.clientWidth / 100)) + min; + success(calcVal); + element.setAttribute("aria-valuenow", calcVal); + element.setAttribute("aria-label", value); + } + + //style handle + handle.style.position = "absolute"; + handle.style.right = "0"; + handle.style.top = "0"; + handle.style.bottom = "0"; + handle.style.width = "5px"; + handle.classList.add("tabulator-progress-handle"); + + //style bar + bar.style.display = "inline-block"; + bar.style.position = "relative"; + // bar.style.top = "8px"; + // bar.style.bottom = "8px"; + // bar.style.left = "4px"; + // bar.style.marginRight = "4px"; + bar.style.height = "100%"; + bar.style.backgroundColor = "#488CE9"; + bar.style.maxWidth = "100%"; + bar.style.minWidth = "0%"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + bar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + bar.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + //style cell + element.style.padding = "4px 4px"; + + //make sure value is in range + value = Math.min(parseFloat(value), max); + value = Math.max(parseFloat(value), min); + + //workout percentage + value = Math.round((value - min) / percent); + // bar.style.right = value + "%"; + bar.style.width = value + "%"; + + element.setAttribute("aria-valuemin", min); + element.setAttribute("aria-valuemax", max); + + bar.appendChild(handle); + + handle.addEventListener("mousedown", function (e) { + mouseDrag = e.screenX; + mouseDragWidth = bar.offsetWidth; + }); + + handle.addEventListener("mouseover", function () { + handle.style.cursor = "ew-resize"; + }); + + element.addEventListener("mousemove", function (e) { + if (mouseDrag) { + bar.style.width = mouseDragWidth + e.screenX - mouseDrag + "px"; + } + }); + + element.addEventListener("mouseup", function (e) { + if (mouseDrag) { + e.stopPropagation(); + e.stopImmediatePropagation(); + + mouseDrag = false; + mouseDragWidth = false; + + updateValue(); + } + }); + + //allow key based navigation + element.addEventListener("keydown", function (e) { + switch (e.keyCode) { + case 39: + //right arrow + bar.style.width = bar.clientWidth + element.clientWidth / 100 + "px"; + break; + + case 37: + //left arrow + bar.style.width = bar.clientWidth - element.clientWidth / 100 + "px"; + break; + + case 13: + //enter + updateValue(); + break; + + case 27: + //escape + cancel(); + break; + + } + }); + + element.addEventListener("blur", function () { + cancel(); + }); + + return bar; + }, + + //checkbox + tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) { + var value = cell.getValue(), + input = document.createElement("input"), + tristate = editorParams.tristate, + indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue, + indetermState = false; + + input.setAttribute("type", "checkbox"); + input.style.marginTop = "5px"; + input.style.boxSizing = "border-box"; + + if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") { + for (var key in editorParams.elementAttributes) { + if (key.charAt(0) == "+") { + key = key.slice(1); + input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]); + } else { + input.setAttribute(key, editorParams.elementAttributes[key]); + } + } + } + + input.value = value; + + if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) { + indetermState = true; + input.indeterminate = true; + } + + if (this.table.browser != "firefox") { + //prevent blur issue on mac firefox + onRendered(function () { + input.focus(); + }); + } + + input.checked = value === true || value === "true" || value === "True" || value === 1; + + function setValue(blur) { + if (tristate) { + if (!blur) { + if (input.checked && !indetermState) { + input.checked = false; + input.indeterminate = true; + indetermState = true; + return indetermValue; + } else { + indetermState = false; + return input.checked; + } + } else { + if (indetermState) { + return indetermValue; + } else { + return input.checked; + } + } + } else { + return input.checked; + } + } + + //submit new value on blur + input.addEventListener("change", function (e) { + success(setValue()); + }); + + input.addEventListener("blur", function (e) { + success(setValue(true)); + }); + + //submit new value on enter + input.addEventListener("keydown", function (e) { + if (e.keyCode == 13) { + success(setValue()); + } + if (e.keyCode == 27) { + cancel(); + } + }); + + return input; + } + }; + + Tabulator.prototype.registerModule("edit", Edit); + + var Filter = function Filter(table) { + + this.table = table; //hold Tabulator object + + this.filterList = []; //hold filter list + this.headerFilters = {}; //hold column filters + this.headerFilterElements = []; //hold header filter elements for manipulation + this.headerFilterColumns = []; //hold columns that use header filters + + this.changed = false; //has filtering changed since last render + }; + + //initialize column header filter + Filter.prototype.initializeColumn = function (column, value) { + var self = this, + field = column.getField(), + params; + + //handle successfull value change + function success(value) { + var filterType = column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text" || column.modules.filter.tagType == "textarea" ? "partial" : "match", + type = "", + filterFunc; + + if (typeof column.modules.filter.prevSuccess === "undefined" || column.modules.filter.prevSuccess !== value) { + + column.modules.filter.prevSuccess = value; + + if (!column.modules.filter.emptyFunc(value)) { + column.modules.filter.value = value; + + switch (_typeof(column.definition.headerFilterFunc)) { + case "string": + if (self.filters[column.definition.headerFilterFunc]) { + type = column.definition.headerFilterFunc; + filterFunc = function filterFunc(data) { + var params = column.definition.headerFilterFuncParams || {}; + var fieldVal = column.getFieldValue(data); + + params = typeof params === "function" ? params(value, fieldVal, data) : params; + + return self.filters[column.definition.headerFilterFunc](value, fieldVal, data, params); + }; + } else { + console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc); + } + break; + + case "function": + filterFunc = function filterFunc(data) { + var params = column.definition.headerFilterFuncParams || {}; + var fieldVal = column.getFieldValue(data); + + params = typeof params === "function" ? params(value, fieldVal, data) : params; + + return column.definition.headerFilterFunc(value, fieldVal, data, params); + }; + + type = filterFunc; + break; + } + + if (!filterFunc) { + switch (filterType) { + case "partial": + filterFunc = function filterFunc(data) { + var colVal = column.getFieldValue(data); + + if (typeof colVal !== 'undefined' && colVal !== null) { + return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1; + } else { + return false; + } + }; + type = "like"; + break; + + default: + filterFunc = function filterFunc(data) { + return column.getFieldValue(data) == value; + }; + type = "="; + } + } + + self.headerFilters[field] = { value: value, func: filterFunc, type: type }; + } else { + delete self.headerFilters[field]; + } + + self.changed = true; + + self.table.rowManager.filterRefresh(); + } + } + + column.modules.filter = { + success: success, + attrType: false, + tagType: false, + emptyFunc: false + }; + + this.generateHeaderFilterElement(column); + }; + + Filter.prototype.generateHeaderFilterElement = function (column, initialValue) { + var _this35 = this; + + var self = this, + success = column.modules.filter.success, + field = column.getField(), + filterElement, + editor, + editorElement, + cellWrapper, + typingTimer, + searchTrigger, + params; + + //handle aborted edit + function cancel() {} + + if (column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode) { + var oldFilterElement = column.modules.filter.headerElement.parentNode; + var oldFilterElementIndex = self.headerFilterElements.indexOf(oldFilterElement); + if (oldFilterElementIndex >= 0) { + self.headerFilterElements.splice(oldFilterElementIndex, 1); + } + + var oldColumnIndex = self.headerFilterColumns.indexOf(oldColumnIndex); + if (oldColumnIndex >= 0) { + self.headerFilterColumns.splice(oldColumnIndex, 1); + } + + column.contentElement.removeChild(oldFilterElement); + } + + if (field) { + + //set empty value function + column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function (value) { + return !value && value !== "0"; + }; + + filterElement = document.createElement("div"); + filterElement.classList.add("tabulator-header-filter"); + + //set column editor + switch (_typeof(column.definition.headerFilter)) { + case "string": + if (self.table.modules.edit.editors[column.definition.headerFilter]) { + editor = self.table.modules.edit.editors[column.definition.headerFilter]; + + if ((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck) { + column.modules.filter.emptyFunc = function (value) { + return value !== true && value !== false; + }; + } + } else { + console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor); + } + break; + + case "function": + editor = column.definition.headerFilter; + break; + + case "boolean": + if (column.modules.edit && column.modules.edit.editor) { + editor = column.modules.edit.editor; + } else { + if (column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]) { + editor = self.table.modules.edit.editors[column.definition.formatter]; + + if ((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck) { + column.modules.filter.emptyFunc = function (value) { + return value !== true && value !== false; + }; + } + } else { + editor = self.table.modules.edit.editors["input"]; + } + } + break; + } + + if (editor) { + + cellWrapper = { + getValue: function getValue() { + return typeof initialValue !== "undefined" ? initialValue : ""; + }, + getField: function getField() { + return column.definition.field; + }, + getElement: function getElement() { + return filterElement; + }, + getColumn: function getColumn() { + return column.getComponent(); + }, + getRow: function getRow() { + return { + normalizeHeight: function normalizeHeight() {} + }; + } + }; + + params = column.definition.headerFilterParams || {}; + + params = typeof params === "function" ? params.call(self.table) : params; + + editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params); + + if (!editorElement) { + console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false"); + return; + } + + if (!(editorElement instanceof Node)) { + console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement); + return; + } + + //set Placeholder Text + if (field) { + self.table.modules.localize.bind("headerFilters|columns|" + column.definition.field, function (value) { + editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.table.modules.localize.getText("headerFilters|default")); + }); + } else { + self.table.modules.localize.bind("headerFilters|default", function (value) { + editorElement.setAttribute("placeholder", typeof self.column.definition.headerFilterPlaceholder !== "undefined" && self.column.definition.headerFilterPlaceholder ? self.column.definition.headerFilterPlaceholder : value); + }); + } + + //focus on element on click + editorElement.addEventListener("click", function (e) { + e.stopPropagation(); + editorElement.focus(); + }); + + editorElement.addEventListener("focus", function (e) { + var left = _this35.table.columnManager.element.scrollLeft; + + if (left !== _this35.table.rowManager.element.scrollLeft) { + _this35.table.rowManager.scrollHorizontal(left); + _this35.table.columnManager.scrollHorizontal(left); + } + }); + + //live update filters as user types + typingTimer = false; + + searchTrigger = function searchTrigger(e) { + if (typingTimer) { + clearTimeout(typingTimer); + } + + typingTimer = setTimeout(function () { + success(editorElement.value); + }, 300); + }; + + column.modules.filter.headerElement = editorElement; + column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : ""; + column.modules.filter.tagType = editorElement.tagName.toLowerCase(); + + if (column.definition.headerFilterLiveFilter !== false) { + + if (!(column.definition.headerFilter === 'autocomplete' || column.definition.headerFilter === 'tickCross' || (column.definition.editor === 'autocomplete' || column.definition.editor === 'tickCross') && column.definition.headerFilter === true)) { + editorElement.addEventListener("keyup", searchTrigger); + editorElement.addEventListener("search", searchTrigger); + + //update number filtered columns on change + if (column.modules.filter.attrType == "number") { + editorElement.addEventListener("change", function (e) { + success(editorElement.value); + }); + } + + //change text inputs to search inputs to allow for clearing of field + if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") { + editorElement.setAttribute("type", "search"); + // editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click + } + } + + //prevent input and select elements from propegating click to column sorters etc + if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") { + editorElement.addEventListener("mousedown", function (e) { + e.stopPropagation(); + }); + } + } + + filterElement.appendChild(editorElement); + + column.contentElement.appendChild(filterElement); + + self.headerFilterElements.push(editorElement); + self.headerFilterColumns.push(column); + } + } else { + console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title); + } + }; + + //hide all header filter elements (used to ensure correct column widths in "fitData" layout mode) + Filter.prototype.hideHeaderFilterElements = function () { + this.headerFilterElements.forEach(function (element) { + element.style.display = 'none'; + }); + }; + + //show all header filter elements (used to ensure correct column widths in "fitData" layout mode) + Filter.prototype.showHeaderFilterElements = function () { + this.headerFilterElements.forEach(function (element) { + element.style.display = ''; + }); + }; + + //programatically set value of header filter + Filter.prototype.setHeaderFilterFocus = function (column) { + if (column.modules.filter && column.modules.filter.headerElement) { + column.modules.filter.headerElement.focus(); + } else { + console.warn("Column Filter Focus Error - No header filter set on column:", column.getField()); + } + }; + + //programatically set value of header filter + Filter.prototype.setHeaderFilterValue = function (column, value) { + if (column) { + if (column.modules.filter && column.modules.filter.headerElement) { + this.generateHeaderFilterElement(column, value); + column.modules.filter.success(value); + } else { + console.warn("Column Filter Error - No header filter set on column:", column.getField()); + } + } + }; + + Filter.prototype.reloadHeaderFilter = function (column) { + if (column) { + if (column.modules.filter && column.modules.filter.headerElement) { + this.generateHeaderFilterElement(column, column.modules.filter.value); + } else { + console.warn("Column Filter Error - No header filter set on column:", column.getField()); + } + } + }; + + //check if the filters has changed since last use + Filter.prototype.hasChanged = function () { + var changed = this.changed; + this.changed = false; + return changed; + }; + + //set standard filters + Filter.prototype.setFilter = function (field, type, value) { + var self = this; + + self.filterList = []; + + if (!Array.isArray(field)) { + field = [{ field: field, type: type, value: value }]; + } + + self.addFilter(field); + }; + + //add filter to array + Filter.prototype.addFilter = function (field, type, value) { + var self = this; + + if (!Array.isArray(field)) { + field = [{ field: field, type: type, value: value }]; + } + + field.forEach(function (filter) { + + filter = self.findFilter(filter); + + if (filter) { + self.filterList.push(filter); + + self.changed = true; + } + }); + + if (this.table.options.persistentFilter && this.table.modExists("persistence", true)) { + this.table.modules.persistence.save("filter"); + } + }; + + Filter.prototype.findFilter = function (filter) { + var self = this, + column; + + if (Array.isArray(filter)) { + return this.findSubFilters(filter); + } + + var filterFunc = false; + + if (typeof filter.field == "function") { + filterFunc = function filterFunc(data) { + return filter.field(data, filter.type || {}); // pass params to custom filter function + }; + } else { + + if (self.filters[filter.type]) { + + column = self.table.columnManager.getColumnByField(filter.field); + + if (column) { + filterFunc = function filterFunc(data) { + return self.filters[filter.type](filter.value, column.getFieldValue(data)); + }; + } else { + filterFunc = function filterFunc(data) { + return self.filters[filter.type](filter.value, data[filter.field]); + }; + } + } else { + console.warn("Filter Error - No such filter type found, ignoring: ", filter.type); + } + } + + filter.func = filterFunc; + + return filter.func ? filter : false; + }; + + Filter.prototype.findSubFilters = function (filters) { + var self = this, + output = []; + + filters.forEach(function (filter) { + filter = self.findFilter(filter); + + if (filter) { + output.push(filter); + } + }); + + return output.length ? output : false; + }; + + //get all filters + Filter.prototype.getFilters = function (all, ajax) { + var output = []; + + if (all) { + output = this.getHeaderFilters(); + } + + if (ajax) { + output.forEach(function (item) { + if (typeof item.type == "function") { + item.type = "function"; + } + }); + } + + output = output.concat(this.filtersToArray(this.filterList, ajax)); + + return output; + }; + + //filter to Object + Filter.prototype.filtersToArray = function (filterList, ajax) { + var _this36 = this; + + var output = []; + + filterList.forEach(function (filter) { + var item; + + if (Array.isArray(filter)) { + output.push(_this36.filtersToArray(filter, ajax)); + } else { + item = { field: filter.field, type: filter.type, value: filter.value }; + + if (ajax) { + if (typeof item.type == "function") { + item.type = "function"; + } + } + + output.push(item); + } + }); + + return output; + }; + + //get all filters + Filter.prototype.getHeaderFilters = function () { + var self = this, + output = []; + + for (var key in this.headerFilters) { + output.push({ field: key, type: this.headerFilters[key].type, value: this.headerFilters[key].value }); + } + + return output; + }; + + //remove filter from array + Filter.prototype.removeFilter = function (field, type, value) { + var self = this; + + if (!Array.isArray(field)) { + field = [{ field: field, type: type, value: value }]; + } + + field.forEach(function (filter) { + var index = -1; + + if (_typeof(filter.field) == "object") { + index = self.filterList.findIndex(function (element) { + return filter === element; + }); + } else { + index = self.filterList.findIndex(function (element) { + return filter.field === element.field && filter.type === element.type && filter.value === element.value; + }); + } + + if (index > -1) { + self.filterList.splice(index, 1); + self.changed = true; + } else { + console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type); + } + }); + + if (this.table.options.persistentFilter && this.table.modExists("persistence", true)) { + this.table.modules.persistence.save("filter"); + } + }; + + //clear filters + Filter.prototype.clearFilter = function (all) { + this.filterList = []; + + if (all) { + this.clearHeaderFilter(); + } + + this.changed = true; + + if (this.table.options.persistentFilter && this.table.modExists("persistence", true)) { + this.table.modules.persistence.save("filter"); + } + }; + + //clear header filters + Filter.prototype.clearHeaderFilter = function () { + var self = this; + + this.headerFilters = {}; + + this.headerFilterColumns.forEach(function (column) { + column.modules.filter.value = null; + column.modules.filter.prevSuccess = undefined; + self.reloadHeaderFilter(column); + }); + + this.changed = true; + }; + + //search data and return matching rows + Filter.prototype.search = function (searchType, field, type, value) { + var self = this, + activeRows = [], + filterList = []; + + if (!Array.isArray(field)) { + field = [{ field: field, type: type, value: value }]; + } + + field.forEach(function (filter) { + filter = self.findFilter(filter); + + if (filter) { + filterList.push(filter); + } + }); + + this.table.rowManager.rows.forEach(function (row) { + var match = true; + + filterList.forEach(function (filter) { + if (!self.filterRecurse(filter, row.getData())) { + match = false; + } + }); + + if (match) { + activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent()); + } + }); + + return activeRows; + }; + + //filter row array + Filter.prototype.filter = function (rowList, filters) { + var self = this, + activeRows = [], + activeRowComponents = []; + + if (self.table.options.dataFiltering) { + self.table.options.dataFiltering.call(self.table, self.getFilters()); + } + + if (!self.table.options.ajaxFiltering && (self.filterList.length || Object.keys(self.headerFilters).length)) { + + rowList.forEach(function (row) { + if (self.filterRow(row)) { + activeRows.push(row); + } + }); + } else { + activeRows = rowList.slice(0); + } + + if (self.table.options.dataFiltered) { + + activeRows.forEach(function (row) { + activeRowComponents.push(row.getComponent()); + }); + + self.table.options.dataFiltered.call(self.table, self.getFilters(), activeRowComponents); + } + + return activeRows; + }; + + //filter individual row + Filter.prototype.filterRow = function (row, filters) { + var self = this, + match = true, + data = row.getData(); + + self.filterList.forEach(function (filter) { + if (!self.filterRecurse(filter, data)) { + match = false; + } + }); + + for (var field in self.headerFilters) { + if (!self.headerFilters[field].func(data)) { + match = false; + } + } + + return match; + }; + + Filter.prototype.filterRecurse = function (filter, data) { + var self = this, + match = false; + + if (Array.isArray(filter)) { + filter.forEach(function (subFilter) { + if (self.filterRecurse(subFilter, data)) { + match = true; + } + }); + } else { + match = filter.func(data); + } + + return match; + }; + + //list of available filters + Filter.prototype.filters = { + + //equal to + "=": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal == filterVal ? true : false; + }, + + //less than + "<": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal < filterVal ? true : false; + }, + + //less than or equal to + "<=": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal <= filterVal ? true : false; + }, + + //greater than + ">": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal > filterVal ? true : false; + }, + + //greater than or equal to + ">=": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal >= filterVal ? true : false; + }, + + //not equal to + "!=": function _(filterVal, rowVal, rowData, filterParams) { + return rowVal != filterVal ? true : false; + }, + + "regex": function regex(filterVal, rowVal, rowData, filterParams) { + + if (typeof filterVal == "string") { + filterVal = new RegExp(filterVal); + } + + return filterVal.test(rowVal); + }, + + //contains the string + "like": function like(filterVal, rowVal, rowData, filterParams) { + if (filterVal === null || typeof filterVal === "undefined") { + return rowVal === filterVal ? true : false; + } else { + if (typeof rowVal !== 'undefined' && rowVal !== null) { + return String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1; + } else { + return false; + } + } + }, + + //in array + "in": function _in(filterVal, rowVal, rowData, filterParams) { + if (Array.isArray(filterVal)) { + return filterVal.indexOf(rowVal) > -1; + } else { + console.warn("Filter Error - filter value is not an array:", filterVal); + return false; + } + } + }; + + Tabulator.prototype.registerModule("filter", Filter); + var Format = function Format(table) { + this.table = table; //hold Tabulator object + }; + + //initialize column formatter + Format.prototype.initializeColumn = function (column) { + var self = this, + config = { params: column.definition.formatterParams || {} }; + + //set column formatter + switch (_typeof(column.definition.formatter)) { + case "string": + + if (column.definition.formatter === "tick") { + column.definition.formatter = "tickCross"; + + if (typeof config.params.crossElement == "undefined") { + config.params.crossElement = false; + } + + console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false"); + } + + if (self.formatters[column.definition.formatter]) { + config.formatter = self.formatters[column.definition.formatter]; + } else { + console.warn("Formatter Error - No such formatter found: ", column.definition.formatter); + config.formatter = self.formatters.plaintext; + } + break; + + case "function": + config.formatter = column.definition.formatter; + break; + + default: + config.formatter = self.formatters.plaintext; + break; + } + + column.modules.format = config; + }; + + Format.prototype.cellRendered = function (cell) { + if (cell.column.modules.format.renderedCallback) { + cell.column.modules.format.renderedCallback(); + } + }; + + //return a formatted value for a cell + Format.prototype.formatValue = function (cell) { + var component = cell.getComponent(), + params = typeof cell.column.modules.format.params === "function" ? cell.column.modules.format.params(component) : cell.column.modules.format.params; + + function onRendered(callback) { + cell.column.modules.format.renderedCallback = callback; + } + + return cell.column.modules.format.formatter.call(this, component, params, onRendered); + }; + + Format.prototype.sanitizeHTML = function (value) { + if (value) { + var entityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', + '`': '`', + '=': '=' + }; + + return String(value).replace(/[&<>"'`=\/]/g, function (s) { + return entityMap[s]; + }); + } else { + return value; + } + }; + + Format.prototype.emptyToSpace = function (value) { + return value === null || typeof value === "undefined" ? " " : value; + }; + + //get formatter for cell + Format.prototype.getFormatter = function (formatter) { + var formatter; + + switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) { + case "string": + if (this.formatters[formatter]) { + formatter = this.formatters[formatter]; + } else { + console.warn("Formatter Error - No such formatter found: ", formatter); + formatter = this.formatters.plaintext; + } + break; + + case "function": + formatter = formatter; + break; + + default: + formatter = this.formatters.plaintext; + break; + } + + return formatter; + }; + + //default data formatters + Format.prototype.formatters = { + //plain text value + plaintext: function plaintext(cell, formatterParams, onRendered) { + return this.emptyToSpace(this.sanitizeHTML(cell.getValue())); + }, + + //html text value + html: function html(cell, formatterParams, onRendered) { + return cell.getValue(); + }, + + //multiline text area + textarea: function textarea(cell, formatterParams, onRendered) { + cell.getElement().style.whiteSpace = "pre-wrap"; + return this.emptyToSpace(this.sanitizeHTML(cell.getValue())); + }, + + //currency formatting + money: function money(cell, formatterParams, onRendered) { + var floatVal = parseFloat(cell.getValue()), + number, + integer, + decimal, + rgx; + + var decimalSym = formatterParams.decimal || "."; + var thousandSym = formatterParams.thousand || ","; + var symbol = formatterParams.symbol || ""; + var after = !!formatterParams.symbolAfter; + var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2; + + if (isNaN(floatVal)) { + return this.emptyToSpace(this.sanitizeHTML(cell.getValue())); + } + + number = precision !== false ? floatVal.toFixed(precision) : floatVal; + number = String(number).split("."); + + integer = number[0]; + decimal = number.length > 1 ? decimalSym + number[1] : ""; + + rgx = /(\d+)(\d{3})/; + + while (rgx.test(integer)) { + integer = integer.replace(rgx, "$1" + thousandSym + "$2"); + } + + return after ? integer + decimal + symbol : symbol + integer + decimal; + }, + + //clickable anchor tag + link: function link(cell, formatterParams, onRendered) { + var value = cell.getValue(), + urlPrefix = formatterParams.urlPrefix || "", + label = this.emptyToSpace(value), + el = document.createElement("a"), + data; + + if (label === " ") { return; } + if (formatterParams.labelField) { + data = cell.getData(); + label = data[formatterParams.labelField]; + } + + if (formatterParams.label) { + switch (_typeof(formatterParams.label)) { + case "string": + label = formatterParams.label; + break; + + case "function": + label = formatterParams.label(cell); + break; + } + } + + if (formatterParams.urlField) { + data = cell.getData(); + value = data[formatterParams.urlField]; + } + + if (formatterParams.url) { + switch (_typeof(formatterParams.url)) { + case "string": + value = formatterParams.url; + break; + + case "function": + value = formatterParams.url(cell); + break; + } + } + + el.setAttribute("href", urlPrefix + value); + + if (formatterParams.target) { + el.setAttribute("target", formatterParams.target); + } + + el.innerHTML = this.emptyToSpace(this.sanitizeHTML(label)); + + return el; + }, + + //image element + image: function image(cell, formatterParams, onRendered) { + var el = document.createElement("img"); + el.setAttribute("src", cell.getValue()); + + switch (_typeof(formatterParams.height)) { + case "number": + el.style.height = formatterParams.height + "px"; + break; + + case "string": + el.style.height = formatterParams.height; + break; + } + + switch (_typeof(formatterParams.width)) { + case "number": + el.style.width = formatterParams.width + "px"; + break; + + case "string": + el.style.width = formatterParams.width; + break; + } + + el.addEventListener("load", function () { + cell.getRow().normalizeHeight(); + }); + + return el; + }, + + //tick or cross + tickCross: function tickCross(cell, formatterParams, onRendered) { + var value = cell.getValue(), + element = cell.getElement(), + empty = formatterParams.allowEmpty, + truthy = formatterParams.allowTruthy, + tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '', + cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : ''; + + if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") { + element.setAttribute("aria-checked", true); + return tick || ""; + } else { + if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) { + element.setAttribute("aria-checked", "mixed"); + return ""; + } else { + element.setAttribute("aria-checked", false); + return cross || ""; + } + } + }, + + datetime: function datetime(cell, formatterParams, onRendered) { + var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss"; + var outputFormat = formatterParams.outputFormat || "DD/MM/YYYY hh:mm:ss"; + var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : ""; + var value = cell.getValue(); + + var newDatetime = moment(value, inputFormat); + + if (newDatetime.isValid()) { + return newDatetime.format(outputFormat); + } else { + + if (invalid === true) { + return value; + } else if (typeof invalid === "function") { + return invalid(value); + } else { + return invalid; + } + } + }, + + datetimediff: function datetime(cell, formatterParams, onRendered) { + var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss"; + var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : ""; + var suffix = typeof formatterParams.suffix !== "undefined" ? formatterParams.suffix : false; + var unit = typeof formatterParams.unit !== "undefined" ? formatterParams.unit : undefined; + var humanize = typeof formatterParams.humanize !== "undefined" ? formatterParams.humanize : false; + var date = typeof formatterParams.date !== "undefined" ? formatterParams.date : moment(); + var value = cell.getValue(); + + var newDatetime = moment(value, inputFormat); + + if (newDatetime.isValid()) { + if (humanize) { + return moment.duration(newDatetime.diff(date)).humanize(suffix); + } else { + return newDatetime.diff(date, unit) + (suffix ? " " + suffix : ""); + } + } else { + + if (invalid === true) { + return value; + } else if (typeof invalid === "function") { + return invalid(value); + } else { + return invalid; + } + } + }, + + //select + lookup: function lookup(cell, formatterParams, onRendered) { + var value = cell.getValue(); + + if (typeof formatterParams[value] === "undefined") { + console.warn('Missing display value for ' + value); + return value; + } + + return formatterParams[value]; + }, + + //star rating + star: function star(cell, formatterParams, onRendered) { + var value = cell.getValue(), + element = cell.getElement(), + maxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5, + stars = document.createElement("span"), + star = document.createElementNS('http://www.w3.org/2000/svg', "svg"), + starActive = '', + starInactive = ''; + + if (isNaN(value)) { return; } + //style stars holder + stars.style.verticalAlign = "middle"; + + //style star + star.setAttribute("width", "14"); + star.setAttribute("height", "14"); + star.setAttribute("viewBox", "0 0 512 512"); + star.setAttribute("xml:space", "preserve"); + star.style.padding = "0 1px"; + + value = parseInt(value) < maxStars ? parseInt(value) : maxStars; + + for (var i = 1; i <= maxStars; i++) { + var nextStar = star.cloneNode(true); + nextStar.innerHTML = i <= value ? starActive : starInactive; + + stars.appendChild(nextStar); + } + + element.style.whiteSpace = "nowrap"; + element.style.overflow = "hidden"; + element.style.textOverflow = "ellipsis"; + + element.setAttribute("aria-label", value); + + return stars; + }, + + traffic: function traffic(cell, formatterParams, onRendered) { + var value = this.sanitizeHTML(cell.getValue()) || 0, + el = document.createElement("span"), + max = formatterParams && formatterParams.max ? formatterParams.max : 100, + min = formatterParams && formatterParams.min ? formatterParams.min : 0, + colors = formatterParams && typeof formatterParams.color !== "undefined" ? formatterParams.color : ["red", "orange", "green"], + color = "#666666", + percent, + percentValue; + + if (isNaN(value) || typeof cell.getValue() === "undefined") { + return; + } + + el.classList.add("tabulator-traffic-light"); + + //make sure value is in range + percentValue = parseFloat(value) <= max ? parseFloat(value) : max; + percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min; + + //workout percentage + percent = (max - min) / 100; + percentValue = Math.round((percentValue - min) / percent); + + //set color + switch (typeof colors === 'undefined' ? 'undefined' : _typeof(colors)) { + case "string": + color = colors; + break; + case "function": + color = colors(value); + break; + case "object": + if (Array.isArray(colors)) { + var unit = 100 / colors.length; + var index = Math.floor(percentValue / unit); + + index = Math.min(index, colors.length - 1); + index = Math.max(index, 0); + color = colors[index]; + break; + } + } + + el.style.backgroundColor = color; + + return el; + }, + + //progress bar + progress: function progress(cell, formatterParams, onRendered) { + //progress bar + var value = this.sanitizeHTML(cell.getValue()) || 0, + element = cell.getElement(), + max = formatterParams && formatterParams.max ? formatterParams.max : 100, + min = formatterParams && formatterParams.min ? formatterParams.min : 0, + legendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : "center", + percent, + percentValue, + color, + legend, + legendColor, + top, + left, + right, + bottom; + + //make sure value is in range + percentValue = parseFloat(value) <= max ? parseFloat(value) : max; + percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min; + + //workout percentage + percent = (max - min) / 100; + percentValue = Math.round((percentValue - min) / percent); + + //set bar color + switch (_typeof(formatterParams.color)) { + case "string": + color = formatterParams.color; + break; + case "function": + color = formatterParams.color(value); + break; + case "object": + if (Array.isArray(formatterParams.color)) { + var unit = 100 / formatterParams.color.length; + var index = Math.floor(percentValue / unit); + + index = Math.min(index, formatterParams.color.length - 1); + index = Math.max(index, 0); + color = formatterParams.color[index]; + break; + } + default: + color = "#2DC214"; + } + + //generate legend + switch (_typeof(formatterParams.legend)) { + case "string": + legend = formatterParams.legend; + break; + case "function": + legend = formatterParams.legend(value); + break; + case "boolean": + legend = value; + break; + default: + legend = false; + } + + //set legend color + switch (_typeof(formatterParams.legendColor)) { + case "string": + legendColor = formatterParams.legendColor; + break; + case "function": + legendColor = formatterParams.legendColor(value); + break; + case "object": + if (Array.isArray(formatterParams.legendColor)) { + var unit = 100 / formatterParams.legendColor.length; + var index = Math.floor(percentValue / unit); + + index = Math.min(index, formatterParams.legendColor.length - 1); + index = Math.max(index, 0); + legendColor = formatterParams.legendColor[index]; + } + break; + default: + legendColor = "#000"; + } + + element.style.minWidth = "30px"; + element.style.position = "relative"; + + element.setAttribute("aria-label", percentValue); + + return "
" + (legend ? "
" + legend + "
" : ""); + }, + + //background color + color: function color(cell, formatterParams, onRendered) { + cell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue()); + return ""; + }, + + //tick icon + buttonTick: function buttonTick(cell, formatterParams, onRendered) { + return ''; + }, + + //cross icon + buttonCross: function buttonCross(cell, formatterParams, onRendered) { + return ''; + }, + + //current row number + rownum: function rownum(cell, formatterParams, onRendered) { + return this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1; + }, + + //row handle + handle: function handle(cell, formatterParams, onRendered) { + cell.getElement().classList.add("tabulator-row-handle"); + return "
"; + }, + + responsiveCollapse: function responsiveCollapse(cell, formatterParams, onRendered) { + var self = this, + open = false, + el = document.createElement("div"); + + function toggleList(isOpen) { + var collapse = cell.getRow().getElement().getElementsByClassName("tabulator-responsive-collapse")[0]; + + open = isOpen; + + if (open) { + el.classList.add("open"); + if (collapse) { + collapse.style.display = ''; + } + } else { + el.classList.remove("open"); + if (collapse) { + collapse.style.display = 'none'; + } + } + } + + el.classList.add("tabulator-responsive-collapse-toggle"); + el.innerHTML = "+-"; + + cell.getElement().classList.add("tabulator-row-handle"); + + if (self.table.options.responsiveLayoutCollapseStartOpen) { + open = true; + } + + el.addEventListener("click", function (e) { + e.stopImmediatePropagation(); + toggleList(!open); + }); + + toggleList(open); + + return el; + }, + + rowSelection: function rowSelection(cell) { + var _this37 = this; + + var checkbox = document.createElement("input"); + + checkbox.type = 'checkbox'; + + if (this.table.modExists("selectRow", true)) { + + checkbox.addEventListener("click", function (e) { + e.stopPropagation(); + }); + + if (typeof cell.getRow == 'function') { + var row = cell.getRow(); + + checkbox.addEventListener("change", function (e) { + row.toggleSelect(); + }); + + checkbox.checked = row.isSelected(); + this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox); + } else { + checkbox.addEventListener("change", function (e) { + if (_this37.table.modules.selectRow.selectedRows.length) { + _this37.table.deselectRow(); + } else { + _this37.table.selectRow(); + } + }); + + this.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox); + } + } + return checkbox; + } + }; + + Tabulator.prototype.registerModule("format", Format); + + var FrozenColumns = function FrozenColumns(table) { + this.table = table; //hold Tabulator object + this.leftColumns = []; + this.rightColumns = []; + this.leftMargin = 0; + this.rightMargin = 0; + this.rightPadding = 0; + this.initializationMode = "left"; + this.active = false; + this.scrollEndTimer = false; + }; + + //reset initial state + FrozenColumns.prototype.reset = function () { + this.initializationMode = "left"; + this.leftColumns = []; + this.rightColumns = []; + this.leftMargin = 0; + this.rightMargin = 0; + this.rightMargin = 0; + this.active = false; + + this.table.columnManager.headersElement.style.marginLeft = 0; + this.table.columnManager.element.style.paddingRight = 0; + }; + + //initialize specific column + FrozenColumns.prototype.initializeColumn = function (column) { + var config = { margin: 0, edge: false }; + + if (column.definition.frozen) { + + if (!column.parent.isGroup) { + + if (!column.isGroup) { + config.position = this.initializationMode; + + if (this.initializationMode == "left") { + this.leftColumns.push(column); + } else { + this.rightColumns.unshift(column); + } + + this.active = true; + + column.modules.frozen = config; + } else { + console.warn("Frozen Column Error - Column Groups cannot be frozen"); + } + } else { + console.warn("Frozen Column Error - Grouped columns cannot be frozen"); + } + } else { + this.initializationMode = "right"; + } + }; + + //quick layout to smooth horizontal scrolling + FrozenColumns.prototype.scrollHorizontal = function () { + var _this38 = this; + + var rows; + + if (this.active) { + clearTimeout(this.scrollEndTimer); + + //layout all rows after scroll is complete + this.scrollEndTimer = setTimeout(function () { + _this38.layout(); + }, 100); + + rows = this.table.rowManager.getVisibleRows(); + + this.calcMargins(); + + this.layoutColumnPosition(); + + this.layoutCalcRows(); + + rows.forEach(function (row) { + if (row.type === "row") { + _this38.layoutRow(row); + } + }); + + this.table.rowManager.tableElement.style.marginRight = this.rightMargin; + } + }; + + //calculate margins for rows + FrozenColumns.prototype.calcMargins = function () { + this.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + "px"; + this.table.columnManager.headersElement.style.marginLeft = this.leftMargin; + + this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px"; + this.table.columnManager.element.style.paddingRight = this.rightMargin; + + //calculate right frozen columns + this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft; + }; + + //layout calculation rows + FrozenColumns.prototype.layoutCalcRows = function () { + if (this.table.modExists("columnCalcs")) { + if (this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow) { + this.layoutRow(this.table.modules.columnCalcs.topRow); + } + if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) { + this.layoutRow(this.table.modules.columnCalcs.botRow); + } + } + }; + + //calculate column positions and layout headers + FrozenColumns.prototype.layoutColumnPosition = function (allCells) { + var _this39 = this; + + this.leftColumns.forEach(function (column, i) { + column.modules.frozen.margin = _this39._calcSpace(_this39.leftColumns, i) + _this39.table.columnManager.scrollLeft + "px"; + + if (i == _this39.leftColumns.length - 1) { + column.modules.frozen.edge = true; + } else { + column.modules.frozen.edge = false; + } + + _this39.layoutElement(column.getElement(), column); + + if (allCells) { + column.cells.forEach(function (cell) { + _this39.layoutElement(cell.getElement(), column); + }); + } + }); + + this.rightColumns.forEach(function (column, i) { + column.modules.frozen.margin = _this39.rightPadding - _this39._calcSpace(_this39.rightColumns, i + 1) + "px"; + + if (i == _this39.rightColumns.length - 1) { + column.modules.frozen.edge = true; + } else { + column.modules.frozen.edge = false; + } + + _this39.layoutElement(column.getElement(), column); + + if (allCells) { + column.cells.forEach(function (cell) { + _this39.layoutElement(cell.getElement(), column); + }); + } + }); + }; + + //layout columns appropropriatly + FrozenColumns.prototype.layout = function () { + var self = this, + rightMargin = 0; + + if (self.active) { + + //calculate row padding + this.calcMargins(); + + // self.table.rowManager.activeRows.forEach(function(row){ + // self.layoutRow(row); + // }); + + // if(self.table.options.dataTree){ + self.table.rowManager.getDisplayRows().forEach(function (row) { + if (row.type === "row") { + self.layoutRow(row); + } + }); + // } + + this.layoutCalcRows(); + + //calculate left columns + this.layoutColumnPosition(true); + + // if(tableHolder.scrollHeight > tableHolder.clientHeight){ + // rightMargin -= tableHolder.offsetWidth - tableHolder.clientWidth; + // } + + this.table.rowManager.tableElement.style.marginRight = this.rightMargin; + } + }; + + FrozenColumns.prototype.layoutRow = function (row) { + var _this40 = this; + + var rowEl = row.getElement(); + + rowEl.style.paddingLeft = this.leftMargin; + // rowEl.style.paddingRight = this.rightMargin + "px"; + + this.leftColumns.forEach(function (column) { + var cell = row.getCell(column); + + if (cell) { + _this40.layoutElement(cell.getElement(), column); + } + }); + + this.rightColumns.forEach(function (column) { + var cell = row.getCell(column); + + if (cell) { + _this40.layoutElement(cell.getElement(), column); + } + }); + }; + + FrozenColumns.prototype.layoutElement = function (element, column) { + + if (column.modules.frozen) { + element.style.position = "absolute"; + element.style.left = column.modules.frozen.margin; + + element.classList.add("tabulator-frozen"); + + if (column.modules.frozen.edge) { + element.classList.add("tabulator-frozen-" + column.modules.frozen.position); + } + } + }; + + FrozenColumns.prototype._calcSpace = function (columns, index) { + var width = 0; + + for (var i = 0; i < index; i++) { + if (columns[i].visible) { + width += columns[i].getWidth(); + } + } + + return width; + }; + + Tabulator.prototype.registerModule("frozenColumns", FrozenColumns); + var FrozenRows = function FrozenRows(table) { + this.table = table; //hold Tabulator object + this.topElement = document.createElement("div"); + this.rows = []; + this.displayIndex = 0; //index in display pipeline + }; + + FrozenRows.prototype.initialize = function () { + this.rows = []; + + this.topElement.classList.add("tabulator-frozen-rows-holder"); + + // this.table.columnManager.element.append(this.topElement); + this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling); + }; + + FrozenRows.prototype.setDisplayIndex = function (index) { + this.displayIndex = index; + }; + + FrozenRows.prototype.getDisplayIndex = function () { + return this.displayIndex; + }; + + FrozenRows.prototype.isFrozen = function () { + return !!this.rows.length; + }; + + //filter frozen rows out of display data + FrozenRows.prototype.getRows = function (rows) { + var self = this, + frozen = [], + output = rows.slice(0); + + this.rows.forEach(function (row) { + var index = output.indexOf(row); + + if (index > -1) { + output.splice(index, 1); + } + }); + + return output; + }; + + FrozenRows.prototype.freezeRow = function (row) { + if (!row.modules.frozen) { + row.modules.frozen = true; + this.topElement.appendChild(row.getElement()); + row.initialize(); + row.normalizeHeight(); + this.table.rowManager.adjustTableSize(); + + this.rows.push(row); + + this.table.rowManager.refreshActiveData("display"); + + this.styleRows(); + } else { + console.warn("Freeze Error - Row is already frozen"); + } + }; + + FrozenRows.prototype.unfreezeRow = function (row) { + var index = this.rows.indexOf(row); + + if (row.modules.frozen) { + + row.modules.frozen = false; + + var rowEl = row.getElement(); + rowEl.parentNode.removeChild(rowEl); + + this.table.rowManager.adjustTableSize(); + + this.rows.splice(index, 1); + + this.table.rowManager.refreshActiveData("display"); + + if (this.rows.length) { + this.styleRows(); + } + } else { + console.warn("Freeze Error - Row is already unfrozen"); + } + }; + + FrozenRows.prototype.styleRows = function (row) { + var self = this; + + this.rows.forEach(function (row, i) { + self.table.rowManager.styleRow(row, i); + }); + }; + + Tabulator.prototype.registerModule("frozenRows", FrozenRows); + + //public group object + var GroupComponent = function GroupComponent(group) { + this._group = group; + this.type = "GroupComponent"; + }; + + GroupComponent.prototype.getKey = function () { + return this._group.key; + }; + + GroupComponent.prototype.getField = function () { + return this._group.field; + }; + + GroupComponent.prototype.getElement = function () { + return this._group.element; + }; + + GroupComponent.prototype.getRows = function () { + return this._group.getRows(true); + }; + + GroupComponent.prototype.getSubGroups = function () { + return this._group.getSubGroups(true); + }; + + GroupComponent.prototype.getParentGroup = function () { + return this._group.parent ? this._group.parent.getComponent() : false; + }; + + GroupComponent.prototype.getVisibility = function () { + return this._group.visible; + }; + + GroupComponent.prototype.show = function () { + this._group.show(); + }; + + GroupComponent.prototype.hide = function () { + this._group.hide(); + }; + + GroupComponent.prototype.toggle = function () { + this._group.toggleVisibility(); + }; + + GroupComponent.prototype._getSelf = function () { + return this._group; + }; + + GroupComponent.prototype.getTable = function () { + return this._group.groupManager.table; + }; + + ////////////////////////////////////////////////// + //////////////// Group Functions ///////////////// + ////////////////////////////////////////////////// + + var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) { + + this.groupManager = groupManager; + this.parent = parent; + this.key = key; + this.level = level; + this.field = field; + this.hasSubGroups = level < groupManager.groupIDLookups.length - 1; + this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow; + this.type = "group"; //type of element + this.old = oldGroup; + this.rows = []; + this.groups = []; + this.groupList = []; + this.generator = generator; + this.elementContents = false; + this.height = 0; + this.outerHeight = 0; + this.initialized = false; + this.calcs = {}; + this.initialized = false; + this.modules = {}; + this.arrowElement = false; + + this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0]; + + this.createElements(); + this.addBindings(); + + this.createValueGroups(); + }; + + Group.prototype.wipe = function () { + if (this.groupList.length) { + this.groupList.forEach(function (group) { + group.wipe(); + }); + } else { + this.element = false; + this.arrowElement = false; + this.elementContents = false; + } + }; + + Group.prototype.createElements = function () { + this.element = document.createElement("div"); + this.element.classList.add("tabulator-row"); + this.element.classList.add("tabulator-group"); + this.element.classList.add("tabulator-group-level-" + this.level); + this.element.setAttribute("role", "rowgroup"); + + this.arrowElement = document.createElement("div"); + this.arrowElement.classList.add("tabulator-arrow"); + + //setup movable rows + if (this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")) { + this.groupManager.table.modules.moveRow.initializeGroupHeader(this); + } + }; + + Group.prototype.createValueGroups = function () { + var _this41 = this; + + var level = this.level + 1; + if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) { + this.groupManager.allowedValues[level].forEach(function (value) { + _this41._createGroup(value, level); + }); + } + }; + + Group.prototype.addBindings = function () { + var self = this, + dblTap, + tapHold, + tap, + toggleElement; + + //handle group click events + if (self.groupManager.table.options.groupClick) { + self.element.addEventListener("click", function (e) { + self.groupManager.table.options.groupClick(e, self.getComponent()); + }); + } + + if (self.groupManager.table.options.groupDblClick) { + self.element.addEventListener("dblclick", function (e) { + self.groupManager.table.options.groupDblClick(e, self.getComponent()); + }); + } + + if (self.groupManager.table.options.groupContext) { + self.element.addEventListener("contextmenu", function (e) { + self.groupManager.table.options.groupContext(e, self.getComponent()); + }); + } + + if (self.groupManager.table.options.groupTap) { + + tap = false; + + self.element.addEventListener("touchstart", function (e) { + tap = true; + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + if (tap) { + self.groupManager.table.options.groupTap(e, self.getComponent()); + } + + tap = false; + }); + } + + if (self.groupManager.table.options.groupDblTap) { + + dblTap = null; + + self.element.addEventListener("touchend", function (e) { + + if (dblTap) { + clearTimeout(dblTap); + dblTap = null; + + self.groupManager.table.options.groupDblTap(e, self.getComponent()); + } else { + + dblTap = setTimeout(function () { + clearTimeout(dblTap); + dblTap = null; + }, 300); + } + }); + } + + if (self.groupManager.table.options.groupTapHold) { + + tapHold = null; + + self.element.addEventListener("touchstart", function (e) { + clearTimeout(tapHold); + + tapHold = setTimeout(function () { + clearTimeout(tapHold); + tapHold = null; + tap = false; + self.groupManager.table.options.groupTapHold(e, self.getComponent()); + }, 1000); + }, { passive: true }); + + self.element.addEventListener("touchend", function (e) { + clearTimeout(tapHold); + tapHold = null; + }); + } + + if (self.groupManager.table.options.groupToggleElement) { + toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element; + + toggleElement.addEventListener("click", function (e) { + e.stopPropagation(); + e.stopImmediatePropagation(); + self.toggleVisibility(); + }); + } + }; + + Group.prototype._createGroup = function (groupID, level) { + var groupKey = level + "_" + groupID; + var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false); + + this.groups[groupKey] = group; + this.groupList.push(group); + }; + + Group.prototype._addRowToGroup = function (row) { + + var level = this.level + 1; + + if (this.hasSubGroups) { + var groupID = this.groupManager.groupIDLookups[level].func(row.getData()), + groupKey = level + "_" + groupID; + + if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) { + if (this.groups[groupKey]) { + this.groups[groupKey].addRow(row); + } + } else { + if (!this.groups[groupKey]) { + this._createGroup(groupID, level); + } + + this.groups[groupKey].addRow(row); + } + } + }; + + Group.prototype._addRow = function (row) { + this.rows.push(row); + row.modules.group = this; + }; + + Group.prototype.insertRow = function (row, to, after) { + var data = this.conformRowData({}); + + row.updateData(data); + + var toIndex = this.rows.indexOf(to); + + if (toIndex > -1) { + if (after) { + this.rows.splice(toIndex + 1, 0, row); + } else { + this.rows.splice(toIndex, 0, row); + } + } else { + if (after) { + this.rows.push(row); + } else { + this.rows.unshift(row); + } + } + + row.modules.group = this; + + this.generateGroupHeaderContents(); + + if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") { + this.groupManager.table.modules.columnCalcs.recalcGroup(this); + } + + this.groupManager.updateGroupRows(true); + }; + + Group.prototype.scrollHeader = function (left) { + this.arrowElement.style.marginLeft = left; + + this.groupList.forEach(function (child) { + child.scrollHeader(left); + }); + }; + + Group.prototype.getRowIndex = function (row) {}; + + //update row data to match grouping contraints + Group.prototype.conformRowData = function (data) { + if (this.field) { + data[this.field] = this.key; + } else { + console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"); + } + + if (this.parent) { + data = this.parent.conformRowData(data); + } + + return data; + }; + + Group.prototype.removeRow = function (row) { + var index = this.rows.indexOf(row); + var el = row.getElement(); + + if (index > -1) { + this.rows.splice(index, 1); + } + + if (!this.groupManager.table.options.groupValues && !this.rows.length) { + if (this.parent) { + this.parent.removeGroup(this); + } else { + this.groupManager.removeGroup(this); + } + + this.groupManager.updateGroupRows(true); + } else { + + if (el.parentNode) { + el.parentNode.removeChild(el); + } + + this.generateGroupHeaderContents(); + + if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") { + this.groupManager.table.modules.columnCalcs.recalcGroup(this); + } + } + }; + + Group.prototype.removeGroup = function (group) { + var groupKey = group.level + "_" + group.key, + index; + + if (this.groups[groupKey]) { + delete this.groups[groupKey]; + + index = this.groupList.indexOf(group); + + if (index > -1) { + this.groupList.splice(index, 1); + } + + if (!this.groupList.length) { + if (this.parent) { + this.parent.removeGroup(this); + } else { + this.groupManager.removeGroup(this); + } + } + } + }; + + Group.prototype.getHeadersAndRows = function (noCalc) { + var output = []; + + output.push(this); + + this._visSet(); + + if (this.visible) { + if (this.groupList.length) { + this.groupList.forEach(function (group) { + output = output.concat(group.getHeadersAndRows(noCalc)); + }); + } else { + if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) { + if (this.calcs.top) { + this.calcs.top.detachElement(); + this.calcs.top.deleteCells(); + } + + this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows); + output.push(this.calcs.top); + } + + output = output.concat(this.rows); + + if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) { + if (this.calcs.bottom) { + this.calcs.bottom.detachElement(); + this.calcs.bottom.deleteCells(); + } + + this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows); + output.push(this.calcs.bottom); + } + } + } else { + if (!this.groupList.length && this.groupManager.table.options.columnCalcs != "table") { + + if (this.groupManager.table.modExists("columnCalcs")) { + + if (!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) { + if (this.calcs.top) { + this.calcs.top.detachElement(); + this.calcs.top.deleteCells(); + } + + if (this.groupManager.table.options.groupClosedShowCalcs) { + this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows); + output.push(this.calcs.top); + } + } + + if (!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) { + if (this.calcs.bottom) { + this.calcs.bottom.detachElement(); + this.calcs.bottom.deleteCells(); + } + + if (this.groupManager.table.options.groupClosedShowCalcs) { + this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows); + output.push(this.calcs.bottom); + } + } + } + } + } + + return output; + }; + + Group.prototype.getData = function (visible, transform) { + var self = this, + output = []; + + this._visSet(); + + if (!visible || visible && this.visible) { + this.rows.forEach(function (row) { + output.push(row.getData(transform || "data")); + }); + } + + return output; + }; + + // Group.prototype.getRows = function(){ + // this._visSet(); + + // return this.visible ? this.rows : []; + // }; + + Group.prototype.getRowCount = function () { + var count = 0; + + if (this.groupList.length) { + this.groupList.forEach(function (group) { + count += group.getRowCount(); + }); + } else { + count = this.rows.length; + } + return count; + }; + + Group.prototype.toggleVisibility = function () { + if (this.visible) { + this.hide(); + } else { + this.show(); + } + }; + + Group.prototype.hide = function () { + this.visible = false; + + if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) { + + this.element.classList.remove("tabulator-group-visible"); + + if (this.groupList.length) { + this.groupList.forEach(function (group) { + + var rows = group.getHeadersAndRows(); + + rows.forEach(function (row) { + row.detachElement(); + }); + }); + } else { + this.rows.forEach(function (row) { + var rowEl = row.getElement(); + rowEl.parentNode.removeChild(rowEl); + }); + } + + this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex()); + + this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth(); + } else { + this.groupManager.updateGroupRows(true); + } + + this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), false); + }; + + Group.prototype.show = function () { + var self = this; + + self.visible = true; + + if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) { + + this.element.classList.add("tabulator-group-visible"); + + var prev = self.getElement(); + + if (this.groupList.length) { + this.groupList.forEach(function (group) { + var rows = group.getHeadersAndRows(); + + rows.forEach(function (row) { + var rowEl = row.getElement(); + prev.parentNode.insertBefore(rowEl, prev.nextSibling); + row.initialize(); + prev = rowEl; + }); + }); + } else { + self.rows.forEach(function (row) { + var rowEl = row.getElement(); + prev.parentNode.insertBefore(rowEl, prev.nextSibling); + row.initialize(); + prev = rowEl; + }); + } + + this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex()); + + this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth(); + } else { + this.groupManager.updateGroupRows(true); + } + + this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), true); + }; + + Group.prototype._visSet = function () { + var data = []; + + if (typeof this.visible == "function") { + + this.rows.forEach(function (row) { + data.push(row.getData()); + }); + + this.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent()); + } + }; + + Group.prototype.getRowGroup = function (row) { + var match = false; + if (this.groupList.length) { + this.groupList.forEach(function (group) { + var result = group.getRowGroup(row); + + if (result) { + match = result; + } + }); + } else { + if (this.rows.find(function (item) { + return item === row; + })) { + match = this; + } + } + + return match; + }; + + Group.prototype.getSubGroups = function (component) { + var output = []; + + this.groupList.forEach(function (child) { + output.push(component ? child.getComponent() : child); + }); + + return output; + }; + + Group.prototype.getRows = function (compoment) { + var output = []; + + this.rows.forEach(function (row) { + output.push(compoment ? row.getComponent() : row); + }); + + return output; + }; + + Group.prototype.generateGroupHeaderContents = function () { + var data = []; + + this.rows.forEach(function (row) { + data.push(row.getData()); + }); + + this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent()); + + while (this.element.firstChild) { + this.element.removeChild(this.element.firstChild); + }if (typeof this.elementContents === "string") { + this.element.innerHTML = this.elementContents; + } else { + this.element.appendChild(this.elementContents); + } + + this.element.insertBefore(this.arrowElement, this.element.firstChild); + }; + + ////////////// Standard Row Functions ////////////// + + Group.prototype.getElement = function () { + this.addBindingsd = false; + + this._visSet(); + + if (this.visible) { + this.element.classList.add("tabulator-group-visible"); + } else { + this.element.classList.remove("tabulator-group-visible"); + } + + for (var i = 0; i < this.element.childNodes.length; ++i) { + this.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]); + } + + this.generateGroupHeaderContents(); + + // this.addBindings(); + + return this.element; + }; + + Group.prototype.detachElement = function () { + if (this.element && this.element.parentNode) { + this.element.parentNode.removeChild(this.element); + } + }; + + //normalize the height of elements in the row + Group.prototype.normalizeHeight = function () { + this.setHeight(this.element.clientHeight); + }; + + Group.prototype.initialize = function (force) { + if (!this.initialized || force) { + this.normalizeHeight(); + this.initialized = true; + } + }; + + Group.prototype.reinitialize = function () { + this.initialized = false; + this.height = 0; + + if (Tabulator.prototype.helpers.elVisible(this.element)) { + this.initialize(true); + } + }; + + Group.prototype.setHeight = function (height) { + if (this.height != height) { + this.height = height; + this.outerHeight = this.element.offsetHeight; + } + }; + + //return rows outer height + Group.prototype.getHeight = function () { + return this.outerHeight; + }; + + Group.prototype.getGroup = function () { + return this; + }; + + Group.prototype.reinitializeHeight = function () {}; + Group.prototype.calcHeight = function () {}; + Group.prototype.setCellHeight = function () {}; + Group.prototype.clearCellHeight = function () {}; + + //////////////// Object Generation ///////////////// + Group.prototype.getComponent = function () { + return new GroupComponent(this); + }; + + ////////////////////////////////////////////////// + ////////////// Group Row Extension /////////////// + ////////////////////////////////////////////////// + + var GroupRows = function GroupRows(table) { + + this.table = table; //hold Tabulator object + + this.groupIDLookups = false; //enable table grouping and set field to group by + this.startOpen = [function () { + return false; + }]; //starting state of group + this.headerGenerator = [function () { + return ""; + }]; + this.groupList = []; //ordered list of groups + this.allowedValues = false; + this.groups = {}; //hold row groups + this.displayIndex = 0; //index in display pipeline + }; + + //initialize group configuration + GroupRows.prototype.initialize = function () { + var self = this, + groupBy = self.table.options.groupBy, + startOpen = self.table.options.groupStartOpen, + groupHeader = self.table.options.groupHeader; + + this.allowedValues = self.table.options.groupValues; + + if (Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length) { + console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"); + } + + self.headerGenerator = [function () { + return ""; + }]; + this.startOpen = [function () { + return false; + }]; //starting state of group + + self.table.modules.localize.bind("groups|item", function (langValue, lang) { + self.headerGenerator[0] = function (value, count, data) { + //header layout function + return (typeof value === "undefined" ? "" : value) + "(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")"; + }; + }); + + this.groupIDLookups = []; + + if (Array.isArray(groupBy) || groupBy) { + if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "table" && this.table.options.columnCalcs != "both") { + this.table.modules.columnCalcs.removeCalcs(); + } + } else { + if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "group") { + + var cols = this.table.columnManager.getRealColumns(); + + cols.forEach(function (col) { + if (col.definition.topCalc) { + self.table.modules.columnCalcs.initializeTopRow(); + } + + if (col.definition.bottomCalc) { + self.table.modules.columnCalcs.initializeBottomRow(); + } + }); + } + } + + if (!Array.isArray(groupBy)) { + groupBy = [groupBy]; + } + + groupBy.forEach(function (group, i) { + var lookupFunc, column; + + if (typeof group == "function") { + lookupFunc = group; + } else { + column = self.table.columnManager.getColumnByField(group); + + if (column) { + lookupFunc = function lookupFunc(data) { + return column.getFieldValue(data); + }; + } else { + lookupFunc = function lookupFunc(data) { + return data[group]; + }; + } + } + + self.groupIDLookups.push({ + field: typeof group === "function" ? false : group, + func: lookupFunc, + values: self.allowedValues ? self.allowedValues[i] : false + }); + }); + + if (startOpen) { + + if (!Array.isArray(startOpen)) { + startOpen = [startOpen]; + } + + startOpen.forEach(function (level) { + level = typeof level == "function" ? level : function () { + return true; + }; + }); + + self.startOpen = startOpen; + } + + if (groupHeader) { + self.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader]; + } + + this.initialized = true; + }; + + GroupRows.prototype.setDisplayIndex = function (index) { + this.displayIndex = index; + }; + + GroupRows.prototype.getDisplayIndex = function () { + return this.displayIndex; + }; + + //return appropriate rows with group headers + GroupRows.prototype.getRows = function (rows) { + if (this.groupIDLookups.length) { + + this.table.options.dataGrouping.call(this.table); + + this.generateGroups(rows); + + if (this.table.options.dataGrouped) { + this.table.options.dataGrouped.call(this.table, this.getGroups(true)); + } + + return this.updateGroupRows(); + } else { + return rows.slice(0); + } + }; + + GroupRows.prototype.getGroups = function (compoment) { + var groupComponents = []; + + this.groupList.forEach(function (group) { + groupComponents.push(compoment ? group.getComponent() : group); + }); + + return groupComponents; + }; + + GroupRows.prototype.wipe = function () { + this.groupList.forEach(function (group) { + group.wipe(); + }); + }; + + GroupRows.prototype.pullGroupListData = function (groupList) { + var self = this; + var groupListData = []; + + groupList.forEach(function (group) { + var groupHeader = {}; + groupHeader.level = 0; + groupHeader.rowCount = 0; + groupHeader.headerContent = ""; + var childData = []; + + if (group.hasSubGroups) { + childData = self.pullGroupListData(group.groupList); + + groupHeader.level = group.level; + groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers + groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group); + + groupListData.push(groupHeader); + groupListData = groupListData.concat(childData); + } else { + groupHeader.level = group.level; + groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group); + groupHeader.rowCount = group.getRows().length; + + groupListData.push(groupHeader); + + group.getRows().forEach(function (row) { + groupListData.push(row.getData("data")); + }); + } + }); + + return groupListData; + }; + + GroupRows.prototype.getGroupedData = function () { + + return this.pullGroupListData(this.groupList); + }; + + GroupRows.prototype.getRowGroup = function (row) { + var match = false; + + this.groupList.forEach(function (group) { + var result = group.getRowGroup(row); + + if (result) { + match = result; + } + }); + + return match; + }; + + GroupRows.prototype.countGroups = function () { + return this.groupList.length; + }; + + GroupRows.prototype.generateGroups = function (rows) { + var self = this, + oldGroups = self.groups; + + self.groups = {}; + self.groupList = []; + + if (this.allowedValues && this.allowedValues[0]) { + this.allowedValues[0].forEach(function (value) { + self.createGroup(value, 0, oldGroups); + }); + + rows.forEach(function (row) { + self.assignRowToExistingGroup(row, oldGroups); + }); + } else { + rows.forEach(function (row) { + self.assignRowToGroup(row, oldGroups); + }); + } + }; + + GroupRows.prototype.createGroup = function (groupID, level, oldGroups) { + var groupKey = level + "_" + groupID, + group; + + oldGroups = oldGroups || []; + + group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]); + + this.groups[groupKey] = group; + this.groupList.push(group); + }; + + GroupRows.prototype.assignRowToGroup = function (row, oldGroups) { + var groupID = this.groupIDLookups[0].func(row.getData()), + groupKey = "0_" + groupID; + + if (!this.groups[groupKey]) { + this.createGroup(groupID, 0, oldGroups); + } + + this.groups[groupKey].addRow(row); + }; + + GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) { + var groupID = this.groupIDLookups[0].func(row.getData()), + groupKey = "0_" + groupID; + + if (this.groups[groupKey]) { + this.groups[groupKey].addRow(row); + } + }; + + GroupRows.prototype.assignRowToGroup = function (row, oldGroups) { + var groupID = this.groupIDLookups[0].func(row.getData()), + newGroupNeeded = !this.groups["0_" + groupID]; + + if (newGroupNeeded) { + this.createGroup(groupID, 0, oldGroups); + } + + this.groups["0_" + groupID].addRow(row); + + return !newGroupNeeded; + }; + + GroupRows.prototype.updateGroupRows = function (force) { + var self = this, + output = [], + oldRowCount; + + self.groupList.forEach(function (group) { + output = output.concat(group.getHeadersAndRows()); + }); + + //force update of table display + if (force) { + + var displayIndex = self.table.rowManager.setDisplayRows(output, this.getDisplayIndex()); + + if (displayIndex !== true) { + this.setDisplayIndex(displayIndex); + } + + self.table.rowManager.refreshActiveData("group", true, true); + } + + return output; + }; + + GroupRows.prototype.scrollHeaders = function (left) { + left = left + "px"; + + this.groupList.forEach(function (group) { + group.scrollHeader(left); + }); + }; + + GroupRows.prototype.removeGroup = function (group) { + var groupKey = group.level + "_" + group.key, + index; + + if (this.groups[groupKey]) { + delete this.groups[groupKey]; + + index = this.groupList.indexOf(group); + + if (index > -1) { + this.groupList.splice(index, 1); + } + } + }; + + Tabulator.prototype.registerModule("groupRows", GroupRows); + var History = function History(table) { + this.table = table; //hold Tabulator object + + this.history = []; + this.index = -1; + }; + + History.prototype.clear = function () { + this.history = []; + this.index = -1; + }; + + History.prototype.action = function (type, component, data) { + + this.history = this.history.slice(0, this.index + 1); + + this.history.push({ + type: type, + component: component, + data: data + }); + + this.index++; + }; + + History.prototype.getHistoryUndoSize = function () { + return this.index + 1; + }; + + History.prototype.getHistoryRedoSize = function () { + return this.history.length - (this.index + 1); + }; + + History.prototype.undo = function () { + + if (this.index > -1) { + var action = this.history[this.index]; + + this.undoers[action.type].call(this, action); + + this.index--; + + this.table.options.historyUndo.call(this.table, action.type, action.component.getComponent(), action.data); + + return true; + } else { + console.warn("History Undo Error - No more history to undo"); + return false; + } + }; + + History.prototype.redo = function () { + if (this.history.length - 1 > this.index) { + + this.index++; + + var action = this.history[this.index]; + + this.redoers[action.type].call(this, action); + + this.table.options.historyRedo.call(this.table, action.type, action.component.getComponent(), action.data); + + return true; + } else { + console.warn("History Redo Error - No more history to redo"); + return false; + } + }; + + History.prototype.undoers = { + cellEdit: function cellEdit(action) { + action.component.setValueProcessData(action.data.oldValue); + }, + + rowAdd: function rowAdd(action) { + action.component.deleteActual(); + }, + + rowDelete: function rowDelete(action) { + var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index); + + this._rebindRow(action.component, newRow); + }, + + rowMove: function rowMove(action) { + this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.pos], false); + this.table.rowManager.redraw(); + } + }; + + History.prototype.redoers = { + cellEdit: function cellEdit(action) { + action.component.setValueProcessData(action.data.newValue); + }, + + rowAdd: function rowAdd(action) { + var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index); + + this._rebindRow(action.component, newRow); + }, + + rowDelete: function rowDelete(action) { + action.component.deleteActual(); + }, + + rowMove: function rowMove(action) { + this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.pos], false); + this.table.rowManager.redraw(); + } + }; + + //rebind rows to new element after deletion + History.prototype._rebindRow = function (oldRow, newRow) { + this.history.forEach(function (action) { + if (action.component instanceof Row) { + if (action.component === oldRow) { + action.component = newRow; + } + } else if (action.component instanceof Cell) { + if (action.component.row === oldRow) { + var field = action.component.column.getField(); + + if (field) { + action.component = newRow.getCell(field); + } + } + } + }); + }; + + Tabulator.prototype.registerModule("history", History); + var HtmlTableImport = function HtmlTableImport(table) { + this.table = table; //hold Tabulator object + this.fieldIndex = []; + this.hasIndex = false; + }; + + HtmlTableImport.prototype.parseTable = function () { + var self = this, + element = self.table.element, + options = self.table.options, + columns = options.columns, + headers = element.getElementsByTagName("th"), + rows = element.getElementsByTagName("tbody")[0], + data = [], + newTable; + + self.hasIndex = false; + + self.table.options.htmlImporting.call(this.table); + + rows = rows ? rows.getElementsByTagName("tr") : []; + + //check for tablator inline options + self._extractOptions(element, options); + + if (headers.length) { + self._extractHeaders(headers, rows); + } else { + self._generateBlankHeaders(headers, rows); + } + + //iterate through table rows and build data set + for (var index = 0; index < rows.length; index++) { + var row = rows[index], + cells = row.getElementsByTagName("td"), + item = {}; + + //create index if the dont exist in table + if (!self.hasIndex) { + item[options.index] = index; + } + + for (var i = 0; i < cells.length; i++) { + var cell = cells[i]; + if (typeof this.fieldIndex[i] !== "undefined") { + item[this.fieldIndex[i]] = cell.innerHTML; + } + } + + //add row data to item + data.push(item); + } + + //create new element + var newElement = document.createElement("div"); + + //transfer attributes to new element + var attributes = element.attributes; + + // loop through attributes and apply them on div + + for (var i in attributes) { + if (_typeof(attributes[i]) == "object") { + newElement.setAttribute(attributes[i].name, attributes[i].value); + } + } + + // replace table with div element + element.parentNode.replaceChild(newElement, element); + + options.data = data; + + self.table.options.htmlImported.call(this.table); + + // // newElement.tabulator(options); + + this.table.element = newElement; + }; + + //extract tabulator attribute options + HtmlTableImport.prototype._extractOptions = function (element, options, defaultOptions) { + var attributes = element.attributes; + var optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options); + var optionsList = {}; + + optionsArr.forEach(function (item) { + optionsList[item.toLowerCase()] = item; + }); + + for (var index in attributes) { + var attrib = attributes[index]; + var name; + + if (attrib && (typeof attrib === 'undefined' ? 'undefined' : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) { + name = attrib.name.replace("tabulator-", ""); + + if (typeof optionsList[name] !== "undefined") { + options[optionsList[name]] = this._attribValue(attrib.value); + } + } + } + }; + + //get value of attribute + HtmlTableImport.prototype._attribValue = function (value) { + if (value === "true") { + return true; + } + + if (value === "false") { + return false; + } + + return value; + }; + + //find column if it has already been defined + HtmlTableImport.prototype._findCol = function (title) { + var match = this.table.options.columns.find(function (column) { + return column.title === title; + }); + + return match || false; + }; + + //extract column from headers + HtmlTableImport.prototype._extractHeaders = function (headers, rows) { + for (var index = 0; index < headers.length; index++) { + var header = headers[index], + exists = false, + col = this._findCol(header.textContent), + width, + attributes; + + if (col) { + exists = true; + } else { + col = { title: header.textContent.trim() }; + } + + if (!col.field) { + col.field = header.textContent.trim().toLowerCase().replace(" ", "_"); + } + + width = header.getAttribute("width"); + + if (width && !col.width) { + col.width = width; + } + + //check for tablator inline options + attributes = header.attributes; + + // //check for tablator inline options + this._extractOptions(header, col, Column.prototype.defaultOptionList); + + for (var i in attributes) { + var attrib = attributes[i], + name; + + if (attrib && (typeof attrib === 'undefined' ? 'undefined' : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) { + + name = attrib.name.replace("tabulator-", ""); + + col[name] = this._attribValue(attrib.value); + } + } + + this.fieldIndex[index] = col.field; + + if (col.field == this.table.options.index) { + this.hasIndex = true; + } + + if (!exists) { + this.table.options.columns.push(col); + } + } + }; + + //generate blank headers + HtmlTableImport.prototype._generateBlankHeaders = function (headers, rows) { + for (var index = 0; index < headers.length; index++) { + var header = headers[index], + col = { title: "", field: "col" + index }; + + this.fieldIndex[index] = col.field; + + var width = header.getAttribute("width"); + + if (width) { + col.width = width; + } + + this.table.options.columns.push(col); + } + }; + + Tabulator.prototype.registerModule("htmlTableImport", HtmlTableImport); + var HtmlTableExport = function HtmlTableExport(table) { + this.table = table; //hold Tabulator object + this.config = {}; + this.cloneTableStyle = true; + this.colVisProp = ""; + }; + + HtmlTableExport.prototype.genereateTable = function (config, style, visible, colVisProp) { + this.cloneTableStyle = style; + this.config = config || {}; + this.colVisProp = colVisProp; + + var headers = this.generateHeaderElements(); + var body = this.generateBodyElements(visible); + + var table = document.createElement("table"); + table.classList.add("tabulator-print-table"); + table.appendChild(headers); + table.appendChild(body); + + this.mapElementStyles(this.table.element, table, ["border-top", "border-left", "border-right", "border-bottom"]); + + return table; + }; + + HtmlTableExport.prototype.generateColumnGroupHeaders = function () { + var _this42 = this; + + var output = []; + + var columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex; + + columns.forEach(function (column) { + var colData = _this42.processColumnGroup(column); + + if (colData) { + output.push(colData); + } + }); + + return output; + }; + + HtmlTableExport.prototype.processColumnGroup = function (column) { + var _this43 = this; + + var subGroups = column.columns, + maxDepth = 0; + + var groupData = { + title: column.definition.title, + column: column, + depth: 1 + }; + + if (subGroups.length) { + groupData.subGroups = []; + groupData.width = 0; + + subGroups.forEach(function (subGroup) { + var subGroupData = _this43.processColumnGroup(subGroup); + + if (subGroupData) { + groupData.width += subGroupData.width; + groupData.subGroups.push(subGroupData); + + if (subGroupData.depth > maxDepth) { + maxDepth = subGroupData.depth; + } + } + }); + + groupData.depth += maxDepth; + + if (!groupData.width) { + return false; + } + } else { + if (column.field && this.columnVisCheck(column)) { + groupData.width = 1; + } else { + return false; + } + } + + return groupData; + }; + + HtmlTableExport.prototype.groupHeadersToRows = function (columns) { + + var headers = [], + headerDepth = 0; + + function parseColumnGroup(column, level) { + + var depth = headerDepth - level; + + if (typeof headers[level] === "undefined") { + headers[level] = []; + } + + column.height = column.subGroups ? 1 : depth - column.depth + 1; + + headers[level].push(column); + + if (column.subGroups) { + column.subGroups.forEach(function (subGroup) { + parseColumnGroup(subGroup, level + 1); + }); + } + } + + //calculate maximum header debth + columns.forEach(function (column) { + if (column.depth > headerDepth) { + headerDepth = column.depth; + } + }); + + columns.forEach(function (column) { + parseColumnGroup(column, 0); + }); + + return headers; + }; + + HtmlTableExport.prototype.generateHeaderElements = function () { + var _this44 = this; + + var headerEl = document.createElement("thead"); + + var rows = this.groupHeadersToRows(this.generateColumnGroupHeaders()); + + rows.forEach(function (row) { + var rowEl = document.createElement("tr"); + + _this44.mapElementStyles(_this44.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + + row.forEach(function (column) { + var cellEl = document.createElement("th"); + + cellEl.colSpan = column.width; + cellEl.rowSpan = column.height; + + cellEl.innerHTML = column.column.definition.title; + + if (_this44.cloneTableStyle) { + cellEl.style.boxSizing = "border-box"; + } + + _this44.mapElementStyles(column.column.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]); + _this44.mapElementStyles(column.column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]); + + if (column.column.visible) { + _this44.mapElementStyles(column.column.getElement(), cellEl, ["width"]); + } else { + if (column.column.definition.width) { + cellEl.style.width = column.column.definition.width + "px"; + } + } + + if (column.column.parent) { + _this44.mapElementStyles(column.column.parent.groupElement, cellEl, ["border-top"]); + } + + rowEl.appendChild(cellEl); + }); + + headerEl.appendChild(rowEl); + }); + + return headerEl; + }; + + HtmlTableExport.prototype.generateBodyElements = function (visible) { + var _this45 = this; + + var oddRow, evenRow, calcRow, firstRow, firstCell, firstGroup, lastCell, styleCells, styleRow; + + //lookup row styles + if (this.cloneTableStyle && window.getComputedStyle) { + oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"); + evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"); + calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs"); + firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"); + firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0]; + + if (firstRow) { + styleCells = firstRow.getElementsByClassName("tabulator-cell"); + firstCell = styleCells[0]; + lastCell = styleCells[styleCells.length - 1]; + } + } + + var bodyEl = document.createElement("tbody"); + + var rows = visible ? this.table.rowManager.getVisibleRows(true) : this.table.rowManager.getDisplayRows(); + var columns = []; + + if (this.config.columnCalcs !== false && this.table.modExists("columnCalcs")) { + if (this.table.modules.columnCalcs.topInitialized) { + rows.unshift(this.table.modules.columnCalcs.topRow); + } + + if (this.table.modules.columnCalcs.botInitialized) { + rows.push(this.table.modules.columnCalcs.botRow); + } + } + + this.table.columnManager.columnsByIndex.forEach(function (column) { + if (_this45.columnVisCheck(column)) { + columns.push(column); + } + }); + + rows = rows.filter(function (row) { + switch (row.type) { + case "group": + return _this45.config.rowGroups !== false; + break; + + case "calc": + return _this45.config.columnCalcs !== false; + break; + } + + return true; + }); + + if (rows.length > 1000) { + console.warn("It may take a long time to render an HTML table with more than 1000 rows"); + } + + rows.forEach(function (row, i) { + var rowData = row.getData(); + + var rowEl = document.createElement("tr"); + rowEl.classList.add("tabulator-print-table-row"); + + switch (row.type) { + case "group": + var cellEl = document.createElement("td"); + cellEl.colSpan = columns.length; + cellEl.innerHTML = row.key; + + rowEl.classList.add("tabulator-print-table-group"); + + _this45.mapElementStyles(firstGroup, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]); + _this45.mapElementStyles(firstGroup, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]); + rowEl.appendChild(cellEl); + break; + + case "calc": + rowEl.classList.add("tabulator-print-table-calcs"); + + case "row": + columns.forEach(function (column) { + var cellEl = document.createElement("td"); + + var value = column.getFieldValue(rowData); + + var cellWrapper = { + getValue: function getValue() { + return value; + }, + getField: function getField() { + return column.definition.field; + }, + getElement: function getElement() { + return cellEl; + }, + getColumn: function getColumn() { + return column.getComponent(); + }, + getData: function getData() { + return rowData; + }, + getRow: function getRow() { + return row.getComponent(); + }, + getComponent: function getComponent() { + return cellWrapper; + }, + column: column + }; + + if (_this45.table.modExists("format")) { + value = _this45.table.modules.format.formatValue(cellWrapper); + } else { + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "object": + value = JSON.stringify(value); + break; + + case "undefined": + case "null": + value = ""; + break; + + default: + value = value; + } + } + + if (value instanceof Node) { + cellEl.appendChild(value); + } else { + cellEl.innerHTML = value; + } + + if (firstCell) { + _this45.mapElementStyles(firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "text-align"]); + } + + rowEl.appendChild(cellEl); + }); + + styleRow = row.type == "calc" ? calcRow : i % 2 && evenRow ? evenRow : oddRow; + + _this45.mapElementStyles(styleRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]); + break; + } + + bodyEl.appendChild(rowEl); + }); + + return bodyEl; + }; + + HtmlTableExport.prototype.columnVisCheck = function (column) { + return column.definition[this.colVisProp] !== false && (column.visible || !column.visible && column.definition[this.colVisProp]); + }; + + HtmlTableExport.prototype.getHtml = function (visible, style, config) { + var holder = document.createElement("div"); + + holder.appendChild(this.genereateTable(config || this.table.options.htmlOutputConfig, style, visible, "htmlOutput")); + + return holder.innerHTML; + }; + + HtmlTableExport.prototype.mapElementStyles = function (from, to, props) { + if (this.cloneTableStyle && from && to) { + + var lookup = { + "background-color": "backgroundColor", + "color": "fontColor", + "width": "width", + "font-weight": "fontWeight", + "font-family": "fontFamily", + "font-size": "fontSize", + "text-align": "textAlign", + "border-top": "borderTop", + "border-left": "borderLeft", + "border-right": "borderRight", + "border-bottom": "borderBottom", + "padding-top": "paddingTop", + "padding-left": "paddingLeft", + "padding-right": "paddingRight", + "padding-bottom": "paddingBottom" + }; + + if (window.getComputedStyle) { + var fromStyle = window.getComputedStyle(from); + + props.forEach(function (prop) { + to.style[lookup[prop]] = fromStyle.getPropertyValue(prop); + }); + } + } + }; + + Tabulator.prototype.registerModule("htmlTableExport", HtmlTableExport); + + var Keybindings = function Keybindings(table) { + this.table = table; //hold Tabulator object + this.watchKeys = null; + this.pressedKeys = null; + this.keyupBinding = false; + this.keydownBinding = false; + }; + + Keybindings.prototype.initialize = function () { + var bindings = this.table.options.keybindings, + mergedBindings = {}; + + this.watchKeys = {}; + this.pressedKeys = []; + + if (bindings !== false) { + + for (var key in this.bindings) { + mergedBindings[key] = this.bindings[key]; + } + + if (Object.keys(bindings).length) { + + for (var _key in bindings) { + mergedBindings[_key] = bindings[_key]; + } + } + + this.mapBindings(mergedBindings); + this.bindEvents(); + } + }; + + Keybindings.prototype.mapBindings = function (bindings) { + var _this46 = this; + + var self = this; + + var _loop2 = function _loop2(key) { + + if (_this46.actions[key]) { + + if (bindings[key]) { + + if (_typeof(bindings[key]) !== "object") { + bindings[key] = [bindings[key]]; + } + + bindings[key].forEach(function (binding) { + self.mapBinding(key, binding); + }); + } + } else { + console.warn("Key Binding Error - no such action:", key); + } + }; + + for (var key in bindings) { + _loop2(key); + } + }; + + Keybindings.prototype.mapBinding = function (action, symbolsList) { + var self = this; + + var binding = { + action: this.actions[action], + keys: [], + ctrl: false, + shift: false + }; + + var symbols = symbolsList.toString().toLowerCase().split(" ").join("").split("+"); + + symbols.forEach(function (symbol) { + switch (symbol) { + case "ctrl": + binding.ctrl = true; + break; + + case "shift": + binding.shift = true; + break; + + default: + symbol = parseInt(symbol); + binding.keys.push(symbol); + + if (!self.watchKeys[symbol]) { + self.watchKeys[symbol] = []; + } + + self.watchKeys[symbol].push(binding); + } + }); + }; + + Keybindings.prototype.bindEvents = function () { + var self = this; + + this.keyupBinding = function (e) { + var code = e.keyCode; + var bindings = self.watchKeys[code]; + + if (bindings) { + + self.pressedKeys.push(code); + + bindings.forEach(function (binding) { + self.checkBinding(e, binding); + }); + } + }; + + this.keydownBinding = function (e) { + var code = e.keyCode; + var bindings = self.watchKeys[code]; + + if (bindings) { + + var index = self.pressedKeys.indexOf(code); + + if (index > -1) { + self.pressedKeys.splice(index, 1); + } + } + }; + + this.table.element.addEventListener("keydown", this.keyupBinding); + + this.table.element.addEventListener("keyup", this.keydownBinding); + }; + + Keybindings.prototype.clearBindings = function () { + if (this.keyupBinding) { + this.table.element.removeEventListener("keydown", this.keyupBinding); + } + + if (this.keydownBinding) { + this.table.element.removeEventListener("keyup", this.keydownBinding); + } + }; + + Keybindings.prototype.checkBinding = function (e, binding) { + var self = this, + match = true; + + if (e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift) { + binding.keys.forEach(function (key) { + var index = self.pressedKeys.indexOf(key); + + if (index == -1) { + match = false; + } + }); + + if (match) { + binding.action.call(self, e); + } + + return true; + } + + return false; + }; + + //default bindings + Keybindings.prototype.bindings = { + navPrev: "shift + 9", + navNext: 9, + navUp: 38, + navDown: 40, + scrollPageUp: 33, + scrollPageDown: 34, + scrollToStart: 36, + scrollToEnd: 35, + undo: "ctrl + 90", + redo: "ctrl + 89", + copyToClipboard: "ctrl + 67" + }; + + //default actions + Keybindings.prototype.actions = { + keyBlock: function keyBlock(e) { + e.stopPropagation(); + e.preventDefault(); + }, + scrollPageUp: function scrollPageUp(e) { + var rowManager = this.table.rowManager, + newPos = rowManager.scrollTop - rowManager.height, + scrollMax = rowManager.element.scrollHeight; + + e.preventDefault(); + + if (rowManager.displayRowsCount) { + if (newPos >= 0) { + rowManager.element.scrollTop = newPos; + } else { + rowManager.scrollToRow(rowManager.getDisplayRows()[0]); + } + } + + this.table.element.focus(); + }, + scrollPageDown: function scrollPageDown(e) { + var rowManager = this.table.rowManager, + newPos = rowManager.scrollTop + rowManager.height, + scrollMax = rowManager.element.scrollHeight; + + e.preventDefault(); + + if (rowManager.displayRowsCount) { + if (newPos <= scrollMax) { + rowManager.element.scrollTop = newPos; + } else { + rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]); + } + } + + this.table.element.focus(); + }, + scrollToStart: function scrollToStart(e) { + var rowManager = this.table.rowManager; + + e.preventDefault(); + + if (rowManager.displayRowsCount) { + rowManager.scrollToRow(rowManager.getDisplayRows()[0]); + } + + this.table.element.focus(); + }, + scrollToEnd: function scrollToEnd(e) { + var rowManager = this.table.rowManager; + + e.preventDefault(); + + if (rowManager.displayRowsCount) { + rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]); + } + + this.table.element.focus(); + }, + navPrev: function navPrev(e) { + var cell = false; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + cell.nav().prev(); + } + } + }, + + navNext: function navNext(e) { + var cell = false; + var newRow = this.table.options.tabEndNewRow; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + if (!cell.nav().next()) { + if (newRow) { + if (newRow === true) { + newRow = this.table.addRow({}); + } else { + if (typeof newRow == "function") { + newRow = this.table.addRow(newRow(cell.row.getComponent())); + } else { + newRow = this.table.addRow(newRow); + } + } + + newRow.then(function () { + cell.nav().next(); + }); + } + } + } + } + }, + + navLeft: function navLeft(e) { + var cell = false; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + cell.nav().left(); + } + } + }, + + navRight: function navRight(e) { + var cell = false; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + cell.nav().right(); + } + } + }, + + navUp: function navUp(e) { + var cell = false; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + cell.nav().up(); + } + } + }, + + navDown: function navDown(e) { + var cell = false; + + if (this.table.modExists("edit")) { + cell = this.table.modules.edit.currentCell; + + if (cell) { + e.preventDefault(); + cell.nav().down(); + } + } + }, + + undo: function undo(e) { + var cell = false; + if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) { + + cell = this.table.modules.edit.currentCell; + + if (!cell) { + e.preventDefault(); + this.table.modules.history.undo(); + } + } + }, + + redo: function redo(e) { + var cell = false; + if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) { + + cell = this.table.modules.edit.currentCell; + + if (!cell) { + e.preventDefault(); + this.table.modules.history.redo(); + } + } + }, + + copyToClipboard: function copyToClipboard(e) { + if (!this.table.modules.edit.currentCell) { + if (this.table.modExists("clipboard", true)) { + this.table.modules.clipboard.copy(!this.table.options.selectable || this.table.options.selectable == "highlight" ? "active" : "selected", null, null, null, true); + } + } + } + }; + + Tabulator.prototype.registerModule("keybindings", Keybindings); + var MoveColumns = function MoveColumns(table) { + this.table = table; //hold Tabulator object + this.placeholderElement = this.createPlaceholderElement(); + this.hoverElement = false; //floating column header element + this.checkTimeout = false; //click check timeout holder + this.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click + this.moving = false; //currently moving column + this.toCol = false; //destination column + this.toColAfter = false; //position of moving column relative to the desitnation column + this.startX = 0; //starting position within header element + this.autoScrollMargin = 40; //auto scroll on edge when within margin + this.autoScrollStep = 5; //auto scroll distance in pixels + this.autoScrollTimeout = false; //auto scroll timeout + this.touchMove = false; + + this.moveHover = this.moveHover.bind(this); + this.endMove = this.endMove.bind(this); + }; + + MoveColumns.prototype.createPlaceholderElement = function () { + var el = document.createElement("div"); + + el.classList.add("tabulator-col"); + el.classList.add("tabulator-col-placeholder"); + + return el; + }; + + MoveColumns.prototype.initializeColumn = function (column) { + var self = this, + config = {}, + colEl; + + if (!column.modules.frozen) { + + colEl = column.getElement(); + + config.mousemove = function (e) { + if (column.parent === self.moving.parent) { + if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) { + if (self.toCol !== column || !self.toColAfter) { + colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling); + self.moveColumn(column, true); + } + } else { + if (self.toCol !== column || self.toColAfter) { + colEl.parentNode.insertBefore(self.placeholderElement, colEl); + self.moveColumn(column, false); + } + } + } + }.bind(self); + + colEl.addEventListener("mousedown", function (e) { + self.touchMove = false; + if (e.which === 1) { + self.checkTimeout = setTimeout(function () { + self.startMove(e, column); + }, self.checkPeriod); + } + }); + + colEl.addEventListener("mouseup", function (e) { + if (e.which === 1) { + if (self.checkTimeout) { + clearTimeout(self.checkTimeout); + } + } + }); + + self.bindTouchEvents(column); + } + + column.modules.moveColumn = config; + }; + + MoveColumns.prototype.bindTouchEvents = function (column) { + var self = this, + colEl = column.getElement(), + startXMove = false, + //shifting center position of the cell + dir = false, + currentCol, + nextCol, + prevCol, + nextColWidth, + prevColWidth, + nextColWidthLast, + prevColWidthLast; + + colEl.addEventListener("touchstart", function (e) { + self.checkTimeout = setTimeout(function () { + self.touchMove = true; + currentCol = column; + nextCol = column.nextColumn(); + nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0; + prevCol = column.prevColumn(); + prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0; + nextColWidthLast = 0; + prevColWidthLast = 0; + startXMove = false; + + self.startMove(e, column); + }, self.checkPeriod); + }, { passive: true }); + + colEl.addEventListener("touchmove", function (e) { + var halfCol, diff, moveToCol; + + if (self.moving) { + self.moveHover(e); + + if (!startXMove) { + startXMove = e.touches[0].pageX; + } + + diff = e.touches[0].pageX - startXMove; + + if (diff > 0) { + if (nextCol && diff - nextColWidthLast > nextColWidth) { + moveToCol = nextCol; + + if (moveToCol !== column) { + startXMove = e.touches[0].pageX; + moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement().nextSibling); + self.moveColumn(moveToCol, true); + } + } + } else { + if (prevCol && -diff - prevColWidthLast > prevColWidth) { + moveToCol = prevCol; + + if (moveToCol !== column) { + startXMove = e.touches[0].pageX; + moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement()); + self.moveColumn(moveToCol, false); + } + } + } + + if (moveToCol) { + currentCol = moveToCol; + nextCol = moveToCol.nextColumn(); + nextColWidthLast = nextColWidth; + nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0; + prevCol = moveToCol.prevColumn(); + prevColWidthLast = prevColWidth; + prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0; + } + } + }, { passive: true }); + + colEl.addEventListener("touchend", function (e) { + if (self.checkTimeout) { + clearTimeout(self.checkTimeout); + } + if (self.moving) { + self.endMove(e); + } + }); + }; + + MoveColumns.prototype.startMove = function (e, column) { + var element = column.getElement(); + + this.moving = column; + this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(element).left; + + this.table.element.classList.add("tabulator-block-select"); + + //create placeholder + this.placeholderElement.style.width = column.getWidth() + "px"; + this.placeholderElement.style.height = column.getHeight() + "px"; + + element.parentNode.insertBefore(this.placeholderElement, element); + element.parentNode.removeChild(element); + + //create hover element + this.hoverElement = element.cloneNode(true); + this.hoverElement.classList.add("tabulator-moving"); + + this.table.columnManager.getElement().appendChild(this.hoverElement); + + this.hoverElement.style.left = "0"; + this.hoverElement.style.bottom = "0"; + + if (!this.touchMove) { + this._bindMouseMove(); + + document.body.addEventListener("mousemove", this.moveHover); + document.body.addEventListener("mouseup", this.endMove); + } + + this.moveHover(e); + }; + + MoveColumns.prototype._bindMouseMove = function () { + this.table.columnManager.columnsByIndex.forEach(function (column) { + if (column.modules.moveColumn.mousemove) { + column.getElement().addEventListener("mousemove", column.modules.moveColumn.mousemove); + } + }); + }; + + MoveColumns.prototype._unbindMouseMove = function () { + this.table.columnManager.columnsByIndex.forEach(function (column) { + if (column.modules.moveColumn.mousemove) { + column.getElement().removeEventListener("mousemove", column.modules.moveColumn.mousemove); + } + }); + }; + + MoveColumns.prototype.moveColumn = function (column, after) { + var movingCells = this.moving.getCells(); + + this.toCol = column; + this.toColAfter = after; + + if (after) { + column.getCells().forEach(function (cell, i) { + var cellEl = cell.getElement(); + cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling); + }); + } else { + column.getCells().forEach(function (cell, i) { + var cellEl = cell.getElement(); + cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl); + }); + } + }; + + MoveColumns.prototype.endMove = function (e) { + if (e.which === 1 || this.touchMove) { + this._unbindMouseMove(); + + this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling); + this.placeholderElement.parentNode.removeChild(this.placeholderElement); + this.hoverElement.parentNode.removeChild(this.hoverElement); + + this.table.element.classList.remove("tabulator-block-select"); + + if (this.toCol) { + this.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter); + } + + this.moving = false; + this.toCol = false; + this.toColAfter = false; + + if (!this.touchMove) { + document.body.removeEventListener("mousemove", this.moveHover); + document.body.removeEventListener("mouseup", this.endMove); + } + } + }; + + MoveColumns.prototype.moveHover = function (e) { + var self = this, + columnHolder = self.table.columnManager.getElement(), + scrollLeft = columnHolder.scrollLeft, + xPos = (self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(columnHolder).left + scrollLeft, + scrollPos; + + self.hoverElement.style.left = xPos - self.startX + "px"; + + if (xPos - scrollLeft < self.autoScrollMargin) { + if (!self.autoScrollTimeout) { + self.autoScrollTimeout = setTimeout(function () { + scrollPos = Math.max(0, scrollLeft - 5); + self.table.rowManager.getElement().scrollLeft = scrollPos; + self.autoScrollTimeout = false; + }, 1); + } + } + + if (scrollLeft + columnHolder.clientWidth - xPos < self.autoScrollMargin) { + if (!self.autoScrollTimeout) { + self.autoScrollTimeout = setTimeout(function () { + scrollPos = Math.min(columnHolder.clientWidth, scrollLeft + 5); + self.table.rowManager.getElement().scrollLeft = scrollPos; + self.autoScrollTimeout = false; + }, 1); + } + } + }; + + Tabulator.prototype.registerModule("moveColumn", MoveColumns); + + var MoveRows = function MoveRows(table) { + + this.table = table; //hold Tabulator object + this.placeholderElement = this.createPlaceholderElement(); + this.hoverElement = false; //floating row header element + this.checkTimeout = false; //click check timeout holder + this.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click + this.moving = false; //currently moving row + this.toRow = false; //destination row + this.toRowAfter = false; //position of moving row relative to the desitnation row + this.hasHandle = false; //row has handle instead of fully movable row + this.startY = 0; //starting Y position within header element + this.startX = 0; //starting X position within header element + + this.moveHover = this.moveHover.bind(this); + this.endMove = this.endMove.bind(this); + this.tableRowDropEvent = false; + + this.touchMove = false; + + this.connection = false; + this.connections = []; + + this.connectedTable = false; + this.connectedRow = false; + }; + + MoveRows.prototype.createPlaceholderElement = function () { + var el = document.createElement("div"); + + el.classList.add("tabulator-row"); + el.classList.add("tabulator-row-placeholder"); + + return el; + }; + + MoveRows.prototype.initialize = function (handle) { + this.connection = this.table.options.movableRowsConnectedTables; + }; + + MoveRows.prototype.setHandle = function (handle) { + this.hasHandle = handle; + }; + + MoveRows.prototype.initializeGroupHeader = function (group) { + var self = this, + config = {}, + rowEl; + + //inter table drag drop + config.mouseup = function (e) { + self.tableRowDrop(e, row); + }.bind(self); + + //same table drag drop + config.mousemove = function (e) { + if (e.pageY - Tabulator.prototype.helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) { + if (self.toRow !== group || !self.toRowAfter) { + var rowEl = group.getElement(); + rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling); + self.moveRow(group, true); + } + } else { + if (self.toRow !== group || self.toRowAfter) { + var rowEl = group.getElement(); + if (rowEl.previousSibling) { + rowEl.parentNode.insertBefore(self.placeholderElement, rowEl); + self.moveRow(group, false); + } + } + } + }.bind(self); + + group.modules.moveRow = config; + }; + + MoveRows.prototype.initializeRow = function (row) { + var self = this, + config = {}, + rowEl; + + //inter table drag drop + config.mouseup = function (e) { + self.tableRowDrop(e, row); + }.bind(self); + + //same table drag drop + config.mousemove = function (e) { + if (e.pageY - Tabulator.prototype.helpers.elOffset(row.element).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) { + if (self.toRow !== row || !self.toRowAfter) { + var rowEl = row.getElement(); + rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling); + self.moveRow(row, true); + } + } else { + if (self.toRow !== row || self.toRowAfter) { + var rowEl = row.getElement(); + rowEl.parentNode.insertBefore(self.placeholderElement, rowEl); + self.moveRow(row, false); + } + } + }.bind(self); + + if (!this.hasHandle) { + + rowEl = row.getElement(); + + rowEl.addEventListener("mousedown", function (e) { + if (e.which === 1) { + self.checkTimeout = setTimeout(function () { + self.startMove(e, row); + }, self.checkPeriod); + } + }); + + rowEl.addEventListener("mouseup", function (e) { + if (e.which === 1) { + if (self.checkTimeout) { + clearTimeout(self.checkTimeout); + } + } + }); + + this.bindTouchEvents(row, row.getElement()); + } + + row.modules.moveRow = config; + }; + + MoveRows.prototype.initializeCell = function (cell) { + var self = this, + cellEl = cell.getElement(); + + cellEl.addEventListener("mousedown", function (e) { + if (e.which === 1) { + self.checkTimeout = setTimeout(function () { + self.startMove(e, cell.row); + }, self.checkPeriod); + } + }); + + cellEl.addEventListener("mouseup", function (e) { + if (e.which === 1) { + if (self.checkTimeout) { + clearTimeout(self.checkTimeout); + } + } + }); + + this.bindTouchEvents(cell.row, cell.getElement()); + }; + + MoveRows.prototype.bindTouchEvents = function (row, element) { + var self = this, + startYMove = false, + //shifting center position of the cell + dir = false, + currentRow, + nextRow, + prevRow, + nextRowHeight, + prevRowHeight, + nextRowHeightLast, + prevRowHeightLast; + + element.addEventListener("touchstart", function (e) { + self.checkTimeout = setTimeout(function () { + self.touchMove = true; + currentRow = row; + nextRow = row.nextRow(); + nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0; + prevRow = row.prevRow(); + prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0; + nextRowHeightLast = 0; + prevRowHeightLast = 0; + startYMove = false; + + self.startMove(e, row); + }, self.checkPeriod); + }, { passive: true }); + this.moving, this.toRow, this.toRowAfter; + element.addEventListener("touchmove", function (e) { + + var halfCol, diff, moveToRow; + + if (self.moving) { + e.preventDefault(); + + self.moveHover(e); + + if (!startYMove) { + startYMove = e.touches[0].pageY; + } + + diff = e.touches[0].pageY - startYMove; + + if (diff > 0) { + if (nextRow && diff - nextRowHeightLast > nextRowHeight) { + moveToRow = nextRow; + + if (moveToRow !== row) { + startYMove = e.touches[0].pageY; + moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement().nextSibling); + self.moveRow(moveToRow, true); + } + } + } else { + if (prevRow && -diff - prevRowHeightLast > prevRowHeight) { + moveToRow = prevRow; + + if (moveToRow !== row) { + startYMove = e.touches[0].pageY; + moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement()); + self.moveRow(moveToRow, false); + } + } + } + + if (moveToRow) { + currentRow = moveToRow; + nextRow = moveToRow.nextRow(); + nextRowHeightLast = nextRowHeight; + nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0; + prevRow = moveToRow.prevRow(); + prevRowHeightLast = prevRowHeight; + prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0; + } + } + }); + + element.addEventListener("touchend", function (e) { + if (self.checkTimeout) { + clearTimeout(self.checkTimeout); + } + if (self.moving) { + self.endMove(e); + self.touchMove = false; + } + }); + }; + + MoveRows.prototype._bindMouseMove = function () { + var self = this; + + self.table.rowManager.getDisplayRows().forEach(function (row) { + if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) { + row.getElement().addEventListener("mousemove", row.modules.moveRow.mousemove); + } + }); + }; + + MoveRows.prototype._unbindMouseMove = function () { + var self = this; + + self.table.rowManager.getDisplayRows().forEach(function (row) { + if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) { + row.getElement().removeEventListener("mousemove", row.modules.moveRow.mousemove); + } + }); + }; + + MoveRows.prototype.startMove = function (e, row) { + var element = row.getElement(); + + this.setStartPosition(e, row); + + this.moving = row; + + this.table.element.classList.add("tabulator-block-select"); + + //create placeholder + this.placeholderElement.style.width = row.getWidth() + "px"; + this.placeholderElement.style.height = row.getHeight() + "px"; + + if (!this.connection) { + element.parentNode.insertBefore(this.placeholderElement, element); + element.parentNode.removeChild(element); + } else { + this.table.element.classList.add("tabulator-movingrow-sending"); + this.connectToTables(row); + } + + //create hover element + this.hoverElement = element.cloneNode(true); + this.hoverElement.classList.add("tabulator-moving"); + + if (this.connection) { + document.body.appendChild(this.hoverElement); + this.hoverElement.style.left = "0"; + this.hoverElement.style.top = "0"; + this.hoverElement.style.width = this.table.element.clientWidth + "px"; + this.hoverElement.style.whiteSpace = "nowrap"; + this.hoverElement.style.overflow = "hidden"; + this.hoverElement.style.pointerEvents = "none"; + } else { + this.table.rowManager.getTableElement().appendChild(this.hoverElement); + + this.hoverElement.style.left = "0"; + this.hoverElement.style.top = "0"; + + this._bindMouseMove(); + } + + document.body.addEventListener("mousemove", this.moveHover); + document.body.addEventListener("mouseup", this.endMove); + + this.moveHover(e); + }; + + MoveRows.prototype.setStartPosition = function (e, row) { + var pageX = this.touchMove ? e.touches[0].pageX : e.pageX, + pageY = this.touchMove ? e.touches[0].pageY : e.pageY, + element, + position; + + element = row.getElement(); + if (this.connection) { + position = element.getBoundingClientRect(); + + this.startX = position.left - pageX + window.pageXOffset; + this.startY = position.top - pageY + window.pageYOffset; + } else { + this.startY = pageY - element.getBoundingClientRect().top; + } + }; + + MoveRows.prototype.endMove = function (e) { + if (!e || e.which === 1 || this.touchMove) { + this._unbindMouseMove(); + + if (!this.connection) { + this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling); + this.placeholderElement.parentNode.removeChild(this.placeholderElement); + } + + this.hoverElement.parentNode.removeChild(this.hoverElement); + + this.table.element.classList.remove("tabulator-block-select"); + + if (this.toRow) { + this.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter); + } + + this.moving = false; + this.toRow = false; + this.toRowAfter = false; + + document.body.removeEventListener("mousemove", this.moveHover); + document.body.removeEventListener("mouseup", this.endMove); + + if (this.connection) { + this.table.element.classList.remove("tabulator-movingrow-sending"); + this.disconnectFromTables(); + } + } + }; + + MoveRows.prototype.moveRow = function (row, after) { + this.toRow = row; + this.toRowAfter = after; + }; + + MoveRows.prototype.moveHover = function (e) { + if (this.connection) { + this.moveHoverConnections.call(this, e); + } else { + this.moveHoverTable.call(this, e); + } + }; + + MoveRows.prototype.moveHoverTable = function (e) { + var rowHolder = this.table.rowManager.getElement(), + scrollTop = rowHolder.scrollTop, + yPos = (this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top + scrollTop, + scrollPos; + + this.hoverElement.style.top = yPos - this.startY + "px"; + }; + + MoveRows.prototype.moveHoverConnections = function (e) { + this.hoverElement.style.left = this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX) + "px"; + this.hoverElement.style.top = this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY) + "px"; + }; + + //establish connection with other tables + MoveRows.prototype.connectToTables = function (row) { + var self = this, + connections = this.table.modules.comms.getConnections(this.connection); + + this.table.options.movableRowsSendingStart.call(this.table, connections); + + this.table.modules.comms.send(this.connection, "moveRow", "connect", { + row: row + }); + }; + + //disconnect from other tables + MoveRows.prototype.disconnectFromTables = function () { + var self = this, + connections = this.table.modules.comms.getConnections(this.connection); + + this.table.options.movableRowsSendingStop.call(this.table, connections); + + this.table.modules.comms.send(this.connection, "moveRow", "disconnect"); + }; + + //accept incomming connection + MoveRows.prototype.connect = function (table, row) { + var self = this; + if (!this.connectedTable) { + this.connectedTable = table; + this.connectedRow = row; + + this.table.element.classList.add("tabulator-movingrow-receiving"); + + self.table.rowManager.getDisplayRows().forEach(function (row) { + if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) { + row.getElement().addEventListener("mouseup", row.modules.moveRow.mouseup); + } + }); + + self.tableRowDropEvent = self.tableRowDrop.bind(self); + + self.table.element.addEventListener("mouseup", self.tableRowDropEvent); + + this.table.options.movableRowsReceivingStart.call(this.table, row, table); + + return true; + } else { + console.warn("Move Row Error - Table cannot accept connection, already connected to table:", this.connectedTable); + return false; + } + }; + + //close incomming connection + MoveRows.prototype.disconnect = function (table) { + var self = this; + if (table === this.connectedTable) { + this.connectedTable = false; + this.connectedRow = false; + + this.table.element.classList.remove("tabulator-movingrow-receiving"); + + self.table.rowManager.getDisplayRows().forEach(function (row) { + if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) { + row.getElement().removeEventListener("mouseup", row.modules.moveRow.mouseup); + } + }); + + self.table.element.removeEventListener("mouseup", self.tableRowDropEvent); + + this.table.options.movableRowsReceivingStop.call(this.table, table); + } else { + console.warn("Move Row Error - trying to disconnect from non connected table"); + } + }; + + MoveRows.prototype.dropComplete = function (table, row, success) { + var sender = false; + + if (success) { + + switch (_typeof(this.table.options.movableRowsSender)) { + case "string": + sender = this.senders[this.table.options.movableRowsSender]; + break; + + case "function": + sender = this.table.options.movableRowsSender; + break; + } + + if (sender) { + sender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table); + } else { + if (this.table.options.movableRowsSender) { + console.warn("Mover Row Error - no matching sender found:", this.table.options.movableRowsSender); + } + } + + this.table.options.movableRowsSent.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table); + } else { + this.table.options.movableRowsSentFailed.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table); + } + + this.endMove(); + }; + + MoveRows.prototype.tableRowDrop = function (e, row) { + var receiver = false, + success = false; + + e.stopImmediatePropagation(); + + switch (_typeof(this.table.options.movableRowsReceiver)) { + case "string": + receiver = this.receivers[this.table.options.movableRowsReceiver]; + break; + + case "function": + receiver = this.table.options.movableRowsReceiver; + break; + } + + if (receiver) { + success = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable); + } else { + console.warn("Mover Row Error - no matching receiver found:", this.table.options.movableRowsReceiver); + } + + if (success) { + this.table.options.movableRowsReceived.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable); + } else { + this.table.options.movableRowsReceivedFailed.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable); + } + + this.table.modules.comms.send(this.connectedTable, "moveRow", "dropcomplete", { + row: row, + success: success + }); + }; + + MoveRows.prototype.receivers = { + insert: function insert(fromRow, toRow, fromTable) { + this.table.addRow(fromRow.getData(), undefined, toRow); + return true; + }, + + add: function add(fromRow, toRow, fromTable) { + this.table.addRow(fromRow.getData()); + return true; + }, + + update: function update(fromRow, toRow, fromTable) { + if (toRow) { + toRow.update(fromRow.getData()); + return true; + } + + return false; + }, + + replace: function replace(fromRow, toRow, fromTable) { + if (toRow) { + this.table.addRow(fromRow.getData(), undefined, toRow); + toRow.delete(); + return true; + } + + return false; + } + }; + + MoveRows.prototype.senders = { + delete: function _delete(fromRow, toRow, toTable) { + fromRow.delete(); + } + }; + + MoveRows.prototype.commsReceived = function (table, action, data) { + switch (action) { + case "connect": + return this.connect(table, data.row); + break; + + case "disconnect": + return this.disconnect(table); + break; + + case "dropcomplete": + return this.dropComplete(table, data.row, data.success); + break; + } + }; + + Tabulator.prototype.registerModule("moveRow", MoveRows); + var Mutator = function Mutator(table) { + this.table = table; //hold Tabulator object + this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types + this.enabled = true; + }; + + //initialize column mutator + Mutator.prototype.initializeColumn = function (column) { + var self = this, + match = false, + config = {}; + + this.allowedTypes.forEach(function (type) { + var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)), + mutator; + + if (column.definition[key]) { + mutator = self.lookupMutator(column.definition[key]); + + if (mutator) { + match = true; + + config[key] = { + mutator: mutator, + params: column.definition[key + "Params"] || {} + }; + } + } + }); + + if (match) { + column.modules.mutate = config; + } + }; + + Mutator.prototype.lookupMutator = function (value) { + var mutator = false; + + //set column mutator + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "string": + if (this.mutators[value]) { + mutator = this.mutators[value]; + } else { + console.warn("Mutator Error - No such mutator found, ignoring: ", value); + } + break; + + case "function": + mutator = value; + break; + } + + return mutator; + }; + + //apply mutator to row + Mutator.prototype.transformRow = function (data, type, update) { + var self = this, + key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)), + value; + + if (this.enabled) { + + self.table.columnManager.traverse(function (column) { + var mutator, params, component; + + if (column.modules.mutate) { + mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false; + + if (mutator) { + value = column.getFieldValue(data); + + if (!update || update && typeof value !== "undefined") { + component = column.getComponent(); + params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params; + column.setFieldValue(data, mutator.mutator(value, data, type, params, component)); + } + } + } + }); + } + + return data; + }; + + //apply mutator to new cell value + Mutator.prototype.transformCell = function (cell, value) { + var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false; + + if (mutator) { + return mutator.mutator(value, cell.row.getData(), "edit", mutator.params, cell.getComponent()); + } else { + return value; + } + }; + + Mutator.prototype.enable = function () { + this.enabled = true; + }; + + Mutator.prototype.disable = function () { + this.enabled = false; + }; + + //default mutators + Mutator.prototype.mutators = {}; + + Tabulator.prototype.registerModule("mutator", Mutator); + var Page = function Page(table) { + + this.table = table; //hold Tabulator object + + this.mode = "local"; + this.progressiveLoad = false; + + this.size = 0; + this.page = 1; + this.count = 5; + this.max = 1; + + this.displayIndex = 0; //index in display pipeline + + this.pageSizes = []; + + this.createElements(); + }; + + Page.prototype.createElements = function () { + + var button; + + this.element = document.createElement("span"); + this.element.classList.add("tabulator-paginator"); + + this.pagesElement = document.createElement("span"); + this.pagesElement.classList.add("tabulator-pages"); + + button = document.createElement("button"); + button.classList.add("tabulator-page"); + button.setAttribute("type", "button"); + button.setAttribute("role", "button"); + button.setAttribute("aria-label", ""); + button.setAttribute("title", ""); + + this.firstBut = button.cloneNode(true); + this.firstBut.setAttribute("data-page", "first"); + + this.prevBut = button.cloneNode(true); + this.prevBut.setAttribute("data-page", "prev"); + + this.nextBut = button.cloneNode(true); + this.nextBut.setAttribute("data-page", "next"); + + this.lastBut = button.cloneNode(true); + this.lastBut.setAttribute("data-page", "last"); + + if (this.table.options.paginationSizeSelector) { + this.pageSizeSelect = document.createElement("select"); + this.pageSizeSelect.classList.add("tabulator-page-size"); + } + }; + + Page.prototype.generatePageSizeSelectList = function () { + var _this47 = this; + + var pageSizes = []; + + if (this.pageSizeSelect) { + + if (Array.isArray(this.table.options.paginationSizeSelector)) { + pageSizes = this.table.options.paginationSizeSelector; + this.pageSizes = pageSizes; + + if (this.pageSizes.indexOf(this.size) == -1) { + pageSizes.unshift(this.size); + } + } else { + + if (this.pageSizes.indexOf(this.size) == -1) { + pageSizes = []; + + for (var i = 1; i < 5; i++) { + pageSizes.push(this.size * i); + } + + this.pageSizes = pageSizes; + } else { + pageSizes = this.pageSizes; + } + } + + while (this.pageSizeSelect.firstChild) { + this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild); + }pageSizes.forEach(function (item) { + var itemEl = document.createElement("option"); + itemEl.value = item; + itemEl.innerHTML = item; + + _this47.pageSizeSelect.appendChild(itemEl); + }); + + this.pageSizeSelect.value = this.size; + } + }; + + //setup pageination + Page.prototype.initialize = function (hidden) { + var self = this, + pageSelectLabel; + + //update param names + for (var key in self.table.options.paginationDataSent) { + self.paginationDataSentNames[key] = self.table.options.paginationDataSent[key]; + } + + for (var _key2 in self.table.options.paginationDataReceived) { + self.paginationDataReceivedNames[_key2] = self.table.options.paginationDataReceived[_key2]; + } + + //build pagination element + + //bind localizations + self.table.modules.localize.bind("pagination|first", function (value) { + self.firstBut.innerHTML = value; + }); + + self.table.modules.localize.bind("pagination|first_title", function (value) { + self.firstBut.setAttribute("aria-label", value); + self.firstBut.setAttribute("title", value); + }); + + self.table.modules.localize.bind("pagination|prev", function (value) { + self.prevBut.innerHTML = value; + }); + + self.table.modules.localize.bind("pagination|prev_title", function (value) { + self.prevBut.setAttribute("aria-label", value); + self.prevBut.setAttribute("title", value); + }); + + self.table.modules.localize.bind("pagination|next", function (value) { + self.nextBut.innerHTML = value; + }); + + self.table.modules.localize.bind("pagination|next_title", function (value) { + self.nextBut.setAttribute("aria-label", value); + self.nextBut.setAttribute("title", value); + }); + + self.table.modules.localize.bind("pagination|last", function (value) { + self.lastBut.innerHTML = value; + }); + + self.table.modules.localize.bind("pagination|last_title", function (value) { + self.lastBut.setAttribute("aria-label", value); + self.lastBut.setAttribute("title", value); + }); + + //click bindings + self.firstBut.addEventListener("click", function () { + self.setPage(1); + }); + + self.prevBut.addEventListener("click", function () { + self.previousPage(); + }); + + self.nextBut.addEventListener("click", function () { + self.nextPage().then(function () {}).catch(function () {}); + }); + + self.lastBut.addEventListener("click", function () { + self.setPage(self.max); + }); + + if (self.table.options.paginationElement) { + self.element = self.table.options.paginationElement; + } + + if (this.pageSizeSelect) { + pageSelectLabel = document.createElement("label"); + + self.table.modules.localize.bind("pagination|page_size", function (value) { + self.pageSizeSelect.setAttribute("aria-label", value); + self.pageSizeSelect.setAttribute("title", value); + pageSelectLabel.innerHTML = value; + }); + + self.element.appendChild(pageSelectLabel); + self.element.appendChild(self.pageSizeSelect); + + self.pageSizeSelect.addEventListener("change", function (e) { + self.setPageSize(self.pageSizeSelect.value); + self.setPage(1).then(function () {}).catch(function () {}); + }); + } + + //append to DOM + self.element.appendChild(self.firstBut); + self.element.appendChild(self.prevBut); + self.element.appendChild(self.pagesElement); + self.element.appendChild(self.nextBut); + self.element.appendChild(self.lastBut); + + if (!self.table.options.paginationElement && !hidden) { + self.table.footerManager.append(self.element, self); + } + + //set default values + self.mode = self.table.options.pagination; + self.size = self.table.options.paginationSize || Math.floor(self.table.rowManager.getElement().clientHeight / 24); + self.count = self.table.options.paginationButtonCount; + + self.generatePageSizeSelectList(); + }; + + Page.prototype.initializeProgressive = function (mode) { + this.initialize(true); + this.mode = "progressive_" + mode; + this.progressiveLoad = true; + }; + + Page.prototype.setDisplayIndex = function (index) { + this.displayIndex = index; + }; + + Page.prototype.getDisplayIndex = function () { + return this.displayIndex; + }; + + //calculate maximum page from number of rows + Page.prototype.setMaxRows = function (rowCount) { + if (!rowCount) { + this.max = 1; + } else { + this.max = Math.ceil(rowCount / this.size); + } + + if (this.page > this.max) { + this.page = this.max; + } + }; + + //reset to first page without triggering action + Page.prototype.reset = function (force) { + if (this.mode == "local" || force) { + this.page = 1; + } + return true; + }; + + //set the maxmum page + Page.prototype.setMaxPage = function (max) { + + max = parseInt(max); + + this.max = max || 1; + + if (this.page > this.max) { + this.page = this.max; + this.trigger(); + } + }; + + //set current page number + Page.prototype.setPage = function (page) { + var _this48 = this; + + return new Promise(function (resolve, reject) { + + page = parseInt(page); + + if (page > 0 && page <= _this48.max) { + _this48.page = page; + _this48.trigger().then(function () { + resolve(); + }).catch(function () { + reject(); + }); + } else { + console.warn("Pagination Error - Requested page is out of range of 1 - " + _this48.max + ":", page); + reject(); + } + }); + }; + + Page.prototype.setPageToRow = function (row) { + var _this49 = this; + + return new Promise(function (resolve, reject) { + + var rows = _this49.table.rowManager.getDisplayRows(_this49.displayIndex - 1); + var index = rows.indexOf(row); + + if (index > -1) { + var page = Math.ceil((index + 1) / _this49.size); + + _this49.setPage(page).then(function () { + resolve(); + }).catch(function () { + reject(); + }); + } else { + console.warn("Pagination Error - Requested row is not visible"); + reject(); + } + }); + }; + + Page.prototype.setPageSize = function (size) { + size = parseInt(size); + + if (size > 0) { + this.size = size; + } + + if (this.pageSizeSelect) { + // this.pageSizeSelect.value = size; + this.generatePageSizeSelectList(); + } + }; + + //setup the pagination buttons + Page.prototype._setPageButtons = function () { + var self = this; + + var leftSize = Math.floor((this.count - 1) / 2); + var rightSize = Math.ceil((this.count - 1) / 2); + var min = this.max - this.page + leftSize + 1 < this.count ? this.max - this.count + 1 : Math.max(this.page - leftSize, 1); + var max = this.page <= rightSize ? Math.min(this.count, this.max) : Math.min(this.page + rightSize, this.max); + + while (self.pagesElement.firstChild) { + self.pagesElement.removeChild(self.pagesElement.firstChild); + }if (self.page == 1) { + self.firstBut.disabled = true; + self.prevBut.disabled = true; + } else { + self.firstBut.disabled = false; + self.prevBut.disabled = false; + } + + if (self.page == self.max) { + self.lastBut.disabled = true; + self.nextBut.disabled = true; + } else { + self.lastBut.disabled = false; + self.nextBut.disabled = false; + } + + for (var i = min; i <= max; i++) { + if (i > 0 && i <= self.max) { + self.pagesElement.appendChild(self._generatePageButton(i)); + } + } + + this.footerRedraw(); + }; + + Page.prototype._generatePageButton = function (page) { + var self = this, + button = document.createElement("button"); + + button.classList.add("tabulator-page"); + if (page == self.page) { + button.classList.add("active"); + } + + button.setAttribute("type", "button"); + button.setAttribute("role", "button"); + button.setAttribute("aria-label", "Show Page " + page); + button.setAttribute("title", "Show Page " + page); + button.setAttribute("data-page", page); + button.textContent = page; + + button.addEventListener("click", function (e) { + self.setPage(page); + }); + + return button; + }; + + //previous page + Page.prototype.previousPage = function () { + var _this50 = this; + + return new Promise(function (resolve, reject) { + if (_this50.page > 1) { + _this50.page--; + _this50.trigger().then(function () { + resolve(); + }).catch(function () { + reject(); + }); + } else { + console.warn("Pagination Error - Previous page would be less than page 1:", 0); + reject(); + } + }); + }; + + //next page + Page.prototype.nextPage = function () { + var _this51 = this; + + return new Promise(function (resolve, reject) { + if (_this51.page < _this51.max) { + _this51.page++; + _this51.trigger().then(function () { + resolve(); + }).catch(function () { + reject(); + }); + } else { + if (!_this51.progressiveLoad) { + console.warn("Pagination Error - Next page would be greater than maximum page of " + _this51.max + ":", _this51.max + 1); + } + reject(); + } + }); + }; + + //return current page number + Page.prototype.getPage = function () { + return this.page; + }; + + //return max page number + Page.prototype.getPageMax = function () { + return this.max; + }; + + Page.prototype.getPageSize = function (size) { + return this.size; + }; + + Page.prototype.getMode = function () { + return this.mode; + }; + + //return appropriate rows for current page + Page.prototype.getRows = function (data) { + var output, start, end; + + if (this.mode == "local") { + output = []; + start = this.size * (this.page - 1); + end = start + parseInt(this.size); + + this._setPageButtons(); + + for (var i = start; i < end; i++) { + if (data[i]) { + output.push(data[i]); + } + } + + return output; + } else { + + this._setPageButtons(); + + return data.slice(0); + } + }; + + Page.prototype.trigger = function () { + var _this52 = this; + + var left; + + return new Promise(function (resolve, reject) { + + switch (_this52.mode) { + case "local": + left = _this52.table.rowManager.scrollLeft; + + _this52.table.rowManager.refreshActiveData("page"); + _this52.table.rowManager.scrollHorizontal(left); + + _this52.table.options.pageLoaded.call(_this52.table, _this52.getPage()); + resolve(); + break; + + case "remote": + case "progressive_load": + case "progressive_scroll": + _this52.table.modules.ajax.blockActiveRequest(); + _this52._getRemotePage().then(function () { + resolve(); + }).catch(function () { + reject(); + }); + break; + + default: + console.warn("Pagination Error - no such pagination mode:", _this52.mode); + reject(); + } + }); + }; + + Page.prototype._getRemotePage = function () { + var _this53 = this; + + var self = this, + oldParams, + pageParams; + + return new Promise(function (resolve, reject) { + + if (!self.table.modExists("ajax", true)) { + reject(); + } + + //record old params and restore after request has been made + oldParams = Tabulator.prototype.helpers.deepClone(self.table.modules.ajax.getParams() || {}); + pageParams = self.table.modules.ajax.getParams(); + + //configure request params + pageParams[_this53.paginationDataSentNames.page] = self.page; + + //set page size if defined + if (_this53.size) { + pageParams[_this53.paginationDataSentNames.size] = _this53.size; + } + + //set sort data if defined + if (_this53.table.options.ajaxSorting && _this53.table.modExists("sort")) { + var sorters = self.table.modules.sort.getSort(); + + sorters.forEach(function (item) { + delete item.column; + }); + + pageParams[_this53.paginationDataSentNames.sorters] = sorters; + } + + //set filter data if defined + if (_this53.table.options.ajaxFiltering && _this53.table.modExists("filter")) { + var filters = self.table.modules.filter.getFilters(true, true); + pageParams[_this53.paginationDataSentNames.filters] = filters; + } + + self.table.modules.ajax.setParams(pageParams); + + self.table.modules.ajax.sendRequest(_this53.progressiveLoad).then(function (data) { + self._parseRemoteData(data); + resolve(); + }).catch(function (e) { + reject(); + }); + + self.table.modules.ajax.setParams(oldParams); + }); + }; + + Page.prototype._parseRemoteData = function (data) { + var self = this, + left, + data, + margin; + + if (typeof data[this.paginationDataReceivedNames.last_page] === "undefined") { + console.warn("Remote Pagination Error - Server response missing '" + this.paginationDataReceivedNames.last_page + "' property"); + } + + if (data[this.paginationDataReceivedNames.data]) { + this.max = parseInt(data[this.paginationDataReceivedNames.last_page]) || 1; + + if (this.progressiveLoad) { + switch (this.mode) { + case "progressive_load": + this.table.rowManager.addRows(data[this.paginationDataReceivedNames.data]); + if (this.page < this.max) { + setTimeout(function () { + self.nextPage().then(function () {}).catch(function () {}); + }, self.table.options.ajaxProgressiveLoadDelay); + } + break; + + case "progressive_scroll": + data = this.table.rowManager.getData().concat(data[this.paginationDataReceivedNames.data]); + + this.table.rowManager.setData(data, true); + + margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2; + + if (self.table.rowManager.element.scrollHeight <= self.table.rowManager.element.clientHeight + margin) { + self.nextPage().then(function () {}).catch(function () {}); + } + break; + } + } else { + left = this.table.rowManager.scrollLeft; + + this.table.rowManager.setData(data[this.paginationDataReceivedNames.data]); + + this.table.rowManager.scrollHorizontal(left); + + this.table.columnManager.scrollHorizontal(left); + + this.table.options.pageLoaded.call(this.table, this.getPage()); + } + } else { + console.warn("Remote Pagination Error - Server response missing '" + this.paginationDataReceivedNames.data + "' property"); + } + }; + + //handle the footer element being redrawn + Page.prototype.footerRedraw = function () { + var footer = this.table.footerManager.element; + + if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) { + this.pagesElement.style.display = 'none'; + } else { + this.pagesElement.style.display = ''; + + if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) { + this.pagesElement.style.display = 'none'; + } + } + }; + + //set the paramter names for pagination requests + Page.prototype.paginationDataSentNames = { + "page": "page", + "size": "size", + "sorters": "sorters", + // "sort_dir":"sort_dir", + "filters": "filters" + // "filter_value":"filter_value", + // "filter_type":"filter_type", + }; + + //set the property names for pagination responses + Page.prototype.paginationDataReceivedNames = { + "current_page": "current_page", + "last_page": "last_page", + "data": "data" + }; + + Tabulator.prototype.registerModule("page", Page); + + var Persistence = function Persistence(table) { + this.table = table; //hold Tabulator object + this.mode = ""; + this.id = ""; + this.persistProps = ["field", "width", "visible"]; + }; + + // Test for whether localStorage is available for use. + Persistence.prototype.localStorageTest = function () { + var testKey = "_tabulator_test"; + + try { + window.localStorage.setItem(testKey, testKey); + window.localStorage.removeItem(testKey); + return true; + } catch (e) { + return false; + } + }; + + //setup parameters + Persistence.prototype.initialize = function (mode, id) { + //determine persistent layout storage type + + this.mode = mode !== true ? mode : this.localStorageTest() ? "local" : "cookie"; + + //set storage tag + this.id = "tabulator-" + (id || this.table.element.getAttribute("id") || ""); + }; + + //load saved definitions + Persistence.prototype.load = function (type, current) { + + var data = this.retreiveData(type); + + if (current) { + data = data ? this.mergeDefinition(current, data) : current; + } + + return data; + }; + + //retreive data from memory + Persistence.prototype.retreiveData = function (type) { + var data = "", + id = this.id + (type === "columns" ? "" : "-" + type); + + switch (this.mode) { + case "local": + data = localStorage.getItem(id); + break; + + case "cookie": + + //find cookie + var cookie = document.cookie, + cookiePos = cookie.indexOf(id + "="), + end = void 0; + + //if cookie exists, decode and load column data into tabulator + if (cookiePos > -1) { + cookie = cookie.substr(cookiePos); + + end = cookie.indexOf(";"); + + if (end > -1) { + cookie = cookie.substr(0, end); + } + + data = cookie.replace(id + "=", ""); + } + break; + + default: + console.warn("Persistence Load Error - invalid mode selected", this.mode); + } + + return data ? JSON.parse(data) : false; + }; + + //merge old and new column definitions + Persistence.prototype.mergeDefinition = function (oldCols, newCols) { + var self = this, + output = []; + + // oldCols = oldCols || []; + newCols = newCols || []; + + newCols.forEach(function (column, to) { + + var from = self._findColumn(oldCols, column); + + if (from) { + + from.width = column.width; + from.visible = column.visible; + + if (from.columns) { + from.columns = self.mergeDefinition(from.columns, column.columns); + } + + output.push(from); + } + }); + oldCols.forEach(function (column, i) { + var from = self._findColumn(newCols, column); + if (!from) { + if (output.length > i) { + output.splice(i, 0, column); + } else { + output.push(column); + } + } + }); + + return output; + }; + + //find matching columns + Persistence.prototype._findColumn = function (columns, subject) { + var type = subject.columns ? "group" : subject.field ? "field" : "object"; + + return columns.find(function (col) { + switch (type) { + case "group": + return col.title === subject.title && col.columns.length === subject.columns.length; + break; + + case "field": + return col.field === subject.field; + break; + + case "object": + return col === subject; + break; + } + }); + }; + + //save data + Persistence.prototype.save = function (type) { + var data = {}; + + switch (type) { + case "columns": + data = this.parseColumns(this.table.columnManager.getColumns()); + break; + + case "filter": + data = this.table.modules.filter.getFilters(); + break; + + case "sort": + data = this.validateSorters(this.table.modules.sort.getSort()); + break; + } + + var id = this.id + (type === "columns" ? "" : "-" + type); + + this.saveData(id, data); + }; + + //ensure sorters contain no function data + Persistence.prototype.validateSorters = function (data) { + data.forEach(function (item) { + item.column = item.field; + delete item.field; + }); + + return data; + }; + + //save data to chosed medium + Persistence.prototype.saveData = function (id, data) { + + data = JSON.stringify(data); + + switch (this.mode) { + case "local": + localStorage.setItem(id, data); + break; + + case "cookie": + var expireDate = new Date(); + expireDate.setDate(expireDate.getDate() + 10000); + + //save cookie + document.cookie = id + "=" + data + "; expires=" + expireDate.toUTCString(); + break; + + default: + console.warn("Persistence Save Error - invalid mode selected", this.mode); + } + }; + + //build permission list + Persistence.prototype.parseColumns = function (columns) { + var self = this, + definitions = []; + + columns.forEach(function (column) { + var def = {}; + + if (column.isGroup) { + def.title = column.getDefinition().title; + def.columns = self.parseColumns(column.getColumns()); + } else { + def.title = column.getDefinition().title; + def.field = column.getField(); + def.width = column.getWidth(); + def.visible = column.visible; + } + + definitions.push(def); + }); + + return definitions; + }; + + Tabulator.prototype.registerModule("persistence", Persistence); + + var Print = function Print(table) { + this.table = table; //hold Tabulator object + this.element = false; + this.manualBlock = false; + }; + + Print.prototype.initialize = function () { + window.addEventListener("beforeprint", this.replaceTable.bind(this)); + window.addEventListener("afterprint", this.cleanup.bind(this)); + }; + + Print.prototype.replaceTable = function () { + if (!this.manualBlock) { + this.element = document.createElement("div"); + this.element.classList.add("tabulator-print-table"); + + this.element.appendChild(this.table.modules.htmlTableExport.genereateTable(this.table.options.printConfig, this.table.options.printCopyStyle, this.table.options.printVisibleRows, "print")); + + this.table.element.style.display = "none"; + + this.table.element.parentNode.insertBefore(this.element, this.table.element); + } + }; + + Print.prototype.cleanup = function () { + document.body.classList.remove("tabulator-print-fullscreen-hide"); + + if (this.element && this.element.parentNode) { + this.element.parentNode.removeChild(this.element); + this.table.element.style.display = ""; + } + }; + + Print.prototype.printFullscreen = function (visible, style, config) { + var scrollX = window.scrollX, + scrollY = window.scrollY, + headerEl = document.createElement("div"), + footerEl = document.createElement("div"), + tableEl = this.table.modules.htmlTableExport.genereateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printCopyStyle, visible, "print"), + headerContent, + footerContent; + + this.manualBlock = true; + + this.element = document.createElement("div"); + this.element.classList.add("tabulator-print-fullscreen"); + + if (this.table.options.printHeader) { + headerEl.classList.add("tabulator-print-header"); + + headerContent = typeof this.table.options.printHeader == "function" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader; + + if (typeof headerContent == "string") { + headerEl.innerHTML = headerContent; + } else { + headerEl.appendChild(headerContent); + } + + this.element.appendChild(headerEl); + } + + this.element.appendChild(tableEl); + + if (this.table.options.printFooter) { + footerEl.classList.add("tabulator-print-footer"); + + footerContent = typeof this.table.options.printFooter == "function" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter; + + if (typeof footerContent == "string") { + footerEl.innerHTML = footerContent; + } else { + footerEl.appendChild(footerContent); + } + + this.element.appendChild(footerEl); + } + + document.body.classList.add("tabulator-print-fullscreen-hide"); + document.body.appendChild(this.element); + + if (this.table.options.printFormatter) { + this.table.options.printFormatter(this.element, tableEl); + } + + window.print(); + + this.cleanup(); + + window.scrollTo(scrollX, scrollY); + + this.manualBlock = false; + }; + + Tabulator.prototype.registerModule("print", Print); + var ReactiveData = function ReactiveData(table) { + this.table = table; //hold Tabulator object + this.data = false; + this.blocked = false; //block reactivity while performing update + this.origFuncs = {}; // hold original data array functions to allow replacement after data is done with + this.currentVersion = 0; + }; + + ReactiveData.prototype.watchData = function (data) { + var self = this, + pushFunc, + version; + + this.currentVersion++; + + version = this.currentVersion; + + self.unwatchData(); + + self.data = data; + + //override array push function + self.origFuncs.push = data.push; + + Object.defineProperty(self.data, "push", { + enumerable: false, + configurable: true, + value: function value() { + var args = Array.from(arguments); + + if (!self.blocked && version === self.currentVersion) { + args.forEach(function (arg) { + self.table.rowManager.addRowActual(arg, false); + }); + } + + return self.origFuncs.push.apply(data, arguments); + } + }); + + //override array unshift function + self.origFuncs.unshift = data.unshift; + + Object.defineProperty(self.data, "unshift", { + enumerable: false, + configurable: true, + value: function value() { + var args = Array.from(arguments); + + if (!self.blocked && version === self.currentVersion) { + args.forEach(function (arg) { + self.table.rowManager.addRowActual(arg, true); + }); + } + + return self.origFuncs.unshift.apply(data, arguments); + } + }); + + //override array shift function + self.origFuncs.shift = data.shift; + + Object.defineProperty(self.data, "shift", { + enumerable: false, + configurable: true, + value: function value() { + var row; + + if (!self.blocked && version === self.currentVersion) { + if (self.data.length) { + row = self.table.rowManager.getRowFromDataObject(self.data[0]); + + if (row) { + row.deleteActual(); + } + } + } + + return self.origFuncs.shift.call(data); + } + }); + + //override array pop function + self.origFuncs.pop = data.pop; + + Object.defineProperty(self.data, "pop", { + enumerable: false, + configurable: true, + value: function value() { + var row; + if (!self.blocked && version === self.currentVersion) { + if (self.data.length) { + row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]); + + if (row) { + row.deleteActual(); + } + } + } + return self.origFuncs.pop.call(data); + } + }); + + //override array splice function + self.origFuncs.splice = data.splice; + + Object.defineProperty(self.data, "splice", { + enumerable: false, + configurable: true, + value: function value() { + var args = Array.from(arguments), + start = args[0] < 0 ? data.length + args[0] : args[0], + end = args[1], + newRows = args[2] ? args.slice(2) : false, + startRow; + + if (!self.blocked && version === self.currentVersion) { + + //add new rows + if (newRows) { + startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false; + + if (startRow) { + newRows.forEach(function (rowData) { + self.table.rowManager.addRowActual(rowData, true, startRow, true); + }); + } else { + newRows = newRows.slice().reverse(); + + newRows.forEach(function (rowData) { + self.table.rowManager.addRowActual(rowData, true, false, true); + }); + } + } + + //delete removed rows + if (end !== 0) { + var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end); + + oldRows.forEach(function (rowData, i) { + var row = self.table.rowManager.getRowFromDataObject(rowData); + + if (row) { + row.deleteActual(i !== oldRows.length - 1); + } + }); + } + + if (newRows || end !== 0) { + self.table.rowManager.reRenderInPosition(); + } + } + + return self.origFuncs.splice.apply(data, arguments); + } + }); + }; + + ReactiveData.prototype.unwatchData = function () { + if (this.data !== false) { + for (var key in this.origFuncs) { + Object.defineProperty(this.data, key, { + enumerable: true, + configurable: true, + writable: true, + value: this.origFuncs.key + }); + } + } + }; + + ReactiveData.prototype.watchRow = function (row) { + var self = this, + data = row.getData(); + + this.blocked = true; + + for (var key in data) { + this.watchKey(row, data, key); + } + + this.blocked = false; + }; + + ReactiveData.prototype.watchKey = function (row, data, key) { + var self = this, + props = Object.getOwnPropertyDescriptor(data, key), + value = data[key], + version = this.currentVersion; + + Object.defineProperty(data, key, { + set: function set(newValue) { + value = newValue; + if (!self.blocked && version === self.currentVersion) { + var update = {}; + update[key] = newValue; + row.updateData(update); + } + + if (props.set) { + props.set(newValue); + } + }, + get: function get() { + + if (props.get) { + props.get(); + } + + return value; + } + }); + }; + + ReactiveData.prototype.unwatchRow = function (row) { + var data = row.getData(); + + for (var key in data) { + Object.defineProperty(data, key, { + value: data[key] + }); + } + }; + + ReactiveData.prototype.block = function () { + this.blocked = true; + }; + + ReactiveData.prototype.unblock = function () { + this.blocked = false; + }; + + Tabulator.prototype.registerModule("reactiveData", ReactiveData); + + var ResizeColumns = function ResizeColumns(table) { + this.table = table; //hold Tabulator object + this.startColumn = false; + this.startX = false; + this.startWidth = false; + this.handle = null; + this.prevHandle = null; + }; + + ResizeColumns.prototype.initializeColumn = function (type, column, element) { + var self = this, + variableHeight = false, + mode = this.table.options.resizableColumns; + + //set column resize mode + if (type === "header") { + variableHeight = column.definition.formatter == "textarea" || column.definition.variableHeight; + column.modules.resize = { variableHeight: variableHeight }; + } + + if (mode === true || mode == type) { + + var handle = document.createElement('div'); + handle.className = "tabulator-col-resize-handle"; + + var prevHandle = document.createElement('div'); + prevHandle.className = "tabulator-col-resize-handle prev"; + + handle.addEventListener("click", function (e) { + e.stopPropagation(); + }); + + var handleDown = function handleDown(e) { + var nearestColumn = column.getLastColumn(); + + if (nearestColumn && self._checkResizability(nearestColumn)) { + self.startColumn = column; + self._mouseDown(e, nearestColumn, handle); + } + }; + + handle.addEventListener("mousedown", handleDown); + handle.addEventListener("touchstart", handleDown, { passive: true }); + + //reszie column on double click + handle.addEventListener("dblclick", function (e) { + var col = column.getLastColumn(); + + if (col && self._checkResizability(col)) { + col.reinitializeWidth(true); + } + }); + + prevHandle.addEventListener("click", function (e) { + e.stopPropagation(); + }); + + var prevHandleDown = function prevHandleDown(e) { + var nearestColumn, colIndex, prevColumn; + + nearestColumn = column.getFirstColumn(); + + if (nearestColumn) { + colIndex = self.table.columnManager.findColumnIndex(nearestColumn); + prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false; + + if (prevColumn && self._checkResizability(prevColumn)) { + self.startColumn = column; + self._mouseDown(e, prevColumn, prevHandle); + } + } + }; + + prevHandle.addEventListener("mousedown", prevHandleDown); + prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true }); + + //resize column on double click + prevHandle.addEventListener("dblclick", function (e) { + var nearestColumn, colIndex, prevColumn; + + nearestColumn = column.getFirstColumn(); + + if (nearestColumn) { + colIndex = self.table.columnManager.findColumnIndex(nearestColumn); + prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false; + + if (prevColumn && self._checkResizability(prevColumn)) { + prevColumn.reinitializeWidth(true); + } + } + }); + + element.appendChild(handle); + element.appendChild(prevHandle); + } + }; + + ResizeColumns.prototype._checkResizability = function (column) { + return typeof column.definition.resizable != "undefined" ? column.definition.resizable : this.table.options.resizableColumns; + }; + + ResizeColumns.prototype._mouseDown = function (e, column, handle) { + var self = this; + + self.table.element.classList.add("tabulator-block-select"); + + function mouseMove(e) { + // self.table.columnManager.tempScrollBlock(); + + column.setWidth(self.startWidth + ((typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX) - self.startX)); + + if (!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) { + column.checkCellHeights(); + } + } + + function mouseUp(e) { + + //block editor from taking action while resizing is taking place + if (self.startColumn.modules.edit) { + self.startColumn.modules.edit.blocked = false; + } + + if (self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) { + column.checkCellHeights(); + } + + document.body.removeEventListener("mouseup", mouseUp); + document.body.removeEventListener("mousemove", mouseMove); + + handle.removeEventListener("touchmove", mouseMove); + handle.removeEventListener("touchend", mouseUp); + + self.table.element.classList.remove("tabulator-block-select"); + + if (self.table.options.persistentLayout && self.table.modExists("persistence", true)) { + self.table.modules.persistence.save("columns"); + } + + self.table.options.columnResized.call(self.table, column.getComponent()); + } + + e.stopPropagation(); //prevent resize from interfereing with movable columns + + //block editor from taking action while resizing is taking place + if (self.startColumn.modules.edit) { + self.startColumn.modules.edit.blocked = true; + } + + self.startX = typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX; + self.startWidth = column.getWidth(); + + document.body.addEventListener("mousemove", mouseMove); + document.body.addEventListener("mouseup", mouseUp); + handle.addEventListener("touchmove", mouseMove, { passive: true }); + handle.addEventListener("touchend", mouseUp); + }; + + Tabulator.prototype.registerModule("resizeColumns", ResizeColumns); + var ResizeRows = function ResizeRows(table) { + this.table = table; //hold Tabulator object + this.startColumn = false; + this.startY = false; + this.startHeight = false; + this.handle = null; + this.prevHandle = null; + }; + + ResizeRows.prototype.initializeRow = function (row) { + var self = this, + rowEl = row.getElement(); + + var handle = document.createElement('div'); + handle.className = "tabulator-row-resize-handle"; + + var prevHandle = document.createElement('div'); + prevHandle.className = "tabulator-row-resize-handle prev"; + + handle.addEventListener("click", function (e) { + e.stopPropagation(); + }); + + var handleDown = function handleDown(e) { + self.startRow = row; + self._mouseDown(e, row, handle); + }; + + handle.addEventListener("mousedown", handleDown, { passive: true }); + handle.addEventListener("touchstart", handleDown); + + prevHandle.addEventListener("click", function (e) { + e.stopPropagation(); + }); + + var prevHandleDown = function prevHandleDown(e) { + var prevRow = self.table.rowManager.prevDisplayRow(row); + + if (prevRow) { + self.startRow = prevRow; + self._mouseDown(e, prevRow, prevHandle); + } + }; + + prevHandle.addEventListener("mousedown", prevHandleDown); + prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true }); + + rowEl.appendChild(handle); + rowEl.appendChild(prevHandle); + }; + + ResizeRows.prototype._mouseDown = function (e, row, handle) { + var self = this; + + self.table.element.classList.add("tabulator-block-select"); + + function mouseMove(e) { + row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY)); + } + + function mouseUp(e) { + + // //block editor from taking action while resizing is taking place + // if(self.startColumn.modules.edit){ + // self.startColumn.modules.edit.blocked = false; + // } + + document.body.removeEventListener("mouseup", mouseMove); + document.body.removeEventListener("mousemove", mouseMove); + + handle.removeEventListener("touchmove", mouseMove); + handle.removeEventListener("touchend", mouseUp); + + self.table.element.classList.remove("tabulator-block-select"); + + self.table.options.rowResized.call(this.table, row.getComponent()); + } + + e.stopPropagation(); //prevent resize from interfereing with movable columns + + //block editor from taking action while resizing is taking place + // if(self.startColumn.modules.edit){ + // self.startColumn.modules.edit.blocked = true; + // } + + self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY; + self.startHeight = row.getHeight(); + + document.body.addEventListener("mousemove", mouseMove); + document.body.addEventListener("mouseup", mouseUp); + + handle.addEventListener("touchmove", mouseMove, { passive: true }); + handle.addEventListener("touchend", mouseUp); + }; + + Tabulator.prototype.registerModule("resizeRows", ResizeRows); + var ResizeTable = function ResizeTable(table) { + this.table = table; //hold Tabulator object + this.binding = false; + this.observer = false; + }; + + ResizeTable.prototype.initialize = function (row) { + var table = this.table, + observer; + + if (typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual") { + this.observer = new ResizeObserver(function (entry) { + table.redraw(); + }); + + this.observer.observe(table.element); + } else { + this.binding = function () { + table.redraw(); + }; + + window.addEventListener("resize", this.binding); + } + }; + + ResizeTable.prototype.clearBindings = function (row) { + if (this.binding) { + window.removeEventListener("resize", this.binding); + } + + if (this.observer) { + this.observer.unobserve(this.table.element); + } + }; + + Tabulator.prototype.registerModule("resizeTable", ResizeTable); + var ResponsiveLayout = function ResponsiveLayout(table) { + this.table = table; //hold Tabulator object + this.columns = []; + this.hiddenColumns = []; + this.mode = ""; + this.index = 0; + this.collapseFormatter = []; + this.collapseStartOpen = true; + }; + + //generate resposive columns list + ResponsiveLayout.prototype.initialize = function () { + var self = this, + columns = []; + + this.mode = this.table.options.responsiveLayout; + this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData; + this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen; + this.hiddenColumns = []; + + //detemine level of responsivity for each column + this.table.columnManager.columnsByIndex.forEach(function (column, i) { + if (column.modules.responsive) { + if (column.modules.responsive.order && column.modules.responsive.visible) { + column.modules.responsive.index = i; + columns.push(column); + + if (!column.visible && self.mode === "collapse") { + self.hiddenColumns.push(column); + } + } + } + }); + + //sort list by responsivity + columns = columns.reverse(); + columns = columns.sort(function (a, b) { + var diff = b.modules.responsive.order - a.modules.responsive.order; + return diff || b.modules.responsive.index - a.modules.responsive.index; + }); + + this.columns = columns; + + if (this.mode === "collapse") { + this.generateCollapsedContent(); + } + }; + + //define layout information + ResponsiveLayout.prototype.initializeColumn = function (column) { + var def = column.getDefinition(); + + column.modules.responsive = { order: typeof def.responsive === "undefined" ? 1 : def.responsive, visible: def.visible === false ? false : true }; + }; + + ResponsiveLayout.prototype.layoutRow = function (row) { + var rowEl = row.getElement(), + el = document.createElement("div"); + + el.classList.add("tabulator-responsive-collapse"); + + if (!rowEl.classList.contains("tabulator-calcs")) { + row.modules.responsiveLayout = { + element: el + }; + + if (!this.collapseStartOpen) { + el.style.display = 'none'; + } + + rowEl.appendChild(el); + + this.generateCollapsedRowContent(row); + } + }; + + //update column visibility + ResponsiveLayout.prototype.updateColumnVisibility = function (column, visible) { + var index; + if (column.modules.responsive) { + column.modules.responsive.visible = visible; + this.initialize(); + } + }; + + ResponsiveLayout.prototype.hideColumn = function (column) { + column.hide(false, true); + + if (this.mode === "collapse") { + this.hiddenColumns.unshift(column); + this.generateCollapsedContent(); + } + }; + + ResponsiveLayout.prototype.showColumn = function (column) { + var index; + + column.show(false, true); + //set column width to prevent calculation loops on uninitialized columns + column.setWidth(column.getWidth()); + + if (this.mode === "collapse") { + index = this.hiddenColumns.indexOf(column); + + if (index > -1) { + this.hiddenColumns.splice(index, 1); + } + + this.generateCollapsedContent(); + } + }; + + //redraw columns to fit space + ResponsiveLayout.prototype.update = function () { + var self = this, + working = true; + + while (working) { + + var width = self.table.modules.layout.getMode() == "fitColumns" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth(); + + var diff = self.table.columnManager.element.clientWidth - width; + + if (diff < 0) { + //table is too wide + var column = self.columns[self.index]; + + if (column) { + self.hideColumn(column); + self.index++; + } else { + working = false; + } + } else { + + //table has spare space + var _column = self.columns[self.index - 1]; + + if (_column) { + if (diff > 0) { + if (diff >= _column.getWidth()) { + self.showColumn(_column); + self.index--; + } else { + working = false; + } + } else { + working = false; + } + } else { + working = false; + } + } + + if (!self.table.rowManager.activeRowsCount) { + self.table.rowManager.renderEmptyScroll(); + } + } + }; + + ResponsiveLayout.prototype.generateCollapsedContent = function () { + var self = this, + rows = this.table.rowManager.getDisplayRows(); + + rows.forEach(function (row) { + self.generateCollapsedRowContent(row); + }); + }; + + ResponsiveLayout.prototype.generateCollapsedRowContent = function (row) { + var el, contents; + + if (row.modules.responsiveLayout) { + el = row.modules.responsiveLayout.element; + + while (el.firstChild) { + el.removeChild(el.firstChild); + }contents = this.collapseFormatter(this.generateCollapsedRowData(row)); + if (contents) { + el.appendChild(contents); + } + } + }; + + ResponsiveLayout.prototype.generateCollapsedRowData = function (row) { + var self = this, + data = row.getData(), + output = [], + mockCellComponent; + + this.hiddenColumns.forEach(function (column) { + var value = column.getFieldValue(data); + + if (column.definition.title && column.field) { + if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) { + + mockCellComponent = { + value: false, + data: {}, + getValue: function getValue() { + return value; + }, + getData: function getData() { + return data; + }, + getElement: function getElement() { + return document.createElement("div"); + }, + getRow: function getRow() { + return row.getComponent(); + }, + getColumn: function getColumn() { + return column.getComponent(); + } + }; + + output.push({ + title: column.definition.title, + value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params) + }); + } else { + output.push({ + title: column.definition.title, + value: value + }); + } + } + }); + + return output; + }; + + ResponsiveLayout.prototype.formatCollapsedData = function (data) { + var list = document.createElement("table"), + listContents = ""; + + data.forEach(function (item) { + var div = document.createElement("div"); + + if (item.value instanceof Node) { + div.appendChild(item.value); + item.value = div.innerHTML; + } + + listContents += "" + item.title + "" + item.value + ""; + }); + + list.innerHTML = listContents; + + return Object.keys(data).length ? list : ""; + }; + + Tabulator.prototype.registerModule("responsiveLayout", ResponsiveLayout); + + var SelectRow = function SelectRow(table) { + this.table = table; //hold Tabulator object + this.selecting = false; //flag selecting in progress + this.lastClickedRow = false; //last clicked row + this.selectPrev = []; //hold previously selected element for drag drop selection + this.selectedRows = []; //hold selected rows + this.headerCheckboxElement = null; // hold header select element + }; + + SelectRow.prototype.clearSelectionData = function (silent) { + this.selecting = false; + this.lastClickedRow = false; + this.selectPrev = []; + this.selectedRows = []; + + if (!silent) { + this._rowSelectionChanged(); + } + }; + + SelectRow.prototype.initializeRow = function (row) { + var self = this, + element = row.getElement(); + + // trigger end of row selection + var endSelect = function endSelect() { + + setTimeout(function () { + self.selecting = false; + }, 50); + + document.body.removeEventListener("mouseup", endSelect); + }; + + row.modules.select = { selected: false }; + + //set row selection class + if (self.table.options.selectableCheck.call(this.table, row.getComponent())) { + element.classList.add("tabulator-selectable"); + element.classList.remove("tabulator-unselectable"); + + if (self.table.options.selectable && self.table.options.selectable != "highlight") { + if (self.table.options.selectableRangeMode === "click") { + element.addEventListener("click", function (e) { + + self.table._clearSelection(); + + if (e.shiftKey) { + self.lastClickedRow = self.lastClickedRow || row; + + var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow); + var rowIdx = self.table.rowManager.getDisplayRowIndex(row); + + var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx; + var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx; + + var rows = self.table.rowManager.getDisplayRows().slice(0); + var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1); + + if (e.ctrlKey || e.metaKey) { + toggledRows.forEach(function (toggledRow) { + if (toggledRow !== self.lastClickedRow) { + + if (self.table.options.selectable !== true && !self.isRowSelected(row)) { + if (self.selectedRows.length < self.table.options.selectable) { + self.toggleRow(toggledRow); + } + } else { + self.toggleRow(toggledRow); + } + } + }); + self.lastClickedRow = row; + } else { + self.deselectRows(); + + if (self.table.options.selectable !== true) { + if (toggledRows.length > self.table.options.selectable) { + toggledRows = toggledRows.slice(0, self.table.options.selectable); + } + } + + self.selectRows(toggledRows); + } + } else if (e.ctrlKey || e.metaKey) { + self.toggleRow(row); + self.lastClickedRow = row; + } else { + self.deselectRows(); + self.selectRows(row); + self.lastClickedRow = row; + } + + self.table._clearSelection(); + }); + } else { + element.addEventListener("click", function (e) { + self.table._clearSelection(); + + if (!self.selecting) { + self.toggleRow(row); + } + }); + + element.addEventListener("mousedown", function (e) { + if (e.shiftKey) { + self.table._clearSelection(); + + self.selecting = true; + + self.selectPrev = []; + + document.body.addEventListener("mouseup", endSelect); + document.body.addEventListener("keyup", endSelect); + + self.toggleRow(row); + + return false; + } + }); + + element.addEventListener("mouseenter", function (e) { + if (self.selecting) { + self.table._clearSelection(); + self.toggleRow(row); + + if (self.selectPrev[1] == row) { + self.toggleRow(self.selectPrev[0]); + } + } + }); + + element.addEventListener("mouseout", function (e) { + if (self.selecting) { + self.table._clearSelection(); + self.selectPrev.unshift(row); + } + }); + } + } + } else { + element.classList.add("tabulator-unselectable"); + element.classList.remove("tabulator-selectable"); + } + }; + + //toggle row selection + SelectRow.prototype.toggleRow = function (row) { + if (this.table.options.selectableCheck.call(this.table, row.getComponent())) { + if (row.modules.select && row.modules.select.selected) { + this._deselectRow(row); + } else { + this._selectRow(row); + } + } + }; + + //select a number of rows + SelectRow.prototype.selectRows = function (rows) { + var self = this; + + switch (typeof rows === 'undefined' ? 'undefined' : _typeof(rows)) { + case "undefined": + self.table.rowManager.rows.forEach(function (row) { + self._selectRow(row, true, true); + }); + + self._rowSelectionChanged(); + break; + + case "boolean": + if (rows === true) { + self.table.rowManager.activeRows.forEach(function (row) { + self._selectRow(row, true, true); + }); + + self._rowSelectionChanged(); + } + break; + + default: + if (Array.isArray(rows)) { + rows.forEach(function (row) { + self._selectRow(row, true, true); + }); + + self._rowSelectionChanged(); + } else { + self._selectRow(rows, false, true); + } + break; + } + }; + + //select an individual row + SelectRow.prototype._selectRow = function (rowInfo, silent, force) { + var index; + + //handle max row count + if (!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force) { + if (this.selectedRows.length >= this.table.options.selectable) { + if (this.table.options.selectableRollingSelection) { + this._deselectRow(this.selectedRows[0]); + } else { + return false; + } + } + } + + var row = this.table.rowManager.findRow(rowInfo); + + if (row) { + if (this.selectedRows.indexOf(row) == -1) { + if (!row.modules.select) { + row.modules.select = {}; + } + + row.modules.select.selected = true; + if (row.modules.select.checkboxEl) { + row.modules.select.checkboxEl.checked = true; + } + row.getElement().classList.add("tabulator-selected"); + + this.selectedRows.push(row); + + if (!silent) { + this.table.options.rowSelected.call(this.table, row.getComponent()); + this._rowSelectionChanged(); + } + } + } else { + if (!silent) { + console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo); + } + } + }; + + SelectRow.prototype.isRowSelected = function (row) { + return this.selectedRows.indexOf(row) !== -1; + }; + + //deselect a number of rows + SelectRow.prototype.deselectRows = function (rows) { + var self = this, + rowCount; + + if (typeof rows == "undefined") { + + rowCount = self.selectedRows.length; + + for (var i = 0; i < rowCount; i++) { + self._deselectRow(self.selectedRows[0], true); + } + + self._rowSelectionChanged(); + } else { + if (Array.isArray(rows)) { + rows.forEach(function (row) { + self._deselectRow(row, true); + }); + + self._rowSelectionChanged(); + } else { + self._deselectRow(rows); + } + } + }; + + //deselect an individual row + SelectRow.prototype._deselectRow = function (rowInfo, silent) { + var self = this, + row = self.table.rowManager.findRow(rowInfo), + index; + + if (row) { + index = self.selectedRows.findIndex(function (selectedRow) { + return selectedRow == row; + }); + + if (index > -1) { + + if (!row.modules.select) { + row.modules.select = {}; + } + + row.modules.select.selected = false; + if (row.modules.select.checkboxEl) { + row.modules.select.checkboxEl.checked = false; + } + row.getElement().classList.remove("tabulator-selected"); + self.selectedRows.splice(index, 1); + + if (!silent) { + self.table.options.rowDeselected.call(this.table, row.getComponent()); + self._rowSelectionChanged(); + } + } + } else { + if (!silent) { + console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo); + } + } + }; + + SelectRow.prototype.getSelectedData = function () { + var data = []; + + this.selectedRows.forEach(function (row) { + data.push(row.getData()); + }); + + return data; + }; + + SelectRow.prototype.getSelectedRows = function () { + + var rows = []; + + this.selectedRows.forEach(function (row) { + rows.push(row.getComponent()); + }); + + return rows; + }; + + SelectRow.prototype._rowSelectionChanged = function () { + if (this.headerCheckboxElement) { + if (this.selectedRows.length === 0) { + this.headerCheckboxElement.checked = false; + this.headerCheckboxElement.indeterminate = false; + } else if (this.table.rowManager.rows.length === this.selectedRows.length) { + this.headerCheckboxElement.checked = true; + this.headerCheckboxElement.indeterminate = false; + } else { + this.headerCheckboxElement.indeterminate = true; + this.headerCheckboxElement.checked = false; + } + } + + this.table.options.rowSelectionChanged.call(this.table, this.getSelectedData(), this.getSelectedRows()); + }; + + SelectRow.prototype.registerRowSelectCheckbox = function (row, element) { + if (!row._row.modules.select) { + row._row.modules.select = {}; + } + + row._row.modules.select.checkboxEl = element; + }; + + SelectRow.prototype.registerHeaderSelectCheckbox = function (element) { + this.headerCheckboxElement = element; + }; + + Tabulator.prototype.registerModule("selectRow", SelectRow); + + var Sort = function Sort(table) { + this.table = table; //hold Tabulator object + this.sortList = []; //holder current sort + this.changed = false; //has the sort changed since last render + }; + + //initialize column header for sorting + Sort.prototype.initializeColumn = function (column, content) { + var self = this, + sorter = false, + colEl, + arrowEl; + + switch (_typeof(column.definition.sorter)) { + case "string": + if (self.sorters[column.definition.sorter]) { + sorter = self.sorters[column.definition.sorter]; + } else { + console.warn("Sort Error - No such sorter found: ", column.definition.sorter); + } + break; + + case "function": + sorter = column.definition.sorter; + break; + } + + column.modules.sort = { + sorter: sorter, dir: "none", + params: column.definition.sorterParams || {}, + startingDir: column.definition.headerSortStartingDir || "asc", + tristate: typeof column.definition.headerSortTristate !== "undefined" ? column.definition.headerSortTristate : this.table.options.headerSortTristate + }; + + if (typeof column.definition.headerSort === "undefined" ? this.table.options.headerSort !== false : column.definition.headerSort !== false) { + + colEl = column.getElement(); + + colEl.classList.add("tabulator-sortable"); + + arrowEl = document.createElement("div"); + arrowEl.classList.add("tabulator-arrow"); + //create sorter arrow + content.appendChild(arrowEl); + + //sort on click + colEl.addEventListener("click", function (e) { + var dir = "", + sorters = [], + match = false; + + if (column.modules.sort) { + if (column.modules.sort.tristate) { + if (column.modules.sort.dir == "none") { + dir = column.modules.sort.startingDir; + } else { + if (column.modules.sort.dir == column.modules.sort.startingDir) { + dir = column.modules.sort.dir == "asc" ? "desc" : "asc"; + } else { + dir = "none"; + } + } + } else { + switch (column.modules.sort.dir) { + case "asc": + dir = "desc"; + break; + + case "desc": + dir = "asc"; + break; + + default: + dir = column.modules.sort.startingDir; + } + } + + if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) { + sorters = self.getSort(); + + match = sorters.findIndex(function (sorter) { + return sorter.field === column.getField(); + }); + + if (match > -1) { + sorters[match].dir = dir; + + if (match != sorters.length - 1) { + match = sorters.splice(match, 1)[0]; + if (dir != "none") { + sorters.push(match); + } + } + } else { + if (dir != "none") { + sorters.push({ column: column, dir: dir }); + } + } + + //add to existing sort + self.setSort(sorters); + } else { + if (dir == "none") { + self.clear(); + } else { + //sort by column only + self.setSort(column, dir); + } + } + + self.table.rowManager.sorterRefresh(!self.sortList.length); + } + }); + } + }; + + //check if the sorters have changed since last use + Sort.prototype.hasChanged = function () { + var changed = this.changed; + this.changed = false; + return changed; + }; + + //return current sorters + Sort.prototype.getSort = function () { + var self = this, + sorters = []; + + self.sortList.forEach(function (item) { + if (item.column) { + sorters.push({ column: item.column.getComponent(), field: item.column.getField(), dir: item.dir }); + } + }); + + return sorters; + }; + + //change sort list and trigger sort + Sort.prototype.setSort = function (sortList, dir) { + var self = this, + newSortList = []; + + if (!Array.isArray(sortList)) { + sortList = [{ column: sortList, dir: dir }]; + } + + sortList.forEach(function (item) { + var column; + + column = self.table.columnManager.findColumn(item.column); + + if (column) { + item.column = column; + newSortList.push(item); + self.changed = true; + } else { + console.warn("Sort Warning - Sort field does not exist and is being ignored: ", item.column); + } + }); + + self.sortList = newSortList; + + if (this.table.options.persistentSort && this.table.modExists("persistence", true)) { + this.table.modules.persistence.save("sort"); + } + }; + + //clear sorters + Sort.prototype.clear = function () { + this.setSort([]); + }; + + //find appropriate sorter for column + Sort.prototype.findSorter = function (column) { + var row = this.table.rowManager.activeRows[0], + sorter = "string", + field, + value; + + if (row) { + row = row.getData(); + field = column.getField(); + + if (field) { + + value = column.getFieldValue(row); + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "undefined": + sorter = "string"; + break; + + case "boolean": + sorter = "boolean"; + break; + + default: + if (!isNaN(value) && value !== "") { + sorter = "number"; + } else { + if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) { + sorter = "alphanum"; + } + } + break; + } + } + } + + return this.sorters[sorter]; + }; + + //work through sort list sorting data + Sort.prototype.sort = function (data) { + var self = this, + lastSort, + sortList; + + sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList; + + if (self.table.options.dataSorting) { + self.table.options.dataSorting.call(self.table, self.getSort()); + } + + self.clearColumnHeaders(); + + if (!self.table.options.ajaxSorting) { + + sortList.forEach(function (item, i) { + + if (item.column && item.column.modules.sort) { + + //if no sorter has been defined, take a guess + if (!item.column.modules.sort.sorter) { + item.column.modules.sort.sorter = self.findSorter(item.column); + } + + self._sortItem(data, item.column, item.dir, sortList, i); + } + + self.setColumnHeader(item.column, item.dir); + }); + } else { + sortList.forEach(function (item, i) { + self.setColumnHeader(item.column, item.dir); + }); + } + + if (self.table.options.dataSorted) { + self.table.options.dataSorted.call(self.table, self.getSort(), self.table.rowManager.getComponents(true)); + } + }; + + //clear sort arrows on columns + Sort.prototype.clearColumnHeaders = function () { + this.table.columnManager.getRealColumns().forEach(function (column) { + if (column.modules.sort) { + column.modules.sort.dir = "none"; + column.getElement().setAttribute("aria-sort", "none"); + } + }); + }; + + //set the column header sort direction + Sort.prototype.setColumnHeader = function (column, dir) { + column.modules.sort.dir = dir; + column.getElement().setAttribute("aria-sort", dir); + }; + + //sort each item in sort list + Sort.prototype._sortItem = function (data, column, dir, sortList, i) { + var self = this; + + var params = typeof column.modules.sort.params === "function" ? column.modules.sort.params(column.getComponent(), dir) : column.modules.sort.params; + + data.sort(function (a, b) { + + var result = self._sortRow(a, b, column, dir, params); + + //if results match recurse through previous searchs to be sure + if (result === 0 && i) { + for (var j = i - 1; j >= 0; j--) { + result = self._sortRow(a, b, sortList[j].column, sortList[j].dir, params); + + if (result !== 0) { + break; + } + } + } + + return result; + }); + }; + + //process individual rows for a sort function on active data + Sort.prototype._sortRow = function (a, b, column, dir, params) { + var el1Comp, el2Comp, colComp; + + //switch elements depending on search direction + var el1 = dir == "asc" ? a : b; + var el2 = dir == "asc" ? b : a; + + a = column.getFieldValue(el1.getData()); + b = column.getFieldValue(el2.getData()); + + a = typeof a !== "undefined" ? a : ""; + b = typeof b !== "undefined" ? b : ""; + + el1Comp = el1.getComponent(); + el2Comp = el2.getComponent(); + + return column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params); + }; + + //default data sorters + Sort.prototype.sorters = { + + //sort numbers + number: function number(a, b, aRow, bRow, column, dir, params) { + var alignEmptyValues = params.alignEmptyValues; + var decimal = params.decimalSeparator || "."; + var thousand = params.thousandSeparator || ","; + var emptyAlign = 0; + + a = parseFloat(String(a).split(thousand).join("").split(decimal).join(".")); + b = parseFloat(String(b).split(thousand).join("").split(decimal).join(".")); + + //handle non numeric values + if (isNaN(a)) { + emptyAlign = isNaN(b) ? 0 : -1; + } else if (isNaN(b)) { + emptyAlign = 1; + } else { + //compare valid values + return a - b; + } + + //fix empty values in position + if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") { + emptyAlign *= -1; + } + + return emptyAlign; + }, + + //sort strings + string: function string(a, b, aRow, bRow, column, dir, params) { + var alignEmptyValues = params.alignEmptyValues; + var emptyAlign = 0; + var locale; + + //handle empty values + if (!a) { + emptyAlign = !b ? 0 : -1; + } else if (!b) { + emptyAlign = 1; + } else { + //compare valid values + switch (_typeof(params.locale)) { + case "boolean": + if (params.locale) { + locale = this.table.modules.localize.getLocale(); + } + break; + case "string": + locale = params.locale; + break; + } + + return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale); + } + + //fix empty values in position + if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") { + emptyAlign *= -1; + } + + return emptyAlign; + }, + + //sort date + date: function date(a, b, aRow, bRow, column, dir, params) { + if (!params.format) { + params.format = "DD/MM/YYYY"; + } + + return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params); + }, + + //sort hh:mm formatted times + time: function time(a, b, aRow, bRow, column, dir, params) { + if (!params.format) { + params.format = "hh:mm"; + } + + return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params); + }, + + //sort datetime + datetime: function datetime(a, b, aRow, bRow, column, dir, params) { + var format = params.format || "DD/MM/YYYY hh:mm:ss", + alignEmptyValues = params.alignEmptyValues, + emptyAlign = 0; + + if (typeof moment != "undefined") { + a = moment(a, format); + b = moment(b, format); + + if (!a.isValid()) { + emptyAlign = !b.isValid() ? 0 : -1; + } else if (!b.isValid()) { + emptyAlign = 1; + } else { + //compare valid values + return a - b; + } + + //fix empty values in position + if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") { + emptyAlign *= -1; + } + + return emptyAlign; + } else { + console.error("Sort Error - 'datetime' sorter is dependant on moment.js"); + } + }, + + //sort booleans + boolean: function boolean(a, b, aRow, bRow, column, dir, params) { + var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0; + var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0; + + return el1 - el2; + }, + + //sort if element contains any data + array: function array(a, b, aRow, bRow, column, dir, params) { + var el1 = 0; + var el2 = 0; + var type = params.type || "length"; + var alignEmptyValues = params.alignEmptyValues; + var emptyAlign = 0; + + function calc(value) { + + switch (type) { + case "length": + return value.length; + break; + + case "sum": + return value.reduce(function (c, d) { + return c + d; + }); + break; + + case "max": + return Math.max.apply(null, value); + break; + + case "min": + return Math.min.apply(null, value); + break; + + case "avg": + return value.reduce(function (c, d) { + return c + d; + }) / value.length; + break; + } + } + + //handle non array values + if (!Array.isArray(a)) { + alignEmptyValues = !Array.isArray(b) ? 0 : -1; + } else if (!Array.isArray(b)) { + alignEmptyValues = 1; + } else { + + //compare valid values + el1 = a ? calc(a) : 0; + el2 = b ? calc(b) : 0; + + return el1 - el2; + } + + //fix empty values in position + if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") { + emptyAlign *= -1; + } + + return emptyAlign; + }, + + //sort if element contains any data + exists: function exists(a, b, aRow, bRow, column, dir, params) { + var el1 = typeof a == "undefined" ? 0 : 1; + var el2 = typeof b == "undefined" ? 0 : 1; + + return el1 - el2; + }, + + //sort alpha numeric strings + alphanum: function alphanum(as, bs, aRow, bRow, column, dir, params) { + var a, + b, + a1, + b1, + i = 0, + L, + rx = /(\d+)|(\D+)/g, + rd = /\d/; + var alignEmptyValues = params.alignEmptyValues; + var emptyAlign = 0; + + //handle empty values + if (!as && as !== 0) { + emptyAlign = !bs && bs !== 0 ? 0 : -1; + } else if (!bs && bs !== 0) { + emptyAlign = 1; + } else { + + if (isFinite(as) && isFinite(bs)) return as - bs; + a = String(as).toLowerCase(); + b = String(bs).toLowerCase(); + if (a === b) return 0; + if (!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1; + a = a.match(rx); + b = b.match(rx); + L = a.length > b.length ? b.length : a.length; + while (i < L) { + a1 = a[i]; + b1 = b[i++]; + if (a1 !== b1) { + if (isFinite(a1) && isFinite(b1)) { + if (a1.charAt(0) === "0") a1 = "." + a1; + if (b1.charAt(0) === "0") b1 = "." + b1; + return a1 - b1; + } else return a1 > b1 ? 1 : -1; + } + } + + return a.length > b.length; + } + + //fix empty values in position + if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") { + emptyAlign *= -1; + } + + return emptyAlign; + } + }; + + Tabulator.prototype.registerModule("sort", Sort); + + var Validate = function Validate(table) { + this.table = table; + }; + + //validate + Validate.prototype.initializeColumn = function (column) { + var self = this, + config = [], + validator; + + if (column.definition.validator) { + + if (Array.isArray(column.definition.validator)) { + column.definition.validator.forEach(function (item) { + validator = self._extractValidator(item); + + if (validator) { + config.push(validator); + } + }); + } else { + validator = this._extractValidator(column.definition.validator); + + if (validator) { + config.push(validator); + } + } + + column.modules.validate = config.length ? config : false; + } + }; + + Validate.prototype._extractValidator = function (value) { + var parts, type, params; + + switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) { + case "string": + parts = value.split(":", 2); + type = parts.shift(); + params = parts[0]; + + return this._buildValidator(type, params); + break; + + case "function": + return this._buildValidator(value); + break; + + case "object": + return this._buildValidator(value.type, value.parameters); + break; + } + }; + + Validate.prototype._buildValidator = function (type, params) { + + var func = typeof type == "function" ? type : this.validators[type]; + + if (!func) { + console.warn("Validator Setup Error - No matching validator found:", type); + return false; + } else { + return { + type: typeof type == "function" ? "function" : type, + func: func, + params: params + }; + } + }; + + Validate.prototype.validate = function (validators, cell, value) { + var self = this, + valid = []; + + if (validators) { + validators.forEach(function (item) { + if (!item.func.call(self, cell, value, item.params)) { + valid.push({ + type: item.type, + parameters: item.params + }); + } + }); + } + + return valid.length ? valid : true; + }; + + Validate.prototype.validators = { + + //is integer + integer: function integer(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + value = Number(value); + return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; + }, + + //is float + float: function float(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + value = Number(value); + return typeof value === 'number' && isFinite(value) && value % 1 !== 0; + }, + + //must be a number + numeric: function numeric(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return !isNaN(value); + }, + + //must be a string + string: function string(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return isNaN(value); + }, + + //maximum value + max: function max(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return parseFloat(value) <= parameters; + }, + + //minimum value + min: function min(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return parseFloat(value) >= parameters; + }, + + //minimum string length + minLength: function minLength(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return String(value).length >= parameters; + }, + + //maximum string length + maxLength: function maxLength(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + return String(value).length <= parameters; + }, + + //in provided value list + in: function _in(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + if (typeof parameters == "string") { + parameters = parameters.split("|"); + } + + return value === "" || parameters.indexOf(value) > -1; + }, + + //must match provided regex + regex: function regex(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + var reg = new RegExp(parameters); + + return reg.test(value); + }, + + //value must be unique in this column + unique: function unique(cell, value, parameters) { + if (value === "" || value === null || typeof value === "undefined") { + return true; + } + var unique = true; + + var cellData = cell.getData(); + var column = cell.getColumn()._getSelf(); + + this.table.rowManager.rows.forEach(function (row) { + var data = row.getData(); + + if (data !== cellData) { + if (value == column.getFieldValue(data)) { + unique = false; + } + } + }); + + return unique; + }, + + //must have a value + required: function required(cell, value, parameters) { + return value !== "" && value !== null && typeof value !== "undefined"; + } + }; + + Tabulator.prototype.registerModule("validate", Validate); + + return Tabulator; +}); diff --git a/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.min.js b/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.min.js new file mode 100644 index 0000000..50a8952 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/lib/js/tabulator.min.js @@ -0,0 +1,10 @@ +/* Tabulator v4.2.5 (c) Oliver Folkerd */ +var _typeof="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};!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Tabulator=e()}(this,function(){"use strict";Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),o=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;no?(e=t-o,this.element.style.marginLeft=-e+"px"):this.element.style.marginLeft=0,this.scrollLeft=t,this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()},t.prototype.generateColumnsFromRowData=function(t){var e,o,i=[];if(t&&t.length){e=t[0];for(var n in e){var s={field:n,title:n},r=e[n];switch(void 0===r?"undefined":_typeof(r)){case"undefined":o="string";break;case"boolean":o="boolean";break;case"object":o=Array.isArray(r)?"array":"string";break;default:o=isNaN(r)||""===r?r.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}s.sorter=o,i.push(s)}this.table.options.columns=i,this.setColumns(this.table.options.columns)}},t.prototype.setColumns=function(t,e){for(var o=this;o.headersElement.firstChild;)o.headersElement.removeChild(o.headersElement.firstChild);o.columns=[],o.columnsByIndex=[],o.columnsByField={},o.table.modExists("frozenColumns")&&o.table.modules.frozenColumns.reset(),t.forEach(function(t,e){o._addColumn(t)}),o._reIndexColumns(),o.table.options.responsiveLayout&&o.table.modExists("responsiveLayout",!0)&&o.table.modules.responsiveLayout.initialize(),o.redraw(!0)},t.prototype._addColumn=function(t,e,o){var n=new i(t,this),s=n.getElement(),r=o?this.findColumnIndex(o):o;if(o&&r>-1){var a=this.columns.indexOf(o.getTopColumn()),l=o.getElement();e?(this.columns.splice(a,0,n),l.parentNode.insertBefore(s,l)):(this.columns.splice(a+1,0,n),l.parentNode.insertBefore(s,l.nextSibling))}else e?(this.columns.unshift(n),this.headersElement.insertBefore(n.getElement(),this.headersElement.firstChild)):(this.columns.push(n),this.headersElement.appendChild(n.getElement()));return n},t.prototype.registerColumnField=function(t){t.definition.field&&(this.columnsByField[t.definition.field]=t)},t.prototype.registerColumnPosition=function(t){this.columnsByIndex.push(t)},t.prototype._reIndexColumns=function(){this.columnsByIndex=[],this.columns.forEach(function(t){t.reRegisterPosition()})},t.prototype._verticalAlignHeaders=function(){var t=this,e=0;t.columns.forEach(function(t){var o;t.clearVerticalAlign(),(o=t.getHeight())>e&&(e=o)}),t.columns.forEach(function(o){o.verticalAlign(t.table.options.columnVertAlign,e)}),t.rowManager.adjustTableSize()},t.prototype.findColumn=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t)))return this.columnsByField[t]||!1;if(t instanceof i)return t;if(t instanceof o)return t._getSelf()||!1;if(t instanceof HTMLElement){return e.columns.find(function(e){return e.element===t})||!1}return!1},t.prototype.getColumnByField=function(t){return this.columnsByField[t]},t.prototype.getColumnByIndex=function(t){return this.columnsByIndex[t]},t.prototype.getFirstVisibileColumn=function(t){var t=this.columnsByIndex.findIndex(function(t){return t.visible});return t>-1&&this.columnsByIndex[t]},t.prototype.getColumns=function(){return this.columns},t.prototype.findColumnIndex=function(t){return this.columnsByIndex.findIndex(function(e){return t===e})},t.prototype.getRealColumns=function(){return this.columnsByIndex},t.prototype.traverse=function(t){this.columnsByIndex.forEach(function(e,o){t(e,o)})},t.prototype.getDefinitions=function(t){var e=this,o=[];return e.columnsByIndex.forEach(function(e){(!t||t&&e.visible)&&o.push(e.getDefinition())}),o},t.prototype.getDefinitionTree=function(){var t=this,e=[];return t.columns.forEach(function(t){e.push(t.getDefinition(!0))}),e},t.prototype.getComponents=function(t){var e=this,o=[];return(t?e.columns:e.columnsByIndex).forEach(function(t){o.push(t.getComponent())}),o},t.prototype.getWidth=function(){var t=0;return this.columnsByIndex.forEach(function(e){e.visible&&(t+=e.getWidth())}),t},t.prototype.moveColumn=function(t,e,o){this._moveColumnInArray(this.columns,t,e,o),this._moveColumnInArray(this.columnsByIndex,t,e,o,!0),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.options.columnMoved&&this.table.options.columnMoved.call(this.table,t.getComponent(),this.table.columnManager.getComponents()),this.table.options.persistentLayout&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("columns")},t.prototype._moveColumnInArray=function(t,e,o,i,n){var s,r=t.indexOf(e);r>-1&&(t.splice(r,1),s=t.indexOf(o),s>-1?i&&(s+=1):s=r,t.splice(s,0,e),n&&this.table.rowManager.rows.forEach(function(t){if(t.cells.length){var e=t.cells.splice(r,1)[0];t.cells.splice(s,0,e)}}))},t.prototype.scrollToColumn=function(t,e,o){var i=this,n=0,s=0,r=0,a=t.getElement();return new Promise(function(l,c){if(void 0===e&&(e=i.table.options.scrollToColumnPosition),void 0===o&&(o=i.table.options.scrollToColumnIfVisible),t.visible){switch(e){case"middle":case"center":r=-i.element.clientWidth/2;break;case"right":r=a.clientWidth-i.headersElement.clientWidth}if(!o&&(s=a.offsetLeft)>0&&s+a.offsetWidtht.rowManager.element.clientHeight&&(e-=t.rowManager.element.offsetWidth-t.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(i){var n,s,r;i.visible&&(n=i.definition.width||0,s=void 0===i.minWidth?t.table.options.columnMinWidth:parseInt(i.minWidth),r="string"==typeof n?n.indexOf("%")>-1?e/100*parseInt(n):parseInt(n):n,o+=r>s?r:s)}),o},t.prototype.addColumn=function(t,e,o){var i=this._addColumn(t,e,o);this._reIndexColumns(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),this.redraw(),"fitColumns"!=this.table.modules.layout.getMode()&&i.reinitializeWidth(),this._verticalAlignHeaders(),this.table.rowManager.reinitialize()},t.prototype.deregisterColumn=function(t){var e,o=t.getField();o&&delete this.columnsByField[o],e=this.columnsByIndex.indexOf(t),e>-1&&this.columnsByIndex.splice(e,1),e=this.columns.indexOf(t),e>-1&&this.columns.splice(e,1),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.redraw()},t.prototype.redraw=function(t){t&&(u.prototype.helpers.elVisible(this.element)&&this._verticalAlignHeaders(),this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),"fitColumns"==this.table.modules.layout.getMode()?this.table.modules.layout.layout():t?this.table.modules.layout.layout():this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),t&&(this.table.options.persistentLayout&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("columns"),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.redraw()),this.table.footerManager.redraw()};var o=function(t){this._column=t,this.type="ColumnComponent"};o.prototype.getElement=function(){return this._column.getElement()},o.prototype.getDefinition=function(){return this._column.getDefinition()},o.prototype.getField=function(){return this._column.getField()},o.prototype.getCells=function(){var t=[];return this._column.cells.forEach(function(e){t.push(e.getComponent())}),t},o.prototype.getVisibility=function(){return this._column.visible},o.prototype.show=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.show()}):this._column.show()},o.prototype.hide=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.hide()}):this._column.hide()},o.prototype.toggle=function(){this._column.visible?this.hide():this.show()},o.prototype.delete=function(){this._column.delete()},o.prototype.getSubColumns=function(){var t=[];return this._column.columns.length&&this._column.columns.forEach(function(e){t.push(e.getComponent())}),t},o.prototype.getParentColumn=function(){return this._column.parent instanceof i&&this._column.parent.getComponent()},o.prototype._getSelf=function(){return this._column},o.prototype.scrollTo=function(){return this._column.table.columnManager.scrollToColumn(this._column)},o.prototype.getTable=function(){return this._column.table},o.prototype.headerFilterFocus=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterFocus(this._column)},o.prototype.reloadHeaderFilter=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.reloadHeaderFilter(this._column)},o.prototype.setHeaderFilterValue=function(t){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterValue(this._column,t)},o.prototype.getNextColumn=function(){return this._column.nextColumn().getComponent()},o.prototype.getPrevColumn=function(){return this._column.prevColumn().getComponent()};var i=function t(e,o){var i=this;this.table=o.table,this.definition=e,this.parent=o,this.type="column",this.columns=[],this.cells=[],this.element=this.createElement(),this.contentElement=!1,this.groupElement=this.createGroupElement(),this.isGroup=!1,this.tooltip=!1,this.hozAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.setField(this.definition.field),this.modules={},this.cellEvents={cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1},this.width=null,this.widthStyled="",this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,e.columns?(this.isGroup=!0,e.columns.forEach(function(e,o){var n=new t(e,i);i.attachColumn(n)}),i.checkColumnVisibility()):o.registerColumnField(this),e.rowHandle&&!1!==this.table.options.movableRows&&this.table.modExists("moveRow")&&this.table.modules.moveRow.setHandle(!0),this._buildHeader()};i.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col"),t.setAttribute("role","columnheader"),t.setAttribute("aria-sort","none"),t},i.prototype.createGroupElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col-group-cols"),t},i.prototype.setField=function(t){this.field=t,this.fieldStructure=t?this.table.options.nestedFieldSeparator?t.split(this.table.options.nestedFieldSeparator):[t]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNesteData:this._setFlatData},i.prototype.registerColumnPosition=function(t){this.parent.registerColumnPosition(t)},i.prototype.registerColumnField=function(t){this.parent.registerColumnField(t)},i.prototype.reRegisterPosition=function(){this.isGroup?this.columns.forEach(function(t){t.reRegisterPosition()}):this.registerColumnPosition(this)},i.prototype.setTooltip=function(){var t=this,e=t.definition,o=e.headerTooltip||!1===e.tooltip?e.headerTooltip:t.table.options.tooltipsHeader;o?!0===o?e.field?t.table.modules.localize.bind("columns|"+e.field,function(o){t.element.setAttribute("title",o||e.title)}):t.element.setAttribute("title",e.title):("function"==typeof o&&!1===(o=o(t.getComponent()))&&(o=""),t.element.setAttribute("title",o)):t.element.setAttribute("title","")},i.prototype._buildHeader=function(){for(var t=this,e=t.definition;t.element.firstChild;)t.element.removeChild(t.element.firstChild);e.headerVertical&&(t.element.classList.add("tabulator-col-vertical"),"flip"===e.headerVertical&&t.element.classList.add("tabulator-col-vertical-flip")),t.contentElement=t._bindEvents(),t.contentElement=t._buildColumnHeaderContent(),t.element.appendChild(t.contentElement),t.isGroup?t._buildGroupHeader():t._buildColumnHeader(),t.setTooltip(),t.table.options.resizableColumns&&t.table.modExists("resizeColumns")&&t.table.modules.resizeColumns.initializeColumn("header",t,t.element),e.headerFilter&&t.table.modExists("filter")&&t.table.modExists("edit")&&(void 0!==e.headerFilterPlaceholder&&e.field&&t.table.modules.localize.setHeaderFilterColumnPlaceholder(e.field,e.headerFilterPlaceholder),t.table.modules.filter.initializeColumn(t)),t.table.modExists("frozenColumns")&&t.table.modules.frozenColumns.initializeColumn(t),t.table.options.movableColumns&&!t.isGroup&&t.table.modExists("moveColumn")&&t.table.modules.moveColumn.initializeColumn(t),(e.topCalc||e.bottomCalc)&&t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.initializeColumn(t),t.element.addEventListener("mouseenter",function(e){t.setTooltip()})},i.prototype._bindEvents=function(){var t,e,o,i=this,n=i.definition;"function"==typeof n.headerClick&&i.element.addEventListener("click",function(t){n.headerClick(t,i.getComponent())}),"function"==typeof n.headerDblClick&&i.element.addEventListener("dblclick",function(t){n.headerDblClick(t,i.getComponent())}),"function"==typeof n.headerContext&&i.element.addEventListener("contextmenu",function(t){n.headerContext(t,i.getComponent())}),"function"==typeof n.headerTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0}),i.element.addEventListener("touchend",function(t){o&&n.headerTap(t,i.getComponent()),o=!1})),"function"==typeof n.headerDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,n.headerDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),"function"==typeof n.headerTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,n.headerTapHold(t,i.getComponent())},1e3)}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null})),"function"==typeof n.cellClick&&(i.cellEvents.cellClick=n.cellClick),"function"==typeof n.cellDblClick&&(i.cellEvents.cellDblClick=n.cellDblClick),"function"==typeof n.cellContext&&(i.cellEvents.cellContext=n.cellContext),"function"==typeof n.cellMouseEnter&&(i.cellEvents.cellMouseEnter=n.cellMouseEnter),"function"==typeof n.cellMouseLeave&&(i.cellEvents.cellMouseLeave=n.cellMouseLeave),"function"==typeof n.cellMouseOver&&(i.cellEvents.cellMouseOver=n.cellMouseOver),"function"==typeof n.cellMouseOut&&(i.cellEvents.cellMouseOut=n.cellMouseOut),"function"==typeof n.cellMouseMove&&(i.cellEvents.cellMouseMove=n.cellMouseMove),"function"==typeof n.cellTap&&(i.cellEvents.cellTap=n.cellTap),"function"==typeof n.cellDblTap&&(i.cellEvents.cellDblTap=n.cellDblTap),"function"==typeof n.cellTapHold&&(i.cellEvents.cellTapHold=n.cellTapHold),"function"==typeof n.cellEdited&&(i.cellEvents.cellEdited=n.cellEdited),"function"==typeof n.cellEditing&&(i.cellEvents.cellEditing=n.cellEditing),"function"==typeof n.cellEditCancelled&&(i.cellEvents.cellEditCancelled=n.cellEditCancelled)},i.prototype._buildColumnHeader=function(){var t=this,e=t.definition,o=t.table;if(o.modExists("sort")&&o.modules.sort.initializeColumn(t,t.contentElement),o.modExists("format")&&o.modules.format.initializeColumn(t),void 0!==e.editor&&o.modExists("edit")&&o.modules.edit.initializeColumn(t),void 0!==e.validator&&o.modExists("validate")&&o.modules.validate.initializeColumn(t),o.modExists("mutator")&&o.modules.mutator.initializeColumn(t),o.modExists("accessor")&&o.modules.accessor.initializeColumn(t),_typeof(o.options.responsiveLayout)&&o.modExists("responsiveLayout")&&o.modules.responsiveLayout.initializeColumn(t),void 0!==e.visible&&(e.visible?t.show(!0):t.hide(!0)),e.cssClass){e.cssClass.split(" ").forEach(function(e){t.element.classList.add(e)})}e.field&&this.element.setAttribute("tabulator-field",e.field),t.setMinWidth(void 0===e.minWidth?t.table.options.columnMinWidth:parseInt(e.minWidth)),t.reinitializeWidth(),t.tooltip=t.definition.tooltip||!1===t.definition.tooltip?t.definition.tooltip:t.table.options.tooltips,t.hozAlign=void 0===t.definition.align?"":t.definition.align},i.prototype._buildColumnHeaderContent=function(){var t=this,e=(t.definition,t.table,document.createElement("div"));return e.classList.add("tabulator-col-content"),e.appendChild(t._buildColumnHeaderTitle()),e},i.prototype._buildColumnHeaderTitle=function(){var t=this,e=t.definition,o=t.table,i=document.createElement("div");if(i.classList.add("tabulator-col-title"),e.editableTitle){var n=document.createElement("input");n.classList.add("tabulator-title-editor"),n.addEventListener("click",function(t){t.stopPropagation(),n.focus()}),n.addEventListener("change",function(){e.title=n.value,o.options.columnTitleChanged.call(t.table,t.getComponent())}),i.appendChild(n),e.field?o.modules.localize.bind("columns|"+e.field,function(t){n.value=t||e.title||" "}):n.value=e.title||" "}else e.field?o.modules.localize.bind("columns|"+e.field,function(o){t._formatColumnHeaderTitle(i,o||e.title||" ")}):t._formatColumnHeaderTitle(i,e.title||" ");return i},i.prototype._formatColumnHeaderTitle=function(t,e){var o,i,n,s;if(this.definition.titleFormatter&&this.table.modExists("format"))switch(o=this.table.modules.format.getFormatter(this.definition.titleFormatter),s={getValue:function(){return e},getElement:function(){return t}},n=this.definition.titleFormatterParams||{},n="function"==typeof n?n():n,i=o.call(this.table.modules.format,s,n),void 0===i?"undefined":_typeof(i)){case"object":i instanceof Node?this.element.appendChild(i):(this.element.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i));break;case"undefined":case"null":this.element.innerHTML="";break;default:this.element.innerHTML=i}else t.innerHTML=e},i.prototype._buildGroupHeader=function(){this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.element.appendChild(this.groupElement)},i.prototype._getFlatData=function(t){return t[this.field]},i.prototype._getNestedData=function(t){for(var e,o=t,i=this.fieldStructure,n=i.length,s=0;s-1&&this.table.columnManager.getColumnByIndex(t+1)},i.prototype.prevColumn=function(){var t=this.table.columnManager.findColumnIndex(this);return t>-1&&this.table.columnManager.getColumnByIndex(t-1)},i.prototype.reinitializeWidth=function(t){this.widthFixed=!1,void 0===this.definition.width||t||this.setWidth(this.definition.width),this.table.modExists("filter")&&this.table.modules.filter.hideHeaderFilterElements(),this.fitToData(),this.table.modExists("filter")&&this.table.modules.filter.showHeaderFilterElements()},i.prototype.fitToData=function(){var t=this;this.widthFixed||(this.element.style.width="",t.cells.forEach(function(t){t.clearWidth()}));var e=this.element.offsetWidth;t.width&&this.widthFixed||(t.cells.forEach(function(t){var o=t.getWidth();o>e&&(e=o)}),e&&t.setWidthActual(e+1))},i.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},i.prototype.defaultOptionList=["title","field","visible","align","width","minWidth","widthGrow","widthShrink","resizable","frozen","responsive","tooltip","cssClass","rowHandle","hideInHtml","sorter","sorterParams","formatter","formatterParams","variableHeight","editable","editor","editorParams","validator","mutator","mutatorParams","mutatorData","mutatorDataParams","mutatorEdit","mutatorEditParams","mutatorClipboard","mutatorClipboardParams","accessor","accessorParams","accessorData","accessorDataParams","accessorDownload","accessorDownloadParams","accessorClipboard","accessorClipboardParams","download","downloadTitle","topCalc","topCalcParams","topCalcFormatter","topCalcFormatterParams","bottomCalc","bottomCalcParams","bottomCalcFormatter","bottomCalcFormatterParams","cellClick","cellDblClick","cellContext","cellTap","cellDblTap","cellTapHold","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellEditing","cellEdited","cellEditCancelled","headerSort","headerSortStartingDir","headerSortTristate","headerClick","headerDblClick","headerContext","headerTap","headerDblTap","headerTapHold","headerTooltip","headerVertical","editableTitle","titleFormatter","titleFormatterParams","headerFilter","headerFilterPlaceholder","headerFilterParams","headerFilterEmptyCheck","headerFilterFunc","headerFilterFuncParams","headerFilterLiveFilter"],i.prototype.getComponent=function(){return new o(this)};var n=function(t){this.table=t,this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.columnManager=null,this.height=0,this.firstRender=!1,this.renderMode="classic",this.rows=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[]};n.prototype.createHolderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-tableHolder"),t.setAttribute("tabindex",0),t},n.prototype.createTableElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-table"),t},n.prototype.getElement=function(){return this.element},n.prototype.getTableElement=function(){return this.tableElement},n.prototype.getRowPosition=function(t,e){return e?this.activeRows.indexOf(t):this.rows.indexOf(t)},n.prototype.setColumnManager=function(t){this.columnManager=t},n.prototype.initialize=function(){var t=this;t.setRenderMode(),t.element.appendChild(t.tableElement),t.firstRender=!0,t.element.addEventListener("scroll",function(){var e=t.element.scrollLeft;t.scrollLeft!=e&&(t.columnManager.scrollHorizontal(e),t.table.options.groupBy&&t.table.modules.groupRows.scrollHeaders(e),t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.scrollHorizontal(e)),t.scrollLeft=e}),"virtual"===this.renderMode&&t.element.addEventListener("scroll",function(){var e=t.element.scrollTop,o=t.scrollTop>e;t.scrollTop!=e?(t.scrollTop=e,t.scrollVertical(o),"scroll"==t.table.options.ajaxProgressiveLoad&&t.table.modules.ajax.nextPage(t.element.scrollHeight-t.element.clientHeight-e)):t.scrollTop=e})},n.prototype.findRow=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t))){if(void 0===t||null===t)return!1;return e.rows.find(function(o){return o.data[e.table.options.index]==t})||!1}if(t instanceof r)return t;if(t instanceof s)return t._getSelf()||!1;if(t instanceof HTMLElement){return e.rows.find(function(e){return e.element===t})||!1}return!1},n.prototype.getRowFromDataObject=function(t){return this.rows.find(function(e){return e.data===t})||!1},n.prototype.getRowFromPosition=function(t,e){return e?this.activeRows[t]:this.rows[t]},n.prototype.scrollToRow=function(t,e,o){var i,n=this,s=this.getDisplayRows().indexOf(t),r=t.getElement(),a=0;return new Promise(function(t,l){if(s>-1){if(void 0===e&&(e=n.table.options.scrollToRowPosition),void 0===o&&(o=n.table.options.scrollToRowIfVisible),"nearest"===e)switch(n.renderMode){case"classic":i=u.prototype.helpers.elOffset(r).top,e=Math.abs(n.element.scrollTop-i)>Math.abs(n.element.scrollTop+n.element.clientHeight-i)?"bottom":"top";break;case"virtual":e=Math.abs(n.vDomTop-s)>Math.abs(n.vDomBottom-s)?"bottom":"top"}if(!o&&u.prototype.helpers.elVisible(r)&&(a=u.prototype.helpers.elOffset(r).top-u.prototype.helpers.elOffset(n.element).top)>0&&a-1&&this.activeRows.splice(i,1),o>-1&&this.rows.splice(o,1),this.setActiveRows(this.activeRows),this.displayRowIterator(function(e){var o=e.indexOf(t);o>-1&&e.splice(o,1)}),e||this.reRenderInPosition(),this.table.options.rowDeleted.call(this.table,t.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.updateGroupRows(!0):this.table.options.pagination&&this.table.modExists("page")?this.refreshActiveData(!1,!1,!0):this.table.options.pagination&&this.table.modExists("page")&&this.refreshActiveData("page")},n.prototype.addRow=function(t,e,o,i){var n=this.addRowActual(t,e,o,i);return this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowAdd",n,{data:t,pos:e,index:o}),n},n.prototype.addRows=function(t,e,o){var i=this,n=this,s=0,r=[];return new Promise(function(a,l){e=i.findAddRowPos(e),Array.isArray(t)||(t=[t]),s=t.length-1,(void 0===o&&e||void 0!==o&&!e)&&t.reverse(),t.forEach(function(t,i){var s=n.addRow(t,e,o,!0);r.push(s)}),i.table.options.groupBy&&i.table.modExists("groupRows")?i.table.modules.groupRows.updateGroupRows(!0):i.table.options.pagination&&i.table.modExists("page")?i.refreshActiveData(!1,!1,!0):i.reRenderInPosition(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),a(r)})},n.prototype.findAddRowPos=function(t){return void 0===t&&(t=this.table.options.addRowPos),"pos"===t&&(t=!0),"bottom"===t&&(t=!1),t},n.prototype.addRowActual=function(t,e,o,i){var n,s=t instanceof r?t:new r(t||{},this),a=this.findAddRowPos(e);if(!o&&this.table.options.pagination&&"page"==this.table.options.paginationAddRow&&(n=this.getDisplayRows(),a?n.length?o=n[0]:this.activeRows.length&&(o=this.activeRows[this.activeRows.length-1],a=!1):n.length&&(o=n[n.length-1],a=!(n.length1&&(!o||o&&-1==l.indexOf(o)?a?l[0]!==s&&(o=l[0],this._moveRowInArray(s.getGroup().rows,s,o,a)):l[l.length-1]!==s&&(o=l[l.length-1],this._moveRowInArray(s.getGroup().rows,s,o,a)):this._moveRowInArray(s.getGroup().rows,s,o,a))}if(o){var c=this.rows.indexOf(o),u=this.activeRows.indexOf(o);this.displayRowIterator(function(t){var e=t.indexOf(o);e>-1&&t.splice(a?e:e+1,0,s)}),u>-1&&this.activeRows.splice(a?u:u+1,0,s),c>-1&&this.rows.splice(a?c:c+1,0,s)}else a?(this.displayRowIterator(function(t){t.unshift(s)}),this.activeRows.unshift(s),this.rows.unshift(s)):(this.displayRowIterator(function(t){t.push(s)}),this.activeRows.push(s),this.rows.push(s));return this.setActiveRows(this.activeRows),this.table.options.rowAdded.call(this.table,s.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),i||this.reRenderInPosition(),s},n.prototype.moveRow=function(t,e,o){this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowMove",t,{pos:this.getRowPosition(t),to:e,after:o}),this.moveRowActual(t,e,o),this.table.options.rowMoved.call(this.table,t.getComponent())},n.prototype.moveRowActual=function(t,e,o){var i=this;if(this._moveRowInArray(this.rows,t,e,o),this._moveRowInArray(this.activeRows,t,e,o),this.displayRowIterator(function(n){i._moveRowInArray(n,t,e,o)}),this.table.options.groupBy&&this.table.modExists("groupRows")){var n=e.getGroup(),s=t.getGroup();n===s?this._moveRowInArray(n.rows,t,e,o):(s&&s.removeRow(t),n.insertRow(t,e,o))}},n.prototype._moveRowInArray=function(t,e,o,i){var n,s,r,a;if(e!==o&&(n=t.indexOf(e),n>-1&&(t.splice(n,1),s=t.indexOf(o),s>-1?i?t.splice(s+1,0,e):t.splice(s,0,e):t.splice(n,0,e)),t===this.getDisplayRows())){r=nn?s:n+1;for(var l=r;l<=a;l++)t[l]&&this.styleRow(t[l],l)}},n.prototype.clearData=function(){this.setData([])},n.prototype.getRowIndex=function(t){return this.findRowIndex(t,this.rows)},n.prototype.getDisplayRowIndex=function(t){var e=this.getDisplayRows().indexOf(t);return e>-1&&e},n.prototype.nextDisplayRow=function(t,e){var o=this.getDisplayRowIndex(t),i=!1;return!1!==o&&o-1)&&o},n.prototype.getData=function(t,e){var o=this,i=[];return(t?o.activeRows:o.rows).forEach(function(t){i.push(t.getData(e||"data"))}),i},n.prototype.getHtml=function(t){var e=this.getData(t),o=[],i="",n="";return this.table.columnManager.getColumns().forEach(function(t){var e=t.getDefinition();t.visible&&!e.hideInHtml&&(i+=""+(e.title||"")+"",o.push(t))}),e.forEach(function(t){var e="";o.forEach(function(o){var i=o.getFieldValue(t);void 0!==i&&null!==i||(i=":"),e+=""+i+""}),n+=""+e+""}),"\n\n\t\t\t\n\n\t\t\t"+i+"\n\n\t\t\t\n\n\t\t\t"+n+"\n\n\t\t\t
"},n.prototype.getComponents=function(t){var e=this,o=[];return(t?e.activeRows:e.rows).forEach(function(t){o.push(t.getComponent())}),o},n.prototype.getDataCount=function(t){return t?this.rows.length:this.activeRows.length},n.prototype._genRemoteRequest=function(){var t=this,e=t.table,o=e.options,i={};if(e.modExists("page")){if(o.ajaxSorting){var n=t.table.modules.sort.getSort();n.forEach(function(t){delete t.column}),i[t.table.modules.page.paginationDataSentNames.sorters]=n}if(o.ajaxFiltering){var s=t.table.modules.filter.getFilters(!0,!0);i[t.table.modules.page.paginationDataSentNames.filters]=s}t.table.modules.ajax.setParams(i,!0)}e.modules.ajax.sendRequest().then(function(e){t.setData(e)}).catch(function(t){})},n.prototype.filterRefresh=function(){var t=this.table,e=t.options,o=this.scrollLeft;e.ajaxFiltering?"remote"==e.pagination&&t.modExists("page")?(t.modules.page.reset(!0),t.modules.page.setPage(1).then(function(){}).catch(function(){})):e.ajaxProgressiveLoad?t.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData("filter"),this.scrollHorizontal(o)},n.prototype.sorterRefresh=function(t){var e=this.table,o=this.table.options,i=this.scrollLeft;o.ajaxSorting?("remote"==o.pagination||o.progressiveLoad)&&e.modExists("page")?(e.modules.page.reset(!0),e.modules.page.setPage(1).then(function(){}).catch(function(){})):o.ajaxProgressiveLoad?e.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData(t?"filter":"sort"),this.scrollHorizontal(i)},n.prototype.scrollHorizontal=function(t){this.scrollLeft=t,this.element.scrollLeft=t,this.table.options.groupBy&&this.table.modules.groupRows.scrollHeaders(t),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.scrollHorizontal(t)},n.prototype.refreshActiveData=function(t,e,o){var i,n=this,s=this.table;switch(n.table.modExists("edit")&&n.table.modules.edit.cancelEdit(),t||(t="all"),s.options.selectable&&!s.options.selectablePersistence&&s.modExists("selectRow")&&s.modules.selectRow.deselectRows(),t){case"all":case"filter":e?e=!1:s.modExists("filter")?n.setActiveRows(s.modules.filter.filter(n.rows)):n.setActiveRows(n.rows.slice(0));case"sort":e?e=!1:s.modExists("sort")&&s.modules.sort.sort(this.activeRows);case"display":this.resetDisplayRows();case"freeze":e?e=!1:this.table.modExists("frozenRows")&&s.modules.frozenRows.isFrozen()&&(s.modules.frozenRows.getDisplayIndex()||s.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.frozenRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.frozenRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.frozenRows.setDisplayIndex(i));case"group":e?e=!1:s.options.groupBy&&s.modExists("groupRows")&&(s.modules.groupRows.getDisplayIndex()||s.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.groupRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.groupRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.groupRows.setDisplayIndex(i));case"tree":e?e=!1:s.options.dataTree&&s.modExists("dataTree")&&(s.modules.dataTree.getDisplayIndex()||s.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.dataTree.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.dataTree.getRows(this.getDisplayRows(i-1)),i))&&s.modules.dataTree.setDisplayIndex(i)),s.options.pagination&&s.modExists("page")&&!o&&"local"==s.modules.page.getMode()&&s.modules.page.reset();case"page":e?e=!1:s.options.pagination&&s.modExists("page")&&(s.modules.page.getDisplayIndex()||s.modules.page.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.page.getDisplayIndex(),"local"==s.modules.page.getMode()&&s.modules.page.setMaxRows(this.getDisplayRows(i-1).length),!0!==(i=n.setDisplayRows(s.modules.page.getRows(this.getDisplayRows(i-1)),i))&&s.modules.page.setDisplayIndex(i))}u.prototype.helpers.elVisible(n.element)&&(o?n.reRenderInPosition():(n.renderTable(),s.options.layoutColumnsOnNewData&&n.table.columnManager.redraw(!0))),s.modExists("columnCalcs")&&s.modules.columnCalcs.recalc(this.activeRows)},n.prototype.setActiveRows=function(t){this.activeRows=t,this.activeRowsCount=this.activeRows.length},n.prototype.resetDisplayRows=function(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length,this.table.modExists("frozenRows")&&this.table.modules.frozenRows.setDisplayIndex(0),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.setDisplayIndex(0),this.table.options.pagination&&this.table.modExists("page")&&this.table.modules.page.setDisplayIndex(0)},n.prototype.getNextDisplayIndex=function(){return this.displayRows.length},n.prototype.setDisplayRows=function(t,e){var o=!0;return e&&void 0!==this.displayRows[e]?(this.displayRows[e]=t,o=!0):(this.displayRows.push(t),o=e=this.displayRows.length-1),e==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length),o},n.prototype.getDisplayRows=function(t){return void 0===t?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[t]||[]},n.prototype.displayRowIterator=function(t){this.displayRows.forEach(t),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length},n.prototype.getRows=function(){return this.rows},n.prototype.reRenderInPosition=function(t){if("virtual"==this.getRenderMode()){for(var e=this.element.scrollTop,o=!1,i=!1,n=this.scrollLeft,s=this.getDisplayRows(),r=this.vDomTop;r<=this.vDomBottom;r++)if(s[r]){var a=e-s[r].getElement().offsetTop;if(!(!1===i||Math.abs(a)this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*g),"group"!==f.type&&(d=!1),i.vDomBottom++,c++}t?(i.vDomTopPad=e?i.vDomRowHeight*this.vDomTop+o:i.scrollTop-l,i.vDomBottomPad=i.vDomBottom==i.displayRowsCount-1?0:Math.max(i.vDomScrollHeight-i.vDomTopPad-a-l,0)):(this.vDomTopPad=0,i.vDomRowHeight=Math.floor((a+l)/c),i.vDomBottomPad=i.vDomRowHeight*(i.displayRowsCount-i.vDomBottom-1),i.vDomScrollHeight=l+a+i.vDomBottomPad-i.height),n.style.paddingTop=i.vDomTopPad+"px",n.style.paddingBottom=i.vDomBottomPad+"px",e&&(this.scrollTop=i.vDomTopPad+l+o-(this.element.scrollWidth>this.element.clientWidth?this.element.offsetHeight-this.element.clientHeight:0)),this.scrollTop=Math.min(this.scrollTop,this.element.scrollHeight-this.height),this.element.scrollWidth>this.element.offsetWidth&&e&&(this.scrollTop+=this.element.offsetHeight-this.element.clientHeight),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,s.scrollTop=this.scrollTop,n.style.minWidth=d?i.table.columnManager.getWidth()+"px":"",i.table.options.groupBy&&"fitDataFill"!=i.table.modules.layout.getMode()&&i.displayRowsCount==i.table.modules.groupRows.countGroups()&&(i.tableElement.style.minWidth=i.table.columnManager.getWidth())}else this.renderEmptyScroll()},n.prototype.scrollVertical=function(t){var e=this.scrollTop-this.vDomScrollPosTop,o=this.scrollTop-this.vDomScrollPosBottom,i=2*this.vDomWindowBuffer;if(-e>i||o>i){var n=this.scrollLeft;this._virtualRenderFill(Math.floor(this.element.scrollTop/this.element.scrollHeight*this.displayRowsCount)),this.scrollHorizontal(n)}else t?(e<0&&this._addTopRow(-e),o<0&&this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer&&this._removeBottomRow(-o)):(e>=0&&this.scrollTop>this.vDomWindowBuffer&&this._removeTopRow(e),o>=0&&this._addBottomRow(o))},n.prototype._addTopRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomTop){var n=this.vDomTop-1,s=i[n],r=s.getHeight()||this.vDomRowHeight;t>=r&&(this.styleRow(s,n),o.insertBefore(s.getElement(),o.firstChild),s.initialized&&s.heightInitialized||(this.vDomTopNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomTopPad-=r,this.vDomTopPad<0&&(this.vDomTopPad=n*this.vDomRowHeight),n||(this.vDomTopPad=0),o.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=r,this.vDomTop--),t=-(this.scrollTop-this.vDomScrollPosTop),s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),e=(i[this.vDomTop-1].getHeight()||this.vDomRowHeight)?this._addTopRow(t,e+1):this._quickNormalizeRowHeight(this.vDomTopNewRows)}},n.prototype._removeTopRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomTop],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode.removeChild(n),this.vDomTopPad+=i,e.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?i:i+this.vDomWindowBuffer,this.vDomTop++,t=this.scrollTop-this.vDomScrollPosTop,this._removeTopRow(t)}},n.prototype._addBottomRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomBottom=r&&(this.styleRow(s,n),o.appendChild(s.getElement()),s.initialized&&s.heightInitialized||(this.vDomBottomNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomBottomPad-=r,(this.vDomBottomPad<0||n==this.displayRowsCount-1)&&(this.vDomBottomPad=0),o.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=r,this.vDomBottom++),t=this.scrollTop-this.vDomScrollPosBottom,s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),e=(i[this.vDomBottom+1].getHeight()||this.vDomRowHeight)?this._addBottomRow(t,e+1):this._quickNormalizeRowHeight(this.vDomBottomNewRows)}},n.prototype._removeBottomRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomBottom],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode&&n.parentNode.removeChild(n),this.vDomBottomPad+=i,this.vDomBottomPad<0&&(this.vDomBottomPad=0),e.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=i,this.vDomBottom--,t=-(this.scrollTop-this.vDomScrollPosBottom),this._removeBottomRow(t)}},n.prototype._quickNormalizeRowHeight=function(t){t.forEach(function(t){t.calcHeight()}),t.forEach(function(t){t.setCellHeight()}),t.length=0},n.prototype.normalizeHeight=function(){this.activeRows.forEach(function(t){t.normalizeHeight()})},n.prototype.adjustTableSize=function(){if("virtual"===this.renderMode){this.height=this.element.clientHeight,this.vDomWindowBuffer=this.table.options.virtualDomBuffer||this.height;var t=this.columnManager.getElement().offsetHeight+(this.table.footerManager&&!this.table.footerManager.external?this.table.footerManager.getElement().offsetHeight:0);this.element.style.minHeight="calc(100% - "+t+"px)",this.element.style.height="calc(100% - "+t+"px)",this.element.style.maxHeight="calc(100% - "+t+"px)"}},n.prototype.reinitialize=function(){this.rows.forEach(function(t){t.reinitialize()})},n.prototype.redraw=function(t){var e=this.scrollLeft;this.adjustTableSize(),t?this.renderTable():("classic"==self.renderMode?self.table.options.groupBy?self.refreshActiveData("group",!1,!1):this._simpleRender():(this.reRenderInPosition(),this.scrollHorizontal(e)),this.displayRowsCount||this.table.options.placeholder&&this.getElement().appendChild(this.table.options.placeholder))},n.prototype.resetScroll=function(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var t=document.createEvent("Event");t.initEvent("scroll",!1,!0),this.element.dispatchEvent(t)}else this.element.dispatchEvent(new Event("scroll"))};var s=function(t){this._row=t};s.prototype.getData=function(t){return this._row.getData(t)},s.prototype.getElement=function(){return this._row.getElement()},s.prototype.getCells=function(){var t=[];return this._row.getCells().forEach(function(e){t.push(e.getComponent())}),t},s.prototype.getCell=function(t){var e=this._row.getCell(t);return!!e&&e.getComponent()},s.prototype.getIndex=function(){return this._row.getData("data")[this._row.table.options.index]},s.prototype.getPosition=function(t){return this._row.table.rowManager.getRowPosition(this._row,t)},s.prototype.delete=function(){return this._row.delete()},s.prototype.scrollTo=function(){return this._row.table.rowManager.scrollToRow(this._row)},s.prototype.pageTo=function(){if(this._row.table.modExists("page",!0))return this._row.table.modules.page.setPageToRow(this._row)},s.prototype.move=function(t,e){this._row.moveToRow(t,e)},s.prototype.update=function(t){return this._row.updateData(t)},s.prototype.normalizeHeight=function(){this._row.normalizeHeight(!0)},s.prototype.select=function(){this._row.table.modules.selectRow.selectRows(this._row)},s.prototype.deselect=function(){this._row.table.modules.selectRow.deselectRows(this._row)},s.prototype.toggleSelect=function(){this._row.table.modules.selectRow.toggleRow(this._row)},s.prototype.isSelected=function(){return this._row.table.modules.selectRow.isRowSelected(this._row)},s.prototype._getSelf=function(){return this._row},s.prototype.freeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.freezeRow(this._row)},s.prototype.unfreeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.unfreezeRow(this._row)},s.prototype.treeCollapse=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.collapseRow(this._row)},s.prototype.treeExpand=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.expandRow(this._row)},s.prototype.treeToggle=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.toggleRow(this._row)},s.prototype.getTreeParent=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeParent(this._row)},s.prototype.getTreeChildren=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeChildren(this._row)},s.prototype.reformat=function(){return this._row.reinitialize()},s.prototype.getGroup=function(){return this._row.getGroup().getComponent()},s.prototype.getTable=function(){return this._row.table},s.prototype.getNextRow=function(){var t=this._row.nextRow();return t?t.getComponent():t},s.prototype.getPrevRow=function(){var t=this._row.prevRow();return t?t.getComponent():t};var r=function(t,e){this.table=e.table,this.parent=e,this.data={},this.type="row",this.element=this.createElement(),this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.setData(t),this.generateElement()};r.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-row"),t.setAttribute("role","row"),t},r.prototype.getElement=function(){return this.element},r.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},r.prototype.generateElement=function(){var t,e,o,i=this;!1!==i.table.options.selectable&&i.table.modExists("selectRow")&&i.table.modules.selectRow.initializeRow(this),!1!==i.table.options.movableRows&&i.table.modExists("moveRow")&&i.table.modules.moveRow.initializeRow(this),!1!==i.table.options.dataTree&&i.table.modExists("dataTree")&&i.table.modules.dataTree.initializeRow(this),i.table.options.rowClick&&i.element.addEventListener("click",function(t){i.table.options.rowClick(t,i.getComponent())}),i.table.options.rowDblClick&&i.element.addEventListener("dblclick",function(t){i.table.options.rowDblClick(t,i.getComponent())}),i.table.options.rowContext&&i.element.addEventListener("contextmenu",function(t){i.table.options.rowContext(t,i.getComponent())}),i.table.options.rowMouseEnter&&i.element.addEventListener("mouseenter",function(t){i.table.options.rowMouseEnter(t,i.getComponent())}),i.table.options.rowMouseLeave&&i.element.addEventListener("mouseleave",function(t){i.table.options.rowMouseLeave(t,i.getComponent())}),i.table.options.rowMouseOver&&i.element.addEventListener("mouseover",function(t){i.table.options.rowMouseOver(t,i.getComponent())}),i.table.options.rowMouseOut&&i.element.addEventListener("mouseout",function(t){i.table.options.rowMouseOut(t,i.getComponent())}),i.table.options.rowMouseMove&&i.element.addEventListener("mousemove",function(t){i.table.options.rowMouseMove(t,i.getComponent())}),i.table.options.rowTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0}),i.element.addEventListener("touchend",function(t){o&&i.table.options.rowTap(t,i.getComponent()),o=!1})),i.table.options.rowDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,i.table.options.rowDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),i.table.options.rowTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,i.table.options.rowTapHold(t,i.getComponent())},1e3)}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null}))},r.prototype.generateCells=function(){this.cells=this.table.columnManager.generateCells(this)},r.prototype.initialize=function(t){var e=this;if(!e.initialized||t){for(e.deleteCells();e.element.firstChild;)e.element.removeChild(e.element.firstChild);this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutRow(this),this.generateCells(),e.cells.forEach(function(t){e.element.appendChild(t.getElement()),t.cellRendered()}),t&&e.normalizeHeight(),e.table.options.dataTree&&e.table.modExists("dataTree")&&e.table.modules.dataTree.layoutRow(this),"collapse"===e.table.options.responsiveLayout&&e.table.modExists("responsiveLayout")&&e.table.modules.responsiveLayout.layoutRow(this),e.table.options.rowFormatter&&e.table.options.rowFormatter(e.getComponent()),e.table.options.resizableRows&&e.table.modExists("resizeRows")&&e.table.modules.resizeRows.initializeRow(e),e.initialized=!0}},r.prototype.reinitializeHeight=function(){this.heightInitialized=!1,null!==this.element.offsetParent&&this.normalizeHeight(!0)},r.prototype.reinitialize=function(){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),null!==this.element.offsetParent&&this.initialize(!0)},r.prototype.calcHeight=function(t){var e=0,o=this.table.options.resizableRows?this.element.clientHeight:0;this.cells.forEach(function(t){var o=t.getHeight();o>e&&(e=o)}),this.height=t?Math.max(e,o):this.manualHeight?this.height:Math.max(e,o),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight},r.prototype.setCellHeight=function(){this.cells.forEach(function(t){t.setHeight()}),this.heightInitialized=!0},r.prototype.clearCellHeight=function(){this.cells.forEach(function(t){t.clearHeight()})},r.prototype.normalizeHeight=function(t){t&&this.clearCellHeight(),this.calcHeight(t),this.setCellHeight()},r.prototype.setHeight=function(t,e){(this.height!=t||e)&&(this.manualHeight=!0,this.height=t,this.heightStyled=t?t+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight)},r.prototype.getHeight=function(){return this.outerHeight},r.prototype.getWidth=function(){return this.element.offsetWidth},r.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},r.prototype.setData=function(t){this.table.modExists("mutator")&&(t=this.table.modules.mutator.transformRow(t,"data")),this.data=t,this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchRow(this)},r.prototype.updateData=function(t){var e=this,o=this,i=u.prototype.helpers.elVisible(this.element);return new Promise(function(n,s){"string"==typeof t&&(t=JSON.parse(t)),e.table.options.reactiveData&&e.table.modExists("reactiveData",!0)&&e.table.modules.reactiveData.block(),o.table.modExists("mutator")&&(t=o.table.modules.mutator.transformRow(t,"data",!0));for(var r in t)o.data[r]=t[r];e.table.options.reactiveData&&e.table.modExists("reactiveData",!0)&&e.table.modules.reactiveData.unblock();for(var r in t){var a=e.getCell(r);a&&a.getValue()!=t[r]&&(a.setValueProcessData(t[r]),i&&a.cellRendered())}i?(o.normalizeHeight(),o.table.options.rowFormatter&&o.table.options.rowFormatter(o.getComponent())):(e.initialized=!1,e.height=0,e.heightStyled=""),!1!==o.table.options.dataTree&&o.table.modExists("dataTree")&&void 0!==t[e.table.modules.dataTree.getChildField()]&&(e.table.modules.dataTree.initializeRow(e),e.table.rowManager.refreshActiveData("tree",!1,!0)),o.table.options.rowUpdated.call(e.table,o.getComponent()),n()})},r.prototype.getData=function(t){var e=this;return t?e.table.modExists("accessor")?e.table.modules.accessor.transformRow(e.data,t):void 0:this.data},r.prototype.getCell=function(t){return t=this.table.columnManager.findColumn(t),this.cells.find(function(e){return e.column===t})},r.prototype.getCellIndex=function(t){return this.cells.findIndex(function(e){return e===t})},r.prototype.findNextEditableCell=function(t){var e=!1;if(t0)for(var o=t-1;o>=0;o--){var i=this.cells[o],n=!0 +;if(i.column.modules.edit&&u.prototype.helpers.elVisible(i.getElement())&&("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n)){e=i;break}}return e},r.prototype.getCells=function(){return this.cells},r.prototype.nextRow=function(){return this.table.rowManager.nextDisplayRow(this,!0)||!1},r.prototype.prevRow=function(){return this.table.rowManager.prevDisplayRow(this,!0)||!1},r.prototype.moveToRow=function(t,e){var o=this.table.rowManager.findRow(t);o?(this.table.rowManager.moveRowActual(this,o,!e),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",t)},r.prototype.delete=function(){var t=this;return new Promise(function(e,o){var i=t.table.rowManager.getRowIndex(t);t.deleteActual(),t.table.options.history&&t.table.modExists("history")&&(i&&(i=t.table.rowManager.rows[i-1]),t.table.modules.history.action("rowDelete",t,{data:t.getData(),pos:!i,index:i})),e()})},r.prototype.deleteActual=function(t){this.table.rowManager.getRowIndex(this);this.table.modExists("selectRow")&&this.table.modules.selectRow._deselectRow(this,!0),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0),this.modules.group&&this.modules.group.removeRow(this),this.table.rowManager.deleteRow(this,t),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.table.modExists("columnCalcs")&&(this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.columnCalcs.recalcRowGroup(this):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows))},r.prototype.deleteCells=function(){for(var t=this.cells.length,e=0;e-1?(this.browser="ie",this.browserSlow=!0):t.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):t.indexOf("Firefox")>-1?(this.browser="firefox",this.browserSlow=!1):(this.browser="other",this.browserSlow=!1)},u.prototype.setDataFromLocalFile=function(t){var e=this;return new Promise(function(o,i){var n=document.createElement("input");n.type="file",n.accept=t||".json,application/json",n.addEventListener("change",function(t){var s,r=n.files[0],a=new FileReader;a.readAsText(r),a.onload=function(t){try{s=JSON.parse(a.result)}catch(t){return console.warn("File Load Error - File contents is invalid JSON",t),void i(t)}e._setData(s).then(function(t){o(t)}).catch(function(t){o(t)})},a.onerror=function(t){console.warn("File Load Error - Unable to read file"),i()}}),n.click()})},u.prototype.setData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o)},u.prototype._setData=function(t,e,o,i){var n=this;return"string"!=typeof t?t?n.rowManager.setData(t,i):n.modExists("ajax")&&(n.modules.ajax.getUrl||n.options.ajaxURLGenerator)?"remote"==n.options.pagination&&n.modExists("page",!0)?(n.modules.page.reset(!0),n.modules.page.setPage(1)):n.modules.ajax.loadData(i):n.rowManager.setData([],i):0==t.indexOf("{")||0==t.indexOf("[")?n.rowManager.setData(JSON.parse(t),i):n.modExists("ajax",!0)?(e&&n.modules.ajax.setParams(e),o&&n.modules.ajax.setConfig(o),n.modules.ajax.setUrl(t),"remote"==n.options.pagination&&n.modExists("page",!0)?(n.modules.page.reset(!0),n.modules.page.setPage(1)):n.modules.ajax.loadData(i)):void 0},u.prototype.clearData=function(){this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this.rowManager.clearData()},u.prototype.getData=function(t){return this.rowManager.getData(t)},u.prototype.getDataCount=function(t){return this.rowManager.getDataCount(t)},u.prototype.searchRows=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("rows",t,e,o)},u.prototype.searchData=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("data",t,e,o)},u.prototype.getHtml=function(t){return this.rowManager.getHtml(t)},u.prototype.getAjaxUrl=function(){if(this.modExists("ajax",!0))return this.modules.ajax.getUrl()},u.prototype.replaceData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o,!0)},u.prototype.updateData=function(t){var e=this,o=this,i=0;return new Promise(function(n,s){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);e&&(i++,e.updateData(t).then(function(){--i||n()}))}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},u.prototype.addData=function(t,e,o){var i=this;return new Promise(function(n,s){i.modExists("ajax")&&i.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?i.rowManager.addRows(t,e,o).then(function(t){var e=[];t.forEach(function(t){e.push(t.getComponent())}),n(e)}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},u.prototype.updateOrAddData=function(t){var e=this,o=this,i=[],n=0;return new Promise(function(s,r){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);n++,e?e.updateData(t).then(function(){n--,i.push(e.getComponent()),n||s(i)}):o.rowManager.addRows(t).then(function(t){n--,i.push(t[0].getComponent()),n||s(i)})}):(console.warn("Update Error - No data provided"),r("Update Error - No data provided"))})},u.prototype.getRow=function(t){var e=this.rowManager.findRow(t);return e?e.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},u.prototype.getRowFromPosition=function(t,e){var o=this.rowManager.getRowFromPosition(t,e);return o?o.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},u.prototype.deleteRow=function(t){var e=this;return new Promise(function(o,i){var n=e.rowManager.findRow(t);n?n.delete().then(function(){o()}).catch(function(t){i(t)}):(console.warn("Delete Error - No matching row found:",t),i("Delete Error - No matching row found"))})},u.prototype.addRow=function(t,e,o){var i=this;return new Promise(function(n,s){"string"==typeof t&&(t=JSON.parse(t)),i.rowManager.addRows(t,e,o).then(function(t){i.modExists("columnCalcs")&&i.modules.columnCalcs.recalc(i.rowManager.activeRows),n(t[0].getComponent())})})},u.prototype.updateOrAddRow=function(t,e){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),s?s.updateData(e).then(function(){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(s.getComponent())}).catch(function(t){n(t)}):s=o.rowManager.addRows(e).then(function(t){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(t[0].getComponent())}).catch(function(t){n(t)})})},u.prototype.updateRow=function(t,e){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),s?s.updateData(e).then(function(){i(s.getComponent())}).catch(function(t){n(t)}):(console.warn("Update Error - No matching row found:",t),n("Update Error - No matching row found"))})},u.prototype.scrollToRow=function(t,e,o){var i=this;return new Promise(function(n,s){var r=i.rowManager.findRow(t);r?i.rowManager.scrollToRow(r,e,o).then(function(){n()}).catch(function(t){s(t)}):(console.warn("Scroll Error - No matching row found:",t),s("Scroll Error - No matching row found"))})},u.prototype.moveRow=function(t,e,o){var i=this.rowManager.findRow(t);i?i.moveToRow(e,o):console.warn("Move Error - No matching row found:",t)},u.prototype.getRows=function(t){return this.rowManager.getComponents(t)},u.prototype.getRowPosition=function(t,e){var o=this.rowManager.findRow(t);return o?this.rowManager.getRowPosition(o,e):(console.warn("Position Error - No matching row found:",t),!1)},u.prototype.copyToClipboard=function(t,e,o,i){this.modExists("clipboard",!0)&&this.modules.clipboard.copy(t,e,o,i)},u.prototype.setColumns=function(t){this.columnManager.setColumns(t)},u.prototype.getColumns=function(t){return this.columnManager.getComponents(t)},u.prototype.getColumn=function(t){var e=this.columnManager.findColumn(t);return e?e.getComponent():(console.warn("Find Error - No matching column found:",t),!1)},u.prototype.getColumnDefinitions=function(){return this.columnManager.getDefinitionTree()},u.prototype.getColumnLayout=function(){if(this.modExists("persistence",!0))return this.modules.persistence.parseColumns(this.columnManager.getColumns())},u.prototype.setColumnLayout=function(t){return!!this.modExists("persistence",!0)&&(this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns,t)),!0)},u.prototype.showColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Show Error - No matching column found:",t),!1;e.show(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},u.prototype.hideColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Hide Error - No matching column found:",t),!1;e.hide(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},u.prototype.toggleColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Visibility Toggle Error - No matching column found:",t),!1;e.visible?e.hide():e.show()},u.prototype.addColumn=function(t,e,o){var i=this.columnManager.findColumn(o);this.columnManager.addColumn(t,e,i)},u.prototype.deleteColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Delete Error - No matching column found:",t),!1;e.delete()},u.prototype.scrollToColumn=function(t,e,o){var i=this;return new Promise(function(n,s){var r=i.columnManager.findColumn(t);r?i.columnManager.scrollToColumn(r,e,o).then(function(){n()}).catch(function(t){s(t) +}):(console.warn("Scroll Error - No matching column found:",t),s("Scroll Error - No matching column found"))})},u.prototype.setLocale=function(t){this.modules.localize.setLocale(t)},u.prototype.getLocale=function(){return this.modules.localize.getLocale()},u.prototype.getLang=function(t){return this.modules.localize.getLang(t)},u.prototype.redraw=function(t){this.columnManager.redraw(t),this.rowManager.redraw(t)},u.prototype.setHeight=function(t){this.options.height=isNaN(t)?t:t+"px",this.element.style.height=this.options.height,this.rowManager.redraw()},u.prototype.setSort=function(t,e){this.modExists("sort",!0)&&(this.modules.sort.setSort(t,e),this.rowManager.sorterRefresh())},u.prototype.getSorters=function(){if(this.modExists("sort",!0))return this.modules.sort.getSort()},u.prototype.clearSort=function(){this.modExists("sort",!0)&&(this.modules.sort.clear(),this.rowManager.sorterRefresh())},u.prototype.setFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.setFilter(t,e,o),this.rowManager.filterRefresh())},u.prototype.addFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.addFilter(t,e,o),this.rowManager.filterRefresh())},u.prototype.getFilters=function(t){if(this.modExists("filter",!0))return this.modules.filter.getFilters(t)},u.prototype.setHeaderFilterFocus=function(t){if(this.modExists("filter",!0)){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Filter Focus Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterFocus(e)}},u.prototype.setHeaderFilterValue=function(t,e){if(this.modExists("filter",!0)){var o=this.columnManager.findColumn(t);if(!o)return console.warn("Column Filter Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterValue(o,e)}},u.prototype.getHeaderFilters=function(){if(this.modExists("filter",!0))return this.modules.filter.getHeaderFilters()},u.prototype.removeFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.removeFilter(t,e,o),this.rowManager.filterRefresh())},u.prototype.clearFilter=function(t){this.modExists("filter",!0)&&(this.modules.filter.clearFilter(t),this.rowManager.filterRefresh())},u.prototype.clearHeaderFilter=function(){this.modExists("filter",!0)&&(this.modules.filter.clearHeaderFilter(),this.rowManager.filterRefresh())},u.prototype.selectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.selectRows(t)},u.prototype.deselectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.deselectRows(t)},u.prototype.toggleSelectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.toggleRow(t)},u.prototype.getSelectedRows=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedRows()},u.prototype.getSelectedData=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedData()},u.prototype.setMaxPage=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setMaxPage(t)},u.prototype.setPage=function(t){return this.options.pagination&&this.modExists("page")?this.modules.page.setPage(t):new Promise(function(t,e){e()})},u.prototype.setPageToRow=function(t){var e=this;return new Promise(function(o,i){e.options.pagination&&e.modExists("page")?(t=e.rowManager.findRow(t),t?e.modules.page.setPageToRow(t).then(function(){o()}).catch(function(){i()}):i()):i()})},u.prototype.setPageSize=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setPageSize(t),this.modules.page.setPage(1).then(function(){}).catch(function(){})},u.prototype.getPageSize=function(){if(this.options.pagination&&this.modExists("page",!0))return this.modules.page.getPageSize()},u.prototype.previousPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.previousPage()},u.prototype.nextPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.nextPage()},u.prototype.getPage=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPage()},u.prototype.getPageMax=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPageMax()},u.prototype.setGroupBy=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupBy=t,this.modules.groupRows.initialize(),this.rowManager.refreshActiveData("display")},u.prototype.setGroupStartOpen=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupStartOpen=t,this.modules.groupRows.initialize(),this.options.groupBy?this.rowManager.refreshActiveData("group"):console.warn("Grouping Update - cant refresh view, no groups have been set")},u.prototype.setGroupHeader=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupHeader=t,this.modules.groupRows.initialize(),this.options.groupBy?this.rowManager.refreshActiveData("group"):console.warn("Grouping Update - cant refresh view, no groups have been set")},u.prototype.getGroups=function(t){return!!this.modExists("groupRows",!0)&&this.modules.groupRows.getGroups(!0)},u.prototype.getGroupedData=function(){if(this.modExists("groupRows",!0))return this.options.groupBy?this.modules.groupRows.getGroupedData():this.getData()},u.prototype.getCalcResults=function(){return!!this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.getResults()},u.prototype.navigatePrev=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().prev()},u.prototype.navigateNext=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().next()},u.prototype.navigateLeft=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().left())},u.prototype.navigateRight=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().right())},u.prototype.navigateUp=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().up())},u.prototype.navigateDown=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().dpwn())},u.prototype.undo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.undo()},u.prototype.redo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.redo()},u.prototype.getHistoryUndoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryUndoSize()},u.prototype.getHistoryRedoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryRedoSize()},u.prototype.download=function(t,e,o){this.modExists("download",!0)&&this.modules.download.download(t,e,o)},u.prototype.downloadToTab=function(t,e,o){this.modExists("download",!0)&&this.modules.download.download(t,e,o,!0)},u.prototype.tableComms=function(t,e,o,i){this.modules.comms.receive(t,e,o,i)},u.prototype.moduleBindings={},u.prototype.extendModule=function(t,e,o){if(u.prototype.moduleBindings[t]){var i=u.prototype.moduleBindings[t].prototype[e];if(i)if("object"==(void 0===o?"undefined":_typeof(o)))for(var n in o)i[n]=o[n];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",e)}else console.warn("Module Error - module does not exist:",t)},u.prototype.registerModule=function(t,e){u.prototype.moduleBindings[t]=e},u.prototype.bindModules=function(){this.modules={};for(var t in u.prototype.moduleBindings)this.modules[t]=new u.prototype.moduleBindings[t](this)},u.prototype.modExists=function(t,e){return!!this.modules[t]||(e&&console.error("Tabulator Module Not Installed: "+t),!1)},u.prototype.helpers={elVisible:function(t){return!(t.offsetWidth<=0&&t.offsetHeight<=0)},elOffset:function(t){var e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset-document.documentElement.clientTop,left:e.left+window.pageXOffset-document.documentElement.clientLeft}},deepClone:function(t){var e=Array.isArray(t)?[]:{};for(var o in t)null!=t[o]&&"object"===_typeof(t[o])?t[o]instanceof Date?e[o]=new Date(t[o]):e[o]=this.deepClone(t[o]):e[o]=t[o];return e}},u.prototype.comms={tables:[],register:function(t){u.prototype.comms.tables.push(t)},deregister:function(t){var e=u.prototype.comms.tables.indexOf(t);e>-1&&u.prototype.comms.tables.splice(e,1)},lookupTable:function(t){var e,o,i=[];if("string"==typeof t){if(e=document.querySelectorAll(t),e.length)for(var n=0;n-1?n/100*parseInt(t):parseInt(t):t}function o(t,i,n,s){function r(t){return n*(t.column.definition.widthGrow||1)}function a(t){return e(t.width)-n*(t.column.definition.widthShrink||0)}var l=[],c=0,u=0,d=0,h=0,p=0,m=[];return t.forEach(function(t,e){var o=s?a(t):r(t);t.column.minWidth>=o?l.push(t):(m.push(t),p+=s?t.column.definition.widthShrink||1:t.column.definition.widthGrow||1)}),l.length?(l.forEach(function(t){c+=s?t.width-t.column.minWidth:t.column.minWidth,t.width=t.column.minWidth}),u=i-c,d=p?Math.floor(u/p):u,h=u-d*p,h+=o(m,u,d,s)):(h=p?i-Math.floor(i/p)*p:i,m.forEach(function(t){t.width=s?a(t):r(t)})),h}var i=this,n=i.table.element.clientWidth,s=0,r=0,a=0,l=0,c=[],u=[],d=0,h=0,p=0;this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(n-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),t.forEach(function(t){var o,i,n;t.visible&&(o=t.definition.width,i=parseInt(t.minWidth),o?(n=e(o),s+=n>i?n:i,t.definition.widthShrink&&(u.push({column:t,width:n>i?n:i}),d+=t.definition.widthShrink)):(c.push({column:t,width:0}),a+=t.definition.widthGrow||1))}),r=n-s,l=Math.floor(r/a);var p=o(c,r,l,!1);c.length&&p>0&&(c[c.length-1].width+=+p),c.forEach(function(t){r-=t.width}),h=Math.abs(p)+r,h>0&&d&&(p=o(u,h,Math.floor(h/d),!0)),u.length&&(u[u.length-1].width-=p),c.forEach(function(t){t.column.setWidth(t.width)}),u.forEach(function(t){t.column.setWidth(t.width)})}},u.prototype.registerModule("layout",d);var h=function(t){this.table=t,this.locale="default",this.lang=!1,this.bindings={}};h.prototype.setHeaderFilterPlaceholder=function(t){this.langs.default.headerFilters.default=t},h.prototype.setHeaderFilterColumnPlaceholder=function(t,e){this.langs.default.headerFilters.columns[t]=e,this.lang&&!this.lang.headerFilters.columns[t]&&(this.lang.headerFilters.columns[t]=e)},h.prototype.installLang=function(t,e){this.langs[t]?this._setLangProp(this.langs[t],e):this.langs[t]=e},h.prototype._setLangProp=function(t,e){for(var o in e)t[o]&&"object"==_typeof(t[o])?this._setLangProp(t[o],e[o]):t[o]=e[o]},h.prototype.setLocale=function(t){function e(t,o){for(var i in t)"object"==_typeof(t[i])?(o[i]||(o[i]={}),e(t[i],o[i])):o[i]=t[i]}var o=this;if(t=t||"default",!0===t&&navigator.language&&(t=navigator.language.toLowerCase()),t&&!o.langs[t]){var i=t.split("-")[0];o.langs[i]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",t,i),t=i):(console.warn("Localization Error - Matching locale not found, using default: ",t),t="default")}o.locale=t,o.lang=u.prototype.helpers.deepClone(o.langs.default||{}),"default"!=t&&e(o.langs[t],o.lang),o.table.options.localized.call(o.table,o.locale,o.lang),o._executeBindings()},h.prototype.getLocale=function(t){return self.locale},h.prototype.getLang=function(t){return t?this.langs[t]:this.lang},h.prototype.getText=function(t,e){var t=e?t+"|"+e:t,o=t.split("|");return this._getLangElement(o,this.locale)||""},h.prototype._getLangElement=function(t,e){var o=this,i=o.lang;return t.forEach(function(t){var e;i&&(e=i[t],i=void 0!==e&&e)}),i},h.prototype.bind=function(t,e){this.bindings[t]||(this.bindings[t]=[]),this.bindings[t].push(e),e(this.getText(t),this.lang)},h.prototype._executeBindings=function(){var t=this;for(var e in t.bindings)!function(e){t.bindings[e].forEach(function(o){o(t.getText(e),t.lang)})}(e)},h.prototype.langs={default:{groups:{item:"item",items:"items"},columns:{},ajax:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page"},headerFilters:{default:"filter column...",columns:{}}}},u.prototype.registerModule("localize",h);var p=function(t){this.table=t};p.prototype.getConnections=function(t){var e,o=this,i=[];return e=u.prototype.comms.lookupTable(t),e.forEach(function(t){o.table!==t&&i.push(t)}),i},p.prototype.send=function(t,e,o,i){var n=this,s=this.getConnections(t);s.forEach(function(t){t.tableComms(n.table.element,e,o,i)}),!s.length&&t&&console.warn("Table Connection Error - No tables matching selector found",t)},p.prototype.receive=function(t,e,o,i){if(this.table.modExists(e))return this.table.modules[e].commsReceived(t,o,i);console.warn("Inter-table Comms Error - no such module:",e)},u.prototype.registerModule("comms",p);var m=function(t){this.table=t,this.allowedTypes=["","data","download","clipboard"]};m.prototype.initializeColumn=function(t){var e=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="accessor"+(n.charAt(0).toUpperCase()+n.slice(1));t.definition[r]&&(s=e.lookupAccessor(t.definition[r]))&&(o=!0,i[r]={accessor:s,params:t.definition[r+"Params"]||{}})}),o&&(t.modules.accessor=i)},m.prototype.lookupAccessor=function(t){var e=!1;switch(void 0===t?"undefined":_typeof(t)){case"string":this.accessors[t]?e=this.accessors[t]:console.warn("Accessor Error - No such accessor found, ignoring: ",t);break;case"function":e=t}return e},m.prototype.transformRow=function(t,e){var o=this,i="accessor"+(e.charAt(0).toUpperCase()+e.slice(1)),n=u.prototype.helpers.deepClone(t||{});return o.table.columnManager.traverse(function(t){var o,s,r,a;t.modules.accessor&&(s=t.modules.accessor[i]||t.modules.accessor.accessor||!1)&&"undefined"!=(o=t.getFieldValue(n))&&(a=t.getComponent(),r="function"==typeof s.params?s.params(o,n,e,a):s.params,t.setFieldValue(n,s.accessor(o,n,e,r,a)))}),n},m.prototype.accessors={},u.prototype.registerModule("accessor",m);var f=function(t){this.table=t,this.config=!1,this.url="",this.urlGenerator=!1,this.params=!1,this.loaderElement=this.createLoaderElement(),this.msgElement=this.createMsgElement(),this.loadingElement=!1,this.errorElement=!1,this.loaderPromise=!1,this.progressiveLoad=!1,this.loading=!1,this.requestOrder=0};f.prototype.initialize=function(){var t;this.loaderElement.appendChild(this.msgElement),this.table.options.ajaxLoaderLoading&&("string"==typeof this.table.options.ajaxLoaderLoading?(t=document.createElement("template"),t.innerHTML=this.table.options.ajaxLoaderLoading.trim(),this.loadingElement=t.content.firstChild):this.loadingElement=this.table.options.ajaxLoaderLoading),this.loaderPromise=this.table.options.ajaxRequestFunc||this.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||this.defaultURLGenerator,this.table.options.ajaxLoaderError&&("string"==typeof this.table.options.ajaxLoaderError?(t=document.createElement("template"),t.innerHTML=this.table.options.ajaxLoaderError.trim(),this.errorElement=t.content.firstChild):this.errorElement=this.table.options.ajaxLoaderError),this.table.options.ajaxParams&&this.setParams(this.table.options.ajaxParams),this.table.options.ajaxConfig&&this.setConfig(this.table.options.ajaxConfig),this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.table.options.ajaxProgressiveLoad&&(this.table.options.pagination?(this.progressiveLoad=!1,console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time")):this.table.modExists("page")?(this.progressiveLoad=this.table.options.ajaxProgressiveLoad,this.table.modules.page.initializeProgressive(this.progressiveLoad)):console.error("Pagination plugin is required for progressive ajax loading"))},f.prototype.createLoaderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-loader"),t},f.prototype.createMsgElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-loader-msg"),t.setAttribute("role","alert"),t},f.prototype.setParams=function(t,e){if(e){this.params=this.params||{};for(var o in t)this.params[o]=t[o]}else this.params=t},f.prototype.getParams=function(){return this.params||{}},f.prototype.setConfig=function(t){if(this._loadDefaultConfig(),"string"==typeof t)this.config.method=t;else for(var e in t)this.config[e]=t[e]},f.prototype._loadDefaultConfig=function(t){var e=this;if(!e.config||t){e.config={};for(var o in e.defaultConfig)e.config[o]=e.defaultConfig[o]}},f.prototype.setUrl=function(t){this.url=t},f.prototype.getUrl=function(){return this.url},f.prototype.loadData=function(t){return this.progressiveLoad?this._loadDataProgressive():this._loadDataStandard(t)},f.prototype.nextPage=function(t){var e;this.loading||(e=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.getElement().clientHeight,ti||null===i)&&(i=t)}),null!==i?!1!==n?i.toFixed(n):i:""},min:function(t,e,o){var i=null,n=void 0!==o.precision&&o.precision;return t.forEach(function(t){((t=Number(t))t&&(t=o)}),i.forEach(function(e){var o=e.length;if(o1&&(e.colSpan=t.width),t.height>1&&(e.rowSpan=t.height),e.innerHTML=t.title,v.mapElementStyles(t.element,e,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),o.appendChild(e)}),v.mapElementStyles(v.table.columnManager.getHeadersElement(),o,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),e.appendChild(o)}),v.htmlElement.appendChild(e)}(y)):function(){var t=document.createElement("tr");e.forEach(function(e){var o=document.createElement("th");o.innerHTML=e.definition.title,v.mapElementStyles(e.getElement(),o,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),t.appendChild(o)}),v.mapElementStyles(v.table.columnManager.getHeadersElement(),t,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),v.htmlElement.appendChild(document.createElement("thead").appendChild(t))}()),e=this.table.columnManager.columnsByIndex,u=document.createElement("tbody"),window.getComputedStyle&&(d=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),h=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),p=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),m=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),g=this.table.element.getElementsByClassName("tabulator-group")[0],m&&(b=m.getElementsByClassName("tabulator-cell"),f=b[0],b[b.length-1])),i.rowGroups?t.forEach(function(t){c(t,o||{})}):(i.columnCalcs&&a(o,"top"),l(t),i.columnCalcs&&a(o,"bottom")),this.htmlElement.appendChild(u)},b.prototype.mapElementStyles=function(t,e,o){var i={"background-color":"backgroundColor",color:"fontColor","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom"};if(window.getComputedStyle){var n=window.getComputedStyle(t);o.forEach(function(t){e.style[i[t]]=n.getPropertyValue(t)})}},b.prototype.copySelectors={userSelection:function(t,e){return e},selected:function(t,e){var o=[];return this.table.modExists("selectRow",!0)&&(o=this.table.modules.selectRow.getSelectedRows()),t.rowGroups&&console.warn("Clipboard Warning - select coptSelector does not support row groups"),this.buildOutput(o,t,e)},table:function(t,e){return t.rowGroups&&console.warn("Clipboard Warning - table coptSelector does not support row groups"),this.buildOutput(this.table.rowManager.getComponents(),t,e)},active:function(t,e){var o;return o=t.rowGroups?this.buildComplexRows(t):this.table.rowManager.getComponents(!0),this.buildOutput(o,t,e)}},b.prototype.copyFormatters={raw:function(t,e){return t},table:function(t,e){var o=[];return t.forEach(function(t){t.forEach(function(t){void 0===t&&(t=""),t=void 0===t||null===t?"":t.toString(),t.match(/\r|\n/)&&(t=t.split('"').join('""'),t='"'+t+'"')}),o.push(t.join("\t"))}),o.join("\n")}},b.prototype.pasteParsers={table:function(t){var e=[],o=!0,i=this.table.columnManager.columns,n=[],s=[];return t=t.split("\n"),t.forEach(function(t){e.push(t.split("\t"))}),!(!e.length||1===e.length&&e[0].length<2)&&(!0,e[0].forEach(function(t){var e=i.find(function(e){return t&&e.definition.title&&t.trim()&&e.definition.title.trim()===t.trim()});e?n.push(e):o=!1}),o||(o=!0,n=[],e[0].forEach(function(t){var e=i.find(function(e){return t&&e.field&&t.trim()&&e.field.trim()===t.trim()});e?n.push(e):o=!1}),o||(n=this.table.columnManager.columnsByIndex)),o&&e.shift(),e.forEach(function(t){var e={};t.forEach(function(t,o){n[o]&&(e[n[o].field]=t)}),s.push(e)}),s)}},b.prototype.pasteActions={replace:function(t){return this.table.setData(t)},update:function(t){return this.table.updateOrAddData(t)},insert:function(t){return this.table.addData(t)}},u.prototype.registerModule("clipboard",b);var v=function(t){this.table=t,this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.displayIndex=0};v.prototype.initialize=function(){var t=null,e=this.table.columnManager.getFirstVisibileColumn(),o=this.table.options;switch(this.field=o.dataTreeChildField,this.indent=o.dataTreeChildIndent,this.elementField=o.dataTreeElementColumn||!!e&&e.field,o.dataTreeBranchElement&&(!0===o.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof o.dataTreeBranchElement?(t=document.createElement("div"),t.innerHTML=o.dataTreeBranchElement,this.branchEl=t.firstChild):this.branchEl=o.dataTreeBranchElement),o.dataTreeCollapseElement?"string"==typeof o.dataTreeCollapseElement?(t=document.createElement("div"),t.innerHTML=o.dataTreeCollapseElement,this.collapseEl=t.firstChild):this.collapseEl=o.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.innerHTML="
"),o.dataTreeExpandElement?"string"==typeof o.dataTreeExpandElement?(t=document.createElement("div"),t.innerHTML=o.dataTreeExpandElement,this.expandEl=t.firstChild):this.expandEl=o.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.innerHTML="
"),_typeof(o.dataTreeStartExpanded)){case"boolean":this.startOpen=function(t,e){return o.dataTreeStartExpanded};break;case"function":this.startOpen=o.dataTreeStartExpanded;break;default:this.startOpen=function(t,e){return o.dataTreeStartExpanded[e]}}},v.prototype.initializeRow=function(t){var e=t.getData()[this.field],o=Array.isArray(e),i=o||!o&&"object"===(void 0===e?"undefined":_typeof(e))&&null!==e;t.modules.dataTree={index:0,open:!!i&&this.startOpen(t.getComponent(),0),controlEl:!1,branchEl:!1,parent:!1,children:i}},v.prototype.layoutRow=function(t){var e=this.elementField?t.getCell(this.elementField):t.getCells()[0],o=e.getElement(),i=t.modules.dataTree;i.branchEl&&i.branchEl.parentNode.removeChild(i.branchEl),this.generateControlElement(t,o),i.index&&(this.branchEl?(i.branchEl=this.branchEl.cloneNode(!0),o.insertBefore(i.branchEl,o.firstChild),i.branchEl.style.marginLeft=(i.branchEl.offsetWidth+i.branchEl.style.marginRight)*(i.index-1)+i.index*this.indent+"px"):o.style.paddingLeft=parseInt(window.getComputedStyle(o,null).getPropertyValue("padding-left"))+i.index*this.indent+"px")},v.prototype.generateControlElement=function(t,e){var o=this,i=t.modules.dataTree,e=e||t.getCells()[0].getElement(),n=i.controlEl;!1!==i.children&&(i.open?(i.controlEl=this.collapseEl.cloneNode(!0),i.controlEl.addEventListener("click",function(e){e.stopPropagation(),o.collapseRow(t)})):(i.controlEl=this.expandEl.cloneNode(!0),i.controlEl.addEventListener("click",function(e){e.stopPropagation(),o.expandRow(t)})),i.controlEl.addEventListener("mousedown",function(t){t.stopPropagation()}),n&&n.parentNode===e?n.parentNode.replaceChild(i.controlEl,n):e.insertBefore(i.controlEl,e.firstChild))},v.prototype.setDisplayIndex=function(t){this.displayIndex=t},v.prototype.getDisplayIndex=function(){return this.displayIndex},v.prototype.getRows=function(t){var e=this,o=[];return t.forEach(function(t,i){var n,s;o.push(t),t instanceof r&&(n=t.modules.dataTree.children,n.index||!1===n.children||(s=e.getChildren(t),s.forEach(function(t){o.push(t)})))}),o},v.prototype.getChildren=function(t){var e=this,o=t.modules.dataTree,i=[],n=[];return!1!==o.children&&o.open&&(Array.isArray(o.children)||(o.children=this.generateChildren(t)),i=this.table.modExists("filter")?this.table.modules.filter.filter(o.children):o.children,this.table.modExists("sort")&&this.table.modules.sort.sort(i),i.forEach(function(t){n.push(t),e.getChildren(t).forEach(function(t){n.push(t)})})),n},v.prototype.generateChildren=function(t){var e=this,o=[],i=t.getData()[this.field];return Array.isArray(i)||(i=[i]),i.forEach(function(i){var n=new r(i||{},e.table.rowManager);n.modules.dataTree.index=t.modules.dataTree.index+1,n.modules.dataTree.parent=t,n.modules.dataTree.children&&(n.modules.dataTree.open=e.startOpen(n.getComponent(),n.modules.dataTree.index)),o.push(n)}),o},v.prototype.expandRow=function(t,e){var o=t.modules.dataTree;!1!==o.children&&(o.open=!0,t.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowExpanded(t.getComponent(),t.modules.dataTree.index))},v.prototype.collapseRow=function(t){var e=t.modules.dataTree;!1!==e.children&&(e.open=!1,t.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowCollapsed(t.getComponent(),t.modules.dataTree.index))},v.prototype.toggleRow=function(t){var e=t.modules.dataTree;!1!==e.children&&(e.open?this.collapseRow(t):this.expandRow(t))},v.prototype.getTreeParent=function(t){return!!t.modules.dataTree.parent&&t.modules.dataTree.parent.getComponent()},v.prototype.getTreeChildren=function(t){var e=t.modules.dataTree,o=[];return e.children&&(Array.isArray(e.children)||(e.children=this.generateChildren(t)),e.children.forEach(function(t){t instanceof r&&o.push(t.getComponent())})),o},v.prototype.checkForRestyle=function(t){t.row.cells.indexOf(t)||!1!==t.row.modules.dataTree.children&&t.row.reinitialize()},v.prototype.getChildField=function(){return this.field},u.prototype.registerModule("dataTree",v);var y=function(t){this.table=t,this.fields={},this.columnsByIndex=[],this.columnsByField={},this.config={}};y.prototype.download=function(t,e,o,i){function n(o,n){i?!0===i?s.triggerDownload(o,n,t,e,!0):i(o):s.triggerDownload(o,n,t,e)}var s=this,r=!1;this.processConfig(),"function"==typeof t?r=t:s.downloaders[t]?r=s.downloaders[t]:console.warn("Download Error - No such download type found: ",t),this.processColumns(),r&&r.call(this,s.processDefinitions(),s.processData(),o||{},n,this.config)},y.prototype.processConfig=function(){var t={columnGroups:!0,rowGroups:!0,columnCalcs:!0};if(this.table.options.downloadConfig)for(var e in this.table.options.downloadConfig)t[e]=this.table.options.downloadConfig[e];t.rowGroups&&this.table.options.groupBy&&this.table.modExists("groupRows")&&(this.config.rowGroups=!0),t.columnGroups&&this.table.columnManager.columns.length!=this.table.columnManager.columnsByIndex.length&&(this.config.columnGroups=!0),t.columnCalcs&&this.table.modExists("columnCalcs")&&(this.config.columnCalcs=!0)},y.prototype.processColumns=function(){var t=this;t.columnsByIndex=[],t.columnsByField={},t.table.columnManager.columnsByIndex.forEach(function(e){e.field&&!1!==e.definition.download&&(e.visible||!e.visible&&e.definition.download)&&(t.columnsByIndex.push(e),t.columnsByField[e.field]=e)})},y.prototype.processDefinitions=function(){var t=this,e=[];return this.config.columnGroups?t.table.columnManager.columns.forEach(function(o){var i=t.processColumnGroup(o);i&&e.push(i)}):t.columnsByIndex.forEach(function(o){!1!==o.download&&e.push(t.processDefinition(o))}),e},y.prototype.processColumnGroup=function(t){var e=this,o=t.columns,i=0,n={type:"group",title:t.definition.title,depth:1};if(o.length){if(n.subGroups=[],n.width=0,o.forEach(function(t){var o=e.processColumnGroup(t);o.depth>i&&(i=o.depth),o&&(n.width+=o.width,n.subGroups.push(o))}),n.depth+=i,!n.width)return!1}else{if(!t.field||!1===t.definition.download||!(t.visible||!t.visible&&t.definition.download))return!1;n.width=1,n.definition=this.processDefinition(t)}return n},y.prototype.processDefinition=function(t){var e={};for(var o in t.definition)e[o]=t.definition[o];return void 0!==t.definition.downloadTitle&&(e.title=t.definition.downloadTitle),e},y.prototype.processData=function(){var t=this,e=this,o=[],i=[],n={};return this.config.rowGroups?(i=this.table.modules.groupRows.getGroups(),i.forEach(function(e){o.push(t.processGroupData(e))})):o=e.table.rowManager.getData(!0,"download"),this.config.columnCalcs&&(n=this.table.getCalcResults(),o={calcs:n,data:o}),"function"==typeof e.table.options.downloadDataFormatter&&(o=e.table.options.downloadDataFormatter(o)),o},y.prototype.processGroupData=function(t){var e=this,o=t.getSubGroups(),i={type:"group",key:t.key};return o.length?(i.subGroups=[],o.forEach(function(t){i.subGroups.push(e.processGroupData(t))})):i.rows=t.getData(!0,"download"),i},y.prototype.triggerDownload=function(t,e,o,i,n){var s=document.createElement("a"),r=new Blob([t],{type:e}),i=i||"Tabulator."+("function"==typeof o?"txt":o);(r=this.table.options.downloadReady.call(this.table,t,r))&&(n?window.open(window.URL.createObjectURL(r)):navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(r,i):(s.setAttribute("href",window.URL.createObjectURL(r)),s.setAttribute("download",i),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)),this.table.options.downloadComplete&&this.table.options.downloadComplete())},y.prototype.getFieldValue=function(t,e){var o=this.columnsByField[t];return!!o&&o.getFieldValue(e)},y.prototype.commsReceived=function(t,e,o){switch(e){case"intercept":this.download(o.type,"",o.options,o.intercept)}},y.prototype.downloaders={csv:function(t,e,o,i,n){function s(t,e){t.subGroups?t.subGroups.forEach(function(t){s(t,e+1)}):(d.push('"'+String(t.title).split('"').join('""')+'"'),h.push(t.definition.field))}function r(t){t.forEach(function(t){var e=[];h.forEach(function(o){var i=u.getFieldValue(o,t);switch(void 0===i?"undefined":_typeof(i)){case"object":i=JSON.stringify(i);break;case"undefined":case"null":i="";break;default:i=i}e.push('"'+String(i).split('"').join('""')+'"')}),l.push(e.join(p))})}function a(t){t.subGroups?t.subGroups.forEach(function(t){a(t)}):r(t.rows)}var l,c,u=this,d=[],h=[],p=o&&o.delimiter?o.delimiter:",";n.columnGroups?(console.warn("Download Warning - CSV downloader cannot process column groups"),t.forEach(function(t){s(t,0)})):function(){t.forEach(function(t){d.push('"'+String(t.title).split('"').join('""')+'"'),h.push(t.field)})}(),l=[d.join(p)],n.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),e=e.data),n.rowGroups?(console.warn("Download Warning - CSV downloader cannot process row groups"),e.forEach(function(t){a(t)})):r(e),c=l.join("\n"),o.bom&&(c="\ufeff"+c),i(c,"text/csv")},json:function(t,e,o,i,n){var s;n.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),e=e.data),s=JSON.stringify(e,null,"\t"),i(s,"application/json")},pdf:function(t,e,o,i,n){function s(t,e){var o=t.width,i=1,n={content:t.title||""};if(t.subGroups?(t.subGroups.forEach(function(t){s(t,e+1)}),i=1):(h.push(t.definition.field),i=g-e),n.rowSpan=i,p[e].push(n),o--,i>1)for(var r=e+1;rg&&(g=t.depth)});for(var C=0;C1&&h[e].push({type:"hoz",start:f[e].length,end:f[e].length+t.width-1}),f[e].push(t.title),t.subGroups?t.subGroups.forEach(function(t){o(t,e+1)}):(g.push(t.definition.field),i(g.length),h[e].push({type:"vert",start:g.length-1}))}function i(){var t=0;f.forEach(function(e){var o=e.length;o>t&&(t=o)}),f.forEach(function(e){var o=e.length;if(o0&&l(y[e-1]);break;case 40:t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),e=y.indexOf(E),e-1||String(e.title).toLowerCase().indexOf(String(t).toLowerCase())>-1)&&o.push(e)}),E=o,l(e)}function l(t){for(var e=!1;y.firstChild;)y.removeChild(y.firstChild);E.forEach(function(o){var i=o.element;i||(i=document.createElement("div"),i.classList.add("tabulator-edit-select-list-item"),i.tabIndex=0,i.innerHTML=o.title,i.addEventListener("click",function(){c(o),d()}),i.addEventListener("mousedown",function(){R=!1,setTimeout(function(){R=!0},10)}),o.element=i,t&&o.value==b&&(v.value=o.title,o.element.classList.add("active"),e=!0),o===x&&(o.element.classList.add("active"),e=!0)),y.appendChild(i)}),e||c(!1)}function c(t,e){x&&x.element&&x.element.classList.remove("active"),x=t,t&&t.element&&t.element.classList.add("active")}function d(){m(),x?b!==x.value?(b=x.value,v.value=x.title,o(x.value)):i():n.freetext?(b=v.value,o(v.value)):n.allowEmpty&&""===v.value?(b=v.value,o(v.value)):i()}function h(){m(),i()}function p(){if(!y.parentNode){for(;y.firstChild;)y.removeChild(y.firstChild);C=!0===n.values?s():n.values||[],r(C,b);var t=u.prototype.helpers.elOffset(g);y.style.minWidth=g.offsetWidth+"px",y.style.top=t.top+g.offsetHeight+"px",y.style.left=t.left+"px",document.body.appendChild(y)}}function m(){y.parentNode&&y.parentNode.removeChild(y)}var f=this,g=t.getElement(),b=t.getValue(),v=document.createElement("input"),y=document.createElement("div"),w=[],E=[],C=[],x={},R=!0;return v.setAttribute("type","search"),v.style.padding="4px",v.style.width="100%",v.style.boxSizing="border-box",v.addEventListener("keydown",function(t){var e;switch(t.keyCode){case 38:t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),e=E.indexOf(x),c(e>0?E[e-1]:!1);break;case 40:t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),e=E.indexOf(x),e'):("ie"==a.table.browser?e.setAttribute("class","tabulator-star-inactive"):e.classList.replace("tabulator-star-active","tabulator-star-inactive"),e.innerHTML='')})}function r(t){c=t,s(t)}var a=this,l=t.getElement(),c=t.getValue(),u=l.getElementsByTagName("svg").length||5,d=l.getElementsByTagName("svg")[0]?l.getElementsByTagName("svg")[0].getAttribute("width"):14,h=[],p=document.createElement("div"),m=document.createElementNS("http://www.w3.org/2000/svg","svg");l.style.whiteSpace="nowrap",l.style.overflow="hidden",l.style.textOverflow="ellipsis",p.style.verticalAlign="middle",p.style.display="inline-block",p.style.padding="4px",m.setAttribute("width",d),m.setAttribute("height",d),m.setAttribute("viewBox","0 0 512 512"),m.setAttribute("xml:space","preserve"),m.style.padding="0 1px";for(var f=1;f<=u;f++)!function(t){var e=document.createElement("span"),i=m.cloneNode(!0);h.push(i),e.addEventListener("mouseenter",function(e){e.stopPropagation(),e.stopImmediatePropagation(),s(t)}),e.addEventListener("mousemove",function(t){t.stopPropagation(),t.stopImmediatePropagation()}),e.addEventListener("click",function(e){e.stopPropagation(),e.stopImmediatePropagation(),o(t)}),e.appendChild(i),p.appendChild(e)}(f);return c=Math.min(parseInt(c),u),s(c),p.addEventListener("mousemove",function(t){s(0)}),p.addEventListener("click",function(t){o(0)}),l.addEventListener("blur",function(t){i()}),l.addEventListener("keydown",function(t){switch(t.keyCode){case 39:r(c+1);break;case 37:r(c-1);break;case 13:o(c);break;case 27:i()}}),p},progress:function(t,e,o,i,n){function s(){var t=d*Math.round(m.offsetWidth/(l.clientWidth/100))+u;o(t),l.setAttribute("aria-valuenow",t),l.setAttribute("aria-label",h)}var r,a,l=t.getElement(),c=void 0===n.max?l.getElementsByTagName("div")[0].getAttribute("max")||100:n.max,u=void 0===n.min?l.getElementsByTagName("div")[0].getAttribute("min")||0:n.min,d=(c-u)/100,h=t.getValue()||0,p=document.createElement("div"),m=document.createElement("div");return p.style.position="absolute",p.style.right="0",p.style.top="0",p.style.bottom="0",p.style.width="5px",p.classList.add("tabulator-progress-handle"),m.style.display="inline-block",m.style.position="relative",m.style.height="100%",m.style.backgroundColor="#488CE9",m.style.maxWidth="100%",m.style.minWidth="0%",l.style.padding="4px 4px",h=Math.min(parseFloat(h),c),h=Math.max(parseFloat(h),u),h=Math.round((h-u)/d),m.style.width=h+"%",l.setAttribute("aria-valuemin",u),l.setAttribute("aria-valuemax",c),m.appendChild(p),p.addEventListener("mousedown",function(t){r=t.screenX,a=m.offsetWidth}),p.addEventListener("mouseover",function(){p.style.cursor="ew-resize"}),l.addEventListener("mousemove",function(t){r&&(m.style.width=a+t.screenX-r+"px")}),l.addEventListener("mouseup",function(t){r&&(t.stopPropagation(),t.stopImmediatePropagation(),r=!1,a=!1,s())}),l.addEventListener("keydown",function(t){switch(t.keyCode){case 39:m.style.width=m.clientWidth+l.clientWidth/100+"px";break;case 37:m.style.width=m.clientWidth-l.clientWidth/100+"px";break;case 13:s();break;case 27:i()}}),l.addEventListener("blur",function(){i()}),m},tickCross:function(t,e,o,i,n){function s(t){return l?t?u?c:a.checked:a.checked&&!u?(a.checked=!1,a.indeterminate=!0,u=!0,c):(u=!1,a.checked):a.checked}var r=t.getValue(),a=document.createElement("input"),l=n.tristate,c=void 0===n.indeterminateValue?null:n.indeterminateValue,u=!1;return a.setAttribute("type","checkbox"),a.style.marginTop="5px",a.style.boxSizing="border-box",a.value=r,!l||void 0!==r&&r!==c&&""!==r||(u=!0,a.indeterminate=!0),"firefox"!=this.table.browser&&e(function(){a.focus()}),a.checked=!0===r||"true"===r||"True"===r||1===r,a.addEventListener("change",function(t){o(s())}),a.addEventListener("blur",function(t){o(s(!0))}),a.addEventListener("keydown",function(t){13==t.keyCode&&o(s()),27==t.keyCode&&i()}),a}},u.prototype.registerModule("edit",w);var E=function(t){this.table=t,this.filterList=[],this.headerFilters={},this.headerFilterElements=[],this.headerFilterColumns=[],this.changed=!1};E.prototype.initializeColumn=function(t,e){function o(e){var o,r="input"==t.modules.filter.tagType&&"text"==t.modules.filter.attrType||"textarea"==t.modules.filter.tagType?"partial":"match",a="";if(void 0===i||i!==e){if(i=e,t.modules.filter.emptyFunc(e))delete n.headerFilters[s];else{switch(t.modules.filter.value=e,_typeof(t.definition.headerFilterFunc)){case"string":n.filters[t.definition.headerFilterFunc]?(a=t.definition.headerFilterFunc,o=function(o){var i=t.definition.headerFilterFuncParams||{},s=t.getFieldValue(o);return i="function"==typeof i?i(e,s,o):i,n.filters[t.definition.headerFilterFunc](e,s,o,i)}):console.warn("Header Filter Error - Matching filter function not found: ",t.definition.headerFilterFunc);break;case"function":o=function(o){var i=t.definition.headerFilterFuncParams||{},n=t.getFieldValue(o);return i="function"==typeof i?i(e,n,o):i,t.definition.headerFilterFunc(e,n,o,i)},a=o}if(!o)switch(r){case"partial":o=function(o){var i=t.getFieldValue(o);return void 0!==i&&null!==i&&String(i).toLowerCase().indexOf(String(e).toLowerCase())>-1},a="like";break;default:o=function(o){return t.getFieldValue(o)==e},a="="}n.headerFilters[s]={value:e,func:o,type:a}}n.changed=!0,n.table.rowManager.filterRefresh()}}var i,n=this,s=t.getField();t.modules.filter={success:o,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(t)},E.prototype.generateHeaderFilterElement=function(t,e){function o(){}var i,n,s,r,a,l,c,u=this,d=t.modules.filter.success,h=t.getField();if(t.modules.filter.headerElement&&t.modules.filter.headerElement.parentNode){var p=t.modules.filter.headerElement.parentNode,m=u.headerFilterElements.indexOf(p);m>=0&&u.headerFilterElements.splice(m,1);var f=u.headerFilterColumns.indexOf(f);f>=0&&u.headerFilterColumns.splice(f,1),t.contentElement.removeChild(p)}if(h){switch(t.modules.filter.emptyFunc=t.definition.headerFilterEmptyCheck||function(t){return!t&&"0"!==t},i=document.createElement("div"),i.classList.add("tabulator-header-filter"),_typeof(t.definition.headerFilter)){case"string":u.table.modules.edit.editors[t.definition.headerFilter]?(n=u.table.modules.edit.editors[t.definition.headerFilter],"tick"!==t.definition.headerFilter&&"tickCross"!==t.definition.headerFilter||t.definition.headerFilterEmptyCheck||(t.modules.filter.emptyFunc=function(t){return!0!==t&&!1!==t})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",t.definition.editor);break;case"function":n=t.definition.headerFilter;break;case"boolean":t.modules.edit&&t.modules.edit.editor?n=t.modules.edit.editor:t.definition.formatter&&u.table.modules.edit.editors[t.definition.formatter]?(n=u.table.modules.edit.editors[t.definition.formatter],"tick"!==t.definition.formatter&&"tickCross"!==t.definition.formatter||t.definition.headerFilterEmptyCheck||(t.modules.filter.emptyFunc=function(t){return!0!==t&&!1!==t})):n=u.table.modules.edit.editors.input}if(n){if(r={getValue:function(){return void 0!==e?e:""},getField:function(){return t.definition.field},getElement:function(){return i},getColumn:function(){return t.getComponent()},getRow:function(){return{normalizeHeight:function(){}}}},c=t.definition.headerFilterParams||{},c="function"==typeof c?c.call(u.table):c,!(s=n.call(this.table.modules.edit,r,function(){},d,o,c)))return void console.warn("Filter Error - Cannot add filter to "+h+" column, editor returned a value of false");if(!(s instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+h+" column, editor should return an instance of Node, the editor returned:",s);h?u.table.modules.localize.bind("headerFilters|columns|"+t.definition.field,function(t){s.setAttribute("placeholder",void 0!==t&&t?t:u.table.modules.localize.getText("headerFilters|default"))}):u.table.modules.localize.bind("headerFilters|default",function(t){s.setAttribute("placeholder",void 0!==u.column.definition.headerFilterPlaceholder&&u.column.definition.headerFilterPlaceholder?u.column.definition.headerFilterPlaceholder:t)}),s.addEventListener("click",function(t){t.stopPropagation(),s.focus()}),a=!1,l=function(t){a&&clearTimeout(a),a=setTimeout(function(){d(s.value)},300)},t.modules.filter.headerElement=s,t.modules.filter.attrType=s.hasAttribute("type")?s.getAttribute("type").toLowerCase():"",t.modules.filter.tagType=s.tagName.toLowerCase(),!1!==t.definition.headerFilterLiveFilter&&(("autocomplete"!==t.definition.headerFilter&&"autocomplete"!==t.definition.editor&&"tickCross"!==t.definition.headerFilter&&"tickCross"!==t.definition.editor||!0!==t.definition.headerFilter)&&(s.addEventListener("keyup",l),s.addEventListener("search",l),"number"==t.modules.filter.attrType&&s.addEventListener("change",function(t){d(s.value)}),"text"==t.modules.filter.attrType&&"ie"!==this.table.browser&&s.setAttribute("type","search")),"input"!=t.modules.filter.tagType&&"select"!=t.modules.filter.tagType&&"textarea"!=t.modules.filter.tagType||s.addEventListener("mousedown",function(t){t.stopPropagation()})),i.appendChild(s),t.contentElement.appendChild(i),u.headerFilterElements.push(s),u.headerFilterColumns.push(t)}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",t.definition.title)},E.prototype.hideHeaderFilterElements=function(){this.headerFilterElements.forEach(function(t){t.style.display="none"})},E.prototype.showHeaderFilterElements=function(){this.headerFilterElements.forEach(function(t){t.style.display=""})},E.prototype.setHeaderFilterFocus=function(t){t.modules.filter&&t.modules.filter.headerElement?t.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",t.getField())},E.prototype.setHeaderFilterValue=function(t,e){t&&(t.modules.filter&&t.modules.filter.headerElement?(this.generateHeaderFilterElement(t,e),t.modules.filter.success(e)):console.warn("Column Filter Error - No header filter set on column:",t.getField()))},E.prototype.reloadHeaderFilter=function(t){t&&(t.modules.filter&&t.modules.filter.headerElement?this.generateHeaderFilterElement(t,t.modules.filter.value):console.warn("Column Filter Error - No header filter set on column:",t.getField()))},E.prototype.hasChanged=function(){var t=this.changed;return this.changed=!1,t},E.prototype.setFilter=function(t,e,o){var i=this;i.filterList=[],Array.isArray(t)||(t=[{field:t,type:e,value:o}]),i.addFilter(t)},E.prototype.addFilter=function(t,e,o){var i=this;Array.isArray(t)||(t=[{field:t,type:e,value:o}]),t.forEach(function(t){(t=i.findFilter(t))&&(i.filterList.push(t),i.changed=!0)}),this.table.options.persistentFilter&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("filter")},E.prototype.findFilter=function(t){var e,o=this;if(Array.isArray(t))return this.findSubFilters(t);var i=!1;return"function"==typeof t.field?i=function(e){return t.field(e,t.type||{})}:o.filters[t.type]?(e=o.table.columnManager.getColumnByField(t.field),i=e?function(i){return o.filters[t.type](t.value,e.getFieldValue(i))}:function(e){return o.filters[t.type](t.value,e[t.field])}):console.warn("Filter Error - No such filter type found, ignoring: ",t.type),t.func=i,!!t.func&&t},E.prototype.findSubFilters=function(t){var e=this,o=[];return t.forEach(function(t){(t=e.findFilter(t))&&o.push(t)}),!!o.length&&o},E.prototype.getFilters=function(t,e){var o=this,i=[];return t&&(i=o.getHeaderFilters()),o.filterList.forEach(function(t){i.push({field:t.field,type:t.type,value:t.value})}),e&&i.forEach(function(t){"function"==typeof t.type&&(t.type="function")}),i},E.prototype.getHeaderFilters=function(){var t=[];for(var e in this.headerFilters)t.push({field:e,type:this.headerFilters[e].type,value:this.headerFilters[e].value});return t},E.prototype.removeFilter=function(t,e,o){var i=this;Array.isArray(t)||(t=[{field:t,type:e,value:o}]),t.forEach(function(t){var e=-1;e="object"==_typeof(t.field)?i.filterList.findIndex(function(e){return t===e}):i.filterList.findIndex(function(e){return t.field===e.field&&t.type===e.type&&t.value===e.value}),e>-1?(i.filterList.splice(e,1),i.changed=!0):console.warn("Filter Error - No matching filter type found, ignoring: ",t.type)}),this.table.options.persistentFilter&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("filter")},E.prototype.clearFilter=function(t){this.filterList=[],t&&this.clearHeaderFilter(),this.changed=!0,this.table.options.persistentFilter&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("filter")},E.prototype.clearHeaderFilter=function(){var t=this;this.headerFilters={},this.headerFilterColumns.forEach(function(e){e.modules.filter.value=null,t.reloadHeaderFilter(e)}),this.changed=!0},E.prototype.search=function(t,e,o,i){var n=this,s=[],r=[];return Array.isArray(e)||(e=[{field:e,type:o,value:i}]),e.forEach(function(t){(t=n.findFilter(t))&&r.push(t)}),this.table.rowManager.rows.forEach(function(e){var o=!0;r.forEach(function(t){n.filterRecurse(t,e.getData())||(o=!1)}),o&&s.push("data"===t?e.getData("data"):e.getComponent())}),s},E.prototype.filter=function(t,e){var o=this,i=[],n=[];return o.table.options.dataFiltering&&o.table.options.dataFiltering.call(o.table,o.getFilters()),o.table.options.ajaxFiltering||!o.filterList.length&&!Object.keys(o.headerFilters).length?i=t.slice(0):t.forEach(function(t){o.filterRow(t)&&i.push(t)}),o.table.options.dataFiltered&&(i.forEach(function(t){n.push(t.getComponent())}),o.table.options.dataFiltered.call(o.table,o.getFilters(),n)),i},E.prototype.filterRow=function(t,e){var o=this,i=!0,n=t.getData();o.filterList.forEach(function(t){o.filterRecurse(t,n)||(i=!1)});for(var s in o.headerFilters)o.headerFilters[s].func(n)||(i=!1);return i},E.prototype.filterRecurse=function(t,e){var o=this,i=!1;return Array.isArray(t)?t.forEach(function(t){o.filterRecurse(t,e)&&(i=!0)}):i=t.func(e),i},E.prototype.filters={"=":function(t,e,o,i){return e==t},"<":function(t,e,o,i){return e":function(t,e,o,i){return e>t},">=":function(t,e,o,i){return e>=t},"!=":function(t,e,o,i){return e!=t},regex:function(t,e,o,i){return"string"==typeof t&&(t=new RegExp(t)),t.test(e)},like:function(t,e,o,i){return null===t||void 0===t?e===t:void 0!==e&&null!==e&&String(e).toLowerCase().indexOf(t.toLowerCase())>-1},in:function(t,e,o,i){return Array.isArray(t)?t.indexOf(e)>-1:(console.warn("Filter Error - filter value is not an array:",t),!1)}},u.prototype.registerModule("filter",E);var C=function(t){this.table=t};C.prototype.initializeColumn=function(t){var e=this,o={params:t.definition.formatterParams||{}};switch(_typeof(t.definition.formatter)){case"string":"tick"===t.definition.formatter&&(t.definition.formatter="tickCross",void 0===o.params.crossElement&&(o.params.crossElement=!1),console.warn("DEPRECATION WANRING - the tick formatter has been depricated, please use the tickCross formatter with the crossElement param set to false")),e.formatters[t.definition.formatter]?o.formatter=e.formatters[t.definition.formatter]:(console.warn("Formatter Error - No such formatter found: ",t.definition.formatter),o.formatter=e.formatters.plaintext);break;case"function":o.formatter=t.definition.formatter;break;default:o.formatter=e.formatters.plaintext}t.modules.format=o},C.prototype.cellRendered=function(t){t.column.modules.format.renderedCallback&&t.column.modules.format.renderedCallback()},C.prototype.formatValue=function(t){function e(e){t.column.modules.format.renderedCallback=e}var o=t.getComponent(),i="function"==typeof t.column.modules.format.params?t.column.modules.format.params(o):t.column.modules.format.params;return t.column.modules.format.formatter.call(this,o,i,e)},C.prototype.sanitizeHTML=function(t){if(t){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}return t},C.prototype.emptyToSpace=function(t){return null===t||void 0===t?" ":t},C.prototype.getFormatter=function(t){var t;switch(void 0===t?"undefined":_typeof(t)){case"string":this.formatters[t]?t=this.formatters[t]:(console.warn("Formatter Error - No such formatter found: ",t),t=this.formatters.plaintext);break;case"function":t=t;break;default:t=this.formatters.plaintext}return t},C.prototype.formatters={plaintext:function(t,e,o){return this.emptyToSpace(this.sanitizeHTML(t.getValue()))},html:function(t,e,o){return t.getValue()},textarea:function(t,e,o){return t.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(t.getValue()))},money:function(t,e,o){var i,n,s,r,a=parseFloat(t.getValue()),l=e.decimal||".",c=e.thousand||",",u=e.symbol||"",d=!!e.symbolAfter,h=void 0!==e.precision?e.precision:2;if(isNaN(a))return this.emptyToSpace(this.sanitizeHTML(t.getValue()));for(i=!1!==h?a.toFixed(h):a,i=String(i).split("."),n=i[0],s=i.length>1?l+i[1]:"",r=/(\d+)(\d{3})/;r.test(n);)n=n.replace(r,"$1"+c+"$2");return d?n+s+u:u+n+s},link:function(t,e,o){var i,n=t.getValue(),s=e.urlPrefix||"",r=this.emptyToSpace(n),a=document.createElement("a");if(e.labelField&&(i=t.getData(),r=i[e.labelField]),e.label)switch(_typeof(e.label)){case"string":r=e.label;break;case"function":r=e.label(t)}if(e.urlField&&(i=t.getData(),n=i[e.urlField]),e.url)switch(_typeof(e.url)){case"string":n=e.url;break;case"function":n=e.url(t)}return a.setAttribute("href",s+n),e.target&&a.setAttribute("target",e.target),a.innerHTML=this.emptyToSpace(this.sanitizeHTML(r)),a},image:function(t,e,o){var i=document.createElement("img");switch(i.setAttribute("src",t.getValue()),_typeof(e.height)){case"number":i.style.height=e.height+"px";break;case"string":i.style.height=e.height}switch(_typeof(e.width)){case"number":i.style.width=e.width+"px";break;case"string":i.style.width=e.width}return i.addEventListener("load",function(){t.getRow().normalizeHeight()}),i},tickCross:function(t,e,o){var i=t.getValue(),n=t.getElement(),s=e.allowEmpty,r=e.allowTruthy,a=void 0!==e.tickElement?e.tickElement:'',l=void 0!==e.crossElement?e.crossElement:'';return r&&i||!0===i||"true"===i||"True"===i||1===i||"1"===i?(n.setAttribute("aria-checked",!0),a||""):!s||"null"!==i&&""!==i&&null!==i&&void 0!==i?(n.setAttribute("aria-checked",!1),l||""):(n.setAttribute("aria-checked","mixed"),"")},datetime:function(t,e,o){var i=e.inputFormat||"YYYY-MM-DD hh:mm:ss",n=e.outputFormat||"DD/MM/YYYY hh:mm:ss",s=void 0!==e.invalidPlaceholder?e.invalidPlaceholder:"",r=t.getValue(),a=moment(r,i);return a.isValid()?a.format(n):!0===s?r:"function"==typeof s?s(r):s},datetimediff:function(t,e,o){var i=e.inputFormat||"YYYY-MM-DD hh:mm:ss",n=void 0!==e.invalidPlaceholder?e.invalidPlaceholder:"",s=void 0!==e.suffix&&e.suffix,r=void 0!==e.unit?e.unit:void 0,a=void 0!==e.humanize&&e.humanize,l=void 0!==e.date?e.date:moment(),c=t.getValue(),u=moment(c,i);return u.isValid()?a?moment.duration(u.diff(l)).humanize(s):u.diff(l,r)+(s?" "+s:""):!0===n?c:"function"==typeof n?n(c):n},lookup:function(t,e,o){var i=t.getValue();return void 0===e[i]?(console.warn("Missing display value for "+i),i):e[i]},star:function(t,e,o){var i=t.getValue(),n=t.getElement(),s=e&&e.stars?e.stars:5,r=document.createElement("span"),a=document.createElementNS("http://www.w3.org/2000/svg","svg");r.style.verticalAlign="middle",a.setAttribute("width","14"),a.setAttribute("height","14"),a.setAttribute("viewBox","0 0 512 512"),a.setAttribute("xml:space","preserve"),a.style.padding="0 1px",i=parseInt(i)':'',r.appendChild(c)}return n.style.whiteSpace="nowrap",n.style.overflow="hidden",n.style.textOverflow="ellipsis",n.setAttribute("aria-label",i),r},traffic:function(t,e,o){var i,n,s=this.sanitizeHTML(t.getValue())||0,r=document.createElement("span"),a=e&&e.max?e.max:100,l=e&&e.min?e.min:0,c=e&&void 0!==e.color?e.color:["red","orange","green"],u="#666666";if(!isNaN(s)&&void 0!==t.getValue()){switch(r.classList.add("tabulator-traffic-light"),n=parseFloat(s)<=a?parseFloat(s):a,n=parseFloat(n)>=l?parseFloat(n):l,i=(a-l)/100,n=Math.round((n-l)/i),void 0===c?"undefined":_typeof(c)){case"string":u=c;break;case"function":u=c(s);break;case"object":if(Array.isArray(c)){var d=100/c.length,h=Math.floor(n/d);h=Math.min(h,c.length-1),h=Math.max(h,0),u=c[h];break}}return r.style.backgroundColor=u,r}},progress:function(t,e,o){var i,n,s,r,a,l=this.sanitizeHTML(t.getValue())||0,c=t.getElement(),u=e&&e.max?e.max:100,d=e&&e.min?e.min:0,h=e&&e.legendAlign?e.legendAlign:"center";switch(n=parseFloat(l)<=u?parseFloat(l):u,n=parseFloat(n)>=d?parseFloat(n):d,i=(u-d)/100,n=Math.round((n-d)/i),_typeof(e.color)){case"string":s=e.color;break;case"function":s=e.color(l);break;case"object":if(Array.isArray(e.color)){var p=100/e.color.length,m=Math.floor(n/p);m=Math.min(m,e.color.length-1),m=Math.max(m,0),s=e.color[m];break}default:s="#2DC214"}switch(_typeof(e.legend)){case"string":r=e.legend;break;case"function":r=e.legend(l);break;case"boolean":r=l;break;default:r=!1}switch(_typeof(e.legendColor)){case"string":a=e.legendColor;break;case"function":a=e.legendColor(l);break;case"object":if(Array.isArray(e.legendColor)){var p=100/e.legendColor.length,m=Math.floor(n/p);m=Math.min(m,e.legendColor.length-1),m=Math.max(m,0),a=e.legendColor[m]}break;default:a="#000"}return c.style.minWidth="30px",c.style.position="relative",c.setAttribute("aria-label",n),"
"+(r?"
"+r+"
":"")},color:function(t,e,o){return t.getElement().style.backgroundColor=this.sanitizeHTML(t.getValue()),""},buttonTick:function(t,e,o){return''},buttonCross:function(t,e,o){return''},rownum:function(t,e,o){return this.table.rowManager.activeRows.indexOf(t.getRow()._getSelf())+1},handle:function(t,e,o){return t.getElement().classList.add("tabulator-row-handle"),"
"},responsiveCollapse:function(t,e,o){function i(e){var o=t.getRow().getElement().getElementsByClassName("tabulator-responsive-collapse")[0];s=e,s?(r.classList.add("open"),o&&(o.style.display="")):(r.classList.remove("open"),o&&(o.style.display="none"))}var n=this,s=!1,r=document.createElement("div");return r.classList.add("tabulator-responsive-collapse-toggle"),r.innerHTML="+-",t.getElement().classList.add("tabulator-row-handle"),n.table.options.responsiveLayoutCollapseStartOpen&&(s=!0),r.addEventListener("click",function(t){t.stopImmediatePropagation(),i(!s)}),i(s),r}},u.prototype.registerModule("format",C);var x=function(t){this.table=t,this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.initializationMode="left",this.active=!1};x.prototype.reset=function(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.active=!1,this.table.columnManager.headersElement.style.marginLeft=0,this.table.columnManager.element.style.paddingRight=0},x.prototype.initializeColumn=function(t){var e={margin:0,edge:!1};t.definition.frozen?t.parent.isGroup?console.warn("Frozen Column Error - Grouped columns cannot be frozen"):t.isGroup?console.warn("Frozen Column Error - Column Groups cannot be frozen"):(e.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(t):this.rightColumns.unshift(t),this.active=!0,t.modules.frozen=e):this.initializationMode="right"},x.prototype.layout=function(){var t=this,e=(this.table.rowManager.element,0);t.active&&(t.leftMargin=t._calcSpace(t.leftColumns,t.leftColumns.length),t.table.columnManager.headersElement.style.marginLeft=t.leftMargin+"px",t.rightMargin=t._calcSpace(t.rightColumns,t.rightColumns.length),t.table.columnManager.element.style.paddingRight=t.rightMargin+"px",t.table.rowManager.activeRows.forEach(function(e){t.layoutRow(e)}),t.table.options.dataTree&&t.table.rowManager.getDisplayRows().forEach(function(e){t.layoutRow(e)}),t.table.modExists("columnCalcs")&&(t.table.modules.columnCalcs.topInitialized&&t.table.modules.columnCalcs.topRow&&t.layoutRow(t.table.modules.columnCalcs.topRow),t.table.modules.columnCalcs.botInitialized&&t.table.modules.columnCalcs.botRow&&t.layoutRow(t.table.modules.columnCalcs.botRow)),t.leftColumns.forEach(function(e,o){e.modules.frozen.margin=t._calcSpace(t.leftColumns,o)+t.table.columnManager.scrollLeft,o==t.leftColumns.length-1?e.modules.frozen.edge=!0:e.modules.frozen.edge=!1,t.layoutColumn(e)}),e=t.table.rowManager.element.clientWidth+t.table.columnManager.scrollLeft,t.rightColumns.forEach(function(o,i){o.modules.frozen.margin=e-t._calcSpace(t.rightColumns,i+1),i==t.rightColumns.length-1?o.modules.frozen.edge=!0:o.modules.frozen.edge=!1,t.layoutColumn(o)}),this.table.rowManager.tableElement.style.marginRight=this.rightMargin+"px")},x.prototype.layoutColumn=function(t){var e=this;e.layoutElement(t.getElement(),t),t.cells.forEach(function(o){e.layoutElement(o.getElement(),t)})},x.prototype.layoutRow=function(t){t.getElement().style.paddingLeft=this.leftMargin+"px"},x.prototype.layoutElement=function(t,e){e.modules.frozen&&(t.style.position="absolute",t.style.left=e.modules.frozen.margin+"px",t.classList.add("tabulator-frozen"),e.modules.frozen.edge&&t.classList.add("tabulator-frozen-"+e.modules.frozen.position))},x.prototype._calcSpace=function(t,e){for(var o=0,i=0;i-1&&e.splice(o,1)}),e},R.prototype.freezeRow=function(t){t.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(t.modules.frozen=!0,this.topElement.appendChild(t.getElement()),t.initialize(),t.normalizeHeight(),this.table.rowManager.adjustTableSize(),this.rows.push(t),this.table.rowManager.refreshActiveData("display"),this.styleRows())},R.prototype.unfreezeRow=function(t){var e=this.rows.indexOf(t);if(t.modules.frozen){t.modules.frozen=!1;var o=t.getElement();o.parentNode.removeChild(o),this.table.rowManager.adjustTableSize(),this.rows.splice(e,1),this.table.rowManager.refreshActiveData("display"),this.rows.length&&this.styleRows()}else console.warn("Freeze Error - Row is already unfrozen")},R.prototype.styleRows=function(t){var e=this;this.rows.forEach(function(t,o){e.table.rowManager.styleRow(t,o)})},u.prototype.registerModule("frozenRows",R);var M=function(t){this._group=t,this.type="GroupComponent"};M.prototype.getKey=function(){return this._group.key},M.prototype.getElement=function(){return this._group.element},M.prototype.getRows=function(){return this._group.getRows(!0)},M.prototype.getSubGroups=function(){return this._group.getSubGroups(!0)},M.prototype.getParentGroup=function(){return!!this._group.parent&&this._group.parent.getComponent()},M.prototype.getVisibility=function(){return this._group.visible},M.prototype.show=function(){this._group.show()},M.prototype.hide=function(){this._group.hide()},M.prototype.toggle=function(){this._group.toggleVisibility()},M.prototype._getSelf=function(){return this._group},M.prototype.getTable=function(){return this._group.groupManager.table};var D=function(t,e,o,i,n,s,r){this.groupManager=t,this.parent=e,this.key=i,this.level=o,this.field=n,this.hasSubGroups=o-1?o?this.rows.splice(n+1,0,t):this.rows.splice(n,0,t):o?this.rows.push(t):this.rows.unshift(t),t.modules.group=this,this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)},D.prototype.scrollHeader=function(t){this.arrowElement.style.marginLeft=t,this.groupList.forEach(function(e){e.scrollHeader(t)})},D.prototype.getRowIndex=function(t){},D.prototype.conformRowData=function(t){return this.field?t[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(t=this.parent.conformRowData(t)),t},D.prototype.removeRow=function(t){var e=this.rows.indexOf(t),o=t.getElement();e>-1&&this.rows.splice(e,1),this.groupManager.table.options.groupValues||this.rows.length?(o.parentNode&&o.parentNode.removeChild(o),this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this)):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))},D.prototype.removeGroup=function(t){var e,o=t.level+"_"+t.key;this.groups[o]&&(delete this.groups[o],e=this.groupList.indexOf(t),e>-1&&this.groupList.splice(e,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))},D.prototype.getHeadersAndRows=function(t){var e=[];return e.push(this),this._visSet(),this.visible?this.groupList.length?this.groupList.forEach(function(o){e=e.concat(o.getHeadersAndRows(t))}):(!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&this.calcs.top.detachElement(),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),e.push(this.calcs.top)),e=e.concat(this.rows),!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&this.calcs.bottom.detachElement(),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),e.push(this.calcs.bottom))):!this.groupList.length&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.options.groupClosedShowCalcs&&this.groupManager.table.modExists("columnCalcs")&&(!t&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&this.calcs.top.detachElement(),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),e.push(this.calcs.top)),!t&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&this.calcs.bottom.detachElement(),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),e.push(this.calcs.bottom))),e},D.prototype.getData=function(t,e){var o=[];return this._visSet(),(!t||t&&this.visible)&&this.rows.forEach(function(t){o.push(t.getData(e||"data"))}),o},D.prototype.getRowCount=function(){var t=0;return this.groupList.length?this.groupList.forEach(function(e){t+=e.getRowCount()}):t=this.rows.length,t},D.prototype.toggleVisibility=function(){this.visible?this.hide():this.show()},D.prototype.hide=function(){this.visible=!1,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination?this.groupManager.updateGroupRows(!0):(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){t.detachElement()})}):this.rows.forEach(function(t){var e=t.getElement();e.parentNode.removeChild(e)}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()),this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!1)},D.prototype.show=function(){var t=this;if(t.visible=!0,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var e=t.getElement();this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){var o=t.getElement();e.parentNode.insertBefore(o,e.nextSibling),t.initialize(),e=o})}):t.rows.forEach(function(t){var o=t.getElement();e.parentNode.insertBefore(o,e.nextSibling),t.initialize(),e=o}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()}this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!0)},D.prototype._visSet=function(){var t=[];"function"==typeof this.visible&&(this.rows.forEach(function(e){t.push(e.getData())}),this.visible=this.visible(this.key,this.getRowCount(),t,this.getComponent()))},D.prototype.getRowGroup=function(t){var e=!1;return this.groupList.length?this.groupList.forEach(function(o){var i=o.getRowGroup(t);i&&(e=i)}):this.rows.find(function(e){return e===t})&&(e=this),e},D.prototype.getSubGroups=function(t){var e=[];return this.groupList.forEach(function(o){e.push(t?o.getComponent():o)}),e},D.prototype.getRows=function(t){var e=[];return this.rows.forEach(function(o){e.push(t?o.getComponent():o)}),e},D.prototype.generateGroupHeaderContents=function(){var t=[];for(this.rows.forEach(function(e){t.push(e.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),t,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)},D.prototype.getElement=function(){this.addBindingsd=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var t=0;t("+i+" "+(1===i?e:o.groups.items)+")"}}),this.groupIDLookups=[],Array.isArray(e)||e)this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs();else if(this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs){var n=this.table.columnManager.getRealColumns();n.forEach(function(e){e.definition.topCalc&&t.table.modules.columnCalcs.initializeTopRow(),e.definition.bottomCalc&&t.table.modules.columnCalcs.initializeBottomRow()})}Array.isArray(e)||(e=[e]),e.forEach(function(e,o){var i,n;"function"==typeof e?i=e:(n=t.table.columnManager.getColumnByField(e),i=n?function(t){return n.getFieldValue(t)}:function(t){return t[e]}),t.groupIDLookups.push({field:"function"!=typeof e&&e,func:i,values:!!t.allowedValues&&t.allowedValues[o]})}),o&&(Array.isArray(o)||(o=[o]),o.forEach(function(t){t="function"==typeof t?t:function(){return!0}}),t.startOpen=o),i&&(t.headerGenerator=Array.isArray(i)?i:[i]),this.initialized=!0},L.prototype.setDisplayIndex=function(t){this.displayIndex=t},L.prototype.getDisplayIndex=function(){return this.displayIndex},L.prototype.getRows=function(t){return this.groupIDLookups.length?(this.table.options.dataGrouping.call(this.table),this.generateGroups(t),this.table.options.dataGrouped&&this.table.options.dataGrouped.call(this.table,this.getGroups(!0)),this.updateGroupRows()):t.slice(0)},L.prototype.getGroups=function(t){var e=[];return this.groupList.forEach(function(o){e.push(t?o.getComponent():o)}),e},L.prototype.wipe=function(){this.groupList.forEach(function(t){t.wipe()})},L.prototype.pullGroupListData=function(t){var e=this,o=[];return t.forEach(function(t){var i={};i.level=0,i.rowCount=0,i.headerContent="";var n=[];t.hasSubGroups?(n=e.pullGroupListData(t.groupList),i.level=t.level,i.rowCount=n.length-t.groupList.length,i.headerContent=t.generator(t.key,i.rowCount,t.rows,t),o.push(i),o=o.concat(n)):(i.level=t.level,i.headerContent=t.generator(t.key,t.rows.length,t.rows,t),i.rowCount=t.getRows().length,o.push(i),t.getRows().forEach(function(t){o.push(t.getData("data"))}))}),o},L.prototype.getGroupedData=function(){return this.pullGroupListData(this.groupList)},L.prototype.getRowGroup=function(t){var e=!1;return this.groupList.forEach(function(o){var i=o.getRowGroup(t);i&&(e=i)}),e},L.prototype.countGroups=function(){return this.groupList.length},L.prototype.generateGroups=function(t){var e=this,o=e.groups;e.groups={},e.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(function(t){e.createGroup(t,0,o)}),t.forEach(function(t){e.assignRowToExistingGroup(t,o)})):t.forEach(function(t){e.assignRowToGroup(t,o)})},L.prototype.createGroup=function(t,e,o){var i,n=e+"_"+t;o=o||[],i=new D(this,!1,e,t,this.groupIDLookups[0].field,this.headerGenerator[0],o[n]),this.groups[n]=i,this.groupList.push(i)},L.prototype.assignRowToGroup=function(t,e){var o=this.groupIDLookups[0].func(t.getData()),i="0_"+o;this.groups[i]||this.createGroup(o,0,e),this.groups[i].addRow(t)},L.prototype.assignRowToExistingGroup=function(t,e){var o=this.groupIDLookups[0].func(t.getData()),i="0_"+o;this.groups[i]&&this.groups[i].addRow(t)},L.prototype.assignRowToGroup=function(t,e){var o=this.groupIDLookups[0].func(t.getData()),i=!this.groups["0_"+o];return i&&this.createGroup(o,0,e),this.groups["0_"+o].addRow(t),!i},L.prototype.updateGroupRows=function(t){var e=this,o=[];if(e.groupList.forEach(function(t){o=o.concat(t.getHeadersAndRows())}),t){var i=e.table.rowManager.setDisplayRows(o,this.getDisplayIndex());!0!==i&&this.setDisplayIndex(i),e.table.rowManager.refreshActiveData("group",!0,!0)}return o},L.prototype.scrollHeaders=function(t){t+="px",this.groupList.forEach(function(e){e.scrollHeader(t)})},L.prototype.removeGroup=function(t){var e,o=t.level+"_"+t.key;this.groups[o]&&(delete this.groups[o],(e=this.groupList.indexOf(t))>-1&&this.groupList.splice(e,1))},u.prototype.registerModule("groupRows",L);var T=function(t){this.table=t,this.history=[],this.index=-1};T.prototype.clear=function(){this.history=[],this.index=-1},T.prototype.action=function(t,e,o){this.history=this.history.slice(0,this.index+1),this.history.push({type:t,component:e,data:o}),this.index++},T.prototype.getHistoryUndoSize=function(){return this.index+1},T.prototype.getHistoryRedoSize=function(){return this.history.length-(this.index+1)},T.prototype.undo=function(){if(this.index>-1){var t=this.history[this.index];return this.undoers[t.type].call(this,t),this.index--,this.table.options.historyUndo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Undo Error - No more history to undo"),!1},T.prototype.redo=function(){if(this.history.length-1>this.index){this.index++;var t=this.history[this.index];return this.redoers[t.type].call(this,t),this.table.options.historyRedo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Redo Error - No more history to redo"),!1},T.prototype.undoers={cellEdit:function(t){t.component.setValueProcessData(t.data.oldValue)},rowAdd:function(t){t.component.deleteActual()},rowDelete:function(t){var e=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this._rebindRow(t.component,e)},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.pos],!1),this.table.rowManager.redraw()}},T.prototype.redoers={cellEdit:function(t){t.component.setValueProcessData(t.data.newValue)},rowAdd:function(t){var e=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this._rebindRow(t.component,e)},rowDelete:function(t){t.component.deleteActual()},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.pos],!1),this.table.rowManager.redraw()}},T.prototype._rebindRow=function(t,e){this.history.forEach(function(o){if(o.component instanceof r)o.component===t&&(o.component=e);else if(o.component instanceof l&&o.component.row===t){var i=o.component.column.getField();i&&(o.component=e.getCell(i))}})},u.prototype.registerModule("history",T);var k=function(t){this.table=t,this.fieldIndex=[],this.hasIndex=!1};k.prototype.parseTable=function(){var t=this,e=t.table.element,o=t.table.options,i=(o.columns,e.getElementsByTagName("th")),n=e.getElementsByTagName("tbody")[0],s=[];t.hasIndex=!1,t.table.options.htmlImporting.call(this.table),n=n?n.getElementsByTagName("tr"):[],t._extractOptions(e,o),i.length?t._extractHeaders(i,n):t._generateBlankHeaders(i,n);for(var r=0;r-1&&t.pressedKeys.splice(i,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)},S.prototype.clearBindings=function(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)},S.prototype.checkBinding=function(t,e){var o=this,i=!0;return t.ctrlKey==e.ctrl&&t.shiftKey==e.shift&&(e.keys.forEach(function(t){-1==o.pressedKeys.indexOf(t)&&(i=!1)}),i&&e.action.call(o,t),!0)},S.prototype.bindings={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35,undo:"ctrl + 90",redo:"ctrl + 89",copyToClipboard:"ctrl + 67"},S.prototype.actions={keyBlock:function(t){t.stopPropagation(),t.preventDefault()},scrollPageUp:function(t){var e=this.table.rowManager,o=e.scrollTop-e.height;e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(o>=0?e.element.scrollTop=o:e.scrollToRow(e.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(t){var e=this.table.rowManager,o=e.scrollTop+e.height,i=e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(o<=i?e.element.scrollTop=o:e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1]),this.table.element.focus()},navPrev:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().prev())},navNext:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().next())},navLeft:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().left())},navRight:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().right())},navUp:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().up())},navDown:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().down())},undo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.undo()))},redo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.redo()))},copyToClipboard:function(t){this.table.modules.edit.currentCell||this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(this.table.options.selectable&&"highlight"!=this.table.options.selectable?"selected":"active",null,null,null,!0)}},u.prototype.registerModule("keybindings",S);var z=function(t){this.table=t,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this)};z.prototype.createPlaceholderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col"),t.classList.add("tabulator-col-placeholder"),t},z.prototype.initializeColumn=function(t){var e,o=this,i={};t.modules.frozen||(e=t.getElement(),i.mousemove=function(i){t.parent===o.moving.parent&&((o.touchMove?i.touches[0].pageX:i.pageX)-u.prototype.helpers.elOffset(e).left+o.table.columnManager.element.scrollLeft>t.getWidth()/2?o.toCol===t&&o.toColAfter||(e.parentNode.insertBefore(o.placeholderElement,e.nextSibling),o.moveColumn(t,!0)):(o.toCol!==t||o.toColAfter)&&(e.parentNode.insertBefore(o.placeholderElement,e),o.moveColumn(t,!1)))}.bind(o),e.addEventListener("mousedown",function(e){o.touchMove=!1,1===e.which&&(o.checkTimeout=setTimeout(function(){o.startMove(e,t)},o.checkPeriod))}),e.addEventListener("mouseup",function(t){1===t.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),o.bindTouchEvents(t)),t.modules.moveColumn=i},z.prototype.bindTouchEvents=function(t){var e,o,i,n,s,r,a,l=this,c=t.getElement(),u=!1;c.addEventListener("touchstart",function(c){l.checkTimeout=setTimeout(function(){l.touchMove=!0,e=t,o=t.nextColumn(),n=o?o.getWidth()/2:0,i=t.prevColumn(),s=i?i.getWidth()/2:0,r=0,a=0,u=!1,l.startMove(c,t)},l.checkPeriod)}),c.addEventListener("touchmove",function(c){var d,h;l.moving&&(l.moveHover(c),u||(u=c.touches[0].pageX),d=c.touches[0].pageX-u,d>0?o&&d-r>n&&(h=o)!==t&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement().nextSibling),l.moveColumn(h,!0)):i&&-d-a>s&&(h=i)!==t&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement()),l.moveColumn(h,!1)),h&&(e=h,o=h.nextColumn(),r=n,n=o?o.getWidth()/2:0,i=h.prevColumn(),a=s,s=i?i.getWidth()/2:0))}),c.addEventListener("touchend",function(t){l.checkTimeout&&clearTimeout(l.checkTimeout),l.moving&&l.endMove(t)})},z.prototype.startMove=function(t,e){var o=e.getElement();this.moving=e,this.startX=(this.touchMove?t.touches[0].pageX:t.pageX)-u.prototype.helpers.elOffset(o).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=e.getWidth()+"px",this.placeholderElement.style.height=e.getHeight()+"px",o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.table.columnManager.getElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom="0",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(t)},z.prototype._bindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(t){t.modules.moveColumn.mousemove&&t.getElement().addEventListener("mousemove",t.modules.moveColumn.mousemove)})},z.prototype._unbindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(t){t.modules.moveColumn.mousemove&&t.getElement().removeEventListener("mousemove",t.modules.moveColumn.mousemove)})},z.prototype.moveColumn=function(t,e){var o=this.moving.getCells();this.toCol=t,this.toColAfter=e,e?t.getCells().forEach(function(t,e){var i=t.getElement();i.parentNode.insertBefore(o[e].getElement(),i.nextSibling)}):t.getCells().forEach(function(t,e){var i=t.getElement();i.parentNode.insertBefore(o[e].getElement(),i)})},z.prototype.endMove=function(t){(1===t.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumn(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))},z.prototype.moveHover=function(t){var e,o=this,i=o.table.columnManager.getElement(),n=i.scrollLeft,s=(o.touchMove?t.touches[0].pageX:t.pageX)-u.prototype.helpers.elOffset(i).left+n;o.hoverElement.style.left=s-o.startX+"px",s-nt.getHeight()/2){if(e.toRow!==t||!e.toRowAfter){var i=t.getElement();i.parentNode.insertBefore(e.placeholderElement,i.nextSibling),e.moveRow(t,!0)}}else if(e.toRow!==t||e.toRowAfter){var i=t.getElement();i.previousSibling&&(i.parentNode.insertBefore(e.placeholderElement,i),e.moveRow(t,!1))}}.bind(e),t.modules.moveRow=o},F.prototype.initializeRow=function(t){var e,o=this,i={};i.mouseup=function(e){o.tableRowDrop(e,t)}.bind(o),i.mousemove=function(e){if(e.pageY-u.prototype.helpers.elOffset(t.element).top+o.table.rowManager.element.scrollTop>t.getHeight()/2){if(o.toRow!==t||!o.toRowAfter){var i=t.getElement();i.parentNode.insertBefore(o.placeholderElement,i.nextSibling),o.moveRow(t,!0)}}else if(o.toRow!==t||o.toRowAfter){var i=t.getElement();i.parentNode.insertBefore(o.placeholderElement,i),o.moveRow(t,!1)}}.bind(o),this.hasHandle||(e=t.getElement(),e.addEventListener("mousedown",function(e){1===e.which&&(o.checkTimeout=setTimeout(function(){o.startMove(e,t)},o.checkPeriod))}),e.addEventListener("mouseup",function(t){1===t.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),this.bindTouchEvents(t,t.getElement())),t.modules.moveRow=i},F.prototype.initializeCell=function(t){var e=this,o=t.getElement();o.addEventListener("mousedown",function(o){1===o.which&&(e.checkTimeout=setTimeout(function(){e.startMove(o,t.row)},e.checkPeriod))}),o.addEventListener("mouseup",function(t){1===t.which&&e.checkTimeout&&clearTimeout(e.checkTimeout)}),this.bindTouchEvents(t.row,t.getElement())},F.prototype.bindTouchEvents=function(t,e){var o,i,n,s,r,a,l,c=this,u=!1;e.addEventListener("touchstart",function(e){c.checkTimeout=setTimeout(function(){c.touchMove=!0,o=t,i=t.nextRow(),s=i?i.getHeight()/2:0,n=t.prevRow(),r=n?n.getHeight()/2:0,a=0,l=0,u=!1,c.startMove(e,t)},c.checkPeriod)}),this.moving,this.toRow,this.toRowAfter,e.addEventListener("touchmove",function(e){var d,h;c.moving&&(e.preventDefault(),c.moveHover(e),u||(u=e.touches[0].pageY),d=e.touches[0].pageY-u,d>0?i&&d-a>s&&(h=i)!==t&&(u=e.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement().nextSibling),c.moveRow(h,!0)):n&&-d-l>r&&(h=n)!==t&&(u=e.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement()),c.moveRow(h,!1)),h&&(o=h,i=h.nextRow(),a=s,s=i?i.getHeight()/2:0,n=h.prevRow(),l=r,r=n?n.getHeight()/2:0))}),e.addEventListener("touchend",function(t){c.checkTimeout&&clearTimeout(c.checkTimeout),c.moving&&(c.endMove(t),c.touchMove=!1)})},F.prototype._bindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(t){"row"!==t.type&&"group"!==t.type||!t.modules.moveRow.mousemove||t.getElement().addEventListener("mousemove",t.modules.moveRow.mousemove)})},F.prototype._unbindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(t){"row"!==t.type&&"group"!==t.type||!t.modules.moveRow.mousemove||t.getElement().removeEventListener("mousemove",t.modules.moveRow.mousemove)})},F.prototype.startMove=function(t,e){var o=e.getElement();this.setStartPosition(t,e),this.moving=e,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=e.getWidth()+"px",this.placeholderElement.style.height=e.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(e)):(o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o)),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.moveHover(t)},F.prototype.setStartPosition=function(t,e){var o,i,n=this.touchMove?t.touches[0].pageX:t.pageX,s=this.touchMove?t.touches[0].pageY:t.pageY;o=e.getElement(),this.connection?(i=o.getBoundingClientRect(),this.startX=i.left-n+window.pageXOffset,this.startY=i.top-s+window.pageYOffset):this.startY=s-o.getBoundingClientRect().top},F.prototype.endMove=function(t){t&&1!==t.which&&!this.touchMove||(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow&&this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))},F.prototype.moveRow=function(t,e){this.toRow=t,this.toRowAfter=e},F.prototype.moveHover=function(t){this.connection?this.moveHoverConnections.call(this,t):this.moveHoverTable.call(this,t)},F.prototype.moveHoverTable=function(t){var e=this.table.rowManager.getElement(),o=e.scrollTop,i=(this.touchMove?t.touches[0].pageY:t.pageY)-e.getBoundingClientRect().top+o;this.hoverElement.style.top=i-this.startY+"px"},F.prototype.moveHoverConnections=function(t){this.hoverElement.style.left=this.startX+(this.touchMove?t.touches[0].pageX:t.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?t.touches[0].pageY:t.pageY)+"px"},F.prototype.connectToTables=function(t){var e=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStart.call(this.table,e),this.table.modules.comms.send(this.connection,"moveRow","connect",{row:t})},F.prototype.disconnectFromTables=function(){var t=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStop.call(this.table,t),this.table.modules.comms.send(this.connection,"moveRow","disconnect")},F.prototype.connect=function(t,e){var o=this;return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=t,this.connectedRow=e,this.table.element.classList.add("tabulator-movingrow-receiving"),o.table.rowManager.getDisplayRows().forEach(function(t){"row"===t.type&&t.modules.moveRow&&t.modules.moveRow.mouseup&&t.getElement().addEventListener("mouseup",t.modules.moveRow.mouseup)}),o.tableRowDropEvent=o.tableRowDrop.bind(o),o.table.element.addEventListener("mouseup",o.tableRowDropEvent),this.table.options.movableRowsReceivingStart.call(this.table,e,t),!0)},F.prototype.disconnect=function(t){var e=this;t===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),e.table.rowManager.getDisplayRows().forEach(function(t){"row"===t.type&&t.modules.moveRow&&t.modules.moveRow.mouseup&&t.getElement().removeEventListener("mouseup",t.modules.moveRow.mouseup)}),e.table.element.removeEventListener("mouseup",e.tableRowDropEvent),this.table.options.movableRowsReceivingStop.call(this.table,t)):console.warn("Move Row Error - trying to disconnect from non connected table")},F.prototype.dropComplete=function(t,e,o){var i=!1;if(o){switch(_typeof(this.table.options.movableRowsSender)){case"string":i=this.senders[this.table.options.movableRowsSender];break;case"function":i=this.table.options.movableRowsSender}i?i.call(this,this.moving.getComponent(),e?e.getComponent():void 0,t):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.table.options.movableRowsSent.call(this.table,this.moving.getComponent(),e?e.getComponent():void 0,t)}else this.table.options.movableRowsSentFailed.call(this.table,this.moving.getComponent(),e?e.getComponent():void 0,t);this.endMove()},F.prototype.tableRowDrop=function(t,e){var o=!1,i=!1;switch(t.stopImmediatePropagation(),_typeof(this.table.options.movableRowsReceiver)){case"string":o=this.receivers[this.table.options.movableRowsReceiver];break;case"function":o=this.table.options.movableRowsReceiver}o?i=o.call(this,this.connectedRow.getComponent(),e?e.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),i?this.table.options.movableRowsReceived.call(this.table,this.connectedRow.getComponent(),e?e.getComponent():void 0,this.connectedTable):this.table.options.movableRowsReceivedFailed.call(this.table,this.connectedRow.getComponent(),e?e.getComponent():void 0,this.connectedTable),this.table.modules.comms.send(this.connectedTable,"moveRow","dropcomplete",{row:e,success:i})},F.prototype.receivers={insert:function(t,e,o){return this.table.addRow(t.getData(),void 0,e),!0},add:function(t,e,o){return this.table.addRow(t.getData()),!0},update:function(t,e,o){return!!e&&(e.update(t.getData()),!0)},replace:function(t,e,o){return!!e&&(this.table.addRow(t.getData(),void 0,e),e.delete(),!0)}},F.prototype.senders={delete:function(t,e,o){t.delete()}},F.prototype.commsReceived=function(t,e,o){switch(e){case"connect":return this.connect(t,o.row);case"disconnect":return this.disconnect(t);case"dropcomplete":return this.dropComplete(t,o.row,o.success)}},u.prototype.registerModule("moveRow",F);var _=function(t){this.table=t,this.allowedTypes=["","data","edit","clipboard"],this.enabled=!0};_.prototype.initializeColumn=function(t){var e=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="mutator"+(n.charAt(0).toUpperCase()+n.slice(1));t.definition[r]&&(s=e.lookupMutator(t.definition[r]))&&(o=!0,i[r]={mutator:s,params:t.definition[r+"Params"]||{}})}),o&&(t.modules.mutate=i)},_.prototype.lookupMutator=function(t){var e=!1;switch(void 0===t?"undefined":_typeof(t)){case"string":this.mutators[t]?e=this.mutators[t]:console.warn("Mutator Error - No such mutator found, ignoring: ",t);break;case"function":e=t}return e},_.prototype.transformRow=function(t,e,o){var i,n=this,s="mutator"+(e.charAt(0).toUpperCase()+e.slice(1));return this.enabled&&n.table.columnManager.traverse(function(n){var r,a,l;n.modules.mutate&&(r=n.modules.mutate[s]||n.modules.mutate.mutator||!1)&&(i=n.getFieldValue(t),(!o||o&&void 0!==i)&&(l=n.getComponent(),a="function"==typeof r.params?r.params(i,t,e,l):r.params,n.setFieldValue(t,r.mutator(i,t,e,a,l))))}),t},_.prototype.transformCell=function(t,e){var o=t.column.modules.mutate.mutatorEdit||t.column.modules.mutate.mutator||!1;return o?o.mutator(e,t.row.getData(),"edit",o.params,t.getComponent()):e},_.prototype.enable=function(){this.enabled=!0},_.prototype.disable=function(){this.enabled=!1},_.prototype.mutators={},u.prototype.registerModule("mutator",_);var H=function(t){this.table=t,this.mode="local",this.progressiveLoad=!1,this.size=0,this.page=1,this.count=5,this.max=1,this.displayIndex=0,this.pageSizes=[],this.createElements()};H.prototype.createElements=function(){var t;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),t=document.createElement("button"),t.classList.add("tabulator-page"),t.setAttribute("type","button"),t.setAttribute("role","button"),t.setAttribute("aria-label",""),t.setAttribute("title",""),this.firstBut=t.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=t.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=t.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=t.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))},H.prototype.generatePageSizeSelectList=function(){var t=this,e=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))e=this.table.options.paginationSizeSelector,this.pageSizes=e,-1==this.pageSizes.indexOf(this.size)&&e.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){e=[];for(var o=1;o<5;o++)e.push(this.size*o);this.pageSizes=e}else e=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);e.forEach(function(e){var o=document.createElement("option");o.value=e,o.innerHTML=e,t.pageSizeSelect.appendChild(o)}),this.pageSizeSelect.value=this.size}},H.prototype.initialize=function(t){var e,o=this;for(var i in o.table.options.paginationDataSent)o.paginationDataSentNames[i]=o.table.options.paginationDataSent[i];for(var n in o.table.options.paginationDataReceived)o.paginationDataReceivedNames[n]=o.table.options.paginationDataReceived[n];o.table.modules.localize.bind("pagination|first",function(t){o.firstBut.innerHTML=t}),o.table.modules.localize.bind("pagination|first_title",function(t){o.firstBut.setAttribute("aria-label",t),o.firstBut.setAttribute("title",t)}),o.table.modules.localize.bind("pagination|prev",function(t){o.prevBut.innerHTML=t}),o.table.modules.localize.bind("pagination|prev_title",function(t){o.prevBut.setAttribute("aria-label",t),o.prevBut.setAttribute("title",t)}),o.table.modules.localize.bind("pagination|next",function(t){o.nextBut.innerHTML=t}),o.table.modules.localize.bind("pagination|next_title",function(t){o.nextBut.setAttribute("aria-label",t),o.nextBut.setAttribute("title",t)}),o.table.modules.localize.bind("pagination|last",function(t){o.lastBut.innerHTML=t}),o.table.modules.localize.bind("pagination|last_title",function(t){o.lastBut.setAttribute("aria-label",t),o.lastBut.setAttribute("title",t)}),o.firstBut.addEventListener("click",function(){o.setPage(1)}),o.prevBut.addEventListener("click",function(){o.previousPage()}),o.nextBut.addEventListener("click",function(){o.nextPage().then(function(){}).catch(function(){})}),o.lastBut.addEventListener("click",function(){o.setPage(o.max)}),o.table.options.paginationElement&&(o.element=o.table.options.paginationElement),this.pageSizeSelect&&(e=document.createElement("label"),o.table.modules.localize.bind("pagination|page_size",function(t){o.pageSizeSelect.setAttribute("aria-label",t),o.pageSizeSelect.setAttribute("title",t),e.innerHTML=t}),o.element.appendChild(e),o.element.appendChild(o.pageSizeSelect),o.pageSizeSelect.addEventListener("change",function(t){o.setPageSize(o.pageSizeSelect.value),o.setPage(1).then(function(){}).catch(function(){})})),o.element.appendChild(o.firstBut),o.element.appendChild(o.prevBut),o.element.appendChild(o.pagesElement),o.element.appendChild(o.nextBut),o.element.appendChild(o.lastBut),o.table.options.paginationElement||t||o.table.footerManager.append(o.element,o),o.mode=o.table.options.pagination,o.size=o.table.options.paginationSize||Math.floor(o.table.rowManager.getElement().clientHeight/24),o.count=o.table.options.paginationButtonCount,o.generatePageSizeSelectList()},H.prototype.initializeProgressive=function(t){this.initialize(!0),this.mode="progressive_"+t,this.progressiveLoad=!0},H.prototype.setDisplayIndex=function(t){this.displayIndex=t},H.prototype.getDisplayIndex=function(){return this.displayIndex},H.prototype.setMaxRows=function(t){this.max=t?Math.ceil(t/this.size):1,this.page>this.max&&(this.page=this.max)},H.prototype.reset=function(t){return("local"==this.mode||t)&&(this.page=1),!0},H.prototype.setMaxPage=function(t){t=parseInt(t),this.max=t||1,this.page>this.max&&(this.page=this.max,this.trigger())},H.prototype.setPage=function(t){var e=this;return new Promise(function(o,i){t=parseInt(t),t>0&&t<=e.max?(e.page=t,e.trigger().then(function(){o()}).catch(function(){i()})):(console.warn("Pagination Error - Requested page is out of range of 1 - "+e.max+":",t),i())})},H.prototype.setPageToRow=function(t){var e=this;return new Promise(function(o,i){var n=e.table.rowManager.getDisplayRows(e.displayIndex-1),s=n.indexOf(t);if(s>-1){var r=Math.ceil((s+1)/e.size);e.setPage(r).then(function(){o()}).catch(function(){i()})}else console.warn("Pagination Error - Requested row is not visible"),i()})},H.prototype.setPageSize=function(t){t=parseInt(t),t>0&&(this.size=t),this.pageSizeSelect&&this.generatePageSizeSelectList()},H.prototype._setPageButtons=function(){for(var t=this,e=Math.floor((this.count-1)/2),o=Math.ceil((this.count-1)/2),i=this.max-this.page+e+10&&s<=t.max&&t.pagesElement.appendChild(t._generatePageButton(s));this.footerRedraw()},H.prototype._generatePageButton=function(t){var e=this,o=document.createElement("button");return o.classList.add("tabulator-page"),t==e.page&&o.classList.add("active"),o.setAttribute("type","button"),o.setAttribute("role","button"),o.setAttribute("aria-label","Show Page "+t),o.setAttribute("title","Show Page "+t),o.setAttribute("data-page",t),o.textContent=t,o.addEventListener("click",function(o){e.setPage(t)}),o},H.prototype.previousPage=function(){var t=this;return new Promise(function(e,o){t.page>1?(t.page--,t.trigger().then(function(){e()}).catch(function(){o()})):(console.warn("Pagination Error - Previous page would be less than page 1:",0),o())})},H.prototype.nextPage=function(){var t=this;return new Promise(function(e,o){t.page-1&&(i=i.substr(n),s=i.indexOf(";"),s>-1&&(i=i.substr(0,s)),e=i.replace(o+"=",""));break;default:console.warn("Persistance Load Error - invalid mode selected",this.mode)}return!!e&&JSON.parse(e)},P.prototype.mergeDefinition=function(t,e){var o=this,i=[];return e=e||[],e.forEach(function(e,n){var s=o._findColumn(t,e);s&&(s.width=e.width,s.visible=e.visible,s.columns&&(s.columns=o.mergeDefinition(s.columns,e.columns)),i.push(s))}),t.forEach(function(t,n){o._findColumn(e,t)||(i.length>n?i.splice(n,0,t):i.push(t))}),i},P.prototype._findColumn=function(t,e){var o=e.columns?"group":e.field?"field":"object";return t.find(function(t){switch(o){case"group":return t.title===e.title&&t.columns.length===e.columns.length;case"field":return t.field===e.field;case"object":return t===e}})},P.prototype.save=function(t){var e={};switch(t){case"columns":e=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":e=this.table.modules.filter.getFilters();break;case"sort":e=this.validateSorters(this.table.modules.sort.getSort())}var o=this.id+("columns"===t?"":"-"+t);this.saveData(o,e)},P.prototype.validateSorters=function(t){return t.forEach(function(t){t.column=t.field,delete t.field}),t},P.prototype.saveData=function(t,e){switch(e=JSON.stringify(e),this.mode){case"local":localStorage.setItem(t,e);break;case"cookie":var o=new Date;o.setDate(o.getDate()+1e4),document.cookie=t+"="+e+"; expires="+o.toUTCString();break;default:console.warn("Persistance Save Error - invalid mode selected",this.mode)}},P.prototype.parseColumns=function(t){var e=this,o=[];return t.forEach(function(t){var i={};t.isGroup?(i.title=t.getDefinition().title,i.columns=e.parseColumns(t.getColumns())):(i.title=t.getDefinition().title,i.field=t.getField(),i.width=t.getWidth(),i.visible=t.visible),o.push(i)}),o},u.prototype.registerModule("persistence",P);var A=function(t){this.table=t,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};A.prototype.watchData=function(t){var e,o=this;this.currentVersion++,e=this.currentVersion,o.unwatchData(),o.data=t,o.origFuncs.push=t.push,Object.defineProperty(o.data,"push",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||e!==o.currentVersion||i.forEach(function(t){o.table.rowManager.addRowActual(t,!1)}),o.origFuncs.push.apply(t,arguments)}}),o.origFuncs.unshift=t.unshift,Object.defineProperty(o.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||e!==o.currentVersion||i.forEach(function(t){o.table.rowManager.addRowActual(t,!0)}),o.origFuncs.unshift.apply(t,arguments)}}),o.origFuncs.shift=t.shift,Object.defineProperty(o.data,"shift",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||e!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[0]))&&i.deleteActual(),o.origFuncs.shift.call(t)}}),o.origFuncs.pop=t.pop,Object.defineProperty(o.data,"pop",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||e!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[o.data.length-1]))&&i.deleteActual(),o.origFuncs.pop.call(t)}}),o.origFuncs.splice=t.splice,Object.defineProperty(o.data,"splice",{enumerable:!1,configurable:!0,value:function(){var i,n=Array.from(arguments),s=n[0]<0?t.length+n[0]:n[0],r=n[1],a=!!n[2]&&n.slice(2);if(!o.blocked&&e===o.currentVersion){if(a&&(i=!!t[s]&&o.table.rowManager.getRowFromDataObject(t[s]),i?a.forEach(function(t){o.table.rowManager.addRowActual(t,!0,i,!0)}):(a=a.slice().reverse(),a.forEach(function(t){o.table.rowManager.addRowActual(t,!0,!1,!0)}))),0!==r){var l=t.slice(s,void 0===n[1]?n[1]:s+r);l.forEach(function(t,e){var i=o.table.rowManager.getRowFromDataObject(t);i&&i.deleteActual(e!==l.length-1)})}(a||0!==r)&&o.table.rowManager.reRenderInPosition()}return o.origFuncs.splice.apply(t,arguments)}})},A.prototype.unwatchData=function(){if(!1!==this.data)for(var t in this.origFuncs)Object.defineProperty(this.data,t,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},A.prototype.watchRow=function(t){var e=t.getData();this.blocked=!0;for(var o in e)this.watchKey(t,e,o);this.blocked=!1},A.prototype.watchKey=function(t,e,o){var i=this,n=Object.getOwnPropertyDescriptor(e,o),s=e[o],r=this.currentVersion;Object.defineProperty(e,o,{set:function(e){if(s=e,!i.blocked&&r===i.currentVersion){var a={};a[o]=e,t.updateData(a)}n.set&&n.set(e)},get:function(){return n.get&&n.get(),s}})},A.prototype.unwatchRow=function(t){var e=t.getData();for(var o in e)Object.defineProperty(e,o,{value:e[o]})},A.prototype.block=function(){this.blocked=!0},A.prototype.unblock=function(){this.blocked=!1},u.prototype.registerModule("reactiveData",A);var N=function(t){this.table=t,this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.handle=null,this.prevHandle=null};N.prototype.initializeColumn=function(t,e,o){var i=this,n=!1,s=this.table.options.resizableColumns;if("header"===t&&(n="textarea"==e.definition.formatter||e.definition.variableHeight,e.modules.resize={variableHeight:n}),!0===s||s==t){var r=document.createElement("div");r.className="tabulator-col-resize-handle";var a=document.createElement("div");a.className="tabulator-col-resize-handle prev",r.addEventListener("click",function(t){t.stopPropagation()});var l=function(t){var o=e.getLastColumn();o&&i._checkResizability(o)&&(i.startColumn=e,i._mouseDown(t,o,r))};r.addEventListener("mousedown",l),r.addEventListener("touchstart",l),r.addEventListener("dblclick",function(t){i._checkResizability(e)&&e.reinitializeWidth(!0)}),a.addEventListener("click",function(t){t.stopPropagation()});var c=function(t){var o,n,s;(o=e.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&(i.startColumn=e,i._mouseDown(t,s,a)))};a.addEventListener("mousedown",c),a.addEventListener("touchstart",c),a.addEventListener("dblclick",function(t){var o,n,s;(o=e.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&s.reinitializeWidth(!0))}),o.appendChild(r),o.appendChild(a)}},N.prototype._checkResizability=function(t){return void 0!==t.definition.resizable?t.definition.resizable:this.table.options.resizableColumns},N.prototype._mouseDown=function(t,e,o){function i(t){s.table.columnManager.tempScrollBlock(),e.setWidth(s.startWidth+((void 0===t.screenX?t.touches[0].screenX:t.screenX)-s.startX)),!s.table.browserSlow&&e.modules.resize&&e.modules.resize.variableHeight&&e.checkCellHeights()}function n(t){s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!1),s.table.browserSlow&&e.modules.resize&&e.modules.resize.variableHeight&&e.checkCellHeights(),document.body.removeEventListener("mouseup",n),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.persistentLayout&&s.table.modExists("persistence",!0)&&s.table.modules.persistence.save("columns"),s.table.options.columnResized.call(s.table,e.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),t.stopPropagation(),s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!0),s.startX=void 0===t.screenX?t.touches[0].screenX:t.screenX,s.startWidth=e.getWidth(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i),o.addEventListener("touchend",n)},u.prototype.registerModule("resizeColumns",N);var B=function(t){this.table=t,this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null};B.prototype.initializeRow=function(t){var e=this,o=t.getElement(),i=document.createElement("div");i.className="tabulator-row-resize-handle";var n=document.createElement("div");n.className="tabulator-row-resize-handle prev",i.addEventListener("click",function(t){t.stopPropagation()});var s=function(o){e.startRow=t,e._mouseDown(o,t,i)};i.addEventListener("mousedown",s),i.addEventListener("touchstart",s),n.addEventListener("click",function(t){t.stopPropagation()});var r=function(o){var i=e.table.rowManager.prevDisplayRow(t);i&&(e.startRow=i,e._mouseDown(o,i,n))};n.addEventListener("mousedown",r),n.addEventListener("touchstart",r),o.appendChild(i),o.appendChild(n)},B.prototype._mouseDown=function(t,e,o){function i(t){e.setHeight(s.startHeight+((void 0===t.screenY?t.touches[0].screenY:t.screenY)-s.startY))}function n(t){document.body.removeEventListener("mouseup",i),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.rowResized.call(this.table,e.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),t.stopPropagation(),s.startY=void 0===t.screenY?t.touches[0].screenY:t.screenY,s.startHeight=e.getHeight(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i),o.addEventListener("touchend",n)},u.prototype.registerModule("resizeRows",B);var I=function(t){this.table=t,this.binding=!1,this.observer=!1};I.prototype.initialize=function(t){var e=this.table;"undefined"!=typeof ResizeObserver&&"virtual"===e.rowManager.getRenderMode()?(this.observer=new ResizeObserver(function(t){e.redraw()}),this.observer.observe(e.element)):(this.binding=function(){e.redraw()},window.addEventListener("resize",this.binding))},I.prototype.clearBindings=function(t){this.binding&&window.removeEventListener("resize",this.binding),this.observer&&this.observer.unobserve(this.table.element)},u.prototype.registerModule("resizeTable",I);var O=function(t){this.table=t,this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0};O.prototype.initialize=function(){var t=this,e=[];this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.table.columnManager.columnsByIndex.forEach(function(o,i){o.modules.responsive&&o.modules.responsive.order&&o.modules.responsive.visible&&(o.modules.responsive.index=i,e.push(o),o.visible||"collapse"!==t.mode||t.hiddenColumns.push(o))}),e=e.reverse(),e=e.sort(function(t,e){return e.modules.responsive.order-t.modules.responsive.order||e.modules.responsive.index-t.modules.responsive.index}),this.columns=e,"collapse"===this.mode&&this.generateCollapsedContent()},O.prototype.initializeColumn=function(t){var e=t.getDefinition();t.modules.responsive={order:void 0===e.responsive?1:e.responsive,visible:!1!==e.visible}},O.prototype.layoutRow=function(t){var e=t.getElement(),o=document.createElement("div");o.classList.add("tabulator-responsive-collapse"),e.classList.contains("tabulator-calcs")||(t.modules.responsiveLayout={element:o},this.collapseStartOpen||(o.style.display="none"),e.appendChild(o),this.generateCollapsedRowContent(t))},O.prototype.updateColumnVisibility=function(t,e){t.modules.responsive&&(t.modules.responsive.visible=e,this.initialize())},O.prototype.hideColumn=function(t){t.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(t),this.generateCollapsedContent())},O.prototype.showColumn=function(t){var e;t.show(!1,!0),t.setWidth(t.getWidth()),"collapse"===this.mode&&(e=this.hiddenColumns.indexOf(t),e>-1&&this.hiddenColumns.splice(e,1),this.generateCollapsedContent())},O.prototype.update=function(){for(var t=this,e=!0;e;){var o="fitColumns"==t.table.modules.layout.getMode()?t.table.columnManager.getFlexBaseWidth():t.table.columnManager.getWidth(),i=t.table.columnManager.element.clientWidth-o;if(i<0){var n=t.columns[t.index];n?(t.hideColumn(n),t.index++):e=!1}else{var s=t.columns[t.index-1];s&&i>0&&i>=s.getWidth()?(t.showColumn(s),t.index--):e=!1}t.table.rowManager.activeRowsCount||t.table.rowManager.renderEmptyScroll()}},O.prototype.generateCollapsedContent=function(){var t=this;this.table.rowManager.getDisplayRows().forEach(function(e){t.generateCollapsedRowContent(e)})},O.prototype.generateCollapsedRowContent=function(t){var e,o;if(t.modules.responsiveLayout){for(e=t.modules.responsiveLayout.element;e.firstChild;)e.removeChild(e.firstChild);o=this.collapseFormatter(this.generateCollapsedRowData(t)),o&&e.appendChild(o)}},O.prototype.generateCollapsedRowData=function(t){var e,o=this,i=t.getData(),n=[];return this.hiddenColumns.forEach(function(s){var r=s.getFieldValue(i);s.definition.title&&s.field&&(s.modules.format&&o.table.options.responsiveLayoutCollapseUseFormatters?(e={value:!1,data:{},getValue:function(){return r},getData:function(){return i},getElement:function(){return document.createElement("div")},getRow:function(){return t.getComponent()},getColumn:function(){return s.getComponent()}},n.push({title:s.definition.title,value:s.modules.format.formatter.call(o.table.modules.format,e,s.modules.format.params)})):n.push({title:s.definition.title,value:r}))}),n},O.prototype.formatCollapsedData=function(t){var e=document.createElement("table"),o="";return t.forEach(function(t){o+=""+t.title+""+t.value+""}),e.innerHTML=o,Object.keys(t).length?e:""},u.prototype.registerModule("responsiveLayout",O);var j=function(t){this.table=t,this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[]};j.prototype.clearSelectionData=function(t){this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],t||this._rowSelectionChanged()},j.prototype.initializeRow=function(t){var e=this,o=t.getElement(),i=function t(){setTimeout(function(){e.selecting=!1},50),document.body.removeEventListener("mouseup",t)};t.modules.select={selected:!1},e.table.options.selectableCheck.call(this.table,t.getComponent())?(o.classList.add("tabulator-selectable"),o.classList.remove("tabulator-unselectable"),e.table.options.selectable&&"highlight"!=e.table.options.selectable&&(e.table.options.selectableRangeMode&&"click"===e.table.options.selectableRangeMode?o.addEventListener("click",function(o){if(o.shiftKey){e.lastClickedRow=e.lastClickedRow||t;var i=e.table.rowManager.getDisplayRowIndex(e.lastClickedRow),n=e.table.rowManager.getDisplayRowIndex(t),s=i<=n?i:n,r=i>=n?i:n,a=e.table.rowManager.getDisplayRows().slice(0),l=a.splice(s,r-s+1);o.ctrlKey?(l.forEach(function(t){t!==e.lastClickedRow&&e.toggleRow(t)}),e.lastClickedRow=t):(e.deselectRows(),e.selectRows(l))}else o.ctrlKey?(e.toggleRow(t),e.lastClickedRow=t):(e.deselectRows(),e.selectRows(t),e.lastClickedRow=t)}):(o.addEventListener("click",function(o){e.selecting||e.toggleRow(t)}),o.addEventListener("mousedown",function(o){if(o.shiftKey)return e.selecting=!0,e.selectPrev=[],document.body.addEventListener("mouseup",i),document.body.addEventListener("keyup",i),e.toggleRow(t),!1}),o.addEventListener("mouseenter",function(o){e.selecting&&(e.toggleRow(t),e.selectPrev[1]==t&&e.toggleRow(e.selectPrev[0]))}),o.addEventListener("mouseout",function(o){e.selecting&&e.selectPrev.unshift(t)})))):(o.classList.add("tabulator-unselectable"),o.classList.remove("tabulator-selectable"))},j.prototype.toggleRow=function(t){this.table.options.selectableCheck.call(this.table,t.getComponent())&&(t.modules.select&&t.modules.select.selected?this._deselectRow(t):this._selectRow(t))},j.prototype.selectRows=function(t){var e=this;switch(void 0===t?"undefined":_typeof(t)){case"undefined":e.table.rowManager.rows.forEach(function(t){e._selectRow(t,!0,!0)}),e._rowSelectionChanged();break;case"boolean":!0===t&&(e.table.rowManager.activeRows.forEach(function(t){e._selectRow(t,!0,!0)}),e._rowSelectionChanged());break;default:Array.isArray(t)?(t.forEach(function(t){e._selectRow(t,!0,!0)}),e._rowSelectionChanged()):e._selectRow(t,!1,!0)}},j.prototype._selectRow=function(t,e,o){if(!isNaN(this.table.options.selectable)&&!0!==this.table.options.selectable&&!o&&this.selectedRows.length>=this.table.options.selectable){if(!this.table.options.selectableRollingSelection)return!1;this._deselectRow(this.selectedRows[0])}var i=this.table.rowManager.findRow(t);i?-1==this.selectedRows.indexOf(i)&&(i.modules.select||(i.modules.select={}),i.modules.select.selected=!0,i.getElement().classList.add("tabulator-selected"),this.selectedRows.push(i),e||(this.table.options.rowSelected.call(this.table,i.getComponent()),this._rowSelectionChanged())):e||console.warn("Selection Error - No such row found, ignoring selection:"+t)},j.prototype.isRowSelected=function(t){return-1!==this.selectedRows.indexOf(t)},j.prototype.deselectRows=function(t){var e,o=this;if(void 0===t){e=o.selectedRows.length;for(var i=0;i-1&&(n.modules.select||(n.modules.select={}),n.modules.select.selected=!1,n.getElement().classList.remove("tabulator-selected"),i.selectedRows.splice(o,1),e||(i.table.options.rowDeselected.call(this.table,n.getComponent()),i._rowSelectionChanged())):e||console.warn("Deselection Error - No such row found, ignoring selection:"+t)},j.prototype.getSelectedData=function(){var t=[];return this.selectedRows.forEach(function(e){t.push(e.getData())}),t},j.prototype.getSelectedRows=function(){var t=[];return this.selectedRows.forEach(function(e){t.push(e.getComponent())}),t},j.prototype._rowSelectionChanged=function(){this.table.options.rowSelectionChanged.call(this.table,this.getSelectedData(),this.getSelectedRows())},u.prototype.registerModule("selectRow",j);var G=function(t){this.table=t,this.sortList=[],this.changed=!1};G.prototype.initializeColumn=function(t,e){var o,i,n=this,s=!1;switch(_typeof(t.definition.sorter)){case"string":n.sorters[t.definition.sorter]?s=n.sorters[t.definition.sorter]:console.warn("Sort Error - No such sorter found: ",t.definition.sorter);break;case"function":s=t.definition.sorter}t.modules.sort={sorter:s,dir:"none",params:t.definition.sorterParams||{},startingDir:t.definition.headerSortStartingDir||"asc",tristate:t.definition.headerSortTristate},!1!==t.definition.headerSort&&(o=t.getElement(),o.classList.add("tabulator-sortable"),i=document.createElement("div"),i.classList.add("tabulator-arrow"),e.appendChild(i),o.addEventListener("click",function(e){var o="",i=[],s=!1;if(t.modules.sort){if(t.modules.sort.tristate)o="none"==t.modules.sort.dir?t.modules.sort.startingDir:t.modules.sort.dir==t.modules.sort.startingDir?"asc"==t.modules.sort.dir?"desc":"asc":"none";else switch(t.modules.sort.dir){case"asc":o="desc";break;case"desc":o="asc";break;default:o=t.modules.sort.startingDir}n.table.options.columnHeaderSortMulti&&(e.shiftKey||e.ctrlKey)?(i=n.getSort(),s=i.findIndex(function(e){return e.field===t.getField()}),s>-1?(i[s].dir=o,s!=i.length-1&&(s=i.splice(s,1)[0],"none"!=o&&i.push(s))):"none"!=o&&i.push({column:t,dir:o}),n.setSort(i)):"none"==o?n.clear():n.setSort(t,o),n.table.rowManager.sorterRefresh(!n.sortList.length)}}))},G.prototype.hasChanged=function(){var t=this.changed;return this.changed=!1,t},G.prototype.getSort=function(){var t=this,e=[];return t.sortList.forEach(function(t){t.column&&e.push({column:t.column.getComponent(),field:t.column.getField(),dir:t.dir})}),e},G.prototype.setSort=function(t,e){var o=this,i=[];Array.isArray(t)||(t=[{column:t,dir:e}]),t.forEach(function(t){var e;e=o.table.columnManager.findColumn(t.column),e?(t.column=e,i.push(t),o.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",t.column)}),o.sortList=i,this.table.options.persistentSort&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.save("sort")},G.prototype.clear=function(){this.setSort([])},G.prototype.findSorter=function(t){var e,o=this.table.rowManager.activeRows[0],i="string";if(o&&(o=o.getData(),t.getField()))switch(e=t.getFieldValue(o),void 0===e?"undefined":_typeof(e)){case"undefined":i="string";break;case"boolean":i="boolean";break;default:isNaN(e)||""===e?e.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(i="alphanum"):i="number"}return this.sorters[i]},G.prototype.sort=function(t){var e,o=this;e=this.table.options.sortOrderReverse?o.sortList.slice().reverse():o.sortList,o.table.options.dataSorting&&o.table.options.dataSorting.call(o.table,o.getSort()),o.clearColumnHeaders(),o.table.options.ajaxSorting?e.forEach(function(t,e){o.setColumnHeader(t.column,t.dir)}):e.forEach(function(i,n){i.column&&i.column.modules.sort&&(i.column.modules.sort.sorter||(i.column.modules.sort.sorter=o.findSorter(i.column)),o._sortItem(t,i.column,i.dir,e,n)),o.setColumnHeader(i.column,i.dir)}),o.table.options.dataSorted&&o.table.options.dataSorted.call(o.table,o.getSort(),o.table.rowManager.getComponents(!0))},G.prototype.clearColumnHeaders=function(){this.table.columnManager.getRealColumns().forEach(function(t){t.modules.sort&&(t.modules.sort.dir="none",t.getElement().setAttribute("aria-sort","none"))})},G.prototype.setColumnHeader=function(t,e){t.modules.sort.dir=e,t.getElement().setAttribute("aria-sort",e)},G.prototype._sortItem=function(t,e,o,i,n){var s=this,r="function"==typeof e.modules.sort.params?e.modules.sort.params(e.getComponent(),o):e.modules.sort.params;t.sort(function(t,a){var l=s._sortRow(t,a,e,o,r);if(0===l&&n)for(var c=n-1;c>=0&&0===(l=s._sortRow(t,a,i[c].column,i[c].dir,r));c--);return l})},G.prototype._sortRow=function(t,e,o,i,n){var s,r,a="asc"==i?t:e,l="asc"==i?e:t;return t=o.getFieldValue(a.getData()),e=o.getFieldValue(l.getData()),t=void 0!==t?t:"",e=void 0!==e?e:"",s=a.getComponent(),r=l.getComponent(),o.modules.sort.sorter.call(this,t,e,s,r,o.getComponent(),i,n)},G.prototype.sorters={number:function(t,e,o,i,n,s,r){var a=r.alignEmptyValues,l=r.decimalSeparator||".",c=r.thousandSeparator||",",u=0;if(t=parseFloat(String(t).split(c).join("").split(l).join(".")),e=parseFloat(String(e).split(c).join("").split(l).join(".")),isNaN(t))u=isNaN(e)?0:-1;else{if(!isNaN(e))return t-e;u=1}return("top"===a&&"desc"===s||"bottom"===a&&"asc"===s)&&(u*=-1),u},string:function(t,e,o,i,n,s,r){var a,l=r.alignEmptyValues,c=0;if(t){if(e){switch(_typeof(r.locale)){case"boolean":r.locale&&(a=this.table.modules.localize.getLocale());break;case"string":a=r.locale}return String(t).toLowerCase().localeCompare(String(e).toLowerCase(),a)}c=1}else c=e?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c},date:function(t,e,o,i,n,s,r){return r.format||(r.format="DD/MM/YYYY"),this.sorters.datetime.call(this,t,e,o,i,n,s,r)},time:function(t,e,o,i,n,s,r){return r.format||(r.format="hh:mm"),this.sorters.datetime.call(this,t,e,o,i,n,s,r)},datetime:function(t,e,o,i,n,s,r){var a=r.format||"DD/MM/YYYY hh:mm:ss",l=r.alignEmptyValues,c=0;if("undefined"!=typeof moment){if(t=moment(t,a),e=moment(e,a),t.isValid()){if(e.isValid())return t-e;c=1}else c=e.isValid()?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c}console.error("Sort Error - 'datetime' sorter is dependant on moment.js")},boolean:function(t,e,o,i,n,s,r){return(!0===t||"true"===t||"True"===t||1===t?1:0)-(!0===e||"true"===e||"True"===e||1===e?1:0)},array:function(t,e,o,i,n,s,r){function a(t){switch(u){case"length":return t.length;case"sum":return t.reduce(function(t,e){return t+e});case"max":return Math.max.apply(null,t);case"min":return Math.min.apply(null,t);case"avg":return t.reduce(function(t,e){return t+e})/t.length}}var l=0,c=0,u=r.type||"length",d=r.alignEmptyValues,h=0;if(Array.isArray(t)){if(Array.isArray(e))return l=t?a(t):0,c=e?a(e):0,l-c;d=1}else d=Array.isArray(e)?-1:0;return("top"===d&&"desc"===s||"bottom"===d&&"asc"===s)&&(h*=-1),h},exists:function(t,e,o,i,n,s,r){return(void 0===t?0:1)-(void 0===e?0:1)},alphanum:function(t,e,o,i,n,s,r){var a,l,c,u,d,h=0,p=/(\d+)|(\D+)/g,m=/\d/,f=r.alignEmptyValues,g=0;if(t||0===t){if(e||0===e){if(isFinite(t)&&isFinite(e))return t-e;if(a=String(t).toLowerCase(),l=String(e).toLowerCase(),a===l)return 0;if(!m.test(a)||!m.test(l))return a>l?1:-1;for(a=a.match(p),l=l.match(p),d=a.length>l.length?l.length:a.length;hu?1:-1;return a.length>l.length}g=1}else g=e||0===e?-1:0;return("top"===f&&"desc"===s||"bottom"===f&&"asc"===s)&&(g*=-1),g}},u.prototype.registerModule("sort",G);var V=function(t){this.table=t};return V.prototype.initializeColumn=function(t){var e,o=this,i=[];t.definition.validator&&(Array.isArray(t.definition.validator)?t.definition.validator.forEach(function(t){(e=o._extractValidator(t))&&i.push(e)}):(e=this._extractValidator(t.definition.validator))&&i.push(e),t.modules.validate=!!i.length&&i)},V.prototype._extractValidator=function(t){var e,o,i;switch(void 0===t?"undefined":_typeof(t)){case"string":return e=t.split(":",2),o=e.shift(),i=e[0],this._buildValidator(o,i);case"function":return this._buildValidator(t);case"object":return this._buildValidator(t.type,t.parameters)}},V.prototype._buildValidator=function(t,e){var o="function"==typeof t?t:this.validators[t];return o?{type:"function"==typeof t?"function":t,func:o,params:e}:(console.warn("Validator Setup Error - No matching validator found:",t),!1)},V.prototype.validate=function(t,e,o){var i=this,n=[];return t&&t.forEach(function(t){t.func.call(i,e,o,t.params)||n.push({type:t.type,parameters:t.params})}),!n.length||n},V.prototype.validators={integer:function(t,e,o){return""===e||null===e||void 0===e||"number"==typeof(e=Number(e))&&isFinite(e)&&Math.floor(e)===e},float:function(t,e,o){return""===e||null===e||void 0===e||"number"==typeof(e=Number(e))&&isFinite(e)&&e%1!=0},numeric:function(t,e,o){return""===e||null===e||void 0===e||!isNaN(e)},string:function(t,e,o){return""===e||null===e||void 0===e||isNaN(e)},max:function(t,e,o){return""===e||null===e||void 0===e||parseFloat(e)<=o},min:function(t,e,o){return""===e||null===e||void 0===e||parseFloat(e)>=o},minLength:function(t,e,o){return""===e||null===e||void 0===e||String(e).length>=o},maxLength:function(t,e,o){return""===e||null===e||void 0===e||String(e).length<=o},in:function(t,e,o){return""===e||null===e||void 0===e||("string"==typeof o&&(o=o.split("|")),""===e||o.indexOf(e)>-1)},regex:function(t,e,o){return""===e||null===e||void 0===e||new RegExp(o).test(e)},unique:function(t,e,o){if(""===e||null===e||void 0===e)return!0;var i=!0,n=t.getData(),s=t.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(t){var o=t.getData();o!==n&&e==s.getFieldValue(o)&&(i=!1)}),i},required:function(t,e,o){return""!==e&null!==e&&void 0!==e}},u.prototype.registerModule("validate",V),u}); \ No newline at end of file diff --git a/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.html b/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.html new file mode 100644 index 0000000..d619124 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.html @@ -0,0 +1,87 @@ + diff --git a/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.json b/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.json new file mode 100644 index 0000000..8e6ca4a --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/locales/en-US/node.json @@ -0,0 +1,12 @@ +{ + "table" : { + "label" : { + "group" : "Group", + "size" : "Size", + "send" : "Send data on click " + }, + "error": { + "no-group": "group not configured" + } + } +} diff --git a/data_node_red/node_modules/node-red-node-ui-table/node.html b/data_node_red/node_modules/node-red-node-ui-table/node.html new file mode 100644 index 0000000..ed7fc38 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/node.html @@ -0,0 +1,202 @@ + + + + + diff --git a/data_node_red/node_modules/node-red-node-ui-table/node.js b/data_node_red/node_modules/node-red-node-ui-table/node.js new file mode 100644 index 0000000..7fc6780 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/node.js @@ -0,0 +1,337 @@ +/** + * Copyright JS Foundation and other contributors, http://js.foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ + +var path = require('path'); + +var mergeTabulator = function(target,source) { + if (typeof source === 'object') { + Object.keys(source).forEach(element => { + if (typeof source[element] !== "object") { + target[element] = source[element]; + } else { + if (!target.hasOwnProperty(element)) { + target[element] = (Array.isArray(source[element])) ? [] : {}; + } + // handle the columns array to merge columns if the field property matches. Otherwise push a new column + if (element==='columns' && Array.isArray(source[element])){ + source[element].forEach(sourceElement => { + let index = target[element].findIndex(targetElement => ( + (targetElement.field && sourceElement.field && targetElement.field===sourceElement.field) || // normal column object + (targetElement.title && sourceElement.title && targetElement.title===sourceElement.title) // parent object with nested columns + )); + if (index<0) { // add new column + index=target[element].push({})-1; + } + mergeTabulator(target[element][index],sourceElement); + }) + } else { + mergeTabulator(target[element],source[element]) + } + } + }); + } else { + target=source; + } +} + +module.exports = function (RED) { + function checkConfig(node, conf) { + if (!conf || !conf.hasOwnProperty('group')) { + node.error(RED._('table.error.no-group')); + return false; + } + else { + return true; + } + } + + function HTML(config,dark) { + var configAsJson = JSON.stringify(config, (key, value) => { + // exclude the node description + if (key === "info") { + return undefined; + } + + // replace single quotation mark (apostrophe) by html code in strings + if (typeof (value) === "string") { + return value.replace(/'/g, "'"); + } + + // all others leave unchanged + return value; + } + ); + + var mid = (dark) ? "_midnight" : ""; + var html = String.raw` + + + +
+ + `; + return html; + }; + + function TableNode(config) { + var done = null; + var node = this; + try { + RED.nodes.createNode(this, config); + if (checkConfig(node, config)) { + var ui = RED.require('node-red-dashboard')(RED); + var sizes = ui.getSizes(); + // var luma = 255; + // if (ui.hasOwnProperty("getTheme") && (ui.getTheme() !== undefined)) { + // var rgb = parseInt(ui.getTheme()["page-sidebar-backgroundColor"].value.substring(1), 16); // convert rrggbb to decimal + // luma = 0.2126 * ((rgb >> 16) & 0xff) + 0.7152 * ((rgb >> 8) & 0xff) + 0.0722 * ((rgb >> 0) & 0xff); // per ITU-R BT.709 + // } + var html = HTML(config,ui.isDark()); + + done = ui.addWidget({ + node: node, + width: config.width, + height: (config.height > 2) ? config.height : 2, // min height to 2 so auto will show something + format: html, + templateScope: 'local', + order: config.order, + group: config.group, + forwardInputMessages: false, + storeFrontEndInputAsState: false, + + // to make msg.ui_control work without msg.payload we have to send msg.payload=null. + // we correct this here into undefined to get the last known payload form currentValues[opt.node.id]. + convert: function (value) { + if (value===null) value=undefined; + return value; + }, + // merge new ui_control messages into config.ui_control + // Help needed: use the already build in ui_control mechanism from ui.js + beforeEmit: function (msg, value) { + // cache ui_control messages for new clients + if (msg.hasOwnProperty('ui_control')) { + if (!config.hasOwnProperty('ui_control')){ + config.ui_control={ + "tabulator":{ + "columns":config.columns + }}; + } + // use mergeTabulator to correctly merge columns arrays if field property matches + mergeTabulator(config.ui_control,msg.ui_control); + + // delete column definitions by sending a empty columns array (requires page reload) + if (msg.ui_control.tabulator && msg.ui_control.tabulator.columns && Array.isArray(msg.ui_control.tabulator.columns) && + msg.ui_control.tabulator.columns.length==0) { + + config.ui_control.tabulator.columns=[]; + config.ui_control.tabulator.autoColumns=true; + } + } + return { msg: { + payload: value, + ui_control: config.ui_control, + socketid: msg.socketid + }}; + }, + beforeSend: function (msg, orig) { + if (orig) { return orig.msg; } + }, + initController: function ($scope, events) { + $scope.inited = false; + $scope.tabledata = []; + var tablediv; + var mergeObject = function(target,source) { + if (typeof source === 'object') { + Object.keys(source).forEach(element => { + if (typeof source[element] !== "object") { + target[element] = source[element]; + } else { + if (!target.hasOwnProperty(element)) { + target[element] = (Array.isArray(source[element])) ? [] : {}; + } + mergeObject(target[element],source[element]) + } + }); + } else { + target = source; + } + }; + + var createTable = function(basediv, tabledata, columndata, outputs, ui_control) { + // add id field if not already exists + if (columndata.length>0 && tabledata.length>0 && tabledata[0] && typeof tabledata[0] === 'object' && !tabledata[0].hasOwnProperty('id')) { + tabledata.map((row,index) => row.id = index); + } + var opts = { + data: tabledata, + layout: 'fitColumns', + columns: columndata, + autoColumns: columndata.length == 0, + movableColumns: true, + } + if (!ui_control || !ui_control.tabulator) { + var y = (columndata.length === 0) ? 25 : 32; + if ($scope.height==2) { // auto height + opts.height = (tabledata.length > 0 )? tabledata.length * y + 26 : $scope.height*(sizes.sy+sizes.cy); + } else { + opts.height = $scope.height*(sizes.sy+sizes.cy); + } + } + else { // configuration via ui_control + //as Object.assign is not supported by Internet Explorer + //opts = Object.assign(opts, ui_control.tabulator); + mergeObject(opts,ui_control.tabulator); + var y = (opts.columns && (opts.columns.length > 0)) ? 32 : 25; + if (ui_control.customHeight) { + opts.height= ui_control.customHeight * y + 26; + } else { + if ($scope.height==2) { // auto height + opts.height= (tabledata.length > 0 )? tabledata.length * y + 26 : $scope.height*(sizes.sy+sizes.cy); + } else { + opts.height = $scope.height*(sizes.sy+sizes.cy); + } + } + } // end of configuration via ui_control + + if ((outputs > 0) && !opts.hasOwnProperty('cellClick')) { // default cellClick if not already defined by ui_control + opts.cellClick = function(e, cell) { + $scope.send({topic:cell.getField(), payload:cell.getData(), row:(cell.getRow()).getPosition()}); + }; + } + //turn autoColumns off if opts.columns is array with length > 0 + if (opts.columns && Array.isArray(opts.columns) && opts.columns.length>0) { + opts.autoColumns = false; + } + // console.log("createTabulator",opts); + if($scope.table !== undefined) { + $scope.table.destroy(); + } + $scope.table = new Tabulator(basediv, opts); + }; + $scope.init = function (config) { + $scope.config = config; + tablediv = '#ui_table-' + $scope.$eval('$id') + var stateCheck = setInterval(function() { + if (document.querySelector(tablediv) && $scope.tabledata) { + clearInterval(stateCheck); + $scope.inited = true; + createTable(tablediv,$scope.tabledata,$scope.config.columns,$scope.config.outputs,$scope.config.ui_control); + $scope.tabledata = []; + } + }, 200); // lowest setting on my side ... still fails sometimes ;) + }; + $scope.$watch('msg', function (msg) { + //console.log("ui-table message arrived:",msg); + if (msg && msg.hasOwnProperty("ui_control") && msg.ui_control.hasOwnProperty("callback")) return msg; // to avoid loopback from callbacks. No better solution jet. Help needed. + //console.log("ui-table msg: ", msg); + + // configuration via ui_control + if (msg && msg.hasOwnProperty("ui_control")) { + + var addValueOrFunction = function (config,param,value) { + if (typeof String.prototype.parseFunction != 'function') { + String.prototype.parseFunction = function () { + var funcReg = /function *\(([^()]*)\)[ \n\t]*{(.*)}/gmi; + var match = funcReg.exec(this.replace(/\n/g, ' ')); + if(match) { + return new Function(match[1].split(','), match[2]); + } + return null; + }; + } + var valueFunction; + if (typeof value === "string" && (valueFunction = value.parseFunction())) { + config[param]=valueFunction.bind($scope); // to enable this.send() for callback functions. + } + else config[param]= value; + } + + var addObject = function (destinationObject,sourceObject) { + for (var element in sourceObject) { + if (!destinationObject[element]) destinationObject[element]=(Array.isArray(sourceObject[element]))? [] : {}; + if (typeof sourceObject[element] === "object") { + addObject(destinationObject[element],sourceObject[element]) + } else { + addValueOrFunction(destinationObject,element,sourceObject[element]); + } + } + } + + if (!$scope.config.ui_control) { $scope.config.ui_control={}; } + + addObject($scope.config.ui_control,msg.ui_control); + + } // end of configuration via ui_control + + if (msg && msg.hasOwnProperty("payload")) { + if (Array.isArray(msg.payload)) { + $scope.tabledata = msg.payload; + } + + // commands to tabulator via msg.payload object + if (typeof msg.payload === "object" && msg.payload!==null && !Array.isArray(msg.payload)) { + if (msg.payload.hasOwnProperty("command") && $scope.table!==undefined) { + if (!msg.payload.hasOwnProperty("arguments") || !Array.isArray(msg.payload.arguments)) { + msg.payload.arguments=[]; + } + if (msg.payload.returnPromise) { + $scope.table[msg.payload.command].apply($scope.table,msg.payload.arguments).then(function(...args){ + $scope.send({topic:"success", ui_control: {callback:$scope.msg.payload.command}, return:$scope.msg.payload}); + }).catch(function(error){ + if (Object.keys(error).length>0) { + $scope.send({topic:"error", ui_control: {callback:$scope.msg.payload.command}, return:$scope.msg.payload, error: error}); + } + }); + } else { + $scope.table[msg.payload.command].apply($scope.table,msg.payload.arguments); + } + return; + } + return; + } // end of commands to tabulator via msg.payload object + + } + + if ($scope.inited == false) { + return; + } else { + createTable(tablediv, $scope.tabledata, $scope.config.columns, $scope.config.outputs, $scope.config.ui_control); + } + }); + } + }); + } + } + catch (e) { console.log(e); } + + node.on('close', function () { + if (done) { done(); } + }); + } + + RED.nodes.registerType('ui_table', TableNode); + + var uipath = 'ui'; + if (RED.settings.ui) { uipath = RED.settings.ui.path; } + var fullPath = path.join('/', uipath, '/ui-table/*').replace(/\\/g, '/'); + RED.httpNode.get(fullPath, function (req, res) { + var options = { + root: __dirname + '/lib/', + dotfiles: 'deny' + }; + res.sendFile(req.params[0], options) + }); +}; \ No newline at end of file diff --git a/data_node_red/node_modules/node-red-node-ui-table/package.json b/data_node_red/node_modules/node-red-node-ui-table/package.json new file mode 100644 index 0000000..e376ee5 --- /dev/null +++ b/data_node_red/node_modules/node-red-node-ui-table/package.json @@ -0,0 +1,67 @@ +{ + "_from": "node-red-node-ui-table@0.3.11", + "_id": "node-red-node-ui-table@0.3.11", + "_inBundle": false, + "_integrity": "sha512-I9WqrlHG/QZN0LVaomZNwu2vXj/2D6yvsifT8+sbHzofzQDviqEO9dEKEE2RRf6HL7bYpYKlHlx78m5r2fwksg==", + "_location": "/node-red-node-ui-table", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-red-node-ui-table@0.3.11", + "name": "node-red-node-ui-table", + "escapedName": "node-red-node-ui-table", + "rawSpec": "0.3.11", + "saveSpec": null, + "fetchSpec": "0.3.11" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.3.11.tgz", + "_shasum": "7b66ebbc4dcddd92c31e757b73b356fedcba421f", + "_spec": "node-red-node-ui-table@0.3.11", + "_where": "/data", + "author": { + "name": "Kazuhito Yokoi" + }, + "bugs": { + "url": "https://github.com/node-red/node-red-ui-nodes/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Dave Conway-Jones" + }, + { + "name": "@hotNipi" + }, + { + "name": "@Christian-Me" + } + ], + "deprecated": false, + "description": "Table UI widget node for Node-RED Dashboard", + "homepage": "https://github.com/node-red/node-red-ui-nodes/tree/master/node-red-node-ui-table#README.md", + "keywords": [ + "node-red", + "node-red-dashboard", + "table" + ], + "license": "Apache-2.0", + "name": "node-red-node-ui-table", + "node-red": { + "nodes": { + "ui_table": "node.js" + } + }, + "peerDependencies": { + "node-red-dashboard": ">2.16.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/node-red/node-red-ui-nodes.git" + }, + "version": "0.3.11" +} diff --git a/data_node_red/node_modules/node-red-node-ui-table/screenshot.png b/data_node_red/node_modules/node-red-node-ui-table/screenshot.png new file mode 100644 index 0000000..64e7272 Binary files /dev/null and b/data_node_red/node_modules/node-red-node-ui-table/screenshot.png differ diff --git a/data_node_red/node_modules/node-red-node-ui-table/screenshot2.png b/data_node_red/node_modules/node-red-node-ui-table/screenshot2.png new file mode 100644 index 0000000..afb1d2f Binary files /dev/null and b/data_node_red/node_modules/node-red-node-ui-table/screenshot2.png differ diff --git a/data_node_red/node_modules/node-red-node-ui-table/ui-table-custom.png b/data_node_red/node_modules/node-red-node-ui-table/ui-table-custom.png new file mode 100644 index 0000000..cfc2042 Binary files /dev/null and b/data_node_red/node_modules/node-red-node-ui-table/ui-table-custom.png differ diff --git a/data_node_red/node_modules/on-finished/HISTORY.md b/data_node_red/node_modules/on-finished/HISTORY.md new file mode 100644 index 0000000..98ff0e9 --- /dev/null +++ b/data_node_red/node_modules/on-finished/HISTORY.md @@ -0,0 +1,88 @@ +2.3.0 / 2015-05-26 +================== + + * Add defined behavior for HTTP `CONNECT` requests + * Add defined behavior for HTTP `Upgrade` requests + * deps: ee-first@1.1.1 + +2.2.1 / 2015-04-22 +================== + + * Fix `isFinished(req)` when data buffered + +2.2.0 / 2014-12-22 +================== + + * Add message object to callback arguments + +2.1.1 / 2014-10-22 +================== + + * Fix handling of pipelined requests + +2.1.0 / 2014-08-16 +================== + + * Check if `socket` is detached + * Return `undefined` for `isFinished` if state unknown + +2.0.0 / 2014-08-16 +================== + + * Add `isFinished` function + * Move to `jshttp` organization + * Remove support for plain socket argument + * Rename to `on-finished` + * Support both `req` and `res` as arguments + * deps: ee-first@1.0.5 + +1.2.2 / 2014-06-10 +================== + + * Reduce listeners added to emitters + - avoids "event emitter leak" warnings when used multiple times on same request + +1.2.1 / 2014-06-08 +================== + + * Fix returned value when already finished + +1.2.0 / 2014-06-05 +================== + + * Call callback when called on already-finished socket + +1.1.4 / 2014-05-27 +================== + + * Support node.js 0.8 + +1.1.3 / 2014-04-30 +================== + + * Make sure errors passed as instanceof `Error` + +1.1.2 / 2014-04-18 +================== + + * Default the `socket` to passed-in object + +1.1.1 / 2014-01-16 +================== + + * Rename module to `finished` + +1.1.0 / 2013-12-25 +================== + + * Call callback when called on already-errored socket + +1.0.1 / 2013-12-20 +================== + + * Actually pass the error to the callback + +1.0.0 / 2013-12-20 +================== + + * Initial release diff --git a/data_node_red/node_modules/on-finished/LICENSE b/data_node_red/node_modules/on-finished/LICENSE new file mode 100644 index 0000000..5931fd2 --- /dev/null +++ b/data_node_red/node_modules/on-finished/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2014 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/on-finished/README.md b/data_node_red/node_modules/on-finished/README.md new file mode 100644 index 0000000..a0e1157 --- /dev/null +++ b/data_node_red/node_modules/on-finished/README.md @@ -0,0 +1,154 @@ +# on-finished + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Execute a callback when a HTTP request closes, finishes, or errors. + +## Install + +```sh +$ npm install on-finished +``` + +## API + +```js +var onFinished = require('on-finished') +``` + +### onFinished(res, listener) + +Attach a listener to listen for the response to finish. The listener will +be invoked only once when the response finished. If the response finished +to an error, the first argument will contain the error. If the response +has already finished, the listener will be invoked. + +Listening to the end of a response would be used to close things associated +with the response, like open files. + +Listener is invoked as `listener(err, res)`. + +```js +onFinished(res, function (err, res) { + // clean up open fds, etc. + // err contains the error is request error'd +}) +``` + +### onFinished(req, listener) + +Attach a listener to listen for the request to finish. The listener will +be invoked only once when the request finished. If the request finished +to an error, the first argument will contain the error. If the request +has already finished, the listener will be invoked. + +Listening to the end of a request would be used to know when to continue +after reading the data. + +Listener is invoked as `listener(err, req)`. + +```js +var data = '' + +req.setEncoding('utf8') +res.on('data', function (str) { + data += str +}) + +onFinished(req, function (err, req) { + // data is read unless there is err +}) +``` + +### onFinished.isFinished(res) + +Determine if `res` is already finished. This would be useful to check and +not even start certain operations if the response has already finished. + +### onFinished.isFinished(req) + +Determine if `req` is already finished. This would be useful to check and +not even start certain operations if the request has already finished. + +## Special Node.js requests + +### HTTP CONNECT method + +The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: + +> The CONNECT method requests that the recipient establish a tunnel to +> the destination origin server identified by the request-target and, +> if successful, thereafter restrict its behavior to blind forwarding +> of packets, in both directions, until the tunnel is closed. Tunnels +> are commonly used to create an end-to-end virtual connection, through +> one or more proxies, which can then be secured using TLS (Transport +> Layer Security, [RFC5246]). + +In Node.js, these request objects come from the `'connect'` event on +the HTTP server. + +When this module is used on a HTTP `CONNECT` request, the request is +considered "finished" immediately, **due to limitations in the Node.js +interface**. This means if the `CONNECT` request contains a request entity, +the request will be considered "finished" even before it has been read. + +There is no such thing as a response object to a `CONNECT` request in +Node.js, so there is no support for for one. + +### HTTP Upgrade request + +The meaning of the `Upgrade` header from RFC 7230, section 6.1: + +> The "Upgrade" header field is intended to provide a simple mechanism +> for transitioning from HTTP/1.1 to some other protocol on the same +> connection. + +In Node.js, these request objects come from the `'upgrade'` event on +the HTTP server. + +When this module is used on a HTTP request with an `Upgrade` header, the +request is considered "finished" immediately, **due to limitations in the +Node.js interface**. This means if the `Upgrade` request contains a request +entity, the request will be considered "finished" even before it has been +read. + +There is no such thing as a response object to a `Upgrade` request in +Node.js, so there is no support for for one. + +## Example + +The following code ensures that file descriptors are always closed +once the response finishes. + +```js +var destroy = require('destroy') +var http = require('http') +var onFinished = require('on-finished') + +http.createServer(function onRequest(req, res) { + var stream = fs.createReadStream('package.json') + stream.pipe(res) + onFinished(res, function (err) { + destroy(stream) + }) +}) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/on-finished.svg +[npm-url]: https://npmjs.org/package/on-finished +[node-version-image]: https://img.shields.io/node/v/on-finished.svg +[node-version-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg +[travis-url]: https://travis-ci.org/jshttp/on-finished +[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master +[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg +[downloads-url]: https://npmjs.org/package/on-finished diff --git a/data_node_red/node_modules/on-finished/index.js b/data_node_red/node_modules/on-finished/index.js new file mode 100644 index 0000000..9abd98f --- /dev/null +++ b/data_node_red/node_modules/on-finished/index.js @@ -0,0 +1,196 @@ +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = onFinished +module.exports.isFinished = isFinished + +/** + * Module dependencies. + * @private + */ + +var first = require('ee-first') + +/** + * Variables. + * @private + */ + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } + +/** + * Invoke callback when the response has finished, useful for + * cleaning up resources afterwards. + * + * @param {object} msg + * @param {function} listener + * @return {object} + * @public + */ + +function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg) + return msg + } + + // attach the listener to the message + attachListener(msg, listener) + + return msg +} + +/** + * Determine if message is already finished. + * + * @param {object} msg + * @return {boolean} + * @public + */ + +function isFinished(msg) { + var socket = msg.socket + + if (typeof msg.finished === 'boolean') { + // OutgoingMessage + return Boolean(msg.finished || (socket && !socket.writable)) + } + + if (typeof msg.complete === 'boolean') { + // IncomingMessage + return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) + } + + // don't know + return undefined +} + +/** + * Attach a finished listener to the message. + * + * @param {object} msg + * @param {function} callback + * @private + */ + +function attachFinishedListener(msg, callback) { + var eeMsg + var eeSocket + var finished = false + + function onFinish(error) { + eeMsg.cancel() + eeSocket.cancel() + + finished = true + callback(error) + } + + // finished on first message event + eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) + + function onSocket(socket) { + // remove listener + msg.removeListener('socket', onSocket) + + if (finished) return + if (eeMsg !== eeSocket) return + + // finished on first socket event + eeSocket = first([[socket, 'error', 'close']], onFinish) + } + + if (msg.socket) { + // socket already assigned + onSocket(msg.socket) + return + } + + // wait for socket to be assigned + msg.on('socket', onSocket) + + if (msg.socket === undefined) { + // node.js 0.8 patch + patchAssignSocket(msg, onSocket) + } +} + +/** + * Attach the listener to the message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function attachListener(msg, listener) { + var attached = msg.__onFinished + + // create a private single listener with queue + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg) + attachFinishedListener(msg, attached) + } + + attached.queue.push(listener) +} + +/** + * Create listener on message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null + if (!listener.queue) return + + var queue = listener.queue + listener.queue = null + + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg) + } + } + + listener.queue = [] + + return listener +} + +/** + * Patch ServerResponse.prototype.assignSocket for node.js 0.8. + * + * @param {ServerResponse} res + * @param {function} callback + * @private + */ + +function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket + + if (typeof assignSocket !== 'function') return + + // res.on('socket', callback) is broken in 0.8 + res.assignSocket = function _assignSocket(socket) { + assignSocket.call(this, socket) + callback(socket) + } +} diff --git a/data_node_red/node_modules/on-finished/package.json b/data_node_red/node_modules/on-finished/package.json new file mode 100644 index 0000000..e76a02a --- /dev/null +++ b/data_node_red/node_modules/on-finished/package.json @@ -0,0 +1,70 @@ +{ + "_from": "on-finished@~2.3.0", + "_id": "on-finished@2.3.0", + "_inBundle": false, + "_integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "_location": "/on-finished", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "on-finished@~2.3.0", + "name": "on-finished", + "escapedName": "on-finished", + "rawSpec": "~2.3.0", + "saveSpec": null, + "fetchSpec": "~2.3.0" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "_shasum": "20f1336481b083cd75337992a16971aa2d906947", + "_spec": "on-finished@~2.3.0", + "_where": "/data/node_modules/send", + "bugs": { + "url": "https://github.com/jshttp/on-finished/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "ee-first": "1.1.1" + }, + "deprecated": false, + "description": "Execute a callback when a request closes, finishes, or errors", + "devDependencies": { + "istanbul": "0.3.9", + "mocha": "2.2.5" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/on-finished#readme", + "license": "MIT", + "name": "on-finished", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/on-finished.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "2.3.0" +} diff --git a/data_node_red/node_modules/on-headers/HISTORY.md b/data_node_red/node_modules/on-headers/HISTORY.md new file mode 100644 index 0000000..090598d --- /dev/null +++ b/data_node_red/node_modules/on-headers/HISTORY.md @@ -0,0 +1,21 @@ +1.0.2 / 2019-02-21 +================== + + * Fix `res.writeHead` patch missing return value + +1.0.1 / 2015-09-29 +================== + + * perf: enable strict mode + +1.0.0 / 2014-08-10 +================== + + * Honor `res.statusCode` change in `listener` + * Move to `jshttp` organization + * Prevent `arguments`-related de-opt + +0.0.0 / 2014-05-13 +================== + + * Initial implementation diff --git a/data_node_red/node_modules/on-headers/LICENSE b/data_node_red/node_modules/on-headers/LICENSE new file mode 100644 index 0000000..b7dce6c --- /dev/null +++ b/data_node_red/node_modules/on-headers/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/on-headers/README.md b/data_node_red/node_modules/on-headers/README.md new file mode 100644 index 0000000..ae84282 --- /dev/null +++ b/data_node_red/node_modules/on-headers/README.md @@ -0,0 +1,81 @@ +# on-headers + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Execute a listener when a response is about to write headers. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install on-headers +``` + +## API + + + +```js +var onHeaders = require('on-headers') +``` + +### onHeaders(res, listener) + +This will add the listener `listener` to fire when headers are emitted for `res`. +The listener is passed the `response` object as it's context (`this`). Headers are +considered to be emitted only once, right before they are sent to the client. + +When this is called multiple times on the same `res`, the `listener`s are fired +in the reverse order they were added. + +## Examples + +```js +var http = require('http') +var onHeaders = require('on-headers') + +http + .createServer(onRequest) + .listen(3000) + +function addPoweredBy () { + // set if not set by end of request + if (!this.getHeader('X-Powered-By')) { + this.setHeader('X-Powered-By', 'Node.js') + } +} + +function onRequest (req, res) { + onHeaders(res, addPoweredBy) + + res.setHeader('Content-Type', 'text/plain') + res.end('hello!') +} +``` + +## Testing + +```sh +$ npm test +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/on-headers/master +[coveralls-url]: https://coveralls.io/r/jshttp/on-headers?branch=master +[node-version-image]: https://badgen.net/npm/node/on-headers +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/on-headers +[npm-url]: https://npmjs.org/package/on-headers +[npm-version-image]: https://badgen.net/npm/v/on-headers +[travis-image]: https://badgen.net/travis/jshttp/on-headers/master +[travis-url]: https://travis-ci.org/jshttp/on-headers diff --git a/data_node_red/node_modules/on-headers/index.js b/data_node_red/node_modules/on-headers/index.js new file mode 100644 index 0000000..7db6375 --- /dev/null +++ b/data_node_red/node_modules/on-headers/index.js @@ -0,0 +1,132 @@ +/*! + * on-headers + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = onHeaders + +/** + * Create a replacement writeHead method. + * + * @param {function} prevWriteHead + * @param {function} listener + * @private + */ + +function createWriteHead (prevWriteHead, listener) { + var fired = false + + // return function with core name and argument list + return function writeHead (statusCode) { + // set headers from arguments + var args = setWriteHeadHeaders.apply(this, arguments) + + // fire listener + if (!fired) { + fired = true + listener.call(this) + + // pass-along an updated status code + if (typeof args[0] === 'number' && this.statusCode !== args[0]) { + args[0] = this.statusCode + args.length = 1 + } + } + + return prevWriteHead.apply(this, args) + } +} + +/** + * Execute a listener when a response is about to write headers. + * + * @param {object} res + * @return {function} listener + * @public + */ + +function onHeaders (res, listener) { + if (!res) { + throw new TypeError('argument res is required') + } + + if (typeof listener !== 'function') { + throw new TypeError('argument listener must be a function') + } + + res.writeHead = createWriteHead(res.writeHead, listener) +} + +/** + * Set headers contained in array on the response object. + * + * @param {object} res + * @param {array} headers + * @private + */ + +function setHeadersFromArray (res, headers) { + for (var i = 0; i < headers.length; i++) { + res.setHeader(headers[i][0], headers[i][1]) + } +} + +/** + * Set headers contained in object on the response object. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeadersFromObject (res, headers) { + var keys = Object.keys(headers) + for (var i = 0; i < keys.length; i++) { + var k = keys[i] + if (k) res.setHeader(k, headers[k]) + } +} + +/** + * Set headers and other properties on the response object. + * + * @param {number} statusCode + * @private + */ + +function setWriteHeadHeaders (statusCode) { + var length = arguments.length + var headerIndex = length > 1 && typeof arguments[1] === 'string' + ? 2 + : 1 + + var headers = length >= headerIndex + 1 + ? arguments[headerIndex] + : undefined + + this.statusCode = statusCode + + if (Array.isArray(headers)) { + // handle array case + setHeadersFromArray(this, headers) + } else if (headers) { + // handle object case + setHeadersFromObject(this, headers) + } + + // copy leading arguments + var args = new Array(Math.min(length, headerIndex)) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + return args +} diff --git a/data_node_red/node_modules/on-headers/package.json b/data_node_red/node_modules/on-headers/package.json new file mode 100644 index 0000000..ced3031 --- /dev/null +++ b/data_node_red/node_modules/on-headers/package.json @@ -0,0 +1,77 @@ +{ + "_from": "on-headers@~1.0.2", + "_id": "on-headers@1.0.2", + "_inBundle": false, + "_integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "_location": "/on-headers", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "on-headers@~1.0.2", + "name": "on-headers", + "escapedName": "on-headers", + "rawSpec": "~1.0.2", + "saveSpec": null, + "fetchSpec": "~1.0.2" + }, + "_requiredBy": [ + "/compression" + ], + "_resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "_shasum": "772b0ae6aaa525c399e489adfad90c403eb3c28f", + "_spec": "on-headers@~1.0.2", + "_where": "/data/node_modules/compression", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/on-headers/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Execute a listener when a response is about to write headers", + "devDependencies": { + "eslint": "5.14.1", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.16.0", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.0.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.0.1", + "supertest": "3.4.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/on-headers#readme", + "keywords": [ + "event", + "headers", + "http", + "onheaders" + ], + "license": "MIT", + "name": "on-headers", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/on-headers.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.0.2" +} diff --git a/data_node_red/node_modules/parseqs/LICENSE b/data_node_red/node_modules/parseqs/LICENSE new file mode 100644 index 0000000..852cee8 --- /dev/null +++ b/data_node_red/node_modules/parseqs/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Gal Koren + +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. diff --git a/data_node_red/node_modules/parseqs/Makefile b/data_node_red/node_modules/parseqs/Makefile new file mode 100644 index 0000000..1d90629 --- /dev/null +++ b/data_node_red/node_modules/parseqs/Makefile @@ -0,0 +1,3 @@ + +test: + @./node_modules/.bin/mocha test.js diff --git a/data_node_red/node_modules/parseqs/README.md b/data_node_red/node_modules/parseqs/README.md new file mode 100644 index 0000000..5c03c55 --- /dev/null +++ b/data_node_red/node_modules/parseqs/README.md @@ -0,0 +1 @@ +Provides methods for converting an object into string representation, and vice versa. diff --git a/data_node_red/node_modules/parseqs/index.js b/data_node_red/node_modules/parseqs/index.js new file mode 100644 index 0000000..e0b366e --- /dev/null +++ b/data_node_red/node_modules/parseqs/index.js @@ -0,0 +1,37 @@ +/** + * Compiles a querystring + * Returns string representation of the object + * + * @param {Object} + * @api private + */ + +exports.encode = function (obj) { + var str = ''; + + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + if (str.length) str += '&'; + str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); + } + } + + return str; +}; + +/** + * Parses a simple querystring into an object + * + * @param {String} qs + * @api private + */ + +exports.decode = function(qs){ + var qry = {}; + var pairs = qs.split('&'); + for (var i = 0, l = pairs.length; i < l; i++) { + var pair = pairs[i].split('='); + qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + } + return qry; +}; diff --git a/data_node_red/node_modules/parseqs/package.json b/data_node_red/node_modules/parseqs/package.json new file mode 100644 index 0000000..5003497 --- /dev/null +++ b/data_node_red/node_modules/parseqs/package.json @@ -0,0 +1,50 @@ +{ + "_from": "parseqs@0.0.6", + "_id": "parseqs@0.0.6", + "_inBundle": false, + "_integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "_location": "/parseqs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parseqs@0.0.6", + "name": "parseqs", + "escapedName": "parseqs", + "rawSpec": "0.0.6", + "saveSpec": null, + "fetchSpec": "0.0.6" + }, + "_requiredBy": [ + "/engine.io-client", + "/socket.io-client" + ], + "_resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "_shasum": "8e4bb5a19d1cdc844a08ac974d34e273afa670d5", + "_spec": "parseqs@0.0.6", + "_where": "/data/node_modules/socket.io-client", + "author": { + "name": "Gal Koren" + }, + "bugs": { + "url": "https://github.com/get/querystring/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Provides methods for parsing a query string into an object, and vice versa.", + "devDependencies": { + "better-assert": "~1.0.0", + "mocha": "1.17.1" + }, + "homepage": "https://github.com/get/querystring", + "license": "MIT", + "name": "parseqs", + "repository": { + "type": "git", + "url": "git+https://github.com/get/querystring.git" + }, + "scripts": { + "test": "make test" + }, + "version": "0.0.6" +} diff --git a/data_node_red/node_modules/parseqs/test.js b/data_node_red/node_modules/parseqs/test.js new file mode 100644 index 0000000..2ccb925 --- /dev/null +++ b/data_node_red/node_modules/parseqs/test.js @@ -0,0 +1,27 @@ +var assert = require('better-assert'); +var expect = require('expect.js'); +var util = require('./index.js'); + +describe('querystring test suite', function(){ + it('should parse a querystring and return an object', function () { + + // Single assignment + var queryObj = util.decode("foo=bar"); + expect(queryObj.foo).to.be("bar"); + + // Multiple assignments + queryObj = util.decode("france=paris&germany=berlin"); + expect(queryObj.france).to.be("paris"); + expect(queryObj.germany).to.be("berlin"); + + // Assignments containing non-alphanumeric characters + queryObj = util.decode("india=new%20delhi"); + expect(queryObj.india).to.be("new delhi"); + }); + + it('should construct a query string from an object', function () { + expect(util.encode({ a: 'b' })).to.be('a=b'); + expect(util.encode({ a: 'b', c: 'd' })).to.be('a=b&c=d'); + expect(util.encode({ a: 'b', c: 'tobi rocks' })).to.be('a=b&c=tobi%20rocks'); + }); +}); diff --git a/data_node_red/node_modules/parseuri/History.md b/data_node_red/node_modules/parseuri/History.md new file mode 100644 index 0000000..c33a1bf --- /dev/null +++ b/data_node_red/node_modules/parseuri/History.md @@ -0,0 +1,5 @@ + +n.n.n / 2014-02-09 +================== + + * parseuri first commit diff --git a/data_node_red/node_modules/parseuri/LICENSE b/data_node_red/node_modules/parseuri/LICENSE new file mode 100644 index 0000000..c32368d --- /dev/null +++ b/data_node_red/node_modules/parseuri/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Gal Koren + +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. diff --git a/data_node_red/node_modules/parseuri/Makefile b/data_node_red/node_modules/parseuri/Makefile new file mode 100644 index 0000000..1d90629 --- /dev/null +++ b/data_node_red/node_modules/parseuri/Makefile @@ -0,0 +1,3 @@ + +test: + @./node_modules/.bin/mocha test.js diff --git a/data_node_red/node_modules/parseuri/README.md b/data_node_red/node_modules/parseuri/README.md new file mode 100644 index 0000000..5c663ed --- /dev/null +++ b/data_node_red/node_modules/parseuri/README.md @@ -0,0 +1,2 @@ +# parseuri +Module for parsing URI's in engine.io-client diff --git a/data_node_red/node_modules/parseuri/index.js b/data_node_red/node_modules/parseuri/index.js new file mode 100644 index 0000000..d4704b4 --- /dev/null +++ b/data_node_red/node_modules/parseuri/index.js @@ -0,0 +1,68 @@ +/** + * Parses an URI + * + * @author Steven Levithan (MIT license) + * @api private + */ + +var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; + +var parts = [ + 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor' +]; + +module.exports = function parseuri(str) { + var src = str, + b = str.indexOf('['), + e = str.indexOf(']'); + + if (b != -1 && e != -1) { + str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length); + } + + var m = re.exec(str || ''), + uri = {}, + i = 14; + + while (i--) { + uri[parts[i]] = m[i] || ''; + } + + if (b != -1 && e != -1) { + uri.source = src; + uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':'); + uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':'); + uri.ipv6uri = true; + } + + uri.pathNames = pathNames(uri, uri['path']); + uri.queryKey = queryKey(uri, uri['query']); + + return uri; +}; + +function pathNames(obj, path) { + var regx = /\/{2,9}/g, + names = path.replace(regx, "/").split("/"); + + if (path.substr(0, 1) == '/' || path.length === 0) { + names.splice(0, 1); + } + if (path.substr(path.length - 1, 1) == '/') { + names.splice(names.length - 1, 1); + } + + return names; +} + +function queryKey(uri, query) { + var data = {}; + + query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) { + if ($1) { + data[$1] = $2; + } + }); + + return data; +} diff --git a/data_node_red/node_modules/parseuri/package.json b/data_node_red/node_modules/parseuri/package.json new file mode 100644 index 0000000..3aec6f7 --- /dev/null +++ b/data_node_red/node_modules/parseuri/package.json @@ -0,0 +1,51 @@ +{ + "_from": "parseuri@0.0.6", + "_id": "parseuri@0.0.6", + "_inBundle": false, + "_integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "_location": "/parseuri", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parseuri@0.0.6", + "name": "parseuri", + "escapedName": "parseuri", + "rawSpec": "0.0.6", + "saveSpec": null, + "fetchSpec": "0.0.6" + }, + "_requiredBy": [ + "/engine.io-client", + "/socket.io-client" + ], + "_resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "_shasum": "e1496e829e3ac2ff47f39a4dd044b32823c4a25a", + "_spec": "parseuri@0.0.6", + "_where": "/data/node_modules/socket.io-client", + "author": { + "name": "Gal Koren" + }, + "bugs": { + "url": "https://github.com/get/parseuri/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Method that parses a URI and returns an array of its components", + "devDependencies": { + "better-assert": "~1.0.0", + "expect.js": "^0.3.1", + "mocha": "1.17.1" + }, + "homepage": "https://github.com/get/parseuri", + "license": "MIT", + "name": "parseuri", + "repository": { + "type": "git", + "url": "git+https://github.com/get/parseuri.git" + }, + "scripts": { + "test": "make test" + }, + "version": "0.0.6" +} diff --git a/data_node_red/node_modules/parseuri/test.js b/data_node_red/node_modules/parseuri/test.js new file mode 100644 index 0000000..be447df --- /dev/null +++ b/data_node_red/node_modules/parseuri/test.js @@ -0,0 +1,54 @@ +var assert = require('better-assert'); +var expect = require('expect.js'); +var parseuri = require('./index.js'); + +describe('my suite', function(){ + it('should parse an uri', function () { + var http = parseuri('http://google.com') + , https = parseuri('https://www.google.com:80') + , query = parseuri('google.com:8080/foo/bar?foo=bar') + , localhost = parseuri('localhost:8080') + , ipv6 = parseuri('2001:0db8:85a3:0042:1000:8a2e:0370:7334') + , ipv6short = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334') + , ipv6port = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334:80') + , ipv6abbrev = parseuri('2001::7334:a:80') + , ipv6http = parseuri('http://[2001::7334:a]:80') + , ipv6query = parseuri('http://[2001::7334:a]:80/foo/bar?foo=bar') + + expect(http.protocol).to.be('http'); + expect(http.port).to.be(''); + expect(http.host).to.be('google.com'); + expect(https.protocol).to.be('https'); + expect(https.port).to.be('80'); + expect(https.host).to.be('www.google.com'); + expect(query.port).to.be('8080'); + expect(query.query).to.be('foo=bar'); + expect(query.path).to.be('/foo/bar'); + expect(query.relative).to.be('/foo/bar?foo=bar'); + expect(query.queryKey.foo).to.be('bar'); + expect(query.pathNames[0]).to.be('foo'); + expect(query.pathNames[1]).to.be('bar'); + expect(localhost.protocol).to.be(''); + expect(localhost.host).to.be('localhost'); + expect(localhost.port).to.be('8080'); + expect(ipv6.protocol).to.be(''); + expect(ipv6.host).to.be('2001:0db8:85a3:0042:1000:8a2e:0370:7334'); + expect(ipv6.port).to.be(''); + expect(ipv6short.protocol).to.be(''); + expect(ipv6short.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334'); + expect(ipv6short.port).to.be(''); + expect(ipv6port.protocol).to.be(''); + expect(ipv6port.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334'); + expect(ipv6port.port).to.be('80'); + expect(ipv6abbrev.protocol).to.be(''); + expect(ipv6abbrev.host).to.be('2001::7334:a:80'); + expect(ipv6abbrev.port).to.be(''); + expect(ipv6http.protocol).to.be('http'); + expect(ipv6http.port).to.be('80'); + expect(ipv6http.host).to.be('2001::7334:a'); + expect(ipv6query.protocol).to.be('http'); + expect(ipv6query.port).to.be('80'); + expect(ipv6query.host).to.be('2001::7334:a'); + expect(ipv6query.relative).to.be('/foo/bar?foo=bar'); + }); +}); diff --git a/data_node_red/node_modules/parseurl/HISTORY.md b/data_node_red/node_modules/parseurl/HISTORY.md new file mode 100644 index 0000000..8e40954 --- /dev/null +++ b/data_node_red/node_modules/parseurl/HISTORY.md @@ -0,0 +1,58 @@ +1.3.3 / 2019-04-15 +================== + + * Fix Node.js 0.8 return value inconsistencies + +1.3.2 / 2017-09-09 +================== + + * perf: reduce overhead for full URLs + * perf: unroll the "fast-path" `RegExp` + +1.3.1 / 2016-01-17 +================== + + * perf: enable strict mode + +1.3.0 / 2014-08-09 +================== + + * Add `parseurl.original` for parsing `req.originalUrl` with fallback + * Return `undefined` if `req.url` is `undefined` + +1.2.0 / 2014-07-21 +================== + + * Cache URLs based on original value + * Remove no-longer-needed URL mis-parse work-around + * Simplify the "fast-path" `RegExp` + +1.1.3 / 2014-07-08 +================== + + * Fix typo + +1.1.2 / 2014-07-08 +================== + + * Seriously fix Node.js 0.8 compatibility + +1.1.1 / 2014-07-08 +================== + + * Fix Node.js 0.8 compatibility + +1.1.0 / 2014-07-08 +================== + + * Incorporate URL href-only parse fast-path + +1.0.1 / 2014-03-08 +================== + + * Add missing `require` + +1.0.0 / 2014-03-08 +================== + + * Genesis from `connect` diff --git a/data_node_red/node_modules/parseurl/LICENSE b/data_node_red/node_modules/parseurl/LICENSE new file mode 100644 index 0000000..27653d3 --- /dev/null +++ b/data_node_red/node_modules/parseurl/LICENSE @@ -0,0 +1,24 @@ + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/parseurl/README.md b/data_node_red/node_modules/parseurl/README.md new file mode 100644 index 0000000..443e716 --- /dev/null +++ b/data_node_red/node_modules/parseurl/README.md @@ -0,0 +1,133 @@ +# parseurl + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse a URL with memoization. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install parseurl +``` + +## API + +```js +var parseurl = require('parseurl') +``` + +### parseurl(req) + +Parse the URL of the given request object (looks at the `req.url` property) +and return the result. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.url` does +not change will return a cached parsed object, rather than parsing again. + +### parseurl.original(req) + +Parse the original URL of the given request object and return the result. +This works by trying to parse `req.originalUrl` if it is a string, otherwise +parses `req.url`. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.originalUrl` +does not change will return a cached parsed object, rather than parsing again. + +## Benchmark + +```bash +$ npm run-script bench + +> parseurl@1.3.3 bench nodejs-parseurl +> node benchmark/index.js + + http_parser@2.8.0 + node@10.6.0 + v8@6.7.288.46-node.13 + uv@1.21.0 + zlib@1.2.11 + ares@1.14.0 + modules@64 + nghttp2@1.32.0 + napi@3 + openssl@1.1.0h + icu@61.1 + unicode@10.0 + cldr@33.0 + tz@2018c + +> node benchmark/fullurl.js + + Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 2,207,842 ops/sec 卤3.76% (184 runs sampled) + nativeurl - legacy x 507,180 ops/sec 卤0.82% (191 runs sampled) + nativeurl - whatwg x 290,044 ops/sec 卤1.96% (189 runs sampled) + parseurl x 488,907 ops/sec 卤2.13% (192 runs sampled) + +> node benchmark/pathquery.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 3,812,564 ops/sec 卤3.15% (188 runs sampled) + nativeurl - legacy x 2,651,631 ops/sec 卤1.68% (189 runs sampled) + nativeurl - whatwg x 161,837 ops/sec 卤2.26% (189 runs sampled) + parseurl x 4,166,338 ops/sec 卤2.23% (184 runs sampled) + +> node benchmark/samerequest.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object + + 4 tests completed. + + fasturl x 3,821,651 ops/sec 卤2.42% (185 runs sampled) + nativeurl - legacy x 2,651,162 ops/sec 卤1.90% (187 runs sampled) + nativeurl - whatwg x 175,166 ops/sec 卤1.44% (188 runs sampled) + parseurl x 14,912,606 ops/sec 卤3.59% (183 runs sampled) + +> node benchmark/simplepath.js + + Parsing URL "/foo/bar" + + 4 tests completed. + + fasturl x 12,421,765 ops/sec 卤2.04% (191 runs sampled) + nativeurl - legacy x 7,546,036 ops/sec 卤1.41% (188 runs sampled) + nativeurl - whatwg x 198,843 ops/sec 卤1.83% (189 runs sampled) + parseurl x 24,244,006 ops/sec 卤0.51% (194 runs sampled) + +> node benchmark/slash.js + + Parsing URL "/" + + 4 tests completed. + + fasturl x 17,159,456 ops/sec 卤3.25% (188 runs sampled) + nativeurl - legacy x 11,635,097 ops/sec 卤3.79% (184 runs sampled) + nativeurl - whatwg x 240,693 ops/sec 卤0.83% (189 runs sampled) + parseurl x 42,279,067 ops/sec 卤0.55% (190 runs sampled) +``` + +## License + + [MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/parseurl/master +[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master +[node-image]: https://badgen.net/npm/node/parseurl +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/parseurl +[npm-url]: https://npmjs.org/package/parseurl +[npm-version-image]: https://badgen.net/npm/v/parseurl +[travis-image]: https://badgen.net/travis/pillarjs/parseurl/master +[travis-url]: https://travis-ci.org/pillarjs/parseurl diff --git a/data_node_red/node_modules/parseurl/index.js b/data_node_red/node_modules/parseurl/index.js new file mode 100644 index 0000000..ece7223 --- /dev/null +++ b/data_node_red/node_modules/parseurl/index.js @@ -0,0 +1,158 @@ +/*! + * parseurl + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var url = require('url') +var parse = url.parse +var Url = url.Url + +/** + * Module exports. + * @public + */ + +module.exports = parseurl +module.exports.original = originalurl + +/** + * Parse the `req` url with memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function parseurl (req) { + var url = req.url + + if (url === undefined) { + // URL is undefined + return undefined + } + + var parsed = req._parsedUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedUrl = parsed) +}; + +/** + * Parse the `req` original url with fallback and memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function originalurl (req) { + var url = req.originalUrl + + if (typeof url !== 'string') { + // Fallback + return parseurl(req) + } + + var parsed = req._parsedOriginalUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedOriginalUrl = parsed) +}; + +/** + * Parse the `str` url with fast-path short-cut. + * + * @param {string} str + * @return {Object} + * @private + */ + +function fastparse (str) { + if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) { + return parse(str) + } + + var pathname = str + var query = null + var search = null + + // This takes the regexp from https://github.com/joyent/node/pull/7878 + // Which is /^(\/[^?#\s]*)(\?[^#\s]*)?$/ + // And unrolls it into a for loop + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 0x3f: /* ? */ + if (search === null) { + pathname = str.substring(0, i) + query = str.substring(i + 1) + search = str.substring(i) + } + break + case 0x09: /* \t */ + case 0x0a: /* \n */ + case 0x0c: /* \f */ + case 0x0d: /* \r */ + case 0x20: /* */ + case 0x23: /* # */ + case 0xa0: + case 0xfeff: + return parse(str) + } + } + + var url = Url !== undefined + ? new Url() + : {} + + url.path = str + url.href = str + url.pathname = pathname + + if (search !== null) { + url.query = query + url.search = search + } + + return url +} + +/** + * Determine if parsed is still fresh for url. + * + * @param {string} url + * @param {object} parsedUrl + * @return {boolean} + * @private + */ + +function fresh (url, parsedUrl) { + return typeof parsedUrl === 'object' && + parsedUrl !== null && + (Url === undefined || parsedUrl instanceof Url) && + parsedUrl._raw === url +} diff --git a/data_node_red/node_modules/parseurl/package.json b/data_node_red/node_modules/parseurl/package.json new file mode 100644 index 0000000..189caff --- /dev/null +++ b/data_node_red/node_modules/parseurl/package.json @@ -0,0 +1,79 @@ +{ + "_from": "parseurl@~1.3.3", + "_id": "parseurl@1.3.3", + "_inBundle": false, + "_integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "_location": "/parseurl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "parseurl@~1.3.3", + "name": "parseurl", + "escapedName": "parseurl", + "rawSpec": "~1.3.3", + "saveSpec": null, + "fetchSpec": "~1.3.3" + }, + "_requiredBy": [ + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "_shasum": "9da19e7bee8d12dff0513ed5b76957793bc2e8d4", + "_spec": "parseurl@~1.3.3", + "_where": "/data/node_modules/serve-static", + "bugs": { + "url": "https://github.com/pillarjs/parseurl/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "parse a url with memoization", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.1", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "fast-url-parser": "1.1.3", + "istanbul": "0.4.5", + "mocha": "6.1.3" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/parseurl#readme", + "license": "MIT", + "name": "parseurl", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/parseurl.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --check-leaks --bail --reporter spec test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" + }, + "version": "1.3.3" +} diff --git a/data_node_red/node_modules/process-nextick-args/index.js b/data_node_red/node_modules/process-nextick-args/index.js new file mode 100644 index 0000000..3eecf11 --- /dev/null +++ b/data_node_red/node_modules/process-nextick-args/index.js @@ -0,0 +1,45 @@ +'use strict'; + +if (typeof process === 'undefined' || + !process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = { nextTick: nextTick }; +} else { + module.exports = process +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + diff --git a/data_node_red/node_modules/process-nextick-args/license.md b/data_node_red/node_modules/process-nextick-args/license.md new file mode 100644 index 0000000..c67e353 --- /dev/null +++ b/data_node_red/node_modules/process-nextick-args/license.md @@ -0,0 +1,19 @@ +# Copyright (c) 2015 Calvin Metcalf + +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.** diff --git a/data_node_red/node_modules/process-nextick-args/package.json b/data_node_red/node_modules/process-nextick-args/package.json new file mode 100644 index 0000000..25ca1c7 --- /dev/null +++ b/data_node_red/node_modules/process-nextick-args/package.json @@ -0,0 +1,50 @@ +{ + "_from": "process-nextick-args@~2.0.0", + "_id": "process-nextick-args@2.0.1", + "_inBundle": false, + "_integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "_location": "/process-nextick-args", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "process-nextick-args@~2.0.0", + "name": "process-nextick-args", + "escapedName": "process-nextick-args", + "rawSpec": "~2.0.0", + "saveSpec": null, + "fetchSpec": "~2.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "_shasum": "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", + "_spec": "process-nextick-args@~2.0.0", + "_where": "/data/node_modules/readable-stream", + "author": "", + "bugs": { + "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "process.nextTick but always with args", + "devDependencies": { + "tap": "~0.2.6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "license": "MIT", + "main": "index.js", + "name": "process-nextick-args", + "repository": { + "type": "git", + "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "2.0.1" +} diff --git a/data_node_red/node_modules/process-nextick-args/readme.md b/data_node_red/node_modules/process-nextick-args/readme.md new file mode 100644 index 0000000..ecb432c --- /dev/null +++ b/data_node_red/node_modules/process-nextick-args/readme.md @@ -0,0 +1,18 @@ +process-nextick-args +===== + +[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) + +```bash +npm install --save process-nextick-args +``` + +Always be able to pass arguments to process.nextTick, no matter the platform + +```js +var pna = require('process-nextick-args'); + +pna.nextTick(function (a, b, c) { + console.log(a, b, c); +}, 'step', 3, 'profit'); +``` diff --git a/data_node_red/node_modules/range-parser/HISTORY.md b/data_node_red/node_modules/range-parser/HISTORY.md new file mode 100644 index 0000000..70a973d --- /dev/null +++ b/data_node_red/node_modules/range-parser/HISTORY.md @@ -0,0 +1,56 @@ +1.2.1 / 2019-05-10 +================== + + * Improve error when `str` is not a string + +1.2.0 / 2016-06-01 +================== + + * Add `combine` option to combine overlapping ranges + +1.1.0 / 2016-05-13 +================== + + * Fix incorrectly returning -1 when there is at least one valid range + * perf: remove internal function + +1.0.3 / 2015-10-29 +================== + + * perf: enable strict mode + +1.0.2 / 2014-09-08 +================== + + * Support Node.js 0.6 + +1.0.1 / 2014-09-07 +================== + + * Move repository to jshttp + +1.0.0 / 2013-12-11 +================== + + * Add repository to package.json + * Add MIT license + +0.0.4 / 2012-06-17 +================== + + * Change ret -1 for unsatisfiable and -2 when invalid + +0.0.3 / 2012-06-17 +================== + + * Fix last-byte-pos default to len - 1 + +0.0.2 / 2012-06-14 +================== + + * Add `.type` + +0.0.1 / 2012-06-11 +================== + + * Initial release diff --git a/data_node_red/node_modules/range-parser/LICENSE b/data_node_red/node_modules/range-parser/LICENSE new file mode 100644 index 0000000..3599954 --- /dev/null +++ b/data_node_red/node_modules/range-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +```js +var parseRange = require('range-parser') +``` + +### parseRange(size, header, options) + +Parse the given `header` string where `size` is the maximum size of the resource. +An array of ranges will be returned or negative numbers indicating an error parsing. + + * `-2` signals a malformed header string + * `-1` signals an unsatisfiable range + + + +```js +// parse header from request +var range = parseRange(size, req.headers.range) + +// the type of the range +if (range.type === 'bytes') { + // the ranges + range.forEach(function (r) { + // do something with r.start and r.end + }) +} +``` + +#### Options + +These properties are accepted in the options object. + +##### combine + +Specifies if overlapping & adjacent ranges should be combined, defaults to `false`. +When `true`, ranges will be combined and returned as if they were specified that +way in the header. + + + +```js +parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true }) +// => [ +// { start: 0, end: 10 }, +// { start: 50, end: 60 } +// ] +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/range-parser/master +[coveralls-url]: https://coveralls.io/r/jshttp/range-parser?branch=master +[node-image]: https://badgen.net/npm/node/range-parser +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/range-parser +[npm-url]: https://npmjs.org/package/range-parser +[npm-version-image]: https://badgen.net/npm/v/range-parser +[travis-image]: https://badgen.net/travis/jshttp/range-parser/master +[travis-url]: https://travis-ci.org/jshttp/range-parser diff --git a/data_node_red/node_modules/range-parser/index.js b/data_node_red/node_modules/range-parser/index.js new file mode 100644 index 0000000..b7dc5c0 --- /dev/null +++ b/data_node_red/node_modules/range-parser/index.js @@ -0,0 +1,162 @@ +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = rangeParser + +/** + * Parse "Range" header `str` relative to the given file `size`. + * + * @param {Number} size + * @param {String} str + * @param {Object} [options] + * @return {Array} + * @public + */ + +function rangeParser (size, str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string') + } + + var index = str.indexOf('=') + + if (index === -1) { + return -2 + } + + // split the range string + var arr = str.slice(index + 1).split(',') + var ranges = [] + + // add ranges type + ranges.type = str.slice(0, index) + + // parse all ranges + for (var i = 0; i < arr.length; i++) { + var range = arr[i].split('-') + var start = parseInt(range[0], 10) + var end = parseInt(range[1], 10) + + // -nnn + if (isNaN(start)) { + start = size - end + end = size - 1 + // nnn- + } else if (isNaN(end)) { + end = size - 1 + } + + // limit last-byte-pos to current length + if (end > size - 1) { + end = size - 1 + } + + // invalid or unsatisifiable + if (isNaN(start) || isNaN(end) || start > end || start < 0) { + continue + } + + // add range + ranges.push({ + start: start, + end: end + }) + } + + if (ranges.length < 1) { + // unsatisifiable + return -1 + } + + return options && options.combine + ? combineRanges(ranges) + : ranges +} + +/** + * Combine overlapping & adjacent ranges. + * @private + */ + +function combineRanges (ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart) + + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i] + var current = ordered[j] + + if (range.start > current.end + 1) { + // next range + ordered[++j] = range + } else if (range.end > current.end) { + // extend range + current.end = range.end + current.index = Math.min(current.index, range.index) + } + } + + // trim ordered array + ordered.length = j + 1 + + // generate combined range + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex) + + // copy ranges type + combined.type = ranges.type + + return combined +} + +/** + * Map function to add index value to ranges. + * @private + */ + +function mapWithIndex (range, index) { + return { + start: range.start, + end: range.end, + index: index + } +} + +/** + * Map function to remove index value from ranges. + * @private + */ + +function mapWithoutIndex (range) { + return { + start: range.start, + end: range.end + } +} + +/** + * Sort function to sort ranges by index. + * @private + */ + +function sortByRangeIndex (a, b) { + return a.index - b.index +} + +/** + * Sort function to sort ranges by start position. + * @private + */ + +function sortByRangeStart (a, b) { + return a.start - b.start +} diff --git a/data_node_red/node_modules/range-parser/package.json b/data_node_red/node_modules/range-parser/package.json new file mode 100644 index 0000000..b9d351d --- /dev/null +++ b/data_node_red/node_modules/range-parser/package.json @@ -0,0 +1,90 @@ +{ + "_from": "range-parser@~1.2.1", + "_id": "range-parser@1.2.1", + "_inBundle": false, + "_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "_location": "/range-parser", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "range-parser@~1.2.1", + "name": "range-parser", + "escapedName": "range-parser", + "rawSpec": "~1.2.1", + "saveSpec": null, + "fetchSpec": "~1.2.1" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031", + "_spec": "range-parser@~1.2.1", + "_where": "/data/node_modules/send", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/range-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "wyatt.cready@lanetix.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "Range header field string parser", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.1.1" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/range-parser#readme", + "keywords": [ + "range", + "parser", + "http" + ], + "license": "MIT", + "name": "range-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/range-parser.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.2.1" +} diff --git a/data_node_red/node_modules/readable-stream/.travis.yml b/data_node_red/node_modules/readable-stream/.travis.yml new file mode 100644 index 0000000..f62cdac --- /dev/null +++ b/data_node_red/node_modules/readable-stream/.travis.yml @@ -0,0 +1,34 @@ +sudo: false +language: node_js +before_install: + - (test $NPM_LEGACY && npm install -g npm@2 && npm install -g npm@3) || true +notifications: + email: false +matrix: + fast_finish: true + include: + - node_js: '0.8' + env: NPM_LEGACY=true + - node_js: '0.10' + env: NPM_LEGACY=true + - node_js: '0.11' + env: NPM_LEGACY=true + - node_js: '0.12' + env: NPM_LEGACY=true + - node_js: 1 + env: NPM_LEGACY=true + - node_js: 2 + env: NPM_LEGACY=true + - node_js: 3 + env: NPM_LEGACY=true + - node_js: 4 + - node_js: 5 + - node_js: 6 + - node_js: 7 + - node_js: 8 + - node_js: 9 +script: "npm run test" +env: + global: + - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= + - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI= diff --git a/data_node_red/node_modules/readable-stream/CONTRIBUTING.md b/data_node_red/node_modules/readable-stream/CONTRIBUTING.md new file mode 100644 index 0000000..f478d58 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/CONTRIBUTING.md @@ -0,0 +1,38 @@ +# Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +* (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +* (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +* (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +* (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +## Moderation Policy + +The [Node.js Moderation Policy] applies to this WG. + +## Code of Conduct + +The [Node.js Code of Conduct][] applies to this WG. + +[Node.js Code of Conduct]: +https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md +[Node.js Moderation Policy]: +https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md diff --git a/data_node_red/node_modules/readable-stream/GOVERNANCE.md b/data_node_red/node_modules/readable-stream/GOVERNANCE.md new file mode 100644 index 0000000..16ffb93 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/GOVERNANCE.md @@ -0,0 +1,136 @@ +### Streams Working Group + +The Node.js Streams is jointly governed by a Working Group +(WG) +that is responsible for high-level guidance of the project. + +The WG has final authority over this project including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of additional Collaborators + +For the current list of WG members, see the project +[README.md](./README.md#current-project-team-members). + +### Collaborators + +The readable-stream GitHub repository is +maintained by the WG and additional Collaborators who are added by the +WG on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the WG and their addition as +Collaborators is discussed during the WG meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access log an issue or contact a WG member directly and it +will be brought up in the next WG meeting. + +Modifications of the contents of the readable-stream repository are +made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +Collaborators may opt to elevate significant or controversial +modifications, or modifications that have not found consensus to the +WG for discussion by assigning the ***WG-agenda*** tag to a pull +request or issue. The WG should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](./README.md#members). + +### WG Membership + +WG seats are not time-limited. There is no fixed size of the WG. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for WG +membership beyond these rules. + +The WG may add additional members to the WG by unanimous consensus. + +A WG member may be removed from the WG by voluntary resignation, or by +unanimous consensus of all other WG members. + +Changes to WG membership should be posted in the agenda, and may be +suggested as any other agenda item (see "WG Meetings" below). + +If an addition or removal is proposed during a meeting, and the full +WG is not in attendance to participate, then the addition or removal +is added to the agenda for the subsequent meeting. This is to ensure +that all members are given the opportunity to participate in all +membership decisions. If a WG member is unable to attend a meeting +where a planned membership decision is being made, then their consent +is assumed. + +No more than 1/3 of the WG members may be affiliated with the same +employer. If removal or resignation of a WG member, or a change of +employment by a WG member, creates a situation where more than 1/3 of +the WG membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more WG +members affiliated with the over-represented employer(s). + +### WG Meetings + +The WG meets occasionally on a Google Hangout On Air. A designated moderator +approved by the WG runs the meeting. Each meeting should be +published to YouTube. + +Items are added to the WG agenda that are considered contentious or +are modifications of governance, contribution policy, WG membership, +or release process. + +The intention of the agenda is not to approve or review all patches; +that should happen continuously on GitHub and be handled by the larger +group of Collaborators. + +Any community member or contributor can ask that something be added to +the next meeting's agenda by logging a GitHub Issue. Any Collaborator, +WG member or the moderator can add the item to the agenda by adding +the ***WG-agenda*** tag to the issue. + +Prior to each WG meeting the moderator will share the Agenda with +members of the WG. WG members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the WG +cannot veto or remove items. + +The WG may invite persons or representatives from certain projects to +participate in a non-voting capacity. + +The moderator is responsible for summarizing the discussion of each +agenda item and sends it as a pull request after the meeting. + +### Consensus Seeking Process + +The WG follows a +[Consensus +Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision-making model. + +When an agenda item has appeared to reach a consensus the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus a WG member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the WG +or else the discussion will continue. Simple majority wins. + +Note that changes to WG membership require a majority consensus. See +"WG Membership" above. diff --git a/data_node_red/node_modules/readable-stream/LICENSE b/data_node_red/node_modules/readable-stream/LICENSE new file mode 100644 index 0000000..2873b3b --- /dev/null +++ b/data_node_red/node_modules/readable-stream/LICENSE @@ -0,0 +1,47 @@ +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +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. +""" diff --git a/data_node_red/node_modules/readable-stream/README.md b/data_node_red/node_modules/readable-stream/README.md new file mode 100644 index 0000000..23fe3f3 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/README.md @@ -0,0 +1,58 @@ +# readable-stream + +***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) + + +[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) +[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) + + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) + +```bash +npm install --save readable-stream +``` + +***Node-core streams for userland*** + +This package is a mirror of the Streams2 and Streams3 implementations in +Node-core. + +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html). + +If you want to guarantee a stable streams base, regardless of what version of +Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). + +As of version 2.0.0 **readable-stream** uses semantic versioning. + +# Streams Working Group + +`readable-stream` is maintained by the Streams Working Group, which +oversees the development and maintenance of the Streams API within +Node.js. The responsibilities of the Streams Working Group include: + +* Addressing stream issues on the Node.js issue tracker. +* Authoring and editing stream documentation within the Node.js project. +* Reviewing changes to stream subclasses within the Node.js project. +* Redirecting changes to streams from the Node.js project to this + project. +* Assisting in the implementation of stream providers within Node.js. +* Recommending versions of `readable-stream` to be included in Node.js. +* Messaging about the future of streams to give the community advance + notice of changes. + + +## Team Members + +* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> + - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B +* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> + - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 +* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> + - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D +* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> +* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> +* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> +* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com> + - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E +* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com> diff --git a/data_node_red/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/data_node_red/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md new file mode 100644 index 0000000..83275f1 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md @@ -0,0 +1,60 @@ +# streams WG Meeting 2015-01-30 + +## Links + +* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg +* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 +* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ + +## Agenda + +Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. + +* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) +* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) +* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) +* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) + +## Minutes + +### adopt a charter + +* group: +1's all around + +### What versioning scheme should be adopted? +* group: +1鈥檚 3.0.0 +* domenic+group: pulling in patches from other sources where appropriate +* mikeal: version independently, suggesting versions for io.js +* mikeal+domenic: work with TC to notify in advance of changes +simpler stream creation + +### streamline creation of streams +* sam: streamline creation of streams +* domenic: nice simple solution posted + but, we lose the opportunity to change the model + may not be backwards incompatible (double check keys) + + **action item:** domenic will check + +### remove implicit flowing of streams on(鈥榙ata鈥) +* add isFlowing / isPaused +* mikeal: worrying that we鈥檙e documenting polyfill methods 鈥 confuses users +* domenic: more reflective API is probably good, with warning labels for users +* new section for mad scientists (reflective stream access) +* calvin: name the 鈥渢hird state鈥 +* mikeal: maybe borrow the name from whatwg? +* domenic: we鈥檙e missing the 鈥渢hird state鈥 +* consensus: kind of difficult to name the third state +* mikeal: figure out differences in states / compat +* mathias: always flow on data 鈥 eliminates third state + * explore what it breaks + +**action items:** +* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) +* ask rod/build for infrastructure +* **chris**: explore the 鈥渇low on data鈥 approach +* add isPaused/isFlowing +* add new docs section +* move isPaused to that section + + diff --git a/data_node_red/node_modules/readable-stream/duplex-browser.js b/data_node_red/node_modules/readable-stream/duplex-browser.js new file mode 100644 index 0000000..f8b2db8 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/duplex-browser.js @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_duplex.js'); diff --git a/data_node_red/node_modules/readable-stream/duplex.js b/data_node_red/node_modules/readable-stream/duplex.js new file mode 100644 index 0000000..46924cb --- /dev/null +++ b/data_node_red/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require('./readable').Duplex diff --git a/data_node_red/node_modules/readable-stream/lib/_stream_duplex.js b/data_node_red/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 0000000..57003c3 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,131 @@ +// 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. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +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]; + } +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + 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, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + pna.nextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + pna.nextTick(cb, err); +}; \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/_stream_passthrough.js b/data_node_red/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 0000000..612edb4 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,47 @@ +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +'use strict'; + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/_stream_readable.js b/data_node_red/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 0000000..0f80764 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,1019 @@ +// 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. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Readable; + +/**/ +var isArray = require('isarray'); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = require('events').EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var debugUtil = require('util'); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = require('./internal/streams/BufferList'); +var destroyImpl = require('./internal/streams/destroy'); +var StringDecoder; + +util.inherits(Readable, Stream); + +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]]; +} + +function ReadableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + 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; + + // 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; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; + +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + + return needMoreData(state); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + pna.nextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, 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); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this, unpipeInfo); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + pna.nextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + pna.nextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// 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; + + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + + _this.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // 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); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return this; +}; + +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; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + pna.nextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/_stream_transform.js b/data_node_red/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 0000000..fcfc105 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,214 @@ +// 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. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +'use strict'; + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return this.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); + + cb(er); + + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // 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); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this2 = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this2.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 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'); + + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/_stream_writable.js b/data_node_red/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 0000000..b0b0220 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,687 @@ +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var internalUtil = { + deprecate: require('util-deprecate') +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +var destroyImpl = require('./internal/streams/destroy'); + +util.inherits(Writable, Stream); + +function nop() {} + +function WritableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + 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; + + // 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; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + 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; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +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); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + pna.nextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(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. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + pna.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + pna.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + 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 + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + pna.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/internal/streams/BufferList.js b/data_node_red/node_modules/readable-stream/lib/internal/streams/BufferList.js new file mode 100644 index 0000000..aefc68b --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/internal/streams/BufferList.js @@ -0,0 +1,79 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = require('safe-buffer').Buffer; +var util = require('util'); + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + 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; + }; +} \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/internal/streams/destroy.js b/data_node_red/node_modules/readable-stream/lib/internal/streams/destroy.js new file mode 100644 index 0000000..5a0a0d8 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -0,0 +1,74 @@ +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + pna.nextTick(emitErrorNT, this, err); + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + pna.nextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + + return this; +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; \ No newline at end of file diff --git a/data_node_red/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/data_node_red/node_modules/readable-stream/lib/internal/streams/stream-browser.js new file mode 100644 index 0000000..9332a3f --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/internal/streams/stream-browser.js @@ -0,0 +1 @@ +module.exports = require('events').EventEmitter; diff --git a/data_node_red/node_modules/readable-stream/lib/internal/streams/stream.js b/data_node_red/node_modules/readable-stream/lib/internal/streams/stream.js new file mode 100644 index 0000000..ce2ad5b --- /dev/null +++ b/data_node_red/node_modules/readable-stream/lib/internal/streams/stream.js @@ -0,0 +1 @@ +module.exports = require('stream'); diff --git a/data_node_red/node_modules/readable-stream/package.json b/data_node_red/node_modules/readable-stream/package.json new file mode 100644 index 0000000..560a199 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/package.json @@ -0,0 +1,81 @@ +{ + "_from": "readable-stream@2.3.7", + "_id": "readable-stream@2.3.7", + "_inBundle": false, + "_integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "_location": "/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@2.3.7", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "2.3.7", + "saveSpec": null, + "fetchSpec": "2.3.7" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "_shasum": "1eca1cf711aef814c04f62252a36a62f6cb23b57", + "_spec": "readable-stream@2.3.7", + "_where": "/data/node_modules/mysql", + "browser": { + "util": false, + "./readable.js": "./readable-browser.js", + "./writable.js": "./writable-browser.js", + "./duplex.js": "./duplex-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, + "bundleDependencies": false, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "deprecated": false, + "description": "Streams3, a user-land copy of the stream library from Node.js", + "devDependencies": { + "assert": "^1.4.0", + "babel-polyfill": "^6.9.1", + "buffer": "^4.9.0", + "lolex": "^2.3.2", + "nyc": "^6.4.0", + "tap": "^0.7.0", + "tape": "^4.8.0" + }, + "homepage": "https://github.com/nodejs/readable-stream#readme", + "keywords": [ + "readable", + "stream", + "pipe" + ], + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", + "nyc": { + "include": [ + "lib/**.js" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js" + }, + "version": "2.3.7" +} diff --git a/data_node_red/node_modules/readable-stream/passthrough.js b/data_node_red/node_modules/readable-stream/passthrough.js new file mode 100644 index 0000000..ffd791d --- /dev/null +++ b/data_node_red/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require('./readable').PassThrough diff --git a/data_node_red/node_modules/readable-stream/readable-browser.js b/data_node_red/node_modules/readable-stream/readable-browser.js new file mode 100644 index 0000000..e503725 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/readable-browser.js @@ -0,0 +1,7 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = require('./lib/_stream_writable.js'); +exports.Duplex = require('./lib/_stream_duplex.js'); +exports.Transform = require('./lib/_stream_transform.js'); +exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/data_node_red/node_modules/readable-stream/readable.js b/data_node_red/node_modules/readable-stream/readable.js new file mode 100644 index 0000000..ec89ec5 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/readable.js @@ -0,0 +1,19 @@ +var Stream = require('stream'); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream; + exports = module.exports = Stream.Readable; + exports.Readable = Stream.Readable; + exports.Writable = Stream.Writable; + exports.Duplex = Stream.Duplex; + exports.Transform = Stream.Transform; + exports.PassThrough = Stream.PassThrough; + exports.Stream = Stream; +} else { + exports = module.exports = require('./lib/_stream_readable.js'); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = require('./lib/_stream_writable.js'); + exports.Duplex = require('./lib/_stream_duplex.js'); + exports.Transform = require('./lib/_stream_transform.js'); + exports.PassThrough = require('./lib/_stream_passthrough.js'); +} diff --git a/data_node_red/node_modules/readable-stream/transform.js b/data_node_red/node_modules/readable-stream/transform.js new file mode 100644 index 0000000..b1baba2 --- /dev/null +++ b/data_node_red/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require('./readable').Transform diff --git a/data_node_red/node_modules/readable-stream/writable-browser.js b/data_node_red/node_modules/readable-stream/writable-browser.js new file mode 100644 index 0000000..ebdde6a --- /dev/null +++ b/data_node_red/node_modules/readable-stream/writable-browser.js @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_writable.js'); diff --git a/data_node_red/node_modules/readable-stream/writable.js b/data_node_red/node_modules/readable-stream/writable.js new file mode 100644 index 0000000..3211a6f --- /dev/null +++ b/data_node_red/node_modules/readable-stream/writable.js @@ -0,0 +1,8 @@ +var Stream = require("stream") +var Writable = require("./lib/_stream_writable.js") + +if (process.env.READABLE_STREAM === 'disable') { + module.exports = Stream && Stream.Writable || Writable +} else { + module.exports = Writable +} diff --git a/data_node_red/node_modules/safe-buffer/LICENSE b/data_node_red/node_modules/safe-buffer/LICENSE new file mode 100644 index 0000000..0c068ce --- /dev/null +++ b/data_node_red/node_modules/safe-buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +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. diff --git a/data_node_red/node_modules/safe-buffer/README.md b/data_node_red/node_modules/safe-buffer/README.md new file mode 100644 index 0000000..e9a81af --- /dev/null +++ b/data_node_red/node_modules/safe-buffer/README.md @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a t茅st'); +console.log(buf1.toString()); + // prints: this is a t茅st +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a t茅st +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git a/data_node_red/node_modules/safe-buffer/index.d.ts b/data_node_red/node_modules/safe-buffer/index.d.ts new file mode 100644 index 0000000..e9fed80 --- /dev/null +++ b/data_node_red/node_modules/safe-buffer/index.d.ts @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git a/data_node_red/node_modules/safe-buffer/index.js b/data_node_red/node_modules/safe-buffer/index.js new file mode 100644 index 0000000..22438da --- /dev/null +++ b/data_node_red/node_modules/safe-buffer/index.js @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git a/data_node_red/node_modules/safe-buffer/package.json b/data_node_red/node_modules/safe-buffer/package.json new file mode 100644 index 0000000..05a277b --- /dev/null +++ b/data_node_red/node_modules/safe-buffer/package.json @@ -0,0 +1,64 @@ +{ + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "/mysql", + "/readable-stream", + "/string_decoder" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@5.1.2", + "_where": "/data/node_modules/mysql", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git a/data_node_red/node_modules/send/HISTORY.md b/data_node_red/node_modules/send/HISTORY.md new file mode 100644 index 0000000..d14ac06 --- /dev/null +++ b/data_node_red/node_modules/send/HISTORY.md @@ -0,0 +1,496 @@ +0.17.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect & error responses + * deps: range-parser@~1.2.1 + +0.17.0 / 2019-05-03 +=================== + + * deps: http-errors@~1.7.2 + - Set constructor name when possible + - Use `toidentifier` module to make class names + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: mime@1.6.0 + - Add extensions for JPEG-2000 images + - Add new `font/*` types from IANA + - Add WASM mapping + - Update `.bdoc` to `application/bdoc` + - Update `.bmp` to `image/bmp` + - Update `.m4a` to `audio/mp4` + - Update `.rtf` to `application/rtf` + - Update `.wav` to `audio/wav` + - Update `.xml` to `application/xml` + - Update generic extensions to `application/octet-stream`: + `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` + - Use mime-score module to resolve extension conflicts + * deps: ms@2.1.1 + - Add `week`/`w` support + - Fix negative number handling + * deps: statuses@~1.5.0 + * perf: remove redundant `path.normalize` call + +0.16.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in default error & redirects + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +0.16.1 / 2017-09-29 +=================== + + * Fix regression in edge-case behavior for empty `path` + +0.16.0 / 2017-09-27 +=================== + + * Add `immutable` option + * Fix missing `` in default error & redirects + * Use instance methods on steam to check for listeners + * deps: mime@1.4.1 + - Add 70 new types for file extensions + - Set charset as "UTF-8" for .js and .json + * perf: improve path validation speed + +0.15.6 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: improve `If-Match` token parsing + +0.15.5 / 2017-09-20 +=================== + + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + +0.15.4 / 2017-08-05 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + +0.15.3 / 2017-05-16 +=================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: ms@2.0.0 + +0.15.2 / 2017-04-26 +=================== + + * deps: debug@2.6.4 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@0.7.3 + * deps: ms@1.0.0 + +0.15.1 / 2017-03-04 +=================== + + * Fix issue when `Date.parse` does not return `NaN` on invalid date + * Fix strict violation in broken environments + +0.15.0 / 2017-02-25 +=================== + + * Support `If-Match` and `If-Unmodified-Since` headers + * Add `res` and `path` arguments to `directory` event + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Send complete HTML document in redirect & error responses + * Set default CSP header in redirect & error responses + * Use `res.getHeaderNames()` when available + * Use `res.headersSent` when available + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + +0.14.2 / 2017-01-23 +=================== + + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: ms@0.7.2 + * deps: statuses@~1.3.1 + +0.14.1 / 2016-06-09 +=================== + + * Fix redirect error when `path` contains raw non-URL characters + * Fix redirect when `path` starts with multiple forward slashes + +0.14.0 / 2016-06-06 +=================== + + * Add `acceptRanges` option + * Add `cacheControl` option + * Attempt to combine multiple ranges into single range + * Correctly inherit from `Stream` class + * Fix `Content-Range` header in 416 responses when using `start`/`end` options + * Fix `Content-Range` header missing from default 416 responses + * Ignore non-byte `Range` headers + * deps: http-errors@~1.5.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - Support new code `421 Misdirected Request` + - Use `setprototypeof` module to replace `__proto__` setting + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: range-parser@~1.2.0 + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: statuses@~1.3.0 + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: remove argument reassignment + +0.13.2 / 2016-03-05 +=================== + + * Fix invalid `Content-Type` header when `send.mime.default_type` unset + +0.13.1 / 2016-01-16 +=================== + + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: destroy@~1.0.4 + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: range-parser@~1.0.3 + - perf: enable strict mode + +0.13.0 / 2015-06-16 +=================== + + * Allow Node.js HTTP server to set `Date` response header + * Fix incorrectly removing `Content-Location` on 304 response + * Improve the default redirect response headers + * Send appropriate headers on default error response + * Use `http-errors` for standard emitted errors + * Use `statuses` instead of `http` module for status messages + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Improve stat performance by removing hashing + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove unnecessary array allocations + +0.12.3 / 2015-05-13 +=================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: ms@0.7.1 + - Prevent extraordinarily long inputs + * deps: on-finished@~2.2.1 + +0.12.2 / 2015-03-13 +=================== + + * Throw errors early for invalid `extensions` or `index` options + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.12.1 / 2015-02-17 +=================== + + * Fix regression sending zero-length files + +0.12.0 / 2015-02-16 +=================== + + * Always read the stat size from the file + * Fix mutating passed-in `options` + * deps: mime@1.3.4 + +0.11.1 / 2015-01-20 +=================== + + * Fix `root` path disclosure + +0.11.0 / 2015-01-05 +=================== + + * deps: debug@~2.1.1 + * deps: etag@~1.5.1 + - deps: crc@3.2.1 + * deps: ms@0.7.0 + - Add `milliseconds` + - Add `msecs` + - Add `secs` + - Add `mins` + - Add `hrs` + - Add `yrs` + * deps: on-finished@~2.2.0 + +0.10.1 / 2014-10-22 +=================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.10.0 / 2014-10-15 +=================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + +0.9.3 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + - Support "fake" stats objects + +0.9.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: range-parser@~1.0.2 + +0.9.1 / 2014-09-07 +================== + + * deps: fresh@0.2.4 + +0.9.0 / 2014-09-07 +================== + + * Add `lastModified` option + * Use `etag` to generate `ETag` header + * deps: debug@~2.0.0 + +0.8.5 / 2014-09-04 +================== + + * Fix malicious path detection for empty string path + +0.8.4 / 2014-09-04 +================== + + * Fix a path traversal issue when using `root` + +0.8.3 / 2014-08-16 +================== + + * deps: destroy@1.0.3 + - renamed from dethroy + * deps: on-finished@2.1.0 + +0.8.2 / 2014-08-14 +================== + + * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: dethroy@1.0.2 + +0.8.1 / 2014-08-05 +================== + + * Fix `extensions` behavior when file already has extension + +0.8.0 / 2014-08-05 +================== + + * Add `extensions` option + +0.7.4 / 2014-08-04 +================== + + * Fix serving index files without root dir + +0.7.3 / 2014-07-29 +================== + + * Fix incorrect 403 on Windows and Node.js 0.11 + +0.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +0.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +0.7.0 / 2014-07-20 +================== + + * Deprecate `hidden` option; use `dotfiles` option + * Add `dotfiles` option + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + +0.6.0 / 2014-07-11 +================== + + * Deprecate `from` option; use `root` option + * Deprecate `send.etag()` -- use `etag` in `options` + * Deprecate `send.hidden()` -- use `hidden` in `options` + * Deprecate `send.index()` -- use `index` in `options` + * Deprecate `send.maxage()` -- use `maxAge` in `options` + * Deprecate `send.root()` -- use `root` in `options` + * Cap `maxAge` value to 1 year + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.5.0 / 2014-06-28 +================== + + * Accept string for `maxAge` (converted by `ms`) + * Add `headers` event + * Include link in default redirect response + * Use `EventEmitter.listenerCount` to count listeners + +0.4.3 / 2014-06-11 +================== + + * Do not throw un-catchable error on file open race condition + * Use `escape-html` for HTML escaping + * deps: debug@1.0.2 + - fix some debugging output colors on node.js 0.8 + * deps: finished@1.2.2 + * deps: fresh@0.2.2 + +0.4.2 / 2014-06-09 +================== + + * fix "event emitter leak" warnings + * deps: debug@1.0.1 + * deps: finished@1.2.1 + +0.4.1 / 2014-06-02 +================== + + * Send `max-age` in `Cache-Control` in correct format + +0.4.0 / 2014-05-27 +================== + + * Calculate ETag with md5 for reduced collisions + * Fix wrong behavior when index file matches directory + * Ignore stream errors after request ends + - Goodbye `EBADF, read` + * Skip directories in index file search + * deps: debug@0.8.1 + +0.3.0 / 2014-04-24 +================== + + * Fix sending files with dots without root set + * Coerce option types + * Accept API options in options object + * Set etags to "weak" + * Include file path in etag + * Make "Can't set headers after they are sent." catchable + * Send full entity-body for multi range requests + * Default directory access to 403 when index disabled + * Support multiple index paths + * Support "If-Range" header + * Control whether to generate etags + * deps: mime@1.2.11 + +0.2.0 / 2014-01-29 +================== + + * update range-parser and fresh + +0.1.4 / 2013-08-11 +================== + + * update fresh + +0.1.3 / 2013-07-08 +================== + + * Revert "Fix fd leak" + +0.1.2 / 2013-07-03 +================== + + * Fix fd leak + +0.1.0 / 2012-08-25 +================== + + * add options parameter to send() that is passed to fs.createReadStream() [kanongil] + +0.0.4 / 2012-08-16 +================== + + * allow custom "Accept-Ranges" definition + +0.0.3 / 2012-07-16 +================== + + * fix normalization of the root directory. Closes #3 + +0.0.2 / 2012-07-09 +================== + + * add passing of req explicitly for now (YUCK) + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/data_node_red/node_modules/send/LICENSE b/data_node_red/node_modules/send/LICENSE new file mode 100644 index 0000000..4aa69e8 --- /dev/null +++ b/data_node_red/node_modules/send/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/send/README.md b/data_node_red/node_modules/send/README.md new file mode 100644 index 0000000..179e8c3 --- /dev/null +++ b/data_node_red/node_modules/send/README.md @@ -0,0 +1,329 @@ +# send + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Send is a library for streaming files from the file system as a http response +supporting partial responses (Ranges), conditional-GET negotiation (If-Match, +If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage, +and granular events which may be leveraged to take appropriate actions in your +application or framework. + +Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install send +``` + +## API + + + +```js +var send = require('send') +``` + +### send(req, path, [options]) + +Create a new `SendStream` for the given path to send to a `res`. The `req` is +the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, +not the actual file-system path). + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + +Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Send a 403 for any request for a dotfile. + - `'ignore'` Pretend like the dotfile does not exist and 404. + +The default value is _similar_ to `'ignore'`, with the exception that +this default will not ignore the files within a directory that begins +with a dot, for backward-compatibility. + +##### end + +Byte offset at which the stream ends, defaults to the length of the file +minus 1. The end is inclusive in the stream, meaning `end: 3` will include +the 4th byte in the stream. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +If a given file doesn't exist, try appending one of the given extensions, +in the given order. By default, this is disabled (set to `false`). An +example value that will serve extension-less HTML files: `['html', 'htm']`. +This is skipped if the requested file already has an extension. + +##### immutable + +Enable or diable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default send supports "index.html" files, to disable this +set `false` or to supply a new index pass a string or an array +in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. +This can also be a string accepted by the +[ms](https://www.npmjs.org/package/ms#readme) module. + +##### root + +Serve files relative to `path`. + +##### start + +Byte offset at which the stream starts, defaults to 0. The start is inclusive, +meaning `start: 2` will include the 3rd byte in the stream. + +#### Events + +The `SendStream` is an event emitter and will emit the following events: + + - `error` an error occurred `(err)` + - `directory` a directory was requested `(res, path)` + - `file` a file was requested `(path, stat)` + - `headers` the headers are about to be set on a file `(res, path, stat)` + - `stream` file streaming has started `(stream)` + - `end` streaming has completed + +#### .pipe + +The `pipe` method is used to pipe the response into the Node.js HTTP response +object, typically `send(req, path, options).pipe(res)`. + +### .mime + +The `mime` export is the global instance of of the +[`mime` npm module](https://www.npmjs.com/package/mime). + +This is used to configure the MIME types that are associated with file extensions +as well as other options for how to resolve the MIME type of a file (like the +default type to use for an unknown file extension). + +## Error-handling + +By default when no `error` listeners are present an automatic response will be +made, otherwise you have full control over the response, aka you may show a 5xx +page etc. + +## Caching + +It does _not_ perform internal caching, you should use a reverse proxy cache +such as Varnish for this, or those fancy things called CDNs. If your +application is small enough that it would benefit from single-node memory +caching, it's small enough that it does not need caching at all ;). + +## Debugging + +To enable `debug()` instrumentation output export __DEBUG__: + +``` +$ DEBUG=send node app +``` + +## Running tests + +``` +$ npm install +$ npm test +``` + +## Examples + +### Serve a specific file + +This simple example will send a specific file to all requests. + +```js +var http = require('http') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, '/path/to/index.html') + .pipe(res) +}) + +server.listen(3000) +``` + +### Serve all files from a directory + +This simple example will just serve up all the files in a +given directory as the top-level. For example, a request +`GET /foo.txt` will send back `/www/public/foo.txt`. + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom file types + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +// Default unknown types to text/plain +send.mime.default_type = 'text/plain' + +// Add a custom type +send.mime.define({ + 'application/x-my-type': ['x-mt', 'x-mtt'] +}) + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom directory index view + +This is a example of serving up a structure of directories with a +custom function to render a listing of a directory. + +```js +var http = require('http') +var fs = require('fs') +var parseUrl = require('parseurl') +var send = require('send') + +// Transfer arbitrary files from within /www/example.com/public/* +// with a custom handler for directory listing +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { index: false, root: '/www/public' }) + .once('directory', directory) + .pipe(res) +}) + +server.listen(3000) + +// Custom directory handler +function directory (res, path) { + var stream = this + + // redirect to trailing slash for consistent url + if (!stream.hasTrailingSlash()) { + return stream.redirect(path) + } + + // get directory list + fs.readdir(path, function onReaddir (err, list) { + if (err) return stream.error(err) + + // render an index for the directory + res.setHeader('Content-Type', 'text/plain; charset=UTF-8') + res.end(list.join('\n') + '\n') + }) +} +``` + +### Serving from a root directory with custom error-handling + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + // your custom error-handling logic: + function error (err) { + res.statusCode = err.status || 500 + res.end(err.message) + } + + // your custom headers + function headers (res, path, stat) { + // serve all files for download + res.setHeader('Content-Disposition', 'attachment') + } + + // your custom directory handling logic: + function redirect () { + res.statusCode = 301 + res.setHeader('Location', req.url + '/') + res.end('Redirecting to ' + req.url + '/') + } + + // transfer arbitrary files from within + // /www/example.com/public/* + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .on('error', error) + .on('directory', redirect) + .on('headers', headers) + .pipe(res) +}) + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/send/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/send/master +[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master +[node-image]: https://badgen.net/npm/node/send +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/send +[npm-url]: https://npmjs.org/package/send +[npm-version-image]: https://badgen.net/npm/v/send +[travis-image]: https://badgen.net/travis/pillarjs/send/master?label=linux +[travis-url]: https://travis-ci.org/pillarjs/send diff --git a/data_node_red/node_modules/send/index.js b/data_node_red/node_modules/send/index.js new file mode 100644 index 0000000..fca2112 --- /dev/null +++ b/data_node_red/node_modules/send/index.js @@ -0,0 +1,1129 @@ +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('send') +var deprecate = require('depd')('send') +var destroy = require('destroy') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var etag = require('etag') +var fresh = require('fresh') +var fs = require('fs') +var mime = require('mime') +var ms = require('ms') +var onFinished = require('on-finished') +var parseRange = require('range-parser') +var path = require('path') +var statuses = require('statuses') +var Stream = require('stream') +var util = require('util') + +/** + * Path function references. + * @private + */ + +var extname = path.extname +var join = path.join +var normalize = path.normalize +var resolve = path.resolve +var sep = path.sep + +/** + * Regular expression for identifying a bytes Range header. + * @private + */ + +var BYTES_RANGE_REGEXP = /^ *bytes=/ + +/** + * Maximum value allowed for the max age. + * @private + */ + +var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year + +/** + * Regular expression to match a path with a directory up component. + * @private + */ + +var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = send +module.exports.mime = mime + +/** + * Return a `SendStream` for `req` and `path`. + * + * @param {object} req + * @param {string} path + * @param {object} [options] + * @return {SendStream} + * @public + */ + +function send (req, path, options) { + return new SendStream(req, path, options) +} + +/** + * Initialize a `SendStream` with the given `path`. + * + * @param {Request} req + * @param {String} path + * @param {object} [options] + * @private + */ + +function SendStream (req, path, options) { + Stream.call(this) + + var opts = options || {} + + this.options = opts + this.path = path + this.req = req + + this._acceptRanges = opts.acceptRanges !== undefined + ? Boolean(opts.acceptRanges) + : true + + this._cacheControl = opts.cacheControl !== undefined + ? Boolean(opts.cacheControl) + : true + + this._etag = opts.etag !== undefined + ? Boolean(opts.etag) + : true + + this._dotfiles = opts.dotfiles !== undefined + ? opts.dotfiles + : 'ignore' + + if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') + } + + this._hidden = Boolean(opts.hidden) + + if (opts.hidden !== undefined) { + deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') + } + + // legacy support + if (opts.dotfiles === undefined) { + this._dotfiles = undefined + } + + this._extensions = opts.extensions !== undefined + ? normalizeList(opts.extensions, 'extensions option') + : [] + + this._immutable = opts.immutable !== undefined + ? Boolean(opts.immutable) + : false + + this._index = opts.index !== undefined + ? normalizeList(opts.index, 'index option') + : ['index.html'] + + this._lastModified = opts.lastModified !== undefined + ? Boolean(opts.lastModified) + : true + + this._maxage = opts.maxAge || opts.maxage + this._maxage = typeof this._maxage === 'string' + ? ms(this._maxage) + : Number(this._maxage) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + + this._root = opts.root + ? resolve(opts.root) + : null + + if (!this._root && opts.from) { + this.from(opts.from) + } +} + +/** + * Inherits from `Stream`. + */ + +util.inherits(SendStream, Stream) + +/** + * Enable or disable etag generation. + * + * @param {Boolean} val + * @return {SendStream} + * @api public + */ + +SendStream.prototype.etag = deprecate.function(function etag (val) { + this._etag = Boolean(val) + debug('etag %s', this._etag) + return this +}, 'send.etag: pass etag as option') + +/** + * Enable or disable "hidden" (dot) files. + * + * @param {Boolean} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.hidden = deprecate.function(function hidden (val) { + this._hidden = Boolean(val) + this._dotfiles = undefined + debug('hidden %s', this._hidden) + return this +}, 'send.hidden: use dotfiles option') + +/** + * Set index `paths`, set to a falsy + * value to disable index support. + * + * @param {String|Boolean|Array} paths + * @return {SendStream} + * @api public + */ + +SendStream.prototype.index = deprecate.function(function index (paths) { + var index = !paths ? [] : normalizeList(paths, 'paths argument') + debug('index %o', paths) + this._index = index + return this +}, 'send.index: pass index as option') + +/** + * Set root `path`. + * + * @param {String} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.root = function root (path) { + this._root = resolve(String(path)) + debug('root %s', this._root) + return this +} + +SendStream.prototype.from = deprecate.function(SendStream.prototype.root, + 'send.from: pass root as option') + +SendStream.prototype.root = deprecate.function(SendStream.prototype.root, + 'send.root: pass root as option') + +/** + * Set max-age to `maxAge`. + * + * @param {Number} maxAge + * @return {SendStream} + * @api public + */ + +SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) { + this._maxage = typeof maxAge === 'string' + ? ms(maxAge) + : Number(maxAge) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + debug('max-age %d', this._maxage) + return this +}, 'send.maxage: pass maxAge as option') + +/** + * Emit error with `status`. + * + * @param {number} status + * @param {Error} [err] + * @private + */ + +SendStream.prototype.error = function error (status, err) { + // emit if listeners instead of responding + if (hasListeners(this, 'error')) { + return this.emit('error', createError(status, err, { + expose: false + })) + } + + var res = this.res + var msg = statuses[status] || String(status) + var doc = createHtmlDocument('Error', escapeHtml(msg)) + + // clear existing headers + clearHeaders(res) + + // add error headers + if (err && err.headers) { + setHeaders(res, err.headers) + } + + // send basic response + res.statusCode = status + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.end(doc) +} + +/** + * Check if the pathname ends with "/". + * + * @return {boolean} + * @private + */ + +SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () { + return this.path[this.path.length - 1] === '/' +} + +/** + * Check if this is a conditional GET request. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isConditionalGET = function isConditionalGET () { + return this.req.headers['if-match'] || + this.req.headers['if-unmodified-since'] || + this.req.headers['if-none-match'] || + this.req.headers['if-modified-since'] +} + +/** + * Check if the request preconditions failed. + * + * @return {boolean} + * @private + */ + +SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () { + var req = this.req + var res = this.res + + // if-match + var match = req.headers['if-match'] + if (match) { + var etag = res.getHeader('ETag') + return !etag || (match !== '*' && parseTokenList(match).every(function (match) { + return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag + })) + } + + // if-unmodified-since + var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since']) + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader('Last-Modified')) + return isNaN(lastModified) || lastModified > unmodifiedSince + } + + return false +} + +/** + * Strip content-* header fields. + * + * @private + */ + +SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () { + var res = this.res + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + var header = headers[i] + if (header.substr(0, 8) === 'content-' && header !== 'content-location') { + res.removeHeader(header) + } + } +} + +/** + * Respond with 304 not modified. + * + * @api private + */ + +SendStream.prototype.notModified = function notModified () { + var res = this.res + debug('not modified') + this.removeContentHeaderFields() + res.statusCode = 304 + res.end() +} + +/** + * Raise error that headers already sent. + * + * @api private + */ + +SendStream.prototype.headersAlreadySent = function headersAlreadySent () { + var err = new Error('Can\'t set headers after they are sent.') + debug('headers already sent') + this.error(500, err) +} + +/** + * Check if the request is cacheable, aka + * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isCachable = function isCachable () { + var statusCode = this.res.statusCode + return (statusCode >= 200 && statusCode < 300) || + statusCode === 304 +} + +/** + * Handle stat() error. + * + * @param {Error} error + * @private + */ + +SendStream.prototype.onStatError = function onStatError (error) { + switch (error.code) { + case 'ENAMETOOLONG': + case 'ENOENT': + case 'ENOTDIR': + this.error(404, error) + break + default: + this.error(500, error) + break + } +} + +/** + * Check if the cache is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isFresh = function isFresh () { + return fresh(this.req.headers, { + 'etag': this.res.getHeader('ETag'), + 'last-modified': this.res.getHeader('Last-Modified') + }) +} + +/** + * Check if the range is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isRangeFresh = function isRangeFresh () { + var ifRange = this.req.headers['if-range'] + + if (!ifRange) { + return true + } + + // if-range as etag + if (ifRange.indexOf('"') !== -1) { + var etag = this.res.getHeader('ETag') + return Boolean(etag && ifRange.indexOf(etag) !== -1) + } + + // if-range as modified date + var lastModified = this.res.getHeader('Last-Modified') + return parseHttpDate(lastModified) <= parseHttpDate(ifRange) +} + +/** + * Redirect to path. + * + * @param {string} path + * @private + */ + +SendStream.prototype.redirect = function redirect (path) { + var res = this.res + + if (hasListeners(this, 'directory')) { + this.emit('directory', res, path) + return + } + + if (this.hasTrailingSlash()) { + this.error(403) + return + } + + var loc = encodeUrl(collapseLeadingSlashes(this.path + '/')) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // redirect + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) +} + +/** + * Pipe to `res. + * + * @param {Stream} res + * @return {Stream} res + * @api public + */ + +SendStream.prototype.pipe = function pipe (res) { + // root path + var root = this._root + + // references + this.res = res + + // decode the path + var path = decode(this.path) + if (path === -1) { + this.error(400) + return res + } + + // null byte(s) + if (~path.indexOf('\0')) { + this.error(400) + return res + } + + var parts + if (root !== null) { + // normalize + if (path) { + path = normalize('.' + sep + path) + } + + // malicious path + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = path.split(sep) + + // join / normalize from optional root dir + path = normalize(join(root, path)) + } else { + // ".." is malicious without "root" + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = normalize(path).split(sep) + + // resolve the path + path = resolve(path) + } + + // dotfile handling + if (containsDotFile(parts)) { + var access = this._dotfiles + + // legacy support + if (access === undefined) { + access = parts[parts.length - 1][0] === '.' + ? (this._hidden ? 'allow' : 'ignore') + : 'allow' + } + + debug('%s dotfile "%s"', access, path) + switch (access) { + case 'allow': + break + case 'deny': + this.error(403) + return res + case 'ignore': + default: + this.error(404) + return res + } + } + + // index file support + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path) + return res + } + + this.sendFile(path) + return res +} + +/** + * Transfer `path`. + * + * @param {String} path + * @api public + */ + +SendStream.prototype.send = function send (path, stat) { + var len = stat.size + var options = this.options + var opts = {} + var res = this.res + var req = this.req + var ranges = req.headers.range + var offset = options.start || 0 + + if (headersSent(res)) { + // impossible to send now + this.headersAlreadySent() + return + } + + debug('pipe "%s"', path) + + // set header fields + this.setHeader(path, stat) + + // set content-type + this.type(path) + + // conditional GET support + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412) + return + } + + if (this.isCachable() && this.isFresh()) { + this.notModified() + return + } + } + + // adjust len to start/end options + len = Math.max(0, len - offset) + if (options.end !== undefined) { + var bytes = options.end - offset + 1 + if (len > bytes) len = bytes + } + + // Range support + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + // parse + ranges = parseRange(len, ranges, { + combine: true + }) + + // If-Range support + if (!this.isRangeFresh()) { + debug('range stale') + ranges = -2 + } + + // unsatisfiable + if (ranges === -1) { + debug('range unsatisfiable') + + // Content-Range + res.setHeader('Content-Range', contentRange('bytes', len)) + + // 416 Requested Range Not Satisfiable + return this.error(416, { + headers: { 'Content-Range': res.getHeader('Content-Range') } + }) + } + + // valid (syntactically invalid/multiple ranges are treated as a regular response) + if (ranges !== -2 && ranges.length === 1) { + debug('range %j', ranges) + + // Content-Range + res.statusCode = 206 + res.setHeader('Content-Range', contentRange('bytes', len, ranges[0])) + + // adjust for requested range + offset += ranges[0].start + len = ranges[0].end - ranges[0].start + 1 + } + } + + // clone options + for (var prop in options) { + opts[prop] = options[prop] + } + + // set read options + opts.start = offset + opts.end = Math.max(offset, offset + len - 1) + + // content-length + res.setHeader('Content-Length', len) + + // HEAD support + if (req.method === 'HEAD') { + res.end() + return + } + + this.stream(path, opts) +} + +/** + * Transfer file for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendFile = function sendFile (path) { + var i = 0 + var self = this + + debug('stat "%s"', path) + fs.stat(path, function onstat (err, stat) { + if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) { + // not found, check extensions + return next(err) + } + if (err) return self.onStatError(err) + if (stat.isDirectory()) return self.redirect(path) + self.emit('file', path, stat) + self.send(path, stat) + }) + + function next (err) { + if (self._extensions.length <= i) { + return err + ? self.onStatError(err) + : self.error(404) + } + + var p = path + '.' + self._extensions[i++] + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } +} + +/** + * Transfer index for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendIndex = function sendIndex (path) { + var i = -1 + var self = this + + function next (err) { + if (++i >= self._index.length) { + if (err) return self.onStatError(err) + return self.error(404) + } + + var p = join(path, self._index[i]) + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } + + next() +} + +/** + * Stream `path` to the response. + * + * @param {String} path + * @param {Object} options + * @api private + */ + +SendStream.prototype.stream = function stream (path, options) { + // TODO: this is all lame, refactor meeee + var finished = false + var self = this + var res = this.res + + // pipe + var stream = fs.createReadStream(path, options) + this.emit('stream', stream) + stream.pipe(res) + + // response finished, done with the fd + onFinished(res, function onfinished () { + finished = true + destroy(stream) + }) + + // error handling code-smell + stream.on('error', function onerror (err) { + // request already finished + if (finished) return + + // clean up stream + finished = true + destroy(stream) + + // error + self.onStatError(err) + }) + + // end + stream.on('end', function onend () { + self.emit('end') + }) +} + +/** + * Set content-type based on `path` + * if it hasn't been explicitly set. + * + * @param {String} path + * @api private + */ + +SendStream.prototype.type = function type (path) { + var res = this.res + + if (res.getHeader('Content-Type')) return + + var type = mime.lookup(path) + + if (!type) { + debug('no content-type') + return + } + + var charset = mime.charsets.lookup(type) + + debug('content-type %s', type) + res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')) +} + +/** + * Set response header fields, most + * fields may be pre-defined. + * + * @param {String} path + * @param {Object} stat + * @api private + */ + +SendStream.prototype.setHeader = function setHeader (path, stat) { + var res = this.res + + this.emit('headers', res, path, stat) + + if (this._acceptRanges && !res.getHeader('Accept-Ranges')) { + debug('accept ranges') + res.setHeader('Accept-Ranges', 'bytes') + } + + if (this._cacheControl && !res.getHeader('Cache-Control')) { + var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000) + + if (this._immutable) { + cacheControl += ', immutable' + } + + debug('cache-control %s', cacheControl) + res.setHeader('Cache-Control', cacheControl) + } + + if (this._lastModified && !res.getHeader('Last-Modified')) { + var modified = stat.mtime.toUTCString() + debug('modified %s', modified) + res.setHeader('Last-Modified', modified) + } + + if (this._etag && !res.getHeader('ETag')) { + var val = etag(stat) + debug('etag %s', val) + res.setHeader('ETag', val) + } +} + +/** + * Clear all headers from a response. + * + * @param {object} res + * @private + */ + +function clearHeaders (res) { + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + res.removeHeader(headers[i]) + } +} + +/** + * Collapse all leading slashes into a single slash + * + * @param {string} str + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== '/') { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Determine if path parts contain a dotfile. + * + * @api private + */ + +function containsDotFile (parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i] + if (part.length > 1 && part[0] === '.') { + return true + } + } + + return false +} + +/** + * Create a Content-Range header. + * + * @param {string} type + * @param {number} size + * @param {array} [range] + */ + +function contentRange (type, size, range) { + return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * decodeURIComponent. + * + * Allows V8 to only deoptimize this fn instead of all + * of send(). + * + * @param {String} path + * @api private + */ + +function decode (path) { + try { + return decodeURIComponent(path) + } catch (err) { + return -1 + } +} + +/** + * Get the header names on a respnse. + * + * @param {object} res + * @returns {array[string]} + * @private + */ + +function getHeaderNames (res) { + return typeof res.getHeaderNames !== 'function' + ? Object.keys(res._headers || {}) + : res.getHeaderNames() +} + +/** + * Determine if emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function hasListeners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Normalize the index option into an array. + * + * @param {boolean|string|array} val + * @param {string} name + * @private + */ + +function normalizeList (val, name) { + var list = [].concat(val || []) + + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== 'string') { + throw new TypeError(name + ' must be array of strings or false') + } + } + + return list +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(str.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(str.substring(start, end)) + + return list +} + +/** + * Set an object of headers on a response. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + var keys = Object.keys(headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git a/data_node_red/node_modules/send/node_modules/ms/index.js b/data_node_red/node_modules/send/node_modules/ms/index.js new file mode 100644 index 0000000..7229750 --- /dev/null +++ b/data_node_red/node_modules/send/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/data_node_red/node_modules/send/node_modules/ms/license.md b/data_node_red/node_modules/send/node_modules/ms/license.md new file mode 100644 index 0000000..69b6125 --- /dev/null +++ b/data_node_red/node_modules/send/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +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. diff --git a/data_node_red/node_modules/send/node_modules/ms/package.json b/data_node_red/node_modules/send/node_modules/ms/package.json new file mode 100644 index 0000000..2999949 --- /dev/null +++ b/data_node_red/node_modules/send/node_modules/ms/package.json @@ -0,0 +1,69 @@ +{ + "_from": "ms@2.1.1", + "_id": "ms@2.1.1", + "_inBundle": false, + "_integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "_location": "/send/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.1", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", + "_spec": "ms@2.1.1", + "_where": "/data/node_modules/send", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.1" +} diff --git a/data_node_red/node_modules/send/node_modules/ms/readme.md b/data_node_red/node_modules/send/node_modules/ms/readme.md new file mode 100644 index 0000000..bb76729 --- /dev/null +++ b/data_node_red/node_modules/send/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/data_node_red/node_modules/send/package.json b/data_node_red/node_modules/send/package.json new file mode 100644 index 0000000..8c16457 --- /dev/null +++ b/data_node_red/node_modules/send/package.json @@ -0,0 +1,105 @@ +{ + "_from": "send@0.17.1", + "_id": "send@0.17.1", + "_inBundle": false, + "_integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "_location": "/send", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "send@0.17.1", + "name": "send", + "escapedName": "send", + "rawSpec": "0.17.1", + "saveSpec": null, + "fetchSpec": "0.17.1" + }, + "_requiredBy": [ + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "_shasum": "c1d8b059f7900f7466dd4938bdc44e11ddb376c8", + "_spec": "send@0.17.1", + "_where": "/data/node_modules/serve-static", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/pillarjs/send/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "jcready@gmail.com" + }, + { + "name": "Jes煤s Legan茅s Combarro", + "email": "piranna@gmail.com" + } + ], + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "deprecated": false, + "description": "Better streaming static file server with Range and conditional-GET support", + "devDependencies": { + "after": "0.8.2", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.4", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/send#readme", + "keywords": [ + "static", + "file", + "server" + ], + "license": "MIT", + "name": "send", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/send.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --check-leaks --reporter spec --bail", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" + }, + "version": "0.17.1" +} diff --git a/data_node_red/node_modules/serve-static/HISTORY.md b/data_node_red/node_modules/serve-static/HISTORY.md new file mode 100644 index 0000000..7203e4f --- /dev/null +++ b/data_node_red/node_modules/serve-static/HISTORY.md @@ -0,0 +1,451 @@ +1.14.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect response + * deps: send@0.17.1 + - deps: range-parser@~1.2.1 + +1.14.0 / 2019-05-07 +=================== + + * deps: parseurl@~1.3.3 + * deps: send@0.17.0 + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + +1.13.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in redirects + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: send@0.16.2 + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + +1.13.1 / 2017-09-29 +=================== + + * Fix regression when `root` is incorrectly set to a file + * deps: send@0.16.1 + +1.13.0 / 2017-09-27 +=================== + + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + +1.12.6 / 2017-09-22 +=================== + + * deps: send@0.15.6 + - deps: debug@2.6.9 + - perf: improve `If-Match` token parsing + * perf: improve slash collapsing + +1.12.5 / 2017-09-21 +=================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: send@0.15.5 + - Fix handling of modified headers with invalid dates + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + +1.12.4 / 2017-08-05 +=================== + + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + +1.12.3 / 2017-05-16 +=================== + + * deps: send@0.15.3 + - deps: debug@2.6.7 + +1.12.2 / 2017-04-26 +=================== + + * deps: send@0.15.2 + - deps: debug@2.6.4 + +1.12.1 / 2017-03-04 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + +1.12.0 / 2017-02-25 +=================== + + * Send complete HTML document in redirect response + * Set default CSP header in redirect response + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + +1.11.2 / 2017-01-23 +=================== + + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + +1.11.1 / 2016-06-10 +=================== + + * Fix redirect error when `req.url` contains raw non-URL characters + * deps: send@0.14.1 + +1.11.0 / 2016-06-07 +=================== + + * Use status code 301 for redirects + * deps: send@0.14.0 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + +1.10.3 / 2016-05-30 +=================== + + * deps: send@0.13.2 + - Fix invalid `Content-Type` header when `send.mime.default_type` unset + +1.10.2 / 2016-01-19 +=================== + + * deps: parseurl@~1.3.1 + - perf: enable strict mode + +1.10.1 / 2016-01-16 +=================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + +1.10.0 / 2015-06-17 +=================== + + * Add `fallthrough` option + - Allows declaring this middleware is the final destination + - Provides better integration with Express patterns + * Fix reading options from options prototype + * Improve the default redirect response headers + * deps: escape-html@1.0.2 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * perf: enable strict mode + * perf: remove argument reassignment + +1.9.3 / 2015-05-14 +================== + + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +1.9.2 / 2015-03-14 +================== + + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +1.9.1 / 2015-02-17 +================== + + * deps: send@0.12.1 + - Fix regression sending zero-length files + +1.9.0 / 2015-02-16 +================== + + * deps: send@0.12.0 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +1.8.1 / 2015-01-20 +================== + + * Fix redirect loop in Node.js 0.11.14 + * deps: send@0.11.1 + - Fix root path disclosure + +1.8.0 / 2015-01-05 +================== + + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +1.7.2 / 2015-01-02 +================== + + * Fix potential open redirect when mounted at root + +1.7.1 / 2014-10-22 +================== + + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +1.7.0 / 2014-10-15 +================== + + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +1.6.5 / 2015-02-04 +================== + + * Fix potential open redirect when mounted at root + - Back-ported from v1.7.2 + +1.6.4 / 2014-10-08 +================== + + * Fix redirect loop when index file serving disabled + +1.6.3 / 2014-09-24 +================== + + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +1.6.2 / 2014-09-15 +================== + + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +1.6.1 / 2014-09-07 +================== + + * deps: send@0.9.1 + - deps: fresh@0.2.4 + +1.6.0 / 2014-09-07 +================== + + * deps: send@0.9.0 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + +1.5.4 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +1.5.3 / 2014-08-17 +================== + + * deps: send@0.8.3 + +1.5.2 / 2014-08-14 +================== + + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +1.5.1 / 2014-08-09 +================== + + * Fix parsing of weird `req.originalUrl` values + * deps: parseurl@~1.3.0 + * deps: utils-merge@1.0.0 + +1.5.0 / 2014-08-05 +================== + + * deps: send@0.8.1 + - Add `extensions` option + +1.4.4 / 2014-08-04 +================== + + * deps: send@0.7.4 + - Fix serving index files without root dir + +1.4.3 / 2014-07-29 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + +1.4.2 / 2014-07-27 +================== + + * deps: send@0.7.2 + - deps: depd@0.4.4 + +1.4.1 / 2014-07-26 +================== + + * deps: send@0.7.1 + - deps: depd@0.4.3 + +1.4.0 / 2014-07-21 +================== + + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +1.3.2 / 2014-07-11 +================== + + * deps: send@0.6.0 + - Cap `maxAge` value to 1 year + - deps: debug@1.0.3 + +1.3.1 / 2014-07-09 +================== + + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +1.3.0 / 2014-06-28 +================== + + * Add `setHeaders` option + * Include HTML link in redirect response + * deps: send@0.5.0 + - Accept string for `maxAge` (converted by `ms`) + +1.2.3 / 2014-06-11 +================== + + * deps: send@0.4.3 + - Do not throw un-catchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +1.2.2 / 2014-06-09 +================== + + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + +1.2.1 / 2014-06-02 +================== + + * use `escape-html` for escaping + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +1.2.0 / 2014-05-29 +================== + + * deps: send@0.4.0 + - Calculate ETag with md5 for reduced collisions + - Fix wrong behavior when index file matches directory + - Ignore stream errors after request ends + - Skip directories in index file search + - deps: debug@0.8.1 + +1.1.0 / 2014-04-24 +================== + + * Accept options directly to `send` module + * deps: send@0.3.0 + +1.0.4 / 2014-04-07 +================== + + * Resolve relative paths at middleware setup + * Use parseurl to parse the URL from request + +1.0.3 / 2014-03-20 +================== + + * Do not rely on connect-like environments + +1.0.2 / 2014-03-06 +================== + + * deps: send@0.2.0 + +1.0.1 / 2014-03-05 +================== + + * Add mime export for back-compat + +1.0.0 / 2014-03-05 +================== + + * Genesis from `connect` diff --git a/data_node_red/node_modules/serve-static/LICENSE b/data_node_red/node_modules/serve-static/LICENSE new file mode 100644 index 0000000..cbe62e8 --- /dev/null +++ b/data_node_red/node_modules/serve-static/LICENSE @@ -0,0 +1,25 @@ +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git a/data_node_red/node_modules/serve-static/README.md b/data_node_red/node_modules/serve-static/README.md new file mode 100644 index 0000000..7cce428 --- /dev/null +++ b/data_node_red/node_modules/serve-static/README.md @@ -0,0 +1,259 @@ +# serve-static + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install serve-static +``` + +## API + + + +```js +var serveStatic = require('serve-static') +``` + +### serveStatic(root, options) + +Create a new middleware function to serve files from within a given root +directory. The file to serve will be determined by combining `req.url` +with the provided root directory. When a file is not found, instead of +sending a 404 response, this module will instead call `next()` to move on +to the next middleware, allowing for stacking and fall-backs. + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + + Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Deny a request for a dotfile and 403/`next()`. + - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`. + +The default value is similar to `'ignore'`, with the exception that this +default will not ignore the files within a directory that begins with a dot. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +Set file extension fallbacks. When set, if a file is not found, the given +extensions will be added to the file name and search for. The first that +exists will be served. Example: `['html', 'htm']`. + +The default value is `false`. + +##### fallthrough + +Set the middleware to have client errors fall-through as just unhandled +requests, otherwise forward a client error. The difference is that client +errors like a bad request or a request to a non-existent file will cause +this middleware to simply `next()` to your next middleware when this value +is `true`. When this value is `false`, these errors (even 404s), will invoke +`next(err)`. + +Typically `true` is desired such that multiple physical directories can be +mapped to the same web address or for routes to fill in non-existent files. + +The value `false` can be used if this middleware is mounted at a path that +is designed to be strictly a single file system directory, which allows for +short-circuiting 404s for less overhead. This middleware will also reply to +all methods. + +The default value is `true`. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default this module will send "index.html" files in response to a request +on a directory. To disable this set `false` or to supply a new index pass a +string or an array in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. This +can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme) +module. + +##### redirect + +Redirect to trailing "/" when the pathname is a dir. Defaults to `true`. + +##### setHeaders + +Function to set custom headers on response. Alterations to the headers need to +occur synchronously. The function is called as `fn(res, path, stat)`, where +the arguments are: + + - `res` the response object + - `path` the file path that is being sent + - `stat` the stat object of the file that is being sent + +## Examples + +### Serve files with vanilla node.js http server + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { 'index': ['index.html', 'index.htm'] }) + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serve all files as downloads + +```js +var contentDisposition = require('content-disposition') +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { + 'index': false, + 'setHeaders': setHeaders +}) + +// Set header to force download +function setHeaders (res, path) { + res.setHeader('Content-Disposition', contentDisposition(path)) +} + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serving using express + +#### Simple + +This is a simple example of using Express. + +```js +var express = require('express') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic('public/ftp', { 'index': ['default.html', 'default.htm'] })) +app.listen(3000) +``` + +#### Multiple roots + +This example shows a simple way to search through multiple directories. +Files are look for in `public-optimized/` first, then `public/` second as +a fallback. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public-optimized'))) +app.use(serveStatic(path.join(__dirname, 'public'))) +app.listen(3000) +``` + +#### Different settings for paths + +This example shows how to set a different max age depending on the served +file type. In this example, HTML files are not cached, while everything else +is for 1 day. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public'), { + maxAge: '1d', + setHeaders: setCustomCacheControl +})) + +app.listen(3000) + +function setCustomCacheControl (res, path) { + if (serveStatic.mime.lookup(path) === 'text/html') { + // Custom Cache-Control for HTML files + res.setHeader('Cache-Control', 'public, max-age=0') + } +} +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/serve-static/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/serve-static/master +[coveralls-url]: https://coveralls.io/r/expressjs/serve-static?branch=master +[node-image]: https://badgen.net/npm/node/serve-static +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/serve-static +[npm-url]: https://npmjs.org/package/serve-static +[npm-version-image]: https://badgen.net/npm/v/serve-static +[travis-image]: https://badgen.net/travis/expressjs/serve-static/master?label=linux +[travis-url]: https://travis-ci.org/expressjs/serve-static diff --git a/data_node_red/node_modules/serve-static/index.js b/data_node_red/node_modules/serve-static/index.js new file mode 100644 index 0000000..b7d3984 --- /dev/null +++ b/data_node_red/node_modules/serve-static/index.js @@ -0,0 +1,210 @@ +/*! + * serve-static + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var parseUrl = require('parseurl') +var resolve = require('path').resolve +var send = require('send') +var url = require('url') + +/** + * Module exports. + * @public + */ + +module.exports = serveStatic +module.exports.mime = send.mime + +/** + * @param {string} root + * @param {object} [options] + * @return {function} + * @public + */ + +function serveStatic (root, options) { + if (!root) { + throw new TypeError('root path required') + } + + if (typeof root !== 'string') { + throw new TypeError('root path must be a string') + } + + // copy options object + var opts = Object.create(options || null) + + // fall-though + var fallthrough = opts.fallthrough !== false + + // default redirect + var redirect = opts.redirect !== false + + // headers listener + var setHeaders = opts.setHeaders + + if (setHeaders && typeof setHeaders !== 'function') { + throw new TypeError('option setHeaders must be function') + } + + // setup options for send + opts.maxage = opts.maxage || opts.maxAge || 0 + opts.root = resolve(root) + + // construct directory listener + var onDirectory = redirect + ? createRedirectDirectoryListener() + : createNotFoundDirectoryListener() + + return function serveStatic (req, res, next) { + if (req.method !== 'GET' && req.method !== 'HEAD') { + if (fallthrough) { + return next() + } + + // method not allowed + res.statusCode = 405 + res.setHeader('Allow', 'GET, HEAD') + res.setHeader('Content-Length', '0') + res.end() + return + } + + var forwardError = !fallthrough + var originalUrl = parseUrl.original(req) + var path = parseUrl(req).pathname + + // make sure redirect occurs at mount + if (path === '/' && originalUrl.pathname.substr(-1) !== '/') { + path = '' + } + + // create send stream + var stream = send(req, path, opts) + + // add directory handler + stream.on('directory', onDirectory) + + // add headers listener + if (setHeaders) { + stream.on('headers', setHeaders) + } + + // add file listener for fallthrough + if (fallthrough) { + stream.on('file', function onFile () { + // once file is determined, always forward error + forwardError = true + }) + } + + // forward errors + stream.on('error', function error (err) { + if (forwardError || !(err.statusCode < 500)) { + next(err) + return + } + + next() + }) + + // pipe + stream.pipe(res) + } +} + +/** + * Collapse all leading slashes into a single slash + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 0x2f /* / */) { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * Create a directory listener that just 404s. + * @private + */ + +function createNotFoundDirectoryListener () { + return function notFound () { + this.error(404) + } +} + +/** + * Create a directory listener that performs a redirect. + * @private + */ + +function createRedirectDirectoryListener () { + return function redirect (res) { + if (this.hasTrailingSlash()) { + this.error(404) + return + } + + // get original URL + var originalUrl = parseUrl.original(this.req) + + // append trailing slash + originalUrl.path = null + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/') + + // reformat the URL + var loc = encodeUrl(url.format(originalUrl)) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // send redirect response + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) + } +} diff --git a/data_node_red/node_modules/serve-static/package.json b/data_node_red/node_modules/serve-static/package.json new file mode 100644 index 0000000..fe8e147 --- /dev/null +++ b/data_node_red/node_modules/serve-static/package.json @@ -0,0 +1,77 @@ +{ + "_from": "serve-static@^1.14.1", + "_id": "serve-static@1.14.1", + "_inBundle": false, + "_integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "_location": "/serve-static", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "serve-static@^1.14.1", + "name": "serve-static", + "escapedName": "serve-static", + "rawSpec": "^1.14.1", + "saveSpec": null, + "fetchSpec": "^1.14.1" + }, + "_requiredBy": [ + "/node-red-dashboard" + ], + "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "_shasum": "666e636dc4f010f7ef29970a88a674320898b2f9", + "_spec": "serve-static@^1.14.1", + "_where": "/data/node_modules/node-red-dashboard", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-static/issues" + }, + "bundleDependencies": false, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "deprecated": false, + "description": "Serve static files", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.4", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/expressjs/serve-static#readme", + "license": "MIT", + "name": "serve-static", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-static.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.14.1" +} diff --git a/data_node_red/node_modules/setprototypeof/LICENSE b/data_node_red/node_modules/setprototypeof/LICENSE new file mode 100644 index 0000000..61afa2f --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Wes Todd + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/data_node_red/node_modules/setprototypeof/README.md b/data_node_red/node_modules/setprototypeof/README.md new file mode 100644 index 0000000..f120044 --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/README.md @@ -0,0 +1,31 @@ +# Polyfill for `Object.setPrototypeOf` + +[![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) + +A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. + +## Usage: + +``` +$ npm install --save setprototypeof +``` + +```javascript +var setPrototypeOf = require('setprototypeof') + +var obj = {} +setPrototypeOf(obj, { + foo: function () { + return 'bar' + } +}) +obj.foo() // bar +``` + +TypeScript is also supported: + +```typescript +import setPrototypeOf = require('setprototypeof') +``` diff --git a/data_node_red/node_modules/setprototypeof/index.d.ts b/data_node_red/node_modules/setprototypeof/index.d.ts new file mode 100644 index 0000000..f108ecd --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/index.d.ts @@ -0,0 +1,2 @@ +declare function setPrototypeOf(o: any, proto: object | null): any; +export = setPrototypeOf; diff --git a/data_node_red/node_modules/setprototypeof/index.js b/data_node_red/node_modules/setprototypeof/index.js new file mode 100644 index 0000000..81fd5d7 --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/index.js @@ -0,0 +1,17 @@ +'use strict' +/* eslint no-proto: 0 */ +module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) + +function setProtoOf (obj, proto) { + obj.__proto__ = proto + return obj +} + +function mixinProperties (obj, proto) { + for (var prop in proto) { + if (!obj.hasOwnProperty(prop)) { + obj[prop] = proto[prop] + } + } + return obj +} diff --git a/data_node_red/node_modules/setprototypeof/package.json b/data_node_red/node_modules/setprototypeof/package.json new file mode 100644 index 0000000..4cd2613 --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/package.json @@ -0,0 +1,63 @@ +{ + "_from": "setprototypeof@1.1.1", + "_id": "setprototypeof@1.1.1", + "_inBundle": false, + "_integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "_location": "/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.1.1", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "_shasum": "7e95acb24aa92f5885e0abef5ba131330d4ae683", + "_spec": "setprototypeof@1.1.1", + "_where": "/data/node_modules/http-errors", + "author": { + "name": "Wes Todd" + }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A small polyfill for Object.setprototypeof", + "devDependencies": { + "mocha": "^5.2.0", + "standard": "^12.0.1" + }, + "homepage": "https://github.com/wesleytodd/setprototypeof", + "keywords": [ + "polyfill", + "object", + "setprototypeof" + ], + "license": "ISC", + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" + }, + "scripts": { + "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", + "node11": "NODE_VER=11 npm run testversion", + "node4": "NODE_VER=4 npm run testversion", + "node6": "NODE_VER=6 npm run testversion", + "node9": "NODE_VER=9 npm run testversion", + "test": "standard && mocha", + "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", + "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t" + }, + "typings": "index.d.ts", + "version": "1.1.1" +} diff --git a/data_node_red/node_modules/setprototypeof/test/index.js b/data_node_red/node_modules/setprototypeof/test/index.js new file mode 100644 index 0000000..afeb4dd --- /dev/null +++ b/data_node_red/node_modules/setprototypeof/test/index.js @@ -0,0 +1,24 @@ +'use strict' +/* eslint-env mocha */ +/* eslint no-proto: 0 */ +var assert = require('assert') +var setPrototypeOf = require('..') + +describe('setProtoOf(obj, proto)', function () { + it('should merge objects', function () { + var obj = { a: 1, b: 2 } + var proto = { b: 3, c: 4 } + var mergeObj = setPrototypeOf(obj, proto) + + if (Object.getPrototypeOf) { + assert.strictEqual(Object.getPrototypeOf(obj), proto) + } else if ({ __proto__: [] } instanceof Array) { + assert.strictEqual(obj.__proto__, proto) + } else { + assert.strictEqual(obj.a, 1) + assert.strictEqual(obj.b, 2) + assert.strictEqual(obj.c, 4) + } + assert.strictEqual(mergeObj, obj) + }) +}) diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/$CACHE_FILE$ b/data_node_red/node_modules/socket.io-adapter/.idea/$CACHE_FILE$ new file mode 100644 index 0000000..fd23cdf --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/$CACHE_FILE$ @@ -0,0 +1,25 @@ + + + + + + + + + + + General + + + XPath + + + + + AngularJS + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/inspectionProfiles/profiles_settings.xml b/data_node_red/node_modules/socket.io-adapter/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..0eefe32 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/misc.xml b/data_node_red/node_modules/socket.io-adapter/.idea/misc.xml new file mode 100644 index 0000000..28a804d --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/modules.xml b/data_node_red/node_modules/socket.io-adapter/.idea/modules.xml new file mode 100644 index 0000000..21845b6 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/socket.io-adapter.iml b/data_node_red/node_modules/socket.io-adapter/.idea/socket.io-adapter.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/socket.io-adapter.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/vcs.xml b/data_node_red/node_modules/socket.io-adapter/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/.idea/workspace.xml b/data_node_red/node_modules/socket.io-adapter/.idea/workspace.xml new file mode 100644 index 0000000..c6992ad --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/.idea/workspace.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + true + + false + true + true + + + + + + + + + + + + + + + + + + 1574683918794 + + + + + + + + + \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-adapter/LICENSE b/data_node_red/node_modules/socket.io-adapter/LICENSE new file mode 100644 index 0000000..7e43606 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2014 Guillermo Rauch + +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. diff --git a/data_node_red/node_modules/socket.io-adapter/Readme.md b/data_node_red/node_modules/socket.io-adapter/Readme.md new file mode 100644 index 0000000..75cdc69 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/Readme.md @@ -0,0 +1,16 @@ + +# socket.io-adapter + +Default socket.io in-memory adapter class. + +## How to use + +This module is not intended for end-user usage, but can be used as an +interface to inherit from other adapters you might want to build. + +As an example of an adapter that builds on top of this, please take a look +at [socket.io-redis](https://github.com/learnboost/socket.io-redis). + +## License + +MIT diff --git a/data_node_red/node_modules/socket.io-adapter/index.js b/data_node_red/node_modules/socket.io-adapter/index.js new file mode 100644 index 0000000..f21dcbd --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/index.js @@ -0,0 +1,263 @@ + +/** + * Module dependencies. + */ + +var Emitter = require('events').EventEmitter; + +/** + * Module exports. + */ + +module.exports = Adapter; + +/** + * Memory adapter constructor. + * + * @param {Namespace} nsp + * @api public + */ + +function Adapter(nsp){ + this.nsp = nsp; + this.rooms = {}; + this.sids = {}; + this.encoder = nsp.server.encoder; +} + +/** + * Inherits from `EventEmitter`. + */ + +Adapter.prototype.__proto__ = Emitter.prototype; + +/** + * Adds a socket to a room. + * + * @param {String} socket id + * @param {String} room name + * @param {Function} callback + * @api public + */ + +Adapter.prototype.add = function(id, room, fn){ + return this.addAll(id, [ room ], fn); +}; + +/** + * Adds a socket to a list of room. + * + * @param {String} socket id + * @param {String} rooms + * @param {Function} callback + * @api public + */ + +Adapter.prototype.addAll = function(id, rooms, fn){ + for (var i = 0; i < rooms.length; i++) { + var room = rooms[i]; + this.sids[id] = this.sids[id] || {}; + this.sids[id][room] = true; + this.rooms[room] = this.rooms[room] || Room(); + this.rooms[room].add(id); + } + if (fn) process.nextTick(fn.bind(null, null)); +}; + +/** + * Removes a socket from a room. + * + * @param {String} socket id + * @param {String} room name + * @param {Function} callback + * @api public + */ + +Adapter.prototype.del = function(id, room, fn){ + if (this.sids[id]) delete this.sids[id][room]; + + if (this.rooms.hasOwnProperty(room)) { + this.rooms[room].del(id); + if (this.rooms[room].length === 0) delete this.rooms[room]; + } + + if (fn) process.nextTick(fn.bind(null, null)); +}; + +/** + * Removes a socket from all rooms it's joined. + * + * @param {String} socket id + * @param {Function} callback + * @api public + */ + +Adapter.prototype.delAll = function(id, fn){ + var rooms = this.sids[id]; + if (rooms) { + for (var room in rooms) { + if (this.rooms.hasOwnProperty(room)) { + this.rooms[room].del(id); + if (this.rooms[room].length === 0) delete this.rooms[room]; + } + } + } + delete this.sids[id]; + + if (fn) process.nextTick(fn.bind(null, null)); +}; + +/** + * Broadcasts a packet. + * + * Options: + * - `flags` {Object} flags for this packet + * - `except` {Array} sids that should be excluded + * - `rooms` {Array} list of rooms to broadcast to + * + * @param {Object} packet object + * @api public + */ + +Adapter.prototype.broadcast = function(packet, opts){ + var rooms = opts.rooms || []; + var except = opts.except || []; + var flags = opts.flags || {}; + var packetOpts = { + preEncoded: true, + volatile: flags.volatile, + compress: flags.compress + }; + var ids = {}; + var self = this; + var socket; + + packet.nsp = this.nsp.name; + this.encoder.encode(packet, function(encodedPackets) { + if (rooms.length) { + for (var i = 0; i < rooms.length; i++) { + var room = self.rooms[rooms[i]]; + if (!room) continue; + var sockets = room.sockets; + for (var id in sockets) { + if (sockets.hasOwnProperty(id)) { + if (ids[id] || ~except.indexOf(id)) continue; + socket = self.nsp.connected[id]; + if (socket) { + socket.packet(encodedPackets, packetOpts); + ids[id] = true; + } + } + } + } + } else { + for (var id in self.sids) { + if (self.sids.hasOwnProperty(id)) { + if (~except.indexOf(id)) continue; + socket = self.nsp.connected[id]; + if (socket) socket.packet(encodedPackets, packetOpts); + } + } + } + }); +}; + +/** + * Gets a list of clients by sid. + * + * @param {Array} explicit set of rooms to check. + * @param {Function} callback + * @api public + */ + +Adapter.prototype.clients = function(rooms, fn){ + if ('function' == typeof rooms){ + fn = rooms; + rooms = null; + } + + rooms = rooms || []; + + var ids = {}; + var sids = []; + var socket; + + if (rooms.length) { + for (var i = 0; i < rooms.length; i++) { + var room = this.rooms[rooms[i]]; + if (!room) continue; + var sockets = room.sockets; + for (var id in sockets) { + if (sockets.hasOwnProperty(id)) { + if (ids[id]) continue; + socket = this.nsp.connected[id]; + if (socket) { + sids.push(id); + ids[id] = true; + } + } + } + } + } else { + for (var id in this.sids) { + if (this.sids.hasOwnProperty(id)) { + socket = this.nsp.connected[id]; + if (socket) sids.push(id); + } + } + } + + if (fn) process.nextTick(fn.bind(null, null, sids)); +}; + +/** + * Gets the list of rooms a given client has joined. + * + * @param {String} socket id + * @param {Function} callback + * @api public + */ +Adapter.prototype.clientRooms = function(id, fn){ + var rooms = this.sids[id]; + if (fn) process.nextTick(fn.bind(null, null, rooms ? Object.keys(rooms) : null)); +}; + +/** +* Room constructor. +* +* @api private +*/ + +function Room(){ + if (!(this instanceof Room)) return new Room(); + this.sockets = {}; + this.length = 0; +} + +/** + * Adds a socket to a room. + * + * @param {String} socket id + * @api private + */ + +Room.prototype.add = function(id){ + if (!this.sockets.hasOwnProperty(id)) { + this.sockets[id] = true; + this.length++; + } +}; + +/** + * Removes a socket from a room. + * + * @param {String} socket id + * @api private + */ + +Room.prototype.del = function(id){ + if (this.sockets.hasOwnProperty(id)) { + delete this.sockets[id]; + this.length--; + } +}; diff --git a/data_node_red/node_modules/socket.io-adapter/package.json b/data_node_red/node_modules/socket.io-adapter/package.json new file mode 100644 index 0000000..f211b16 --- /dev/null +++ b/data_node_red/node_modules/socket.io-adapter/package.json @@ -0,0 +1,39 @@ +{ + "_from": "socket.io-adapter@~1.1.0", + "_id": "socket.io-adapter@1.1.2", + "_inBundle": false, + "_integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "_location": "/socket.io-adapter", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "socket.io-adapter@~1.1.0", + "name": "socket.io-adapter", + "escapedName": "socket.io-adapter", + "rawSpec": "~1.1.0", + "saveSpec": null, + "fetchSpec": "~1.1.0" + }, + "_requiredBy": [ + "/socket.io" + ], + "_resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "_shasum": "ab3f0d6f66b8fc7fca3959ab5991f82221789be9", + "_spec": "socket.io-adapter@~1.1.0", + "_where": "/data/node_modules/socket.io", + "bugs": { + "url": "https://github.com/socketio/socket.io-adapter/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "default socket.io in-memory adapter", + "homepage": "https://github.com/socketio/socket.io-adapter#readme", + "license": "MIT", + "name": "socket.io-adapter", + "repository": { + "type": "git", + "url": "git://github.com/socketio/socket.io-adapter.git" + }, + "version": "1.1.2" +} diff --git a/data_node_red/node_modules/socket.io-client/CHANGELOG.md b/data_node_red/node_modules/socket.io-client/CHANGELOG.md new file mode 100644 index 0000000..b1e87ea --- /dev/null +++ b/data_node_red/node_modules/socket.io-client/CHANGELOG.md @@ -0,0 +1,20 @@ +# [2.4.0](https://github.com/Automattic/socket.io-client/compare/2.3.1...2.4.0) (2021-01-04) + +The minor bump is matching the bump of the server, but there is no new feature in this release. + + +## [2.3.1](https://github.com/socketio/socket.io-client/compare/2.3.0...2.3.1) (2020-09-30) + +The `debug` dependency has been reverted to `~3.1.0`, as the newer versions contains ES6 syntax which breaks in IE +browsers. + +Please note that this only applied to users that bundle the Socket.IO client in their application, with webpack for +example, as the "official" bundles (in the dist/ folder) were already transpiled with babel. + +For webpack users, you can also take a look at the [webpack-remove-debug](https://github.com/johngodley/webpack-remove-debug) +plugin. + +### Bug Fixes + +* fix reconnection after opening socket asynchronously ([#1253](https://github.com/socketio/socket.io-client/issues/1253)) ([050108b](https://github.com/Automattic/socket.io-client/commit/050108b2281effda086b197cf174ee2e8e1aad79)) + diff --git a/data_node_red/node_modules/socket.io-client/LICENSE b/data_node_red/node_modules/socket.io-client/LICENSE new file mode 100644 index 0000000..9338df1 --- /dev/null +++ b/data_node_red/node_modules/socket.io-client/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 Guillermo Rauch + + +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. \ No newline at end of file diff --git a/data_node_red/node_modules/socket.io-client/README.md b/data_node_red/node_modules/socket.io-client/README.md new file mode 100644 index 0000000..bf7b5de --- /dev/null +++ b/data_node_red/node_modules/socket.io-client/README.md @@ -0,0 +1,67 @@ + +# socket.io-client + +[![Build Status](https://github.com/socketio/socket.io-client/workflows/CI/badge.svg)](https://github.com/socketio/socket.io-client/actions) +[![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-client) +[![devDependency Status](https://david-dm.org/socketio/socket.io-client/dev-status.svg)](https://david-dm.org/socketio/socket.io-client#info=devDependencies) +[![NPM version](https://badge.fury.io/js/socket.io-client.svg)](https://www.npmjs.com/package/socket.io-client) +![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg?style=flat) +[![](http://slack.socket.io/badge.svg?)](http://slack.socket.io) + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/socket.svg)](https://saucelabs.com/u/socket) + +## How to use + +A standalone build of `socket.io-client` is exposed automatically by the +socket.io server as `/socket.io/socket.io.js`. Alternatively you can +serve the file `socket.io.js` found in the `dist` folder or include it via [CDN](https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js). + +```html + + +``` + +```js +// with ES6 import +import io from 'socket.io-client'; + +const socket = io(); +``` + +A slim build (without `JSON3`, a JSON polyfill for IE6/IE7, and `debug`) is also available: `socket.io.slim.js`. + +Socket.IO is compatible with [browserify](http://browserify.org/) and [webpack](https://webpack.js.org/) (see example [there](https://github.com/socketio/socket.io/tree/2.0.3/examples/webpack-build)). + +### Node.JS (server-side usage) + + Add `socket.io-client` to your `package.json` and then: + + ```js + var socket = require('socket.io-client')('http://localhost:3000'); + socket.on('connect', function(){}); + socket.on('event', function(data){}); + socket.on('disconnect', function(){}); + ``` + +## Debug / logging + +In order to see all the client debug output, run the following command on the browser console 鈥 including the desired scope 鈥 and reload your app page: + +``` +localStorage.debug = '*'; +``` + +And then, filter by the scopes you're interested in. See also: https://socket.io/docs/logging-and-debugging/ + +## API + +See [API](/docs/API.md) + +## License + +[MIT](/LICENSE) diff --git a/data_node_red/node_modules/socket.io-client/dist/socket.io.dev.js b/data_node_red/node_modules/socket.io-client/dist/socket.io.dev.js new file mode 100644 index 0000000..1d158c9 --- /dev/null +++ b/data_node_red/node_modules/socket.io-client/dist/socket.io.dev.js @@ -0,0 +1,6667 @@ +/*! + * Socket.IO v2.4.0 + * (c) 2014-2021 Guillermo Rauch + * Released under the MIT License. + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["io"] = factory(); + else + root["io"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Module dependencies. + */ + + var url = __webpack_require__(1); + var parser = __webpack_require__(7); + var Manager = __webpack_require__(12); + var debug = __webpack_require__(3)('socket.io-client'); + + /** + * Module exports. + */ + + module.exports = exports = lookup; + + /** + * Managers cache. + */ + + var cache = exports.managers = {}; + + /** + * Looks up an existing `Manager` for multiplexing. + * If the user summons: + * + * `io('http://localhost/a');` + * `io('http://localhost/b');` + * + * We reuse the existing instance based on same scheme/port/host, + * and we initialize sockets for each namespace. + * + * @api public + */ + + function lookup (uri, opts) { + if (typeof uri === 'object') { + opts = uri; + uri = undefined; + } + + opts = opts || {}; + + var parsed = url(uri); + var source = parsed.source; + var id = parsed.id; + var path = parsed.path; + var sameNamespace = cache[id] && path in cache[id].nsps; + var newConnection = opts.forceNew || opts['force new connection'] || + false === opts.multiplex || sameNamespace; + + var io; + + if (newConnection) { + debug('ignoring socket cache for %s', source); + io = Manager(source, opts); + } else { + if (!cache[id]) { + debug('new io instance for %s', source); + cache[id] = Manager(source, opts); + } + io = cache[id]; + } + if (parsed.query && !opts.query) { + opts.query = parsed.query; + } + return io.socket(parsed.path, opts); + } + + /** + * Protocol version. + * + * @api public + */ + + exports.protocol = parser.protocol; + + /** + * `connect`. + * + * @param {String} uri + * @api public + */ + + exports.connect = lookup; + + /** + * Expose constructors for standalone build. + * + * @api public + */ + + exports.Manager = __webpack_require__(12); + exports.Socket = __webpack_require__(37); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Module dependencies. + */ + + var parseuri = __webpack_require__(2); + var debug = __webpack_require__(3)('socket.io-client:url'); + + /** + * Module exports. + */ + + module.exports = url; + + /** + * URL parser. + * + * @param {String} url + * @param {Object} An object meant to mimic window.location. + * Defaults to window.location. + * @api public + */ + + function url (uri, loc) { + var obj = uri; + + // default to window.location + loc = loc || (typeof location !== 'undefined' && location); + if (null == uri) uri = loc.protocol + '//' + loc.host; + + // relative path support + if ('string' === typeof uri) { + if ('/' === uri.charAt(0)) { + if ('/' === uri.charAt(1)) { + uri = loc.protocol + uri; + } else { + uri = loc.host + uri; + } + } + + if (!/^(https?|wss?):\/\//.test(uri)) { + debug('protocol-less url %s', uri); + if ('undefined' !== typeof loc) { + uri = loc.protocol + '//' + uri; + } else { + uri = 'https://' + uri; + } + } + + // parse + debug('parse %s', uri); + obj = parseuri(uri); + } + + // make sure we treat `localhost:80` and `localhost` equally + if (!obj.port) { + if (/^(http|ws)$/.test(obj.protocol)) { + obj.port = '80'; + } else if (/^(http|ws)s$/.test(obj.protocol)) { + obj.port = '443'; + } + } + + obj.path = obj.path || '/'; + + var ipv6 = obj.host.indexOf(':') !== -1; + var host = ipv6 ? '[' + obj.host + ']' : obj.host; + + // define unique id + obj.id = obj.protocol + '://' + host + ':' + obj.port; + // define href + obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port)); + + return obj; + } + + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + + /** + * Parses an URI + * + * @author Steven Levithan (MIT license) + * @api private + */ + + var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; + + var parts = [ + 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor' + ]; + + module.exports = function parseuri(str) { + var src = str, + b = str.indexOf('['), + e = str.indexOf(']'); + + if (b != -1 && e != -1) { + str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length); + } + + var m = re.exec(str || ''), + uri = {}, + i = 14; + + while (i--) { + uri[parts[i]] = m[i] || ''; + } + + if (b != -1 && e != -1) { + uri.source = src; + uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':'); + uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':'); + uri.ipv6uri = true; + } + + uri.pathNames = pathNames(uri, uri['path']); + uri.queryKey = queryKey(uri, uri['query']); + + return uri; + }; + + function pathNames(obj, path) { + var regx = /\/{2,9}/g, + names = path.replace(regx, "/").split("/"); + + if (path.substr(0, 1) == '/' || path.length === 0) { + names.splice(0, 1); + } + if (path.substr(path.length - 1, 1) == '/') { + names.splice(names.length - 1, 1); + } + + return names; + } + + function queryKey(uri, query) { + var data = {}; + + query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) { + if ($1) { + data[$1] = $2; + } + }); + + return data; + } + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + /** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + + exports = module.exports = __webpack_require__(5); + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage(); + + /** + * Colors. + */ + + exports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33']; + + /** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + + function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || + // is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || + // double check webkit in userAgent just in case we are in a worker + typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + + /** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + + exports.formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } + }; + + /** + * Colorize log arguments if enabled. + * + * @api public + */ + + function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function (match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); + } + + /** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + + function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === (typeof console === 'undefined' ? 'undefined' : _typeof(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments); + } + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + + function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch (e) {} + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + + function load() { + var r; + try { + r = exports.storage.debug; + } catch (e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; + } + + /** + * Enable namespaces listed in `localStorage.debug` initially. + */ + + exports.enable(load()); + + /** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + + function localstorage() { + try { + return window.localStorage; + } catch (e) {} + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + + process.listeners = function (name) { return [] } + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + + exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; + exports.coerce = coerce; + exports.disable = disable; + exports.enable = enable; + exports.enabled = enabled; + exports.humanize = __webpack_require__(6); + + /** + * Active `debug` instances. + */ + exports.instances = []; + + /** + * The currently active debug mode names, and names to skip. + */ + + exports.names = []; + exports.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + + exports.formatters = {}; + + /** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + + function selectColor(namespace) { + var hash = 0, + i; + + for (i in namespace) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; + } + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + + function createDebug(namespace) { + + var prevTime; + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + exports.instances.push(debug); + + return debug; + } + + function destroy() { + var index = exports.instances.indexOf(this); + if (index !== -1) { + exports.instances.splice(index, 1); + return true; + } else { + return false; + } + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + + function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var i; + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } + + for (i = 0; i < exports.instances.length; i++) { + var instance = exports.instances[i]; + instance.enabled = exports.enabled(instance.namespace); + } + } + + /** + * Disable debug output. + * + * @api public + */ + + function disable() { + exports.enable(''); + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + + function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; + } + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + + /** + * Helpers. + */ + + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var y = d * 365.25; + + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); + }; + + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } + } + + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; + } + + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; + } + + /** + * Pluralization helper. + */ + + function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; + } + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Module dependencies. + */ + + var debug = __webpack_require__(3)('socket.io-parser'); + var Emitter = __webpack_require__(8); + var binary = __webpack_require__(9); + var isArray = __webpack_require__(10); + var isBuf = __webpack_require__(11); + + /** + * Protocol version. + * + * @api public + */ + + exports.protocol = 4; + + /** + * Packet types. + * + * @api public + */ + + exports.types = [ + 'CONNECT', + 'DISCONNECT', + 'EVENT', + 'ACK', + 'ERROR', + 'BINARY_EVENT', + 'BINARY_ACK' + ]; + + /** + * Packet type `connect`. + * + * @api public + */ + + exports.CONNECT = 0; + + /** + * Packet type `disconnect`. + * + * @api public + */ + + exports.DISCONNECT = 1; + + /** + * Packet type `event`. + * + * @api public + */ + + exports.EVENT = 2; + + /** + * Packet type `ack`. + * + * @api public + */ + + exports.ACK = 3; + + /** + * Packet type `error`. + * + * @api public + */ + + exports.ERROR = 4; + + /** + * Packet type 'binary event' + * + * @api public + */ + + exports.BINARY_EVENT = 5; + + /** + * Packet type `binary ack`. For acks with binary arguments. + * + * @api public + */ + + exports.BINARY_ACK = 6; + + /** + * Encoder constructor. + * + * @api public + */ + + exports.Encoder = Encoder; + + /** + * Decoder constructor. + * + * @api public + */ + + exports.Decoder = Decoder; + + /** + * A socket.io Encoder instance + * + * @api public + */ + + function Encoder() {} + + var ERROR_PACKET = exports.ERROR + '"encode error"'; + + /** + * Encode a packet as a single string if non-binary, or as a + * buffer sequence, depending on packet type. + * + * @param {Object} obj - packet object + * @param {Function} callback - function to handle encodings (likely engine.write) + * @return Calls callback with Array of encodings + * @api public + */ + + Encoder.prototype.encode = function(obj, callback){ + debug('encoding packet %j', obj); + + if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) { + encodeAsBinary(obj, callback); + } else { + var encoding = encodeAsString(obj); + callback([encoding]); + } + }; + + /** + * Encode packet as string. + * + * @param {Object} packet + * @return {String} encoded + * @api private + */ + + function encodeAsString(obj) { + + // first is type + var str = '' + obj.type; + + // attachments if we have them + if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) { + str += obj.attachments + '-'; + } + + // if we have a namespace other than `/` + // we append it followed by a comma `,` + if (obj.nsp && '/' !== obj.nsp) { + str += obj.nsp + ','; + } + + // immediately followed by the id + if (null != obj.id) { + str += obj.id; + } + + // json data + if (null != obj.data) { + var payload = tryStringify(obj.data); + if (payload !== false) { + str += payload; + } else { + return ERROR_PACKET; + } + } + + debug('encoded %j as %s', obj, str); + return str; + } + + function tryStringify(str) { + try { + return JSON.stringify(str); + } catch(e){ + return false; + } + } + + /** + * Encode packet as 'buffer sequence' by removing blobs, and + * deconstructing packet into object with placeholders and + * a list of buffers. + * + * @param {Object} packet + * @return {Buffer} encoded + * @api private + */ + + function encodeAsBinary(obj, callback) { + + function writeEncoding(bloblessData) { + var deconstruction = binary.deconstructPacket(bloblessData); + var pack = encodeAsString(deconstruction.packet); + var buffers = deconstruction.buffers; + + buffers.unshift(pack); // add packet info to beginning of data list + callback(buffers); // write all the buffers + } + + binary.removeBlobs(obj, writeEncoding); + } + + /** + * A socket.io Decoder instance + * + * @return {Object} decoder + * @api public + */ + + function Decoder() { + this.reconstructor = null; + } + + /** + * Mix in `Emitter` with Decoder. + */ + + Emitter(Decoder.prototype); + + /** + * Decodes an encoded packet string into packet JSON. + * + * @param {String} obj - encoded packet + * @return {Object} packet + * @api public + */ + + Decoder.prototype.add = function(obj) { + var packet; + if (typeof obj === 'string') { + packet = decodeString(obj); + if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json + this.reconstructor = new BinaryReconstructor(packet); + + // no attachments, labeled binary but no binary data to follow + if (this.reconstructor.reconPack.attachments === 0) { + this.emit('decoded', packet); + } + } else { // non-binary full packet + this.emit('decoded', packet); + } + } else if (isBuf(obj) || obj.base64) { // raw binary data + if (!this.reconstructor) { + throw new Error('got binary data when not reconstructing a packet'); + } else { + packet = this.reconstructor.takeBinaryData(obj); + if (packet) { // received final buffer + this.reconstructor = null; + this.emit('decoded', packet); + } + } + } else { + throw new Error('Unknown type: ' + obj); + } + }; + + /** + * Decode a packet String (JSON data) + * + * @param {String} str + * @return {Object} packet + * @api private + */ + + function decodeString(str) { + var i = 0; + // look up type + var p = { + type: Number(str.charAt(0)) + }; + + if (null == exports.types[p.type]) { + return error('unknown packet type ' + p.type); + } + + // look up attachments if type binary + if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) { + var buf = ''; + while (str.charAt(++i) !== '-') { + buf += str.charAt(i); + if (i == str.length) break; + } + if (buf != Number(buf) || str.charAt(i) !== '-') { + throw new Error('Illegal attachments'); + } + p.attachments = Number(buf); + } + + // look up namespace (if any) + if ('/' === str.charAt(i + 1)) { + p.nsp = ''; + while (++i) { + var c = str.charAt(i); + if (',' === c) break; + p.nsp += c; + if (i === str.length) break; + } + } else { + p.nsp = '/'; + } + + // look up id + var next = str.charAt(i + 1); + if ('' !== next && Number(next) == next) { + p.id = ''; + while (++i) { + var c = str.charAt(i); + if (null == c || Number(c) != c) { + --i; + break; + } + p.id += str.charAt(i); + if (i === str.length) break; + } + p.id = Number(p.id); + } + + // look up json data + if (str.charAt(++i)) { + var payload = tryParse(str.substr(i)); + var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload)); + if (isPayloadValid) { + p.data = payload; + } else { + return error('invalid payload'); + } + } + + debug('decoded %s as %j', str, p); + return p; + } + + function tryParse(str) { + try { + return JSON.parse(str); + } catch(e){ + return false; + } + } + + /** + * Deallocates a parser's resources + * + * @api public + */ + + Decoder.prototype.destroy = function() { + if (this.reconstructor) { + this.reconstructor.finishedReconstruction(); + } + }; + + /** + * A manager of a binary event's 'buffer sequence'. Should + * be constructed whenever a packet of type BINARY_EVENT is + * decoded. + * + * @param {Object} packet + * @return {BinaryReconstructor} initialized reconstructor + * @api private + */ + + function BinaryReconstructor(packet) { + this.reconPack = packet; + this.buffers = []; + } + + /** + * Method to be called when binary data received from connection + * after a BINARY_EVENT packet. + * + * @param {Buffer | ArrayBuffer} binData - the raw binary data received + * @return {null | Object} returns null if more binary data is expected or + * a reconstructed packet object if all buffers have been received. + * @api private + */ + + BinaryReconstructor.prototype.takeBinaryData = function(binData) { + this.buffers.push(binData); + if (this.buffers.length === this.reconPack.attachments) { // done with buffer list + var packet = binary.reconstructPacket(this.reconPack, this.buffers); + this.finishedReconstruction(); + return packet; + } + return null; + }; + + /** + * Cleans up binary packet reconstruction variables. + * + * @api private + */ + + BinaryReconstructor.prototype.finishedReconstruction = function() { + this.reconPack = null; + this.buffers = []; + }; + + function error(msg) { + return { + type: exports.ERROR, + data: 'parser error: ' + msg + }; + } + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Expose `Emitter`. + */ + + if (true) { + module.exports = Emitter; + } + + /** + * Initialize a new `Emitter`. + * + * @api public + */ + + function Emitter(obj) { + if (obj) return mixin(obj); + }; + + /** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; + } + + /** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.on = + Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; + }; + + /** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; + }; + + /** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.off = + Emitter.prototype.removeListener = + Emitter.prototype.removeAllListeners = + Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + + // Remove event specific arrays for event types that no + // one is subscribed for to avoid memory leak. + if (callbacks.length === 0) { + delete this._callbacks['$' + event]; + } + + return this; + }; + + /** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + + Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + + var args = new Array(arguments.length - 1) + , callbacks = this._callbacks['$' + event]; + + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; + }; + + /** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + + Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; + }; + + /** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + + Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + /*global Blob,File*/ + + /** + * Module requirements + */ + + var isArray = __webpack_require__(10); + var isBuf = __webpack_require__(11); + var toString = Object.prototype.toString; + var withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]'); + var withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]'); + + /** + * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder. + * Anything with blobs or files should be fed through removeBlobs before coming + * here. + * + * @param {Object} packet - socket.io event packet + * @return {Object} with deconstructed packet and list of buffers + * @api public + */ + + exports.deconstructPacket = function(packet) { + var buffers = []; + var packetData = packet.data; + var pack = packet; + pack.data = _deconstructPacket(packetData, buffers); + pack.attachments = buffers.length; // number of binary 'attachments' + return {packet: pack, buffers: buffers}; + }; + + function _deconstructPacket(data, buffers) { + if (!data) return data; + + if (isBuf(data)) { + var placeholder = { _placeholder: true, num: buffers.length }; + buffers.push(data); + return placeholder; + } else if (isArray(data)) { + var newData = new Array(data.length); + for (var i = 0; i < data.length; i++) { + newData[i] = _deconstructPacket(data[i], buffers); + } + return newData; + } else if (typeof data === 'object' && !(data instanceof Date)) { + var newData = {}; + for (var key in data) { + newData[key] = _deconstructPacket(data[key], buffers); + } + return newData; + } + return data; + } + + /** + * Reconstructs a binary packet from its placeholder packet and buffers + * + * @param {Object} packet - event packet with placeholders + * @param {Array} buffers - binary buffers to put in placeholder positions + * @return {Object} reconstructed packet + * @api public + */ + + exports.reconstructPacket = function(packet, buffers) { + packet.data = _reconstructPacket(packet.data, buffers); + packet.attachments = undefined; // no longer useful + return packet; + }; + + function _reconstructPacket(data, buffers) { + if (!data) return data; + + if (data && data._placeholder) { + return buffers[data.num]; // appropriate buffer (should be natural order anyway) + } else if (isArray(data)) { + for (var i = 0; i < data.length; i++) { + data[i] = _reconstructPacket(data[i], buffers); + } + } else if (typeof data === 'object') { + for (var key in data) { + data[key] = _reconstructPacket(data[key], buffers); + } + } + + return data; + } + + /** + * Asynchronously removes Blobs or Files from data via + * FileReader's readAsArrayBuffer method. Used before encoding + * data as msgpack. Calls callback with the blobless data. + * + * @param {Object} data + * @param {Function} callback + * @api private + */ + + exports.removeBlobs = function(data, callback) { + function _removeBlobs(obj, curKey, containingObject) { + if (!obj) return obj; + + // convert any blob + if ((withNativeBlob && obj instanceof Blob) || + (withNativeFile && obj instanceof File)) { + pendingBlobs++; + + // async filereader + var fileReader = new FileReader(); + fileReader.onload = function() { // this.result == arraybuffer + if (containingObject) { + containingObject[curKey] = this.result; + } + else { + bloblessData = this.result; + } + + // if nothing pending its callback time + if(! --pendingBlobs) { + callback(bloblessData); + } + }; + + fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer + } else if (isArray(obj)) { // handle array + for (var i = 0; i < obj.length; i++) { + _removeBlobs(obj[i], i, obj); + } + } else if (typeof obj === 'object' && !isBuf(obj)) { // and object + for (var key in obj) { + _removeBlobs(obj[key], key, obj); + } + } + } + + var pendingBlobs = 0; + var bloblessData = data; + _removeBlobs(bloblessData); + if (!pendingBlobs) { + callback(bloblessData); + } + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; + }; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + + module.exports = isBuf; + + var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function'; + var withNativeArrayBuffer = typeof ArrayBuffer === 'function'; + + var isView = function (obj) { + return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer); + }; + + /** + * Returns true if obj is a buffer or an arraybuffer. + * + * @api private + */ + + function isBuf(obj) { + return (withNativeBuffer && Buffer.isBuffer(obj)) || + (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))); + } + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Module dependencies. + */ + + var eio = __webpack_require__(13); + var Socket = __webpack_require__(37); + var Emitter = __webpack_require__(8); + var parser = __webpack_require__(7); + var on = __webpack_require__(39); + var bind = __webpack_require__(40); + var debug = __webpack_require__(3)('socket.io-client:manager'); + var indexOf = __webpack_require__(36); + var Backoff = __webpack_require__(41); + + /** + * IE6+ hasOwnProperty + */ + + var has = Object.prototype.hasOwnProperty; + + /** + * Module exports + */ + + module.exports = Manager; + + /** + * `Manager` constructor. + * + * @param {String} engine instance or engine uri/opts + * @param {Object} options + * @api public + */ + + function Manager (uri, opts) { + if (!(this instanceof Manager)) return new Manager(uri, opts); + if (uri && ('object' === typeof uri)) { + opts = uri; + uri = undefined; + } + opts = opts || {}; + + opts.path = opts.path || '/socket.io'; + this.nsps = {}; + this.subs = []; + this.opts = opts; + this.reconnection(opts.reconnection !== false); + this.reconnectionAttempts(opts.reconnectionAttempts || Infinity); + this.reconnectionDelay(opts.reconnectionDelay || 1000); + this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000); + this.randomizationFactor(opts.randomizationFactor || 0.5); + this.backoff = new Backoff({ + min: this.reconnectionDelay(), + max: this.reconnectionDelayMax(), + jitter: this.randomizationFactor() + }); + this.timeout(null == opts.timeout ? 20000 : opts.timeout); + this.readyState = 'closed'; + this.uri = uri; + this.connecting = []; + this.lastPing = null; + this.encoding = false; + this.packetBuffer = []; + var _parser = opts.parser || parser; + this.encoder = new _parser.Encoder(); + this.decoder = new _parser.Decoder(); + this.autoConnect = opts.autoConnect !== false; + if (this.autoConnect) this.open(); + } + + /** + * Propagate given event to sockets and emit on `this` + * + * @api private + */ + + Manager.prototype.emitAll = function () { + this.emit.apply(this, arguments); + for (var nsp in this.nsps) { + if (has.call(this.nsps, nsp)) { + this.nsps[nsp].emit.apply(this.nsps[nsp], arguments); + } + } + }; + + /** + * Update `socket.id` of all sockets + * + * @api private + */ + + Manager.prototype.updateSocketIds = function () { + for (var nsp in this.nsps) { + if (has.call(this.nsps, nsp)) { + this.nsps[nsp].id = this.generateId(nsp); + } + } + }; + + /** + * generate `socket.id` for the given `nsp` + * + * @param {String} nsp + * @return {String} + * @api private + */ + + Manager.prototype.generateId = function (nsp) { + return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id; + }; + + /** + * Mix in `Emitter`. + */ + + Emitter(Manager.prototype); + + /** + * Sets the `reconnection` config. + * + * @param {Boolean} true/false if it should automatically reconnect + * @return {Manager} self or value + * @api public + */ + + Manager.prototype.reconnection = function (v) { + if (!arguments.length) return this._reconnection; + this._reconnection = !!v; + return this; + }; + + /** + * Sets the reconnection attempts config. + * + * @param {Number} max reconnection attempts before giving up + * @return {Manager} self or value + * @api public + */ + + Manager.prototype.reconnectionAttempts = function (v) { + if (!arguments.length) return this._reconnectionAttempts; + this._reconnectionAttempts = v; + return this; + }; + + /** + * Sets the delay between reconnections. + * + * @param {Number} delay + * @return {Manager} self or value + * @api public + */ + + Manager.prototype.reconnectionDelay = function (v) { + if (!arguments.length) return this._reconnectionDelay; + this._reconnectionDelay = v; + this.backoff && this.backoff.setMin(v); + return this; + }; + + Manager.prototype.randomizationFactor = function (v) { + if (!arguments.length) return this._randomizationFactor; + this._randomizationFactor = v; + this.backoff && this.backoff.setJitter(v); + return this; + }; + + /** + * Sets the maximum delay between reconnections. + * + * @param {Number} delay + * @return {Manager} self or value + * @api public + */ + + Manager.prototype.reconnectionDelayMax = function (v) { + if (!arguments.length) return this._reconnectionDelayMax; + this._reconnectionDelayMax = v; + this.backoff && this.backoff.setMax(v); + return this; + }; + + /** + * Sets the connection timeout. `false` to disable + * + * @return {Manager} self or value + * @api public + */ + + Manager.prototype.timeout = function (v) { + if (!arguments.length) return this._timeout; + this._timeout = v; + return this; + }; + + /** + * Starts trying to reconnect if reconnection is enabled and we have not + * started reconnecting yet + * + * @api private + */ + + Manager.prototype.maybeReconnectOnOpen = function () { + // Only try to reconnect if it's the first time we're connecting + if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) { + // keeps reconnection from firing twice for the same reconnection loop + this.reconnect(); + } + }; + + /** + * Sets the current transport `socket`. + * + * @param {Function} optional, callback + * @return {Manager} self + * @api public + */ + + Manager.prototype.open = + Manager.prototype.connect = function (fn, opts) { + debug('readyState %s', this.readyState); + if (~this.readyState.indexOf('open')) return this; + + debug('opening %s', this.uri); + this.engine = eio(this.uri, this.opts); + var socket = this.engine; + var self = this; + this.readyState = 'opening'; + this.skipReconnect = false; + + // emit `open` + var openSub = on(socket, 'open', function () { + self.onopen(); + fn && fn(); + }); + + // emit `connect_error` + var errorSub = on(socket, 'error', function (data) { + debug('connect_error'); + self.cleanup(); + self.readyState = 'closed'; + self.emitAll('connect_error', data); + if (fn) { + var err = new Error('Connection error'); + err.data = data; + fn(err); + } else { + // Only do this if there is no fn to handle the error + self.maybeReconnectOnOpen(); + } + }); + + // emit `connect_timeout` + if (false !== this._timeout) { + var timeout = this._timeout; + debug('connect attempt will timeout after %d', timeout); + + if (timeout === 0) { + openSub.destroy(); // prevents a race condition with the 'open' event + } + + // set timer + var timer = setTimeout(function () { + debug('connect attempt timed out after %d', timeout); + openSub.destroy(); + socket.close(); + socket.emit('error', 'timeout'); + self.emitAll('connect_timeout', timeout); + }, timeout); + + this.subs.push({ + destroy: function () { + clearTimeout(timer); + } + }); + } + + this.subs.push(openSub); + this.subs.push(errorSub); + + return this; + }; + + /** + * Called upon transport open. + * + * @api private + */ + + Manager.prototype.onopen = function () { + debug('open'); + + // clear old subs + this.cleanup(); + + // mark as open + this.readyState = 'open'; + this.emit('open'); + + // add new subs + var socket = this.engine; + this.subs.push(on(socket, 'data', bind(this, 'ondata'))); + this.subs.push(on(socket, 'ping', bind(this, 'onping'))); + this.subs.push(on(socket, 'pong', bind(this, 'onpong'))); + this.subs.push(on(socket, 'error', bind(this, 'onerror'))); + this.subs.push(on(socket, 'close', bind(this, 'onclose'))); + this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded'))); + }; + + /** + * Called upon a ping. + * + * @api private + */ + + Manager.prototype.onping = function () { + this.lastPing = new Date(); + this.emitAll('ping'); + }; + + /** + * Called upon a packet. + * + * @api private + */ + + Manager.prototype.onpong = function () { + this.emitAll('pong', new Date() - this.lastPing); + }; + + /** + * Called with data. + * + * @api private + */ + + Manager.prototype.ondata = function (data) { + this.decoder.add(data); + }; + + /** + * Called when parser fully decodes a packet. + * + * @api private + */ + + Manager.prototype.ondecoded = function (packet) { + this.emit('packet', packet); + }; + + /** + * Called upon socket error. + * + * @api private + */ + + Manager.prototype.onerror = function (err) { + debug('error', err); + this.emitAll('error', err); + }; + + /** + * Creates a new socket for the given `nsp`. + * + * @return {Socket} + * @api public + */ + + Manager.prototype.socket = function (nsp, opts) { + var socket = this.nsps[nsp]; + if (!socket) { + socket = new Socket(this, nsp, opts); + this.nsps[nsp] = socket; + var self = this; + socket.on('connecting', onConnecting); + socket.on('connect', function () { + socket.id = self.generateId(nsp); + }); + + if (this.autoConnect) { + // manually call here since connecting event is fired before listening + onConnecting(); + } + } + + function onConnecting () { + if (!~indexOf(self.connecting, socket)) { + self.connecting.push(socket); + } + } + + return socket; + }; + + /** + * Called upon a socket close. + * + * @param {Socket} socket + */ + + Manager.prototype.destroy = function (socket) { + var index = indexOf(this.connecting, socket); + if (~index) this.connecting.splice(index, 1); + if (this.connecting.length) return; + + this.close(); + }; + + /** + * Writes a packet. + * + * @param {Object} packet + * @api private + */ + + Manager.prototype.packet = function (packet) { + debug('writing packet %j', packet); + var self = this; + if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query; + + if (!self.encoding) { + // encode, then write to engine with result + self.encoding = true; + this.encoder.encode(packet, function (encodedPackets) { + for (var i = 0; i < encodedPackets.length; i++) { + self.engine.write(encodedPackets[i], packet.options); + } + self.encoding = false; + self.processPacketQueue(); + }); + } else { // add packet to the queue + self.packetBuffer.push(packet); + } + }; + + /** + * If packet buffer is non-empty, begins encoding the + * next packet in line. + * + * @api private + */ + + Manager.prototype.processPacketQueue = function () { + if (this.packetBuffer.length > 0 && !this.encoding) { + var pack = this.packetBuffer.shift(); + this.packet(pack); + } + }; + + /** + * Clean up transport subscriptions and packet buffer. + * + * @api private + */ + + Manager.prototype.cleanup = function () { + debug('cleanup'); + + var subsLength = this.subs.length; + for (var i = 0; i < subsLength; i++) { + var sub = this.subs.shift(); + sub.destroy(); + } + + this.packetBuffer = []; + this.encoding = false; + this.lastPing = null; + + this.decoder.destroy(); + }; + + /** + * Close the current socket. + * + * @api private + */ + + Manager.prototype.close = + Manager.prototype.disconnect = function () { + debug('disconnect'); + this.skipReconnect = true; + this.reconnecting = false; + if ('opening' === this.readyState) { + // `onclose` will not fire because + // an open event never happened + this.cleanup(); + } + this.backoff.reset(); + this.readyState = 'closed'; + if (this.engine) this.engine.close(); + }; + + /** + * Called upon engine close. + * + * @api private + */ + + Manager.prototype.onclose = function (reason) { + debug('onclose'); + + this.cleanup(); + this.backoff.reset(); + this.readyState = 'closed'; + this.emit('close', reason); + + if (this._reconnection && !this.skipReconnect) { + this.reconnect(); + } + }; + + /** + * Attempt a reconnection. + * + * @api private + */ + + Manager.prototype.reconnect = function () { + if (this.reconnecting || this.skipReconnect) return this; + + var self = this; + + if (this.backoff.attempts >= this._reconnectionAttempts) { + debug('reconnect failed'); + this.backoff.reset(); + this.emitAll('reconnect_failed'); + this.reconnecting = false; + } else { + var delay = this.backoff.duration(); + debug('will wait %dms before reconnect attempt', delay); + + this.reconnecting = true; + var timer = setTimeout(function () { + if (self.skipReconnect) return; + + debug('attempting reconnect'); + self.emitAll('reconnect_attempt', self.backoff.attempts); + self.emitAll('reconnecting', self.backoff.attempts); + + // check again for the case socket closed in above events + if (self.skipReconnect) return; + + self.open(function (err) { + if (err) { + debug('reconnect attempt error'); + self.reconnecting = false; + self.reconnect(); + self.emitAll('reconnect_error', err.data); + } else { + debug('reconnect success'); + self.onreconnect(); + } + }); + }, delay); + + this.subs.push({ + destroy: function () { + clearTimeout(timer); + } + }); + } + }; + + /** + * Called upon successful reconnect. + * + * @api private + */ + + Manager.prototype.onreconnect = function () { + var attempt = this.backoff.attempts; + this.reconnecting = false; + this.backoff.reset(); + this.updateSocketIds(); + this.emitAll('reconnect', attempt); + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + + module.exports = __webpack_require__(14); + + /** + * Exports parser + * + * @api public + * + */ + module.exports.parser = __webpack_require__(22); + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module dependencies. + */ + + var transports = __webpack_require__(15); + var Emitter = __webpack_require__(8); + var debug = __webpack_require__(3)('engine.io-client:socket'); + var index = __webpack_require__(36); + var parser = __webpack_require__(22); + var parseuri = __webpack_require__(2); + var parseqs = __webpack_require__(30); + + /** + * Module exports. + */ + + module.exports = Socket; + + /** + * Socket constructor. + * + * @param {String|Object} uri or options + * @param {Object} options + * @api public + */ + + function Socket (uri, opts) { + if (!(this instanceof Socket)) return new Socket(uri, opts); + + opts = opts || {}; + + if (uri && 'object' === typeof uri) { + opts = uri; + uri = null; + } + + if (uri) { + uri = parseuri(uri); + opts.hostname = uri.host; + opts.secure = uri.protocol === 'https' || uri.protocol === 'wss'; + opts.port = uri.port; + if (uri.query) opts.query = uri.query; + } else if (opts.host) { + opts.hostname = parseuri(opts.host).host; + } + + this.secure = null != opts.secure ? opts.secure + : (typeof location !== 'undefined' && 'https:' === location.protocol); + + if (opts.hostname && !opts.port) { + // if no port is specified manually, use the protocol default + opts.port = this.secure ? '443' : '80'; + } + + this.agent = opts.agent || false; + this.hostname = opts.hostname || + (typeof location !== 'undefined' ? location.hostname : 'localhost'); + this.port = opts.port || (typeof location !== 'undefined' && location.port + ? location.port + : (this.secure ? 443 : 80)); + this.query = opts.query || {}; + if ('string' === typeof this.query) this.query = parseqs.decode(this.query); + this.upgrade = false !== opts.upgrade; + this.path = (opts.path || '/engine.io').replace(/\/$/, '') + '/'; + this.forceJSONP = !!opts.forceJSONP; + this.jsonp = false !== opts.jsonp; + this.forceBase64 = !!opts.forceBase64; + this.enablesXDR = !!opts.enablesXDR; + this.withCredentials = false !== opts.withCredentials; + this.timestampParam = opts.timestampParam || 't'; + this.timestampRequests = opts.timestampRequests; + this.transports = opts.transports || ['polling', 'websocket']; + this.transportOptions = opts.transportOptions || {}; + this.readyState = ''; + this.writeBuffer = []; + this.prevBufferLen = 0; + this.policyPort = opts.policyPort || 843; + this.rememberUpgrade = opts.rememberUpgrade || false; + this.binaryType = null; + this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades; + this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false; + + if (true === this.perMessageDeflate) this.perMessageDeflate = {}; + if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) { + this.perMessageDeflate.threshold = 1024; + } + + // SSL options for Node.js client + this.pfx = opts.pfx || null; + this.key = opts.key || null; + this.passphrase = opts.passphrase || null; + this.cert = opts.cert || null; + this.ca = opts.ca || null; + this.ciphers = opts.ciphers || null; + this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized; + this.forceNode = !!opts.forceNode; + + // detect ReactNative environment + this.isReactNative = (typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative'); + + // other options for Node.js or ReactNative client + if (typeof self === 'undefined' || this.isReactNative) { + if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) { + this.extraHeaders = opts.extraHeaders; + } + + if (opts.localAddress) { + this.localAddress = opts.localAddress; + } + } + + // set on handshake + this.id = null; + this.upgrades = null; + this.pingInterval = null; + this.pingTimeout = null; + + // set on heartbeat + this.pingIntervalTimer = null; + this.pingTimeoutTimer = null; + + this.open(); + } + + Socket.priorWebsocketSuccess = false; + + /** + * Mix in `Emitter`. + */ + + Emitter(Socket.prototype); + + /** + * Protocol version. + * + * @api public + */ + + Socket.protocol = parser.protocol; // this is an int + + /** + * Expose deps for legacy compatibility + * and standalone browser access. + */ + + Socket.Socket = Socket; + Socket.Transport = __webpack_require__(21); + Socket.transports = __webpack_require__(15); + Socket.parser = __webpack_require__(22); + + /** + * Creates transport of the given type. + * + * @param {String} transport name + * @return {Transport} + * @api private + */ + + Socket.prototype.createTransport = function (name) { + debug('creating transport "%s"', name); + var query = clone(this.query); + + // append engine.io protocol identifier + query.EIO = parser.protocol; + + // transport name + query.transport = name; + + // per-transport options + var options = this.transportOptions[name] || {}; + + // session id if we already have one + if (this.id) query.sid = this.id; + + var transport = new transports[name]({ + query: query, + socket: this, + agent: options.agent || this.agent, + hostname: options.hostname || this.hostname, + port: options.port || this.port, + secure: options.secure || this.secure, + path: options.path || this.path, + forceJSONP: options.forceJSONP || this.forceJSONP, + jsonp: options.jsonp || this.jsonp, + forceBase64: options.forceBase64 || this.forceBase64, + enablesXDR: options.enablesXDR || this.enablesXDR, + withCredentials: options.withCredentials || this.withCredentials, + timestampRequests: options.timestampRequests || this.timestampRequests, + timestampParam: options.timestampParam || this.timestampParam, + policyPort: options.policyPort || this.policyPort, + pfx: options.pfx || this.pfx, + key: options.key || this.key, + passphrase: options.passphrase || this.passphrase, + cert: options.cert || this.cert, + ca: options.ca || this.ca, + ciphers: options.ciphers || this.ciphers, + rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized, + perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate, + extraHeaders: options.extraHeaders || this.extraHeaders, + forceNode: options.forceNode || this.forceNode, + localAddress: options.localAddress || this.localAddress, + requestTimeout: options.requestTimeout || this.requestTimeout, + protocols: options.protocols || void (0), + isReactNative: this.isReactNative + }); + + return transport; + }; + + function clone (obj) { + var o = {}; + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + o[i] = obj[i]; + } + } + return o; + } + + /** + * Initializes transport to use and starts probe. + * + * @api private + */ + Socket.prototype.open = function () { + var transport; + if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) { + transport = 'websocket'; + } else if (0 === this.transports.length) { + // Emit error on next tick so it can be listened to + var self = this; + setTimeout(function () { + self.emit('error', 'No transports available'); + }, 0); + return; + } else { + transport = this.transports[0]; + } + this.readyState = 'opening'; + + // Retry with the next transport if the transport is disabled (jsonp: false) + try { + transport = this.createTransport(transport); + } catch (e) { + this.transports.shift(); + this.open(); + return; + } + + transport.open(); + this.setTransport(transport); + }; + + /** + * Sets the current transport. Disables the existing one (if any). + * + * @api private + */ + + Socket.prototype.setTransport = function (transport) { + debug('setting transport %s', transport.name); + var self = this; + + if (this.transport) { + debug('clearing existing transport %s', this.transport.name); + this.transport.removeAllListeners(); + } + + // set up transport + this.transport = transport; + + // set up transport listeners + transport + .on('drain', function () { + self.onDrain(); + }) + .on('packet', function (packet) { + self.onPacket(packet); + }) + .on('error', function (e) { + self.onError(e); + }) + .on('close', function () { + self.onClose('transport close'); + }); + }; + + /** + * Probes a transport. + * + * @param {String} transport name + * @api private + */ + + Socket.prototype.probe = function (name) { + debug('probing transport "%s"', name); + var transport = this.createTransport(name, { probe: 1 }); + var failed = false; + var self = this; + + Socket.priorWebsocketSuccess = false; + + function onTransportOpen () { + if (self.onlyBinaryUpgrades) { + var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary; + failed = failed || upgradeLosesBinary; + } + if (failed) return; + + debug('probe transport "%s" opened', name); + transport.send([{ type: 'ping', data: 'probe' }]); + transport.once('packet', function (msg) { + if (failed) return; + if ('pong' === msg.type && 'probe' === msg.data) { + debug('probe transport "%s" pong', name); + self.upgrading = true; + self.emit('upgrading', transport); + if (!transport) return; + Socket.priorWebsocketSuccess = 'websocket' === transport.name; + + debug('pausing current transport "%s"', self.transport.name); + self.transport.pause(function () { + if (failed) return; + if ('closed' === self.readyState) return; + debug('changing transport and sending upgrade packet'); + + cleanup(); + + self.setTransport(transport); + transport.send([{ type: 'upgrade' }]); + self.emit('upgrade', transport); + transport = null; + self.upgrading = false; + self.flush(); + }); + } else { + debug('probe transport "%s" failed', name); + var err = new Error('probe error'); + err.transport = transport.name; + self.emit('upgradeError', err); + } + }); + } + + function freezeTransport () { + if (failed) return; + + // Any callback called by transport should be ignored since now + failed = true; + + cleanup(); + + transport.close(); + transport = null; + } + + // Handle any error that happens while probing + function onerror (err) { + var error = new Error('probe error: ' + err); + error.transport = transport.name; + + freezeTransport(); + + debug('probe transport "%s" failed because of error: %s', name, err); + + self.emit('upgradeError', error); + } + + function onTransportClose () { + onerror('transport closed'); + } + + // When the socket is closed while we're probing + function onclose () { + onerror('socket closed'); + } + + // When the socket is upgraded while we're probing + function onupgrade (to) { + if (transport && to.name !== transport.name) { + debug('"%s" works - aborting "%s"', to.name, transport.name); + freezeTransport(); + } + } + + // Remove all listeners on the transport and on self + function cleanup () { + transport.removeListener('open', onTransportOpen); + transport.removeListener('error', onerror); + transport.removeListener('close', onTransportClose); + self.removeListener('close', onclose); + self.removeListener('upgrading', onupgrade); + } + + transport.once('open', onTransportOpen); + transport.once('error', onerror); + transport.once('close', onTransportClose); + + this.once('close', onclose); + this.once('upgrading', onupgrade); + + transport.open(); + }; + + /** + * Called when connection is deemed open. + * + * @api public + */ + + Socket.prototype.onOpen = function () { + debug('socket open'); + this.readyState = 'open'; + Socket.priorWebsocketSuccess = 'websocket' === this.transport.name; + this.emit('open'); + this.flush(); + + // we check for `readyState` in case an `open` + // listener already closed the socket + if ('open' === this.readyState && this.upgrade && this.transport.pause) { + debug('starting upgrade probes'); + for (var i = 0, l = this.upgrades.length; i < l; i++) { + this.probe(this.upgrades[i]); + } + } + }; + + /** + * Handles a packet. + * + * @api private + */ + + Socket.prototype.onPacket = function (packet) { + if ('opening' === this.readyState || 'open' === this.readyState || + 'closing' === this.readyState) { + debug('socket receive: type "%s", data "%s"', packet.type, packet.data); + + this.emit('packet', packet); + + // Socket is live - any packet counts + this.emit('heartbeat'); + + switch (packet.type) { + case 'open': + this.onHandshake(JSON.parse(packet.data)); + break; + + case 'pong': + this.setPing(); + this.emit('pong'); + break; + + case 'error': + var err = new Error('server error'); + err.code = packet.data; + this.onError(err); + break; + + case 'message': + this.emit('data', packet.data); + this.emit('message', packet.data); + break; + } + } else { + debug('packet received with socket readyState "%s"', this.readyState); + } + }; + + /** + * Called upon handshake completion. + * + * @param {Object} handshake obj + * @api private + */ + + Socket.prototype.onHandshake = function (data) { + this.emit('handshake', data); + this.id = data.sid; + this.transport.query.sid = data.sid; + this.upgrades = this.filterUpgrades(data.upgrades); + this.pingInterval = data.pingInterval; + this.pingTimeout = data.pingTimeout; + this.onOpen(); + // In case open handler closes socket + if ('closed' === this.readyState) return; + this.setPing(); + + // Prolong liveness of socket on heartbeat + this.removeListener('heartbeat', this.onHeartbeat); + this.on('heartbeat', this.onHeartbeat); + }; + + /** + * Resets ping timeout. + * + * @api private + */ + + Socket.prototype.onHeartbeat = function (timeout) { + clearTimeout(this.pingTimeoutTimer); + var self = this; + self.pingTimeoutTimer = setTimeout(function () { + if ('closed' === self.readyState) return; + self.onClose('ping timeout'); + }, timeout || (self.pingInterval + self.pingTimeout)); + }; + + /** + * Pings server every `this.pingInterval` and expects response + * within `this.pingTimeout` or closes connection. + * + * @api private + */ + + Socket.prototype.setPing = function () { + var self = this; + clearTimeout(self.pingIntervalTimer); + self.pingIntervalTimer = setTimeout(function () { + debug('writing ping packet - expecting pong within %sms', self.pingTimeout); + self.ping(); + self.onHeartbeat(self.pingTimeout); + }, self.pingInterval); + }; + + /** + * Sends a ping packet. + * + * @api private + */ + + Socket.prototype.ping = function () { + var self = this; + this.sendPacket('ping', function () { + self.emit('ping'); + }); + }; + + /** + * Called on `drain` event + * + * @api private + */ + + Socket.prototype.onDrain = function () { + this.writeBuffer.splice(0, this.prevBufferLen); + + // setting prevBufferLen = 0 is very important + // for example, when upgrading, upgrade packet is sent over, + // and a nonzero prevBufferLen could cause problems on `drain` + this.prevBufferLen = 0; + + if (0 === this.writeBuffer.length) { + this.emit('drain'); + } else { + this.flush(); + } + }; + + /** + * Flush write buffers. + * + * @api private + */ + + Socket.prototype.flush = function () { + if ('closed' !== this.readyState && this.transport.writable && + !this.upgrading && this.writeBuffer.length) { + debug('flushing %d packets in socket', this.writeBuffer.length); + this.transport.send(this.writeBuffer); + // keep track of current length of writeBuffer + // splice writeBuffer and callbackBuffer on `drain` + this.prevBufferLen = this.writeBuffer.length; + this.emit('flush'); + } + }; + + /** + * Sends a message. + * + * @param {String} message. + * @param {Function} callback function. + * @param {Object} options. + * @return {Socket} for chaining. + * @api public + */ + + Socket.prototype.write = + Socket.prototype.send = function (msg, options, fn) { + this.sendPacket('message', msg, options, fn); + return this; + }; + + /** + * Sends a packet. + * + * @param {String} packet type. + * @param {String} data. + * @param {Object} options. + * @param {Function} callback function. + * @api private + */ + + Socket.prototype.sendPacket = function (type, data, options, fn) { + if ('function' === typeof data) { + fn = data; + data = undefined; + } + + if ('function' === typeof options) { + fn = options; + options = null; + } + + if ('closing' === this.readyState || 'closed' === this.readyState) { + return; + } + + options = options || {}; + options.compress = false !== options.compress; + + var packet = { + type: type, + data: data, + options: options + }; + this.emit('packetCreate', packet); + this.writeBuffer.push(packet); + if (fn) this.once('flush', fn); + this.flush(); + }; + + /** + * Closes the connection. + * + * @api private + */ + + Socket.prototype.close = function () { + if ('opening' === this.readyState || 'open' === this.readyState) { + this.readyState = 'closing'; + + var self = this; + + if (this.writeBuffer.length) { + this.once('drain', function () { + if (this.upgrading) { + waitForUpgrade(); + } else { + close(); + } + }); + } else if (this.upgrading) { + waitForUpgrade(); + } else { + close(); + } + } + + function close () { + self.onClose('forced close'); + debug('socket closing - telling transport to close'); + self.transport.close(); + } + + function cleanupAndClose () { + self.removeListener('upgrade', cleanupAndClose); + self.removeListener('upgradeError', cleanupAndClose); + close(); + } + + function waitForUpgrade () { + // wait for upgrade to finish since we can't send packets while pausing a transport + self.once('upgrade', cleanupAndClose); + self.once('upgradeError', cleanupAndClose); + } + + return this; + }; + + /** + * Called upon transport error + * + * @api private + */ + + Socket.prototype.onError = function (err) { + debug('socket error %j', err); + Socket.priorWebsocketSuccess = false; + this.emit('error', err); + this.onClose('transport error', err); + }; + + /** + * Called upon transport close. + * + * @api private + */ + + Socket.prototype.onClose = function (reason, desc) { + if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) { + debug('socket close with reason: "%s"', reason); + var self = this; + + // clear timers + clearTimeout(this.pingIntervalTimer); + clearTimeout(this.pingTimeoutTimer); + + // stop event from firing again for transport + this.transport.removeAllListeners('close'); + + // ensure transport won't stay open + this.transport.close(); + + // ignore further transport communication + this.transport.removeAllListeners(); + + // set ready state + this.readyState = 'closed'; + + // clear session id + this.id = null; + + // emit close event + this.emit('close', reason, desc); + + // clean buffers after, so users can still + // grab the buffers on `close` event + self.writeBuffer = []; + self.prevBufferLen = 0; + } + }; + + /** + * Filters upgrades, returning only those matching client transports. + * + * @param {Array} server upgrades + * @api private + * + */ + + Socket.prototype.filterUpgrades = function (upgrades) { + var filteredUpgrades = []; + for (var i = 0, j = upgrades.length; i < j; i++) { + if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]); + } + return filteredUpgrades; + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module dependencies + */ + + var XMLHttpRequest = __webpack_require__(16); + var XHR = __webpack_require__(19); + var JSONP = __webpack_require__(33); + var websocket = __webpack_require__(34); + + /** + * Export transports. + */ + + exports.polling = polling; + exports.websocket = websocket; + + /** + * Polling transport polymorphic constructor. + * Decides on xhr vs jsonp based on feature detection. + * + * @api private + */ + + function polling (opts) { + var xhr; + var xd = false; + var xs = false; + var jsonp = false !== opts.jsonp; + + if (typeof location !== 'undefined') { + var isSSL = 'https:' === location.protocol; + var port = location.port; + + // some user agents have empty `location.port` + if (!port) { + port = isSSL ? 443 : 80; + } + + xd = opts.hostname !== location.hostname || port !== opts.port; + xs = opts.secure !== isSSL; + } + + opts.xdomain = xd; + opts.xscheme = xs; + xhr = new XMLHttpRequest(opts); + + if ('open' in xhr && !opts.forceJSONP) { + return new XHR(opts); + } else { + if (!jsonp) throw new Error('JSONP disabled'); + return new JSONP(opts); + } + } + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + // browser shim for xmlhttprequest module + + var hasCORS = __webpack_require__(17); + var globalThis = __webpack_require__(18); + + module.exports = function (opts) { + var xdomain = opts.xdomain; + + // scheme must be same when usign XDomainRequest + // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx + var xscheme = opts.xscheme; + + // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default. + // https://github.com/Automattic/engine.io-client/pull/217 + var enablesXDR = opts.enablesXDR; + + // XMLHttpRequest can be disabled on IE + try { + if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) { + return new XMLHttpRequest(); + } + } catch (e) { } + + // Use XDomainRequest for IE8 if enablesXDR is true + // because loading bar keeps flashing when using jsonp-polling + // https://github.com/yujiosaka/socke.io-ie8-loading-example + try { + if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) { + return new XDomainRequest(); + } + } catch (e) { } + + if (!xdomain) { + try { + return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP'); + } catch (e) { } + } + }; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + + /** + * Module exports. + * + * Logic borrowed from Modernizr: + * + * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js + */ + + try { + module.exports = typeof XMLHttpRequest !== 'undefined' && + 'withCredentials' in new XMLHttpRequest(); + } catch (err) { + // if XMLHttp support is disabled in IE then it will throw + // when trying to create + module.exports = false; + } + + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + + module.exports = (function () { + if (typeof self !== 'undefined') { + return self; + } else if (typeof window !== 'undefined') { + return window; + } else { + return Function('return this')(); // eslint-disable-line no-new-func + } + })(); + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + /* global attachEvent */ + + /** + * Module requirements. + */ + + var XMLHttpRequest = __webpack_require__(16); + var Polling = __webpack_require__(20); + var Emitter = __webpack_require__(8); + var inherit = __webpack_require__(31); + var debug = __webpack_require__(3)('engine.io-client:polling-xhr'); + var globalThis = __webpack_require__(18); + + /** + * Module exports. + */ + + module.exports = XHR; + module.exports.Request = Request; + + /** + * Empty function + */ + + function empty () {} + + /** + * XHR Polling constructor. + * + * @param {Object} opts + * @api public + */ + + function XHR (opts) { + Polling.call(this, opts); + this.requestTimeout = opts.requestTimeout; + this.extraHeaders = opts.extraHeaders; + + if (typeof location !== 'undefined') { + var isSSL = 'https:' === location.protocol; + var port = location.port; + + // some user agents have empty `location.port` + if (!port) { + port = isSSL ? 443 : 80; + } + + this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) || + port !== opts.port; + this.xs = opts.secure !== isSSL; + } + } + + /** + * Inherits from Polling. + */ + + inherit(XHR, Polling); + + /** + * XHR supports binary + */ + + XHR.prototype.supportsBinary = true; + + /** + * Creates a request. + * + * @param {String} method + * @api private + */ + + XHR.prototype.request = function (opts) { + opts = opts || {}; + opts.uri = this.uri(); + opts.xd = this.xd; + opts.xs = this.xs; + opts.agent = this.agent || false; + opts.supportsBinary = this.supportsBinary; + opts.enablesXDR = this.enablesXDR; + opts.withCredentials = this.withCredentials; + + // SSL options for Node.js client + opts.pfx = this.pfx; + opts.key = this.key; + opts.passphrase = this.passphrase; + opts.cert = this.cert; + opts.ca = this.ca; + opts.ciphers = this.ciphers; + opts.rejectUnauthorized = this.rejectUnauthorized; + opts.requestTimeout = this.requestTimeout; + + // other options for Node.js client + opts.extraHeaders = this.extraHeaders; + + return new Request(opts); + }; + + /** + * Sends data. + * + * @param {String} data to send. + * @param {Function} called upon flush. + * @api private + */ + + XHR.prototype.doWrite = function (data, fn) { + var isBinary = typeof data !== 'string' && data !== undefined; + var req = this.request({ method: 'POST', data: data, isBinary: isBinary }); + var self = this; + req.on('success', fn); + req.on('error', function (err) { + self.onError('xhr post error', err); + }); + this.sendXhr = req; + }; + + /** + * Starts a poll cycle. + * + * @api private + */ + + XHR.prototype.doPoll = function () { + debug('xhr poll'); + var req = this.request(); + var self = this; + req.on('data', function (data) { + self.onData(data); + }); + req.on('error', function (err) { + self.onError('xhr poll error', err); + }); + this.pollXhr = req; + }; + + /** + * Request constructor + * + * @param {Object} options + * @api public + */ + + function Request (opts) { + this.method = opts.method || 'GET'; + this.uri = opts.uri; + this.xd = !!opts.xd; + this.xs = !!opts.xs; + this.async = false !== opts.async; + this.data = undefined !== opts.data ? opts.data : null; + this.agent = opts.agent; + this.isBinary = opts.isBinary; + this.supportsBinary = opts.supportsBinary; + this.enablesXDR = opts.enablesXDR; + this.withCredentials = opts.withCredentials; + this.requestTimeout = opts.requestTimeout; + + // SSL options for Node.js client + this.pfx = opts.pfx; + this.key = opts.key; + this.passphrase = opts.passphrase; + this.cert = opts.cert; + this.ca = opts.ca; + this.ciphers = opts.ciphers; + this.rejectUnauthorized = opts.rejectUnauthorized; + + // other options for Node.js client + this.extraHeaders = opts.extraHeaders; + + this.create(); + } + + /** + * Mix in `Emitter`. + */ + + Emitter(Request.prototype); + + /** + * Creates the XHR object and sends the request. + * + * @api private + */ + + Request.prototype.create = function () { + var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR }; + + // SSL options for Node.js client + opts.pfx = this.pfx; + opts.key = this.key; + opts.passphrase = this.passphrase; + opts.cert = this.cert; + opts.ca = this.ca; + opts.ciphers = this.ciphers; + opts.rejectUnauthorized = this.rejectUnauthorized; + + var xhr = this.xhr = new XMLHttpRequest(opts); + var self = this; + + try { + debug('xhr open %s: %s', this.method, this.uri); + xhr.open(this.method, this.uri, this.async); + try { + if (this.extraHeaders) { + xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true); + for (var i in this.extraHeaders) { + if (this.extraHeaders.hasOwnProperty(i)) { + xhr.setRequestHeader(i, this.extraHeaders[i]); + } + } + } + } catch (e) {} + + if ('POST' === this.method) { + try { + if (this.isBinary) { + xhr.setRequestHeader('Content-type', 'application/octet-stream'); + } else { + xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8'); + } + } catch (e) {} + } + + try { + xhr.setRequestHeader('Accept', '*/*'); + } catch (e) {} + + // ie6 check + if ('withCredentials' in xhr) { + xhr.withCredentials = this.withCredentials; + } + + if (this.requestTimeout) { + xhr.timeout = this.requestTimeout; + } + + if (this.hasXDR()) { + xhr.onload = function () { + self.onLoad(); + }; + xhr.onerror = function () { + self.onError(xhr.responseText); + }; + } else { + xhr.onreadystatechange = function () { + if (xhr.readyState === 2) { + try { + var contentType = xhr.getResponseHeader('Content-Type'); + if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') { + xhr.responseType = 'arraybuffer'; + } + } catch (e) {} + } + if (4 !== xhr.readyState) return; + if (200 === xhr.status || 1223 === xhr.status) { + self.onLoad(); + } else { + // make sure the `error` event handler that's user-set + // does not throw in the same tick and gets caught here + setTimeout(function () { + self.onError(typeof xhr.status === 'number' ? xhr.status : 0); + }, 0); + } + }; + } + + debug('xhr data %s', this.data); + xhr.send(this.data); + } catch (e) { + // Need to defer since .create() is called directly fhrom the constructor + // and thus the 'error' event can only be only bound *after* this exception + // occurs. Therefore, also, we cannot throw here at all. + setTimeout(function () { + self.onError(e); + }, 0); + return; + } + + if (typeof document !== 'undefined') { + this.index = Request.requestsCount++; + Request.requests[this.index] = this; + } + }; + + /** + * Called upon successful response. + * + * @api private + */ + + Request.prototype.onSuccess = function () { + this.emit('success'); + this.cleanup(); + }; + + /** + * Called if we have data. + * + * @api private + */ + + Request.prototype.onData = function (data) { + this.emit('data', data); + this.onSuccess(); + }; + + /** + * Called upon error. + * + * @api private + */ + + Request.prototype.onError = function (err) { + this.emit('error', err); + this.cleanup(true); + }; + + /** + * Cleans up house. + * + * @api private + */ + + Request.prototype.cleanup = function (fromError) { + if ('undefined' === typeof this.xhr || null === this.xhr) { + return; + } + // xmlhttprequest + if (this.hasXDR()) { + this.xhr.onload = this.xhr.onerror = empty; + } else { + this.xhr.onreadystatechange = empty; + } + + if (fromError) { + try { + this.xhr.abort(); + } catch (e) {} + } + + if (typeof document !== 'undefined') { + delete Request.requests[this.index]; + } + + this.xhr = null; + }; + + /** + * Called upon load. + * + * @api private + */ + + Request.prototype.onLoad = function () { + var data; + try { + var contentType; + try { + contentType = this.xhr.getResponseHeader('Content-Type'); + } catch (e) {} + if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') { + data = this.xhr.response || this.xhr.responseText; + } else { + data = this.xhr.responseText; + } + } catch (e) { + this.onError(e); + } + if (null != data) { + this.onData(data); + } + }; + + /** + * Check if it has XDomainRequest. + * + * @api private + */ + + Request.prototype.hasXDR = function () { + return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR; + }; + + /** + * Aborts the request. + * + * @api public + */ + + Request.prototype.abort = function () { + this.cleanup(); + }; + + /** + * Aborts pending requests when unloading the window. This is needed to prevent + * memory leaks (e.g. when using IE) and to ensure that no spurious error is + * emitted. + */ + + Request.requestsCount = 0; + Request.requests = {}; + + if (typeof document !== 'undefined') { + if (typeof attachEvent === 'function') { + attachEvent('onunload', unloadHandler); + } else if (typeof addEventListener === 'function') { + var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload'; + addEventListener(terminationEvent, unloadHandler, false); + } + } + + function unloadHandler () { + for (var i in Request.requests) { + if (Request.requests.hasOwnProperty(i)) { + Request.requests[i].abort(); + } + } + } + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module dependencies. + */ + + var Transport = __webpack_require__(21); + var parseqs = __webpack_require__(30); + var parser = __webpack_require__(22); + var inherit = __webpack_require__(31); + var yeast = __webpack_require__(32); + var debug = __webpack_require__(3)('engine.io-client:polling'); + + /** + * Module exports. + */ + + module.exports = Polling; + + /** + * Is XHR2 supported? + */ + + var hasXHR2 = (function () { + var XMLHttpRequest = __webpack_require__(16); + var xhr = new XMLHttpRequest({ xdomain: false }); + return null != xhr.responseType; + })(); + + /** + * Polling interface. + * + * @param {Object} opts + * @api private + */ + + function Polling (opts) { + var forceBase64 = (opts && opts.forceBase64); + if (!hasXHR2 || forceBase64) { + this.supportsBinary = false; + } + Transport.call(this, opts); + } + + /** + * Inherits from Transport. + */ + + inherit(Polling, Transport); + + /** + * Transport name. + */ + + Polling.prototype.name = 'polling'; + + /** + * Opens the socket (triggers polling). We write a PING message to determine + * when the transport is open. + * + * @api private + */ + + Polling.prototype.doOpen = function () { + this.poll(); + }; + + /** + * Pauses polling. + * + * @param {Function} callback upon buffers are flushed and transport is paused + * @api private + */ + + Polling.prototype.pause = function (onPause) { + var self = this; + + this.readyState = 'pausing'; + + function pause () { + debug('paused'); + self.readyState = 'paused'; + onPause(); + } + + if (this.polling || !this.writable) { + var total = 0; + + if (this.polling) { + debug('we are currently polling - waiting to pause'); + total++; + this.once('pollComplete', function () { + debug('pre-pause polling complete'); + --total || pause(); + }); + } + + if (!this.writable) { + debug('we are currently writing - waiting to pause'); + total++; + this.once('drain', function () { + debug('pre-pause writing complete'); + --total || pause(); + }); + } + } else { + pause(); + } + }; + + /** + * Starts polling cycle. + * + * @api public + */ + + Polling.prototype.poll = function () { + debug('polling'); + this.polling = true; + this.doPoll(); + this.emit('poll'); + }; + + /** + * Overloads onData to detect payloads. + * + * @api private + */ + + Polling.prototype.onData = function (data) { + var self = this; + debug('polling got data %s', data); + var callback = function (packet, index, total) { + // if its the first message we consider the transport open + if ('opening' === self.readyState && packet.type === 'open') { + self.onOpen(); + } + + // if its a close packet, we close the ongoing requests + if ('close' === packet.type) { + self.onClose(); + return false; + } + + // otherwise bypass onData and handle the message + self.onPacket(packet); + }; + + // decode payload + parser.decodePayload(data, this.socket.binaryType, callback); + + // if an event did not trigger closing + if ('closed' !== this.readyState) { + // if we got data we're not polling + this.polling = false; + this.emit('pollComplete'); + + if ('open' === this.readyState) { + this.poll(); + } else { + debug('ignoring poll - transport state "%s"', this.readyState); + } + } + }; + + /** + * For polling, send a close packet. + * + * @api private + */ + + Polling.prototype.doClose = function () { + var self = this; + + function close () { + debug('writing close packet'); + self.write([{ type: 'close' }]); + } + + if ('open' === this.readyState) { + debug('transport open - closing'); + close(); + } else { + // in case we're trying to close while + // handshaking is in progress (GH-164) + debug('transport not open - deferring close'); + this.once('open', close); + } + }; + + /** + * Writes a packets payload. + * + * @param {Array} data packets + * @param {Function} drain callback + * @api private + */ + + Polling.prototype.write = function (packets) { + var self = this; + this.writable = false; + var callbackfn = function () { + self.writable = true; + self.emit('drain'); + }; + + parser.encodePayload(packets, this.supportsBinary, function (data) { + self.doWrite(data, callbackfn); + }); + }; + + /** + * Generates uri for connection. + * + * @api private + */ + + Polling.prototype.uri = function () { + var query = this.query || {}; + var schema = this.secure ? 'https' : 'http'; + var port = ''; + + // cache busting is forced + if (false !== this.timestampRequests) { + query[this.timestampParam] = yeast(); + } + + if (!this.supportsBinary && !query.sid) { + query.b64 = 1; + } + + query = parseqs.encode(query); + + // avoid port if default for schema + if (this.port && (('https' === schema && Number(this.port) !== 443) || + ('http' === schema && Number(this.port) !== 80))) { + port = ':' + this.port; + } + + // prepend ? to query + if (query.length) { + query = '?' + query; + } + + var ipv6 = this.hostname.indexOf(':') !== -1; + return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query; + }; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module dependencies. + */ + + var parser = __webpack_require__(22); + var Emitter = __webpack_require__(8); + + /** + * Module exports. + */ + + module.exports = Transport; + + /** + * Transport abstract constructor. + * + * @param {Object} options. + * @api private + */ + + function Transport (opts) { + this.path = opts.path; + this.hostname = opts.hostname; + this.port = opts.port; + this.secure = opts.secure; + this.query = opts.query; + this.timestampParam = opts.timestampParam; + this.timestampRequests = opts.timestampRequests; + this.readyState = ''; + this.agent = opts.agent || false; + this.socket = opts.socket; + this.enablesXDR = opts.enablesXDR; + this.withCredentials = opts.withCredentials; + + // SSL options for Node.js client + this.pfx = opts.pfx; + this.key = opts.key; + this.passphrase = opts.passphrase; + this.cert = opts.cert; + this.ca = opts.ca; + this.ciphers = opts.ciphers; + this.rejectUnauthorized = opts.rejectUnauthorized; + this.forceNode = opts.forceNode; + + // results of ReactNative environment detection + this.isReactNative = opts.isReactNative; + + // other options for Node.js client + this.extraHeaders = opts.extraHeaders; + this.localAddress = opts.localAddress; + } + + /** + * Mix in `Emitter`. + */ + + Emitter(Transport.prototype); + + /** + * Emits an error. + * + * @param {String} str + * @return {Transport} for chaining + * @api public + */ + + Transport.prototype.onError = function (msg, desc) { + var err = new Error(msg); + err.type = 'TransportError'; + err.description = desc; + this.emit('error', err); + return this; + }; + + /** + * Opens the transport. + * + * @api public + */ + + Transport.prototype.open = function () { + if ('closed' === this.readyState || '' === this.readyState) { + this.readyState = 'opening'; + this.doOpen(); + } + + return this; + }; + + /** + * Closes the transport. + * + * @api private + */ + + Transport.prototype.close = function () { + if ('opening' === this.readyState || 'open' === this.readyState) { + this.doClose(); + this.onClose(); + } + + return this; + }; + + /** + * Sends multiple packets. + * + * @param {Array} packets + * @api private + */ + + Transport.prototype.send = function (packets) { + if ('open' === this.readyState) { + this.write(packets); + } else { + throw new Error('Transport not open'); + } + }; + + /** + * Called upon open + * + * @api private + */ + + Transport.prototype.onOpen = function () { + this.readyState = 'open'; + this.writable = true; + this.emit('open'); + }; + + /** + * Called with data. + * + * @param {String} data + * @api private + */ + + Transport.prototype.onData = function (data) { + var packet = parser.decodePacket(data, this.socket.binaryType); + this.onPacket(packet); + }; + + /** + * Called with a decoded packet. + */ + + Transport.prototype.onPacket = function (packet) { + this.emit('packet', packet); + }; + + /** + * Called upon close. + * + * @api private + */ + + Transport.prototype.onClose = function () { + this.readyState = 'closed'; + this.emit('close'); + }; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module dependencies. + */ + + var keys = __webpack_require__(23); + var hasBinary = __webpack_require__(24); + var sliceBuffer = __webpack_require__(25); + var after = __webpack_require__(26); + var utf8 = __webpack_require__(27); + + var base64encoder; + if (typeof ArrayBuffer !== 'undefined') { + base64encoder = __webpack_require__(28); + } + + /** + * Check if we are running an android browser. That requires us to use + * ArrayBuffer with polling transports... + * + * http://ghinda.net/jpeg-blob-ajax-android/ + */ + + var isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent); + + /** + * Check if we are running in PhantomJS. + * Uploading a Blob with PhantomJS does not work correctly, as reported here: + * https://github.com/ariya/phantomjs/issues/11395 + * @type boolean + */ + var isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent); + + /** + * When true, avoids using Blobs to encode payloads. + * @type boolean + */ + var dontSendBlobs = isAndroid || isPhantomJS; + + /** + * Current protocol version. + */ + + exports.protocol = 3; + + /** + * Packet types. + */ + + var packets = exports.packets = { + open: 0 // non-ws + , close: 1 // non-ws + , ping: 2 + , pong: 3 + , message: 4 + , upgrade: 5 + , noop: 6 + }; + + var packetslist = keys(packets); + + /** + * Premade error packet. + */ + + var err = { type: 'error', data: 'parser error' }; + + /** + * Create a blob api even for blob builder when vendor prefixes exist + */ + + var Blob = __webpack_require__(29); + + /** + * Encodes a packet. + * + * [ ] + * + * Example: + * + * 5hello world + * 3 + * 4 + * + * Binary is encoded in an identical principle + * + * @api private + */ + + exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) { + if (typeof supportsBinary === 'function') { + callback = supportsBinary; + supportsBinary = false; + } + + if (typeof utf8encode === 'function') { + callback = utf8encode; + utf8encode = null; + } + + var data = (packet.data === undefined) + ? undefined + : packet.data.buffer || packet.data; + + if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) { + return encodeArrayBuffer(packet, supportsBinary, callback); + } else if (typeof Blob !== 'undefined' && data instanceof Blob) { + return encodeBlob(packet, supportsBinary, callback); + } + + // might be an object with { base64: true, data: dataAsBase64String } + if (data && data.base64) { + return encodeBase64Object(packet, callback); + } + + // Sending data as a utf-8 string + var encoded = packets[packet.type]; + + // data fragment is optional + if (undefined !== packet.data) { + encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data); + } + + return callback('' + encoded); + + }; + + function encodeBase64Object(packet, callback) { + // packet data is an object { base64: true, data: dataAsBase64String } + var message = 'b' + exports.packets[packet.type] + packet.data.data; + return callback(message); + } + + /** + * Encode packet helpers for binary types + */ + + function encodeArrayBuffer(packet, supportsBinary, callback) { + if (!supportsBinary) { + return exports.encodeBase64Packet(packet, callback); + } + + var data = packet.data; + var contentArray = new Uint8Array(data); + var resultBuffer = new Uint8Array(1 + data.byteLength); + + resultBuffer[0] = packets[packet.type]; + for (var i = 0; i < contentArray.length; i++) { + resultBuffer[i+1] = contentArray[i]; + } + + return callback(resultBuffer.buffer); + } + + function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) { + if (!supportsBinary) { + return exports.encodeBase64Packet(packet, callback); + } + + var fr = new FileReader(); + fr.onload = function() { + exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback); + }; + return fr.readAsArrayBuffer(packet.data); + } + + function encodeBlob(packet, supportsBinary, callback) { + if (!supportsBinary) { + return exports.encodeBase64Packet(packet, callback); + } + + if (dontSendBlobs) { + return encodeBlobAsArrayBuffer(packet, supportsBinary, callback); + } + + var length = new Uint8Array(1); + length[0] = packets[packet.type]; + var blob = new Blob([length.buffer, packet.data]); + + return callback(blob); + } + + /** + * Encodes a packet with binary data in a base64 string + * + * @param {Object} packet, has `type` and `data` + * @return {String} base64 encoded message + */ + + exports.encodeBase64Packet = function(packet, callback) { + var message = 'b' + exports.packets[packet.type]; + if (typeof Blob !== 'undefined' && packet.data instanceof Blob) { + var fr = new FileReader(); + fr.onload = function() { + var b64 = fr.result.split(',')[1]; + callback(message + b64); + }; + return fr.readAsDataURL(packet.data); + } + + var b64data; + try { + b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data)); + } catch (e) { + // iPhone Safari doesn't let you apply with typed arrays + var typed = new Uint8Array(packet.data); + var basic = new Array(typed.length); + for (var i = 0; i < typed.length; i++) { + basic[i] = typed[i]; + } + b64data = String.fromCharCode.apply(null, basic); + } + message += btoa(b64data); + return callback(message); + }; + + /** + * Decodes a packet. Changes format to Blob if requested. + * + * @return {Object} with `type` and `data` (if any) + * @api private + */ + + exports.decodePacket = function (data, binaryType, utf8decode) { + if (data === undefined) { + return err; + } + // String data + if (typeof data === 'string') { + if (data.charAt(0) === 'b') { + return exports.decodeBase64Packet(data.substr(1), binaryType); + } + + if (utf8decode) { + data = tryDecode(data); + if (data === false) { + return err; + } + } + var type = data.charAt(0); + + if (Number(type) != type || !packetslist[type]) { + return err; + } + + if (data.length > 1) { + return { type: packetslist[type], data: data.substring(1) }; + } else { + return { type: packetslist[type] }; + } + } + + var asArray = new Uint8Array(data); + var type = asArray[0]; + var rest = sliceBuffer(data, 1); + if (Blob && binaryType === 'blob') { + rest = new Blob([rest]); + } + return { type: packetslist[type], data: rest }; + }; + + function tryDecode(data) { + try { + data = utf8.decode(data, { strict: false }); + } catch (e) { + return false; + } + return data; + } + + /** + * Decodes a packet encoded in a base64 string + * + * @param {String} base64 encoded message + * @return {Object} with `type` and `data` (if any) + */ + + exports.decodeBase64Packet = function(msg, binaryType) { + var type = packetslist[msg.charAt(0)]; + if (!base64encoder) { + return { type: type, data: { base64: true, data: msg.substr(1) } }; + } + + var data = base64encoder.decode(msg.substr(1)); + + if (binaryType === 'blob' && Blob) { + data = new Blob([data]); + } + + return { type: type, data: data }; + }; + + /** + * Encodes multiple messages (payload). + * + * :data + * + * Example: + * + * 11:hello world2:hi + * + * If any contents are binary, they will be encoded as base64 strings. Base64 + * encoded strings are marked with a b before the length specifier + * + * @param {Array} packets + * @api private + */ + + exports.encodePayload = function (packets, supportsBinary, callback) { + if (typeof supportsBinary === 'function') { + callback = supportsBinary; + supportsBinary = null; + } + + var isBinary = hasBinary(packets); + + if (supportsBinary && isBinary) { + if (Blob && !dontSendBlobs) { + return exports.encodePayloadAsBlob(packets, callback); + } + + return exports.encodePayloadAsArrayBuffer(packets, callback); + } + + if (!packets.length) { + return callback('0:'); + } + + function setLengthHeader(message) { + return message.length + ':' + message; + } + + function encodeOne(packet, doneCallback) { + exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) { + doneCallback(null, setLengthHeader(message)); + }); + } + + map(packets, encodeOne, function(err, results) { + return callback(results.join('')); + }); + }; + + /** + * Async array map using after + */ + + function map(ary, each, done) { + var result = new Array(ary.length); + var next = after(ary.length, done); + + var eachWithIndex = function(i, el, cb) { + each(el, function(error, msg) { + result[i] = msg; + cb(error, result); + }); + }; + + for (var i = 0; i < ary.length; i++) { + eachWithIndex(i, ary[i], next); + } + } + + /* + * Decodes data when a payload is maybe expected. Possible binary contents are + * decoded from their base64 representation + * + * @param {String} data, callback method + * @api public + */ + + exports.decodePayload = function (data, binaryType, callback) { + if (typeof data !== 'string') { + return exports.decodePayloadAsBinary(data, binaryType, callback); + } + + if (typeof binaryType === 'function') { + callback = binaryType; + binaryType = null; + } + + var packet; + if (data === '') { + // parser error - ignoring payload + return callback(err, 0, 1); + } + + var length = '', n, msg; + + for (var i = 0, l = data.length; i < l; i++) { + var chr = data.charAt(i); + + if (chr !== ':') { + length += chr; + continue; + } + + if (length === '' || (length != (n = Number(length)))) { + // parser error - ignoring payload + return callback(err, 0, 1); + } + + msg = data.substr(i + 1, n); + + if (length != msg.length) { + // parser error - ignoring payload + return callback(err, 0, 1); + } + + if (msg.length) { + packet = exports.decodePacket(msg, binaryType, false); + + if (err.type === packet.type && err.data === packet.data) { + // parser error in individual packet - ignoring payload + return callback(err, 0, 1); + } + + var ret = callback(packet, i + n, l); + if (false === ret) return; + } + + // advance cursor + i += n; + length = ''; + } + + if (length !== '') { + // parser error - ignoring payload + return callback(err, 0, 1); + } + + }; + + /** + * Encodes multiple messages (payload) as binary. + * + * <1 = binary, 0 = string>[...] + * + * Example: + * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers + * + * @param {Array} packets + * @return {ArrayBuffer} encoded payload + * @api private + */ + + exports.encodePayloadAsArrayBuffer = function(packets, callback) { + if (!packets.length) { + return callback(new ArrayBuffer(0)); + } + + function encodeOne(packet, doneCallback) { + exports.encodePacket(packet, true, true, function(data) { + return doneCallback(null, data); + }); + } + + map(packets, encodeOne, function(err, encodedPackets) { + var totalLength = encodedPackets.reduce(function(acc, p) { + var len; + if (typeof p === 'string'){ + len = p.length; + } else { + len = p.byteLength; + } + return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2 + }, 0); + + var resultArray = new Uint8Array(totalLength); + + var bufferIndex = 0; + encodedPackets.forEach(function(p) { + var isString = typeof p === 'string'; + var ab = p; + if (isString) { + var view = new Uint8Array(p.length); + for (var i = 0; i < p.length; i++) { + view[i] = p.charCodeAt(i); + } + ab = view.buffer; + } + + if (isString) { // not true binary + resultArray[bufferIndex++] = 0; + } else { // true binary + resultArray[bufferIndex++] = 1; + } + + var lenStr = ab.byteLength.toString(); + for (var i = 0; i < lenStr.length; i++) { + resultArray[bufferIndex++] = parseInt(lenStr[i]); + } + resultArray[bufferIndex++] = 255; + + var view = new Uint8Array(ab); + for (var i = 0; i < view.length; i++) { + resultArray[bufferIndex++] = view[i]; + } + }); + + return callback(resultArray.buffer); + }); + }; + + /** + * Encode as Blob + */ + + exports.encodePayloadAsBlob = function(packets, callback) { + function encodeOne(packet, doneCallback) { + exports.encodePacket(packet, true, true, function(encoded) { + var binaryIdentifier = new Uint8Array(1); + binaryIdentifier[0] = 1; + if (typeof encoded === 'string') { + var view = new Uint8Array(encoded.length); + for (var i = 0; i < encoded.length; i++) { + view[i] = encoded.charCodeAt(i); + } + encoded = view.buffer; + binaryIdentifier[0] = 0; + } + + var len = (encoded instanceof ArrayBuffer) + ? encoded.byteLength + : encoded.size; + + var lenStr = len.toString(); + var lengthAry = new Uint8Array(lenStr.length + 1); + for (var i = 0; i < lenStr.length; i++) { + lengthAry[i] = parseInt(lenStr[i]); + } + lengthAry[lenStr.length] = 255; + + if (Blob) { + var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]); + doneCallback(null, blob); + } + }); + } + + map(packets, encodeOne, function(err, results) { + return callback(new Blob(results)); + }); + }; + + /* + * Decodes data when a payload is maybe expected. Strings are decoded by + * interpreting each byte as a key code for entries marked to start with 0. See + * description of encodePayloadAsBinary + * + * @param {ArrayBuffer} data, callback method + * @api public + */ + + exports.decodePayloadAsBinary = function (data, binaryType, callback) { + if (typeof binaryType === 'function') { + callback = binaryType; + binaryType = null; + } + + var bufferTail = data; + var buffers = []; + + while (bufferTail.byteLength > 0) { + var tailArray = new Uint8Array(bufferTail); + var isString = tailArray[0] === 0; + var msgLength = ''; + + for (var i = 1; ; i++) { + if (tailArray[i] === 255) break; + + // 310 = char length of Number.MAX_VALUE + if (msgLength.length > 310) { + return callback(err, 0, 1); + } + + msgLength += tailArray[i]; + } + + bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length); + msgLength = parseInt(msgLength); + + var msg = sliceBuffer(bufferTail, 0, msgLength); + if (isString) { + try { + msg = String.fromCharCode.apply(null, new Uint8Array(msg)); + } catch (e) { + // iPhone Safari doesn't let you apply to typed arrays + var typed = new Uint8Array(msg); + msg = ''; + for (var i = 0; i < typed.length; i++) { + msg += String.fromCharCode(typed[i]); + } + } + } + + buffers.push(msg); + bufferTail = sliceBuffer(bufferTail, msgLength); + } + + var total = buffers.length; + buffers.forEach(function(buffer, i) { + callback(exports.decodePacket(buffer, binaryType, true), i, total); + }); + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + + /** + * Gets the keys for an object. + * + * @return {Array} keys + * @api private + */ + + module.exports = Object.keys || function keys (obj){ + var arr = []; + var has = Object.prototype.hasOwnProperty; + + for (var i in obj) { + if (has.call(obj, i)) { + arr.push(i); + } + } + return arr; + }; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + /* global Blob File */ + + /* + * Module requirements. + */ + + var isArray = __webpack_require__(10); + + var toString = Object.prototype.toString; + var withNativeBlob = typeof Blob === 'function' || + typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]'; + var withNativeFile = typeof File === 'function' || + typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]'; + + /** + * Module exports. + */ + + module.exports = hasBinary; + + /** + * Checks for binary data. + * + * Supports Buffer, ArrayBuffer, Blob and File. + * + * @param {Object} anything + * @api public + */ + + function hasBinary (obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + if (isArray(obj)) { + for (var i = 0, l = obj.length; i < l; i++) { + if (hasBinary(obj[i])) { + return true; + } + } + return false; + } + + if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) || + (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) || + (withNativeBlob && obj instanceof Blob) || + (withNativeFile && obj instanceof File) + ) { + return true; + } + + // see: https://github.com/Automattic/has-binary/pull/4 + if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) { + return hasBinary(obj.toJSON(), true); + } + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) { + return true; + } + } + + return false; + } + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + + /** + * An abstraction for slicing an arraybuffer even when + * ArrayBuffer.prototype.slice is not supported + * + * @api public + */ + + module.exports = function(arraybuffer, start, end) { + var bytes = arraybuffer.byteLength; + start = start || 0; + end = end || bytes; + + if (arraybuffer.slice) { return arraybuffer.slice(start, end); } + + if (start < 0) { start += bytes; } + if (end < 0) { end += bytes; } + if (end > bytes) { end = bytes; } + + if (start >= bytes || start >= end || bytes === 0) { + return new ArrayBuffer(0); + } + + var abv = new Uint8Array(arraybuffer); + var result = new Uint8Array(end - start); + for (var i = start, ii = 0; i < end; i++, ii++) { + result[ii] = abv[i]; + } + return result.buffer; + }; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + + module.exports = after + + function after(count, callback, err_cb) { + var bail = false + err_cb = err_cb || noop + proxy.count = count + + return (count === 0) ? callback() : proxy + + function proxy(err, result) { + if (proxy.count <= 0) { + throw new Error('after called too many times') + } + --proxy.count + + // after first error, rest are passed to err_cb + if (err) { + bail = true + callback(err) + // future error callbacks will go to error handler + callback = err_cb + } else if (proxy.count === 0 && !bail) { + callback(null, result) + } + } + } + + function noop() {} + + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + + /*! https://mths.be/utf8js v2.1.2 by @mathias */ + + var stringFromCharCode = String.fromCharCode; + + // Taken from https://mths.be/punycode + function ucs2decode(string) { + var output = []; + var counter = 0; + var length = string.length; + var value; + var extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + // Taken from https://mths.be/punycode + function ucs2encode(array) { + var length = array.length; + var index = -1; + var value; + var output = ''; + while (++index < length) { + value = array[index]; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + } + return output; + } + + function checkScalarValue(codePoint, strict) { + if (codePoint >= 0xD800 && codePoint <= 0xDFFF) { + if (strict) { + throw Error( + 'Lone surrogate U+' + codePoint.toString(16).toUpperCase() + + ' is not a scalar value' + ); + } + return false; + } + return true; + } + /*--------------------------------------------------------------------------*/ + + function createByte(codePoint, shift) { + return stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80); + } + + function encodeCodePoint(codePoint, strict) { + if ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence + return stringFromCharCode(codePoint); + } + var symbol = ''; + if ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence + symbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0); + } + else if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence + if (!checkScalarValue(codePoint, strict)) { + codePoint = 0xFFFD; + } + symbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0); + symbol += createByte(codePoint, 6); + } + else if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence + symbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0); + symbol += createByte(codePoint, 12); + symbol += createByte(codePoint, 6); + } + symbol += stringFromCharCode((codePoint & 0x3F) | 0x80); + return symbol; + } + + function utf8encode(string, opts) { + opts = opts || {}; + var strict = false !== opts.strict; + + var codePoints = ucs2decode(string); + var length = codePoints.length; + var index = -1; + var codePoint; + var byteString = ''; + while (++index < length) { + codePoint = codePoints[index]; + byteString += encodeCodePoint(codePoint, strict); + } + return byteString; + } + + /*--------------------------------------------------------------------------*/ + + function readContinuationByte() { + if (byteIndex >= byteCount) { + throw Error('Invalid byte index'); + } + + var continuationByte = byteArray[byteIndex] & 0xFF; + byteIndex++; + + if ((continuationByte & 0xC0) == 0x80) { + return continuationByte & 0x3F; + } + + // If we end up here, it鈥檚 not a continuation byte + throw Error('Invalid continuation byte'); + } + + function decodeSymbol(strict) { + var byte1; + var byte2; + var byte3; + var byte4; + var codePoint; + + if (byteIndex > byteCount) { + throw Error('Invalid byte index'); + } + + if (byteIndex == byteCount) { + return false; + } + + // Read first byte + byte1 = byteArray[byteIndex] & 0xFF; + byteIndex++; + + // 1-byte sequence (no continuation bytes) + if ((byte1 & 0x80) == 0) { + return byte1; + } + + // 2-byte sequence + if ((byte1 & 0xE0) == 0xC0) { + byte2 = readContinuationByte(); + codePoint = ((byte1 & 0x1F) << 6) | byte2; + if (codePoint >= 0x80) { + return codePoint; + } else { + throw Error('Invalid continuation byte'); + } + } + + // 3-byte sequence (may include unpaired surrogates) + if ((byte1 & 0xF0) == 0xE0) { + byte2 = readContinuationByte(); + byte3 = readContinuationByte(); + codePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3; + if (codePoint >= 0x0800) { + return checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD; + } else { + throw Error('Invalid continuation byte'); + } + } + + // 4-byte sequence + if ((byte1 & 0xF8) == 0xF0) { + byte2 = readContinuationByte(); + byte3 = readContinuationByte(); + byte4 = readContinuationByte(); + codePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) | + (byte3 << 0x06) | byte4; + if (codePoint >= 0x010000 && codePoint <= 0x10FFFF) { + return codePoint; + } + } + + throw Error('Invalid UTF-8 detected'); + } + + var byteArray; + var byteCount; + var byteIndex; + function utf8decode(byteString, opts) { + opts = opts || {}; + var strict = false !== opts.strict; + + byteArray = ucs2decode(byteString); + byteCount = byteArray.length; + byteIndex = 0; + var codePoints = []; + var tmp; + while ((tmp = decodeSymbol(strict)) !== false) { + codePoints.push(tmp); + } + return ucs2encode(codePoints); + } + + module.exports = { + version: '2.1.2', + encode: utf8encode, + decode: utf8decode + }; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports) { + + /* + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ + (function(chars){ + "use strict"; + + exports.encode = function(arraybuffer) { + var bytes = new Uint8Array(arraybuffer), + i, len = bytes.length, base64 = ""; + + for (i = 0; i < len; i+=3) { + base64 += chars[bytes[i] >> 2]; + base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; + base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; + base64 += chars[bytes[i + 2] & 63]; + } + + if ((len % 3) === 2) { + base64 = base64.substring(0, base64.length - 1) + "="; + } else if (len % 3 === 1) { + base64 = base64.substring(0, base64.length - 2) + "=="; + } + + return base64; + }; + + exports.decode = function(base64) { + var bufferLength = base64.length * 0.75, + len = base64.length, i, p = 0, + encoded1, encoded2, encoded3, encoded4; + + if (base64[base64.length - 1] === "=") { + bufferLength--; + if (base64[base64.length - 2] === "=") { + bufferLength--; + } + } + + var arraybuffer = new ArrayBuffer(bufferLength), + bytes = new Uint8Array(arraybuffer); + + for (i = 0; i < len; i+=4) { + encoded1 = chars.indexOf(base64[i]); + encoded2 = chars.indexOf(base64[i+1]); + encoded3 = chars.indexOf(base64[i+2]); + encoded4 = chars.indexOf(base64[i+3]); + + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + + return arraybuffer; + }; + })("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); + + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + + /** + * Create a blob builder even when vendor prefixes exist + */ + + var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : + typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : + typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : + typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : + false; + + /** + * Check if Blob constructor is supported + */ + + var blobSupported = (function() { + try { + var a = new Blob(['hi']); + return a.size === 2; + } catch(e) { + return false; + } + })(); + + /** + * Check if Blob constructor supports ArrayBufferViews + * Fails in Safari 6, so we need to map to ArrayBuffers there. + */ + + var blobSupportsArrayBufferView = blobSupported && (function() { + try { + var b = new Blob([new Uint8Array([1,2])]); + return b.size === 2; + } catch(e) { + return false; + } + })(); + + /** + * Check if BlobBuilder is supported + */ + + var blobBuilderSupported = BlobBuilder + && BlobBuilder.prototype.append + && BlobBuilder.prototype.getBlob; + + /** + * Helper function that maps ArrayBufferViews to ArrayBuffers + * Used by BlobBuilder constructor and old browsers that didn't + * support it in the Blob constructor. + */ + + function mapArrayBufferViews(ary) { + return ary.map(function(chunk) { + if (chunk.buffer instanceof ArrayBuffer) { + var buf = chunk.buffer; + + // if this is a subarray, make a copy so we only + // include the subarray region from the underlying buffer + if (chunk.byteLength !== buf.byteLength) { + var copy = new Uint8Array(chunk.byteLength); + copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength)); + buf = copy.buffer; + } + + return buf; + } + + return chunk; + }); + } + + function BlobBuilderConstructor(ary, options) { + options = options || {}; + + var bb = new BlobBuilder(); + mapArrayBufferViews(ary).forEach(function(part) { + bb.append(part); + }); + + return (options.type) ? bb.getBlob(options.type) : bb.getBlob(); + }; + + function BlobConstructor(ary, options) { + return new Blob(mapArrayBufferViews(ary), options || {}); + }; + + if (typeof Blob !== 'undefined') { + BlobBuilderConstructor.prototype = Blob.prototype; + BlobConstructor.prototype = Blob.prototype; + } + + module.exports = (function() { + if (blobSupported) { + return blobSupportsArrayBufferView ? Blob : BlobConstructor; + } else if (blobBuilderSupported) { + return BlobBuilderConstructor; + } else { + return undefined; + } + })(); + + +/***/ }), +/* 30 */ +/***/ (function(module, exports) { + + /** + * Compiles a querystring + * Returns string representation of the object + * + * @param {Object} + * @api private + */ + + exports.encode = function (obj) { + var str = ''; + + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + if (str.length) str += '&'; + str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); + } + } + + return str; + }; + + /** + * Parses a simple querystring into an object + * + * @param {String} qs + * @api private + */ + + exports.decode = function(qs){ + var qry = {}; + var pairs = qs.split('&'); + for (var i = 0, l = pairs.length; i < l; i++) { + var pair = pairs[i].split('='); + qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + } + return qry; + }; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports) { + + + module.exports = function(a, b){ + var fn = function(){}; + fn.prototype = b.prototype; + a.prototype = new fn; + a.prototype.constructor = a; + }; + +/***/ }), +/* 32 */ +/***/ (function(module, exports) { + + 'use strict'; + + var alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('') + , length = 64 + , map = {} + , seed = 0 + , i = 0 + , prev; + + /** + * Return a string representing the specified number. + * + * @param {Number} num The number to convert. + * @returns {String} The string representation of the number. + * @api public + */ + function encode(num) { + var encoded = ''; + + do { + encoded = alphabet[num % length] + encoded; + num = Math.floor(num / length); + } while (num > 0); + + return encoded; + } + + /** + * Return the integer value specified by the given string. + * + * @param {String} str The string to convert. + * @returns {Number} The integer value represented by the string. + * @api public + */ + function decode(str) { + var decoded = 0; + + for (i = 0; i < str.length; i++) { + decoded = decoded * length + map[str.charAt(i)]; + } + + return decoded; + } + + /** + * Yeast: A tiny growing id generator. + * + * @returns {String} A unique id. + * @api public + */ + function yeast() { + var now = encode(+new Date()); + + if (now !== prev) return seed = 0, prev = now; + return now +'.'+ encode(seed++); + } + + // + // Map each character to its index. + // + for (; i < length; i++) map[alphabet[i]] = i; + + // + // Expose the `yeast`, `encode` and `decode` functions. + // + yeast.encode = encode; + yeast.decode = decode; + module.exports = yeast; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Module requirements. + */ + + var Polling = __webpack_require__(20); + var inherit = __webpack_require__(31); + var globalThis = __webpack_require__(18); + + /** + * Module exports. + */ + + module.exports = JSONPPolling; + + /** + * Cached regular expressions. + */ + + var rNewline = /\n/g; + var rEscapedNewline = /\\n/g; + + /** + * Global JSONP callbacks. + */ + + var callbacks; + + /** + * Noop. + */ + + function empty () { } + + /** + * JSONP Polling constructor. + * + * @param {Object} opts. + * @api public + */ + + function JSONPPolling (opts) { + Polling.call(this, opts); + + this.query = this.query || {}; + + // define global callbacks array if not present + // we do this here (lazily) to avoid unneeded global pollution + if (!callbacks) { + // we need to consider multiple engines in the same page + callbacks = globalThis.___eio = (globalThis.___eio || []); + } + + // callback identifier + this.index = callbacks.length; + + // add callback to jsonp global + var self = this; + callbacks.push(function (msg) { + self.onData(msg); + }); + + // append to query string + this.query.j = this.index; + + // prevent spurious errors from being emitted when the window is unloaded + if (typeof addEventListener === 'function') { + addEventListener('beforeunload', function () { + if (self.script) self.script.onerror = empty; + }, false); + } + } + + /** + * Inherits from Polling. + */ + + inherit(JSONPPolling, Polling); + + /* + * JSONP only supports binary as base64 encoded strings + */ + + JSONPPolling.prototype.supportsBinary = false; + + /** + * Closes the socket. + * + * @api private + */ + + JSONPPolling.prototype.doClose = function () { + if (this.script) { + this.script.parentNode.removeChild(this.script); + this.script = null; + } + + if (this.form) { + this.form.parentNode.removeChild(this.form); + this.form = null; + this.iframe = null; + } + + Polling.prototype.doClose.call(this); + }; + + /** + * Starts a poll cycle. + * + * @api private + */ + + JSONPPolling.prototype.doPoll = function () { + var self = this; + var script = document.createElement('script'); + + if (this.script) { + this.script.parentNode.removeChild(this.script); + this.script = null; + } + + script.async = true; + script.src = this.uri(); + script.onerror = function (e) { + self.onError('jsonp poll error', e); + }; + + var insertAt = document.getElementsByTagName('script')[0]; + if (insertAt) { + insertAt.parentNode.insertBefore(script, insertAt); + } else { + (document.head || document.body).appendChild(script); + } + this.script = script; + + var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent); + + if (isUAgecko) { + setTimeout(function () { + var iframe = document.createElement('iframe'); + document.body.appendChild(iframe); + document.body.removeChild(iframe); + }, 100); + } + }; + + /** + * Writes with a hidden iframe. + * + * @param {String} data to send + * @param {Function} called upon flush. + * @api private + */ + + JSONPPolling.prototype.doWrite = function (data, fn) { + var self = this; + + if (!this.form) { + var form = document.createElement('form'); + var area = document.createElement('textarea'); + var id = this.iframeId = 'eio_iframe_' + this.index; + var iframe; + + form.className = 'socketio'; + form.style.position = 'absolute'; + form.style.top = '-1000px'; + form.style.left = '-1000px'; + form.target = id; + form.method = 'POST'; + form.setAttribute('accept-charset', 'utf-8'); + area.name = 'd'; + form.appendChild(area); + document.body.appendChild(form); + + this.form = form; + this.area = area; + } + + this.form.action = this.uri(); + + function complete () { + initIframe(); + fn(); + } + + function initIframe () { + if (self.iframe) { + try { + self.form.removeChild(self.iframe); + } catch (e) { + self.onError('jsonp polling iframe removal error', e); + } + } + + try { + // ie6 dynamic iframes with target="" support (thanks Chris Lambacher) + var html = '